Dynamic Plug-in Details

Dynamic Plug-ins

This work is being done in conjunction with the Equinox project.

Plug-in Deactivation - (bug 36956) In Eclipse plug-ins are activated once referenced and they remain in that state for the duration of the user's Eclipse session. In an effort to reduce memory footprint (amung other reasons) we are investigating allowing plug-ins to become deactivated when they are not being used, and thus that amount of memory could be reclaimed for use by the system.

Incremental Registry Resolution - When a user installs new plug-ins in Eclipse, they are currently forced to restart their system in order for their changes to take effect. This is because currently the plug-in registry is parsed when the system starts up and from that point forward it remains static. We would like to change the plug-in registry resolution to be dynamic, that is to allow the user to add new plug-ins to the system and remove plug-ins from the system at any given point in time and have the system react and behave appropriately.


Progress updates

October 7, 2003 - New API for dynamically installing plug-ins is available. API changes:

  • new package org.eclipse.core.runtime.registry - this package provides an extension registry, a simplified view of the plug-in registry. The extension registry (available through the org.eclipse.core.runtime.Platform class) provides a way for plug-ins to be notified when extensions are added to or removed from extension points.
  • new methods in org.eclipse.core.runtime.Platform - the added methods allow clients to install plug-ins dynamically and to listen to plug-in lifecycle events, such as plug-in addition and activation.
N.B. -dynamic, a new command-line option was defined to put the platform in the "dynamic mode". Currently, this option is required so the APIs described above can be used. This option is temporary and will not be supported in future builds.