Supporting Multiple Versions of Eclipse
Tuesday, March 18th, 2008The tutorial from Instantiations by Daniel and Eric on building commercial quality Eclipse plug-ins was a nice review of the core capabilities of the Eclipse platform, annotated with some best practices. They also spent quite a bit of time on the requirements of the Ready for Rational certification from IBM.
They included a couple of slides at the very end of their talk that were very relevant to Rule Studio — how Instantiations supports multiple version of Eclipse (in their case 3.0, 3.2 and 3.3). They have experimented with various techniques (including using different code branches, which is what ILOG does) but have now settled on a single code-base (single branch) that they translate using a custom tool to source code specific to each version of Eclipse. Code comments parameterize and drive the source translation approach. It sounds very challenging but the logic is that 95% of their code is independent of Eclipse version and this approach allows them to fix a bug in a single branch without having to deal with merges into different code branches. Unfortunately it also means that they are locked into JDK 1.3 language level for WSAD 5.1 support! They even had to backport some new Eclipse features to older Eclipse version, such as the Jobs API!
I’m skeptical that this approach could work for Rule Studio but it is true that merging bug fixes into all the branches we support (JRules 6.1, 6.5, 6.7 and trunk are the most active branches) is a drag on productivity.
I’d be interested in hearing how you and your company deals with supporting multiple versions of Eclipse.





