equinox
dynamic plugins > registry delta

 
Registry delta

After a batch of changes has happened and the registry is resolved, a registry event object is constructed and sent to the interested parties in order to allow them to update their internal state accordingly.

The registry event object provides access to two different types of objects:

  1. directly, to plug-in deltas, that enumerate which plug-ins were affected by the changes;
  2. indirectly, in a by-plug-in basis, to extension deltas, that describe which extensions have been added or removed from the registry.

While #1 is mainly interesting to tools that mantain their own models based on the global registry structure (such as PDE), #2 provides the general mechanism by each plug-ins may update their internal state in response to the addition or removal of extensions their extension points.

Here is the proposed API for the registry change event and listeners:

IRegistryChangeEvent

IRegistryChangeListener

Plug-in deltas
Plug-in deltas allow special tools that require a global knowledge of the registry structure (such as PDE) to update their internal states after the registry has had any structural changes. Also, plug-in deltas give access to contained extension deltas.

Here is the proposed API for the plugin delta:

IPluginDelta

Questions:
Should the old state be given?
Extension deltas

Extension deltas allow extension point providers to figure out which extensions were added to/removed from its extension points.

Following is a proposal for the extension delta API:

IExtensionDelta