Feedback of Target Platform migration from Eclipse 4.3 to 4.4.1
It was far more time-consuming than planned and than some previous migrations. Consequently, I would like to share experience in order to help people who didn't migrate yet.
A short description is provided for each issue. I went deeper on some of them in previous blog posts. By popular demand, I can do the same for some other issues encountered, so don't hesitate to ask in comments for more details. At the end of this blog article is a list of some benefits of the new Eclipse version.
Encountered issues/code update requirement:
GReclipse: our Eclipse RCP application cannot start with -groovy.compiler.version specified. The issue has been reported in the GReclipse bugtracker here. The product now embeds a single compiler version, so that it does not have to be specified.
Some SWTbot tests failed due to the shellMaximize option and selection behavior modification in GEF/GMF diagram, which caused scrollbars to appear during test execution. This broke some of our SWTBot tests which did not handle scrollbars.
The shellMaximize option on Trimmed Window is ignored. The fix was to programmatically maximize the Shell in the WorkbenchWindowAdvisor. See the corresponding git commit.
For the selection behavior modification, increasing the geometry of the xvnc server in Jenkins was enough to avoid scrollbars and fix the test.
There is a Birt regression in version 4.4.1. The good news was that it had already been reported in the forum. The regression was introduced while fixing this other issue. The solution was to patch the plugin org.eclipse.birt.report.model (and its features).
Eclipse 3.x Compatibility
An Out Of Memory error sometimes occurred for one of our specific application which used a legacy 3.x API (WorkbenchWindowAdvisor.postStartup). You can check my previous blog post for more details.
EMF Compare: we did the "Great Jump" from 1.2.2 version to 3.1.1. The whole API has been modified. However, the new API is clear and easy to use. It took a few hours to rewrite the code to use the new API.
Subversive (SVN): The version upgrade from 1.1 to 2.0 includes some API breaks. There were not a lot of API breaks but we didn't get the correct New and Noteworthy indicating them, so it wasn't always very simple to find out what new API to use. Please notice that the Polarion connector drops the version 1.3.8 but provides a new one (1.8). It affects the SVN server version supported.
Xtext generated several errors and stacktraces. It seems that they have been all fixed by reusing an XtextComparisonExpressionLoader instead of recreating a fresh new one often. You can check the following references to get a deeper understanding of the issue: Eclipse raised bug, Eclipse forum thread, and the commit which seems to have fixed the issue.
Please note that GMF Tooling is using a new Code Template Generation language: Xtend. It would be a noticeable effort to migrate all of our templates. We will expect that both languages will be maintained for the upcoming releases.
Web Tools Platform provided a surprise: the way of saving and modifying ServerConfiguration has been modified. The issue was fixed by reworking our useflow and avoiding the need to update ServerConfiguration several times before launching this configuration on our side.
The EFS (Eclipse File System) helper class seems to have more restrictions on read-write access. It forced us to rework its usage when copying from a bundle to the workspace using relative paths.
The Eclipse Equinox Log Mechanism has been rewritten. For several years, our product was using internal APIs (that's bad!), they were removed in 4.x. Hopefully, using the new API, all functionalities have been kept.
Please notice some good features that this version upgrade provides: