WAS v8.5 > Reference > Configuration file descriptions

plugin.xml file

A plug-in is described in an XML manifest file, called plugin.xml, which is part of the plug-in deployment files. The manifest file tells the portal application’s runtime what it needs to know to register and activate the plug-in. The manifest file essentially serves as the contract between the pluggable component and the portal application’s runtime. Although the WebSphere Application Server plugin.xml closely follows the one provided for the Eclipse workbench, it does diverge from the Eclipse workbench in several places as outlined below.


Location

The plugin.xml file must reside in the WEB-INF directory under the context of the hierarchy of directories that exist for a web application or when included in the Web application archive file.. The plugin.xml file must reside in the root directory when theplugin.xml file is placed in an Enterprise JavaBeans JAR file or shared library JAR file. The extension registry service includes the plugin.xml file as the participating components are loaded and started on the application server.


Usage notes


Sample file entry

The entire plug-in manifest DTD is as follows. XML Schema is not used to define the manifest since the current Eclipse tooling for plug-in’s requires a DTD. The XML DTD construction rule element* means zero or more occurrences of the element; element? means zero or one occurrence of the element; and element+ means one or more occurrences of the element.

<?xml encoding="US-ASCII"?>  

<!ELEMENT plugin (requires?, extension-point*, extension*)> 
<!ATTLIST plugin 
  name CDATA #IMPLIED
  id CDATA #REQUIRED 
  version CDATA #REQUIRED 
  provider-name CDATA #IMPLIED
> <!ELEMENT requires (import+)> <!ELEMENT import EMPTY> <!ATTLIST import
  plugin CDATA #REQUIRED
  version CDATA #IMPLIED
  match (exact | compatible | greaterOrEqual) #IMPLIED
> <!ELEMENT extension-point EMPTY>  
<!ATTLIST extension-point 
  name CDATA #IMPLIED
  id CDATA #REQUIRED    
  schema CDATA #IMPLIED 
> <!ELEMENT extension ANY> <!ATTLIST extension 
  point CDATA #REQUIRED 
  id CDATA #IMPLIED
  name CDATA #IMPLIED
>


WAS differences

The plugin.xml file closely follows the plugin.xml file provided for the Eclipse workbench. However it diverges within the following elements.

The plugin element

The plugin element provided in this manifest does not contain class attributes. The class attribute is unnecessary since the plug-in mechanism does not require the plug-in developer to extend or use any specific classes as is required by the Eclipse workbench. Also, the plugin element does not contain a runtime element since standards such as J2EE that already define the location of runtime libraries for the applications.

The import element

The requires element does not contain export attribute since J2EE modules are encouraged to be self-contained to improve manageability. In addition to eliminating the export attribute, the match attribute has an option for a greater than or equal to match for versions (greaterOrEqual).

The extension-point element

The extension-point element has the name attribute as optional since it has no real use in this J2EE implementation.

we can find details regarding the plug-in manifest in the Eclipse documentation, under Platform Plug-In Developer Guide>Other reference information>Plug-in manifest.

The following is an example of how adding a link to an existing page can be accomplished by an extension point. The plug-in manifest of this plug-in declares an extension point (linkExtensionPoint) and an extension to this extension point (linkExtension). The plug-in declaring the extension point does not need to be the plug-in that implements the extension point. Another plug-in can also define an extension to the link extension point in its plug-in manifest by including the contents of the <extension> and </extension> tags in its manifest.

<?xml version="1.0"?> <!--the plugin id is derived from the vendor domain name --> 
<plugin
   id=”com.ibm.ws.console.core” 
   version=”1.0.0” 
   provider-name=”IBM WebSphere”> 
  <!--declaration of prerequisite plugins-->  <requires>     <import plugin=”com.ibm.data” version=”2.0.1” match=”compatible”/>     <import plugin=”com.ibm.resources” version=”3.0” match=”exact”/>  </requires> 
 <!--declaration of link extension point --> 
 <extension-point 
    id=”linkExtensionPoint” 
    schema=”/schemas/linkSchema.xsd”/> 

 <!--declaration of an extension to the link extension point -->  <extension 
    point=”com.ibm.ws.console.core.linkExtensionPoint” 
    id=”linkExtension”> 
   <link               
     label=”Example.displayName” 
     actionView=”com.ibm.ws.console.servermanagement.forwardCmd.do?
        forwardName=example.config.view&
        lastPage=ApplicationServer.config.view”>    </link>  </extension> </plugin>


Related concepts:

Application extension registry filtering


Related


View deployment descriptors
View web services deployment descriptors in the dmgr console


Reference:

Web applications: Resources for learning


Related information:

Notes on the Eclipse Plug-in Architecture
Use the help system


+

Search Tips   |   Advanced Search