equinox
plans

 
Plans

Equinox planning is a community effort. Anyone proposing a work item should consider the following points:

  • relevance to Eclipse and the stated goals of Equinox
  • likelihood of adoption by the platform team
  • your level of commitment
  • level of interest in the community

Basically nothing will get done unless people are volunteering to do it.

The following are the general workitems which are underway in Equinox.

Dynamic plug-ins

Currently plug-ins cannot be added, removed or updated while the platform is running. In addition to being annoying for users (they have to exit and restart the platform to complete any install/update actions), it prevents Eclipse from handling several end-user scenarios. For example, consider what happens when a user browsing the web encounters a new resource type that their browser does not understand. The browser discovers the appropriate plug-in, downloads and installs it and then uses it to present/run/manage the content. This is all possible in Eclipse but the user would have to cycle the platform after installing the plugin.

The challenges in this area general relate to managing the plugin registry. As plugins are added and removed, pre-existing plugins might be enabled or disabled due to changes in presence or version of a prerequisite. Extensions and extension-points may be added or removed and so need to be relinked and reprocessed by plugins.

This work item can be subdivided as follows:

  • Implement a simple plugin "deactivation" mechanism including enabling class and classloader garbage collection.
  • Design and implement a mechanism for re-reconciling plugin dependency constraints to generate a registry delta which details added, changed and removed plugins.
  • Define a registry changed lifecycle API.
  • Investigate plugin coding patterns which prevent full garbage collection of deactivated plugins.
  • Investigate techniques for retaining plugin state during update
More details can be found here
Interested parties
Jeff McAffer
Pascal Rapicault
CVS branch
Dynamic_Plugins
Bugzilla component
Dynamic Plugins
Runtime Alternatives

Eclipse currently uses a home-grown runtime model. That is, the runtime model/mechanism was designed and implemented specifically for Eclipse. This is good in that it has been highly optimized and tailor. This is 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, ...). Further, this approach makes it hard for users in those other environments to use Eclipse as there are model contentions.

One of the goals of Equinox is to look at alternate runtime models and investigate their use as a base runtime for Eclipse. This is a tall order. The good news is that even if we fail to get full integration, we will no doubt learn a great deal and understand techniques for partial integration.

More details can be found here

Interested parties
Jeff McAffer
Pascal Rapicault
Peter Kriens
CVS branch
<none yet>
Bugzilla component
<none yet>
Service model
to be added...