|[mdt-papyrus.dev] Moving to GMF Runtime 1.14 and Batik 1.14 for 2022-03?|
Hi Papyrus team,As you may know, for a long time GMF Runtime has depended on very old versions of Apache Batik (1.6) for its SVG support.
This is a problem for several reasons:* we don't get the benefits from new features and bug fixes (even though Batik is not the most active project, there are some, including changes to support more "recent" versions of Java); * Batik 1.6 is no longer available in current Orbits, which means projects like GMF Runtime (and transitively Sirius and Papyrus) which depend on it have to pull it from very old Orbit repositories. The platform itself (via e4 which uses Batik's CSS parser) contributes some Batik JARs from the most recent version into the SimRel. This leads to duplicate versions of the same bundles in the main repository, never a good thing. * there are known CVEs which affect all versions of Batik until the most recent, v1.14.0.
We've made some efforts in previous years to move to more recent versions (1.9 at the time), but they failed, mostly because the way Batik was built/bundled was not OSGi-friendly (split packages, etc.).
Last year, Shiheng Guan (guans@xxxxxxxxxxxx) contributed Batik 1.13 to Orbit and then Michael Istria moved that to 1.14 (to address CVE-2020-11987). In July 2021 I released GMF Runtime 1.14  which used that to finally move GMF to Batik 1.14. I did not contribute that to the SimRel for the moment, because it needs downstream projects (Sirius, Ecore Tools which is based on Sirius and Papyrus) to adapt to that version. We've made the required changes in Sirius last summer  and have not noticed any regression since then (well, except a known one: GMF Runtime 1.14 no longer supports exporting to PDFs, as Batik PDF 1.14 is not available in Orbit).
We will soon release Sirius 7.0 which moves to GMF Runtime and Batik 1.14, and would like to contribute that to the SimRel for 2022-03.
This currently fails  because:Missing requirement: Papyrus GMF Diagrams Support 188.8.131.52201120934 (org.eclipse.papyrus.infra.gmfdiag.common 184.108.40.206201120934) requires 'osgi.bundle; org.apache.batik.dom [1.6.0,1.7.0)' but it could not be found
Bundle(org.apache.batik.dom [1.6.0,1.7.0)) is required by: ValidationSet(main) Contribution(Papyrus) MappedRepository(https://download.eclipse.org/modeling/mdt/papyrus/updates/milestones/6.1/M1/main/) Feature(org.eclipse.papyrus.sdk.feature.feature.group 6.1.0)InstallableUnit(org.eclipse.papyrus.infra.feature.feature.group 220.127.116.11201120934) InstallableUnit(org.eclipse.papyrus.infra.gmfdiag.css.feature.feature.group 18.104.22.168201120934)
InstallableUnit(org.eclipse.papyrus.infra.gmfdiag.css 22.214.171.124201120934) InstallableUnit(org.eclipse.papyrus.infra.gmfdiag.common 126.96.36.199201120934)Disabling Papyrus from the aggregation  works, so it seems no other project has constraints on older versions of Batik.
From the URL above (milestones/6.1/M1) it looks like you are preparing for a 6.1 release. Do you think it would be possible to include the move to GMF Runtime 1.14 and Batik 1.14 in that release? It would be great to finally get rid of these old version and duplicate Batik JARs in the SimRel repo!
Depending on how exactly your code depends on Batik, it might be as simple as changing the ranges, or it might require some adaptation. See the patches we had to do in bug #572899, in particular  (it's mostly updating imports as Batik moved some of its classes to different packages).
BTW, I don't know if you contribute the org.eclipse.papyrus-sirius part into the SimRel, but if you do you may need to adapt to Sirius 7.0. There is a 7.0.0M2 available at  which includes most important changes. See the release notes  for details.
Regards, Pierre-Charles David (Sirius and GMF Runtime co-lead) https://projects.eclipse.org/projects/modeling.gmf-runtime/releases/1.14.0
 https://bugs.eclipse.org/bugs/show_bug.cgi?id=572899  https://git.eclipse.org/r/c/simrel/org.eclipse.simrel.build/+/186104  https://git.eclipse.org/r/c/simrel/org.eclipse.simrel.build/+/189860  https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/182542  https://download.eclipse.org/sirius/updates/milestones/7.0.0M2/2021-06/ https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/tree/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile
-- Pierre-Charles David (Obeo)
Back to the top