equinox
First Equinox Prototype

 
Summary

The Eclipse Rich Client Platform (RCP) work intends to evolve Eclipse toward an dynamic platform for applications. This document describes the first prototype of the Eclipse RCP out of IBM Research, which results from the work of Olivier Gruber and Woody Huang, both researcher at IBM T.J. Research Center near New York City, in the United States.
Last Modified: 1400 June 21, 2003

Nota Bene: This document describes the current prototype, not the final decisions of Equinox.

Prototype

The prototype shows a fully dynamic Eclipse, from top to bottom. The prototype is based on a merge of Eclipse and OSGi —find more details on the Open Services Gateway Initiative at www.osgi.org . Olivier decided very early on to experiment with OSGi as a promising avenue. The goal was to avoid having Eclipse pushing an Eclipse-specific solution for the management of Java software components if an open standard could be leveraged. OSGi seemed a natural fit to Eclipse requirements as an RCP. The experimentation was successfull, although the merge requires a give-and-take on both parts. We are still in the process to fully understand the extent of the needed modifications and their pros and cons, working closely with the OSGi consortium and the core Eclipse team. Nevertheless, it was decided to move Equinox forward, leveraging this prototype.

Nota Bene: In all our documents, one should understand that Eclipse or OSGi refers to modified Eclipse and OSGi.

The approach we followed was to look at Eclipse as a plugin container above an OSGi layer. The prototype is based on the Eclipse RC3, where an OSGi layer has been introduced in between the boot and runtime plugins. The OSGi layer provides a dynamic layer for network-deployed software components called OSGi bundles—bundles in short. A bundle is fundamentally a set of Java packages and services. Hence, a plugin extends a bundle by defining extensions and extension points. These extensions and extension points are registered in the plugin registry. The plugin registry is dynamically matching extensions and extension points as plugins are installed, updated, or removed from the system.

Above the plugin registry, we modified some of the main integration plugins to render them dynamic-aware. Indeed, plugins such as the UI plugins or the resource plugins need to react to extensions appearing or disappearing dynamically. The modifications of the Workbench plugins are complete. We are still working on the Workspace plugins (resources). Our modifications allows the Workbench to fully react to extension life-cycle events as a result of plugins being dynamically installed, updated, or removed.

Please read the prototype overview and design.

Prototype Roadmap

The prototype roadmap discusses the work items on the prototype. This is a live document that will be updated as work progresses and the design finalizes. One will find items on the OSGi implementation, on the Eclipse registry, the update manager, the Workbench and Workspace, and also PDE. All comments welcomed on the Equinox mailing list.

Prototype HowTo

This HowTo discusses how to get started, that is, what to install and how to run the prototype from the Equinox CVS repository. All comments welcomed on the Equinox mailing list.