Eclipse originally used a home-grown runtime model. That is, the runtime model/mechanism was designed and implemented specifically for Eclipse. This was good in that it was highly optimized and tailored. It was less than optimal in that there are many issues which are complicated and having a unique runtime mechanism does not allow us to reuse the work done in other areas (e.g., OSGi, Avalon, JMX, ...). To address this, we went looking for a runtime that has a strong specification, a good component model, supports dynamic behaviour, and is reasonably similar to that of Eclipse.
This last point bears some discussion. While we would like to start with a clean slate and adopt/design a runtime which satisfies everyone's wish list, pragmatically, it must still be possible to run old plug-ins on the new runtime with confidence. That is, the new runtime cannot be so completely different so as to make this difficult/totally inefficient/impossible.
To that end, we have implemented a plug-compatible runtime for Eclipse based on the OSGi specification. Consult the resources below for more information.
|Equinox Runtime Resources|
The base specification and all you need to know about the organization.
An overview/vision of the new runtime.
|Running the runtime
How to use the new runtime.
Details of how to update your plug-ins to take advantage of the new runtime.
The list of RCP plug-ins and their characteristics.