org.jlense.uiworks.applicationAssociations Extension Point

Identifier: org.jlense.uiworks.applicationAssociations

Description: This extension point is used to associate plugins with only specific runtime applications. This extension point is useful when there are many Eclipse applications available from a single Eclipse installation.

Currently, when an Eclipse application is started, the Eclipse platform must parse the plugin.xml configuration files for every installed plugin.
Consider what this means for an extension point like org.jlense.uiworks.actionSets. The org.jlense.uiworks.actionSets may be used to add buttons to the main workbench toolbar. Suppose that you have two separate applications installed into a single Eclipse installation. Then, when ever either application is run, all the toolbar buttons from both application will be displayed on the Workbench toolbar.

This extension-point is used to associate a plugin with only a specific application, or applications, in order to avoid problems like the one described above.

This extension point is a stop gap solution to the problem of supporting multiple applications each with thier own product branding (see this article for a description of the current Eclipse approach to product branding).
The branding article describes the R1.0 story. The Eclipse team intends to support multiply- branded launch points in R2.0. All the code needed for this is currently not in the R2.0 stream yet ... current work in progress. Eclipse will support -feature <id> command line option, as well as custom configurations that allow control over which plugins get used (-configuration <url> option).

Configuration Markup:

   <!ELEMENT category EMPTY>
   <!ATTLIST application
      id              CDATA #REQUIRED

  • id - a unique name that will be used to identify an application


The following is an example of the extension point:

<!-- associate this plugin with only certain applications -->
<extension point="org.jlense.uiworks.applicationAssociations">
    <application id="org.jledger.ui.workbench"/>