Migrating Archi to Eclipse 4
Archi is built upon the Eclipse Rich Client Platform (RCP) version 3.8 and is also developed in the Eclipse Integrated Development Environment (IDE). Development on Archi began in January 2010 when the current version of Eclipse was 3.6. The code has been written in accordance with the APIs of Eclipse 3.x.
Eclipse 4 (e4)
From June 2012 things have changed. Eclipse has moved to version 4.x, and consequently Eclipse 3.8 (also released in June 2012) will be the last version of Eclipse using the old APIs to be officially supported. After June 2013, Eclipse 4 will be the only officially supported platform. Eclipse 4 uses a completely different programming paradigm. Eclipse 4 introduces:
- a model-based user interface and a new CSS-based declarative mechanism for application styling. These facilities make it easier to design and customize an application user interface. This also adds greater flexibility to UI layout, making it easier to make a user interface look different from an IDE.
- a new services-oriented programming model that makes it easier to use discreet application services of the Eclipse platform.
- dependency injection through Java annotations.
- a compatibility layer to allow existing well-behaved Eclipse 3.x applications to take advantage of the new functionality of the Eclipse 4 Application Platform.
What does this mean for Archi?
The following is a list of issues found so far running Archi using Eclipse 4.2. There are probably many more issues...
It means that Archi does not work correctly using Eclipse 4's "compatibility layer" out of the box, due to Eclipse 4 being half baked. Some things can be resolved, whilst many other things are due to bugs in the backward compatibility layer. Because Eclipse is extremely difficult to code and get working on all the OS platforms, some workarounds have been in employed in Archi. Eclipse 4 breaks some of these workarounds. Of course, this means that new workarounds will have to be found.
Eclipse 3.8 will be officially supported up until June 2013. This is the version used for Archi as of June 2012. This works for Windows XP and 7, Mac OS 10.6 (Snow Leopard) and 10.7 (Lion), and some flavours of Linux (Ubuntu). However, there's no guarantee things won't break when Windows 8 and Mac 10.8 are released this year. We should stick with this version of Eclipse up until June 2013. After this there will be no more 3.x versions of Eclipse, only the 4.x series.
If Archi is to be sustained and supported beyond this, we need to re-write Archi using the new APIs and programming model of Eclipse 4. I don't think it's worth fixing the issues so that it works using Eclipse 4's "compatibility layer". I think for future-proofing it should be completely re-written in Eclipse 4. The target for this should be Eclipse 4.3.
We also need to be thinking out moving to mobile apps (iPad and tablet).