I am developing a Eclipse application and want to migrate to Eclipse 4.4 now. In my application setup I am using BIRT (latest release 4.4.0), which comes with the Apache Batik plugins:
- org.apache.batik.bridge_1.6.0.v201011041432.jar
- org.apache.batik.css_1.6.0.v201011041432.jar
- org.apache.batik.css_1.7.0.v201011041433.jar
- org.apache.batik.dom.svg_1.6.0.v201011041432.jar
- org.apache.batik.dom_1.6.0.v201011041432.jar
- org.apache.batik.ext.awt_1.6.0.v201011041432.jar
- org.apache.batik.parser_1.6.0.v201011041432.jar
- org.apache.batik.pdf_1.6.0.v201105071520.jar
- org.apache.batik.svggen_1.6.0.v201011041432.jar
- org.apache.batik.transcoder_1.6.0.v201011041432.jar
- org.apache.batik.util.gui_1.6.0.v201011041432.jar
- org.apache.batik.util.gui_1.7.0.v200903091627.jar
- org.apache.batik.util_1.6.0.v201011041432.jar
- org.apache.batik.util_1.7.0.v201011041433.jar
- org.apache.batik.xml_1.6.0.v201011041432.jar
Additionally, I use GMF (latest release 1.8.1), which comes with all the batik bundles in version 1.6.
I put everything in my target platform, but nevertheless I get into troubles with the batik versions if I want to verify my product. Eclipse seems to depend on the 1.7 versions (i.e. the bundle org.eclipse.e4.ui.css.core). But GMF requires the 1.6 versions. And once org.apache.batik.pdf is included, which is only there as version 1.6, there is the problem that this imports all the other batik packages in their version 1.6.
I thought it was possible to run it with several versions active next to each other, since batik is not singleton. But if I validate the product in Eclipse I get errors that one or the other version is missing.
I tried several combinations:
Only 1.7 packages
If I include all the 1.7 packages in my target platform and not the 1.6 packages, GMF complains about the missing 1.6 packages.
Only 1.6 packages
If I include only the 1.6 packages and not the 1.7 packages, the eclipse framework (bundle org.eclipse.e4.ui.css.core) complains about the missing 1.7 packages.
Both 1.6 and 1.7 packages
If I include both versions in the target platform, it seems to take the newest ones. Then I get complaints from org.apache.batik.pdf (which is there only as 1.6) missing the 1.6 versions of the other bundles, and the same again from the GMF bundle.
About running the product:
I found these forum posts:
http://www.eclipse.org/forums/index.php/t/207375/
http://www.eclipse.org/forums/index.php/t/787032/
Basically they are suggesting to edit the run configuration of the product, and include the all bundles (both versions 1.6 and 1.7) there.
After some trying, this actually worked for me, however my question is still:
Are bundles not allowed to be included and co-exist in several versions? Why is the product loading only the higher version if the lower version is also required? Or is the whole thing maybe a bug in the validation tool of the Eclipse IDE? Or am I missing something completely different?