Fichier plugin.xml
Une description de plug-in est disponible dans un fichier manifeste XML appelé plugin.xml et qui fait partie des fichiers de déploiement de plug-in. Le fichier manifeste donne à l'environnement d'exécution de l'application de portail les informations nécessaires afin d'enregistrer et d'activer le plug-in. Il sert essentiellement de contrat entre le composant pouvant recevoir des plug-ins et l'environnement d'exécution de l'application de portail. Bien que le fichier plugin.xml de WebSphere Application Server soit très proche de celui fourni pour le plan de travail Eclipse, il présente des divergences sur certains points.
Emplacement
Lorsqu'il est associé à une application Web ou lorsqu'il est inclus dans le fichier archive d'une application Web, le fichier plugin.xml doit résider dans le répertoire WEB-INF sous le contexte de la hiérarchie de répertoires de cette application. Le fichier plugin.xml doit se trouver dans le répertoire racine lorsqu'il est placé dans un fichier JAR (Java™ Archive) Enterprise JavaBeans ou dans un fichier JAR de bibliothèque partagée. Le service de registre d'extension inclut le fichier plugin.xml lors du chargement et du démarrage des composants impliqués sur le serveur d'applications.
Remarques d'utilisation
- Ce fichier est-il en lecture seule ?
Non
- Ce fichier est-il mis à jour par un composant produit ?
???
- Auquel cas, qu'est-ce qui déclenche sa mise à jour ?
Rational Application Developer met à jour le fichier web.xml lors de l'assemblage des composants Web dans un module Web, ou lorsque vous modifiez les propriétés des composants Web ou du module Web.
- Comment et quand le contenu de ce fichier est-il utilisé ?
Les fonctions WebSphere Application Server utilisent les informations contenues dans ce fichier pendant les phases de configuration et de déploiement du développement d'applications Web.
- Les définitions des marques du manifeste utilisent divers jetons et identificateurs de noms. Pour supprimer toute ambiguïté, voici les règles de production qui s'appliquent à ces conventions de dénomination. En général, tous les identificateurs distinguent les majuscules des minuscules.
SimpleToken := sequence of characters from ('a-z','A-Z','0-9') ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken) PlugInId := ComposedToken PlugInPrereq := PlugInId ExtensionId := SimpleToken ExtensionPointId := SimpleToken ExtensionPointReference := ExtensionPointId | (PlugInId '.' ExtensionPointId)
Exemple de fichier
La DTD (définition de type de document) du manifeste des plug-ins est ici présentée dans sa totalité. Le schéma XML n'est pas utilisé pour définir le manifeste car les outils Eclipse actuels pour les plug-ins nécessitent une DTD. La règle de construction DTD XML element* signifie qu'il y a zéro occurrence ou plus de l'élément ; element? signifie qu'il y a zéro ou une occurrence de l'élément ; et element+ signifie qu'il y a une occurrence ou plus de l'élément.
<?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
>
Différences dans WebSphere Application Server
- Elément plugin
- L'élément plugin fourni dans ce manifeste ne contient pas d'attribut classe. L'attribut classe est inutile car le mécanisme de plug-in ne nécessite pas que le développeur du plug-in étende ou utilise des classes spécifiques comme c'est le cas pour le plan de travail Eclipse. En outre, l'élément plugin ne contient pas d'élément runtime car les normes telles que J2EE définissent déjà l'emplacement des bibliothèques d'exécution pour les applications.
- Elément import
- Pour une meilleure gérabilité, l'élément requires ne contient pas d'attribut export afin d'encourager l'autonomie des modules J2EE. En outre, l'attribut match dispose d'une option greaterOrEqual de correspondance des versions (supérieur ou égal).
- Elément extension-point
- Le nom d'attribut de l'élément extension-point est facultatif en raison de son inutilité dans cette implémentation J2EE.
Pour plus de détails sur le manifeste de plug-in, reportez-vous à la documentation Eclipse, sous Guide du développeur des plug-ins de la plateforme>Autres informations de référence>Manifeste de plug-in.
<?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>