Latest revision as of 13:04, 21 December 2007

Summary

EMF 2.3.0 and the projects that depend on it will not be available (ie., will not run) in Europa or with Eclipse 3.3 if Java 1.4 is used as the underlying JRE. If your environment has more than one JDK or JRE available, you can tell Eclipse to use a specific one like this (with optional -vmargs too):

If a bundle is compiled with Java 1.4 or with source compatibility set to Java 1.4, it will run without any problems with Eclipse 3.3.0, EMF 2.3.0 and Java 5.0.

To run your code with Java 1.4, you will need a previous version of EMF. As of this writing, the latest EMF release is 2.2.1 (available in Callisto) and we are currently fixing important bugs in the 2.2.2 maintenance stream, to be available for Callisto's winter maintenance.

Additional

Code compiled with Java 1.4 runs on Java 5.0 without any problem.

Code compiled with Java 5.0 does not run with Java 1.4. Even HelloWorld.java has such limitation.

EMF 2.3.0 is compiled with Java 5.0 and all its bundles require Java 5.0.

EMF 2.3.0 cannot be compiled with Java 1.4 due to the extensive use of Java 5.0 features.

EMF 2.3.0 is binary compatible with our latest release (EMF 2.2.x). Besides our own tests, we heard this from developers of Eclipse projects and commercial products. This means that adopting EMF 2.3.0 is not a problem as long as the code is not recompiled. We also verified that EMF 2.3.0 does not break anything if the source compatibility of projects are set to Java 1.4.

@ Only this runtime combination will allow you to exploit JDK5.0 language features like generics. All other combinations will be JDK1.4-compliant.

^ EMF 2.3 only runs on Eclipse 3.3 because it's been updated to take advantage of new platform methods and to remove the use of deprecated platform methods internally within EMF API methods. This is not an API change, just a change in the way the API is implemented under the covers. JDK5.0 is required for EMF 2.3 because of language constructs not available in JDK1.4.