Eclipse Platform starts using more and more new Java
constructs (up to Java 8 for now) like try-with-resources,
foreach and etc.
Bundles have their minimal versions bumped whenever BREE
has been bumped so one can have clear indicator of this
change.
This new features bring dependency on new classes like
AutoClosable ( Java 1.7) , Iterable (Java 1.5) and probably
others.
If your bundles have BREE lower than the Platform bundle
they depend on and you have JVM of that level configured in
Eclipse errors like "The type
java.lang.Iterable
cannot be resolved. It is indirectly referenced from
required .class files" could be shown.
This is
source level only issue if you try to build your old bundle
against latest platform. People just using their prebuilt
bundles won't face anything like this.
Possible
fixes for this issue are:
* move
your bundle to newer BREE (highest BREE of deps)
* build
against proper target platform containing the oldest
versions of your deps you support
I don't
believe many people will face such issues but let's get this
out for the sake of having it written somewhere.
--
Alexander Kurtakov
Red Hat Eclipse Team