It was at the EclipseCon NA 2011 when I first considered a migration of the open source project OpenChrom (https://www.openchrom.net) to the new e4 platform. The new feature set looked really promising and I thought better switching to e4 earlier than later. I asked several people about the new features at the EclipseCon Europe 2011 again. Then I made the decision to start the migration in December 2011 based on Eclipse 4.1.1. Frankly, I was thrilled to be the winner of the EclipseCon Community Award with OpenChrom in the category "Best RCP Application" that year. In a retro-perspective view, the decision to migrate was a bit overeager. Literally spoken, it was a catastrophe. For approximately 6 month, I was not able to build and compile OpenChrom at all. Features were missing, the documentation was misleading or in the worst case wrong. If OpenChrom would have been just a hobby project, I definitively would work in another area now. But it was and it is my business, so I had no choice. It was a path of trial and tribulation. Luckily, Lars Vogel and Simon Scholz from vogella GmbH assisted me from time to time. Nowadays, I really enjoy using e4 and all its great features and capabilities. So I would like to give an introduction how to best start with a migration and point out the highlights and pitfalls of e4.
- How to start?
- Pure e4 or mixed mode?
- How to use plugin.xml, Application.e4xmi and fragment.e4xmi?
- What could go wrong?
- Which parts are missing?
- How to do a smooth migration?
OpenChrom is based on Eclipse 4.5 and meanwhile consists of 148 projects. Hence, it's a good showcase that it is also possible to migrate big RCP applications to e4. Over a year ago, we also started an official Eclipse project called ChemClipse to migrate the codebase from OpenChrom to Eclipse. Feel free to inspect the source code. But that's another story. Anyhow, I've learned my lessons and hopefully you won't do the same mistakes as I did. Eventually, I really encourage you to think about a migration to e4 if not done already.