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-in et l'environnement d'exécution de l'application de portail. Bien que le WebSphere® Application Server plugin.xml suive de près celui fourni pour le plan de travail Eclipse , il diverge du plan de travail Eclipse à plusieurs endroits.

Emplacement

:NONE.plugin.xmlLe fichier doit résider dans le répertoire WEB-INF dans le contexte de la hiérarchie des répertoires existant pour une application Web ou lorsqu'il est inclus dans le fichier archive de l'application Web. :NONE.plugin.xmlLe fichier doit résider dans le répertoire racine lorsque leplugin.xmlest placé dans un fichier d'archive JavaBeans Java™ (JAR) d'entreprise ou dans un fichier JAR de bibliothèque partagée. Le service de registre d'extension inclut leplugin.xmlau fur et à mesure que les composants participants sont chargés et démarrés sur le serveur d'applications.

Remarques relatives à l'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 à jourweb.xmllorsque vous assemblez 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 de WebSphere Application Server utilisent les informations de ce fichier lors des phases de configuration et de déploiement du développement de l'application 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-in 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-in 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

:NONE.plugin.xmlsuit de près le fichierplugin.xmlfourni pour le plan de travail Eclipse . Il en diffère cependant sur les points suivants :
:NONE.pluginélément
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.
:NONE.importélément
Pour une meilleure gérabilité, l'élément requis 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).
:NONE.extension-pointélément
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-in de la plateforme>Autres informations de référence>Manifeste de plug-in.

L'exemple suivant montre comment il est possible d'ajouter un lien vers une page existante à l'aide d'un point d'extension. Le manifeste de ce plug-in déclare un point d'extension (linkExtensionPoint) et une extension pour ce point d'extension (linkExtension). Le plug-in qui déclare le point d'extension n'est pas nécessairement celui qui implémente ce point d'extension. Un autre plug-in peut également définir une extension pour le point d'extension du lien dans son manifeste de plug-in en y incluant les contenus des balises <extension> et </extension>.
<?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>