Application extension registry

WebSphere® Application Server has enabled the Eclipse extension framework for applications to use. Applications are extensible when they contain a defined extension point and provide the extension processing code for the extensible area of the application.

Note: For WebSphere Application Server Version 9.0 and later, Application Extension Registry is stabilized. For more information, see Stabilized features of WebSphere Application Server traditional.
An application can be plugged in to another extensible application by defining an extension that adheres to what the target extension point requires. The extension point can find the newly added extension dynamically and the new function is seamlessly integrated in the existing application. It works on a cross Java™ Platform, Enterprise Edition (Java EE) module basis. The application extension registry uses the Eclipse plug-in descriptor format and application programming interfaces (APIs) as the standard extensibility mechanism for WebSphere applications. Developers that build WebSphere application modules can use WebSphere Application Server extensions to implement their functionality to an extensible application, which defines an extension point. This is done through the application extension registry mechanism.

The architecture of extensible Java EE applications follow a modular design to add new functional modules or to replace an existing module, particularly by those outside of its core development team. Each module is a pluggable unit, or plug-in that is either deployed into the portal or removed from the Java EE application using a deployment tool that is based upon standard Java EE and portal web module deployment tooling. A plug-in module describes where it is extensible and what capability it provides to other plug-ins in the plugin.xml file. The plugin.xml manifest file can be created with a simple text editor or in Eclipse's Plug-in Development Environment (PDE), which provides a simplified view of the same underlying XML data.

WebSphere Application Server implementations to the Eclipse model

Some minor differences exist in the WebSphere Application Server implementation of this architecture because of platforms, specifically, Eclipse Workbench or Java 2 Platform, Enterprise Edition (Java EE). The highlights of the WebSphere Application Server implementation include:
  • Implementing all of the extension registry-related interfaces from Eclipse 3.6 and later.
  • The identical plugin.xml syntax, however, some attributes are not used, for example, <runtime>.
  • The discovery and addition of plug-ins to the registry, when the containing Java EE module starts, and plug-ins are dismissed and removed from the registry when the containing Java EE module stops.
  • Access to an IExtensionRegistry object is through the Java Naming and Directory Interface (JNDI), instead of by using the Platform.getExtensionRegistry method in the Eclipse Workbench.
  • Filtering capability is available by providing a filter implementation and using a named registry instance that finds and invokes the filter as necessary. See the developer API documentation for the IExtensionRegistryFilter interface for more details.

Available Eclipse 3.6 interfaces

The following Eclipse 3.6 and later interfaces are available on WebSphere Application Server:

  • Extension registry API
  • Extension point API
  • Extension API
  • Configuration element API
  • Registry change listener API
  • Registry change event API
  • Extension delta API
  • Status API
The following interfaces are recognized and processed the same as in Eclipse:
  • Executable extension API
  • Executable extension factory API