Packages facultatifs installés
Les packages facultatifs installés permettent aux applications d'utiliser les classes des fichiers .jar (Java™ archive) sans devoir les inclure explicitement dans un chemin d'accès aux classes. Un package facultatif installé est un fichier .jar dont le fichier manifeste contient des balises spécialisées qui permettent au serveur d'applications de l'identifier. Un package facultatif installé déclare un ou plusieurs fichiers .jar de bibliothèque partagée dans le fichier manifeste d'une application. Lorsque l'application est installée sur un serveur ou un cluster, les classes représentées par les bibliothèques partagées sont chargées dans le chargeur de classes de l'application afin d'être accessibles par l'application.
Lorsque vous installez une application Java Platform, Enterprise Edition (Java EE) sur un serveur ou dans un cluster, les informations de dépendance sont spécifiées dans son fichier manifeste. Le produit lit les informations de dépendance de l'application (fichier .ear) pour associer automatiquement l'application au fichier .jar d'un package facultatif installé. Le produit ajoute les fichiers .jar des packages facultatifs associés au chemin d'accès aux classes de l'application. Les classes des packages facultatifs installés sont alors disponibles pour les classes d'application.
Les packages facultatifs installés par le produit sont décrits dans la section 8.2 de la spécification Java 2 Platform, Enterprise Edition (J2EE), Version 1.4 sur le site http://docs.oracle.com/javaee/.
Le produit prend en charge l'utilisation du fichier manifeste (manifest.mf) dans les fichiers .jar de la bibliothèque partagée et dans les fichiers .ear de l'application. Le produit ne prend pas en charge la sémantique des packages facultatifs installés de J2SE (Java 2 Platform Standard Edition) utilisée dans la spécification J2SE (http://docs.oracle.com/javase/1.3/docs), qui sert principalement l'environnement des applets. Le produit ignore les balises spécifiques aux applets dans les fichiers manifeste.
Exemple de fichier manifest.mf
Vous trouverez ci-après un exemple de fichier manifeste pour un fichier app1.ear d'application qui fait référence à un unique fichier util.jar de bibliothèque partagée :
app1.ear :
META-INF/application.xml
ejb1.jar:
META-INF/MANIFEST.MF:
Extension-List: util
util-Extension-Name: com/example/util
util-Specification-Version: 1.4
META-INF/ejb-jar.xml
util.jar:
META-INF/MANIFEST.MF:
Extension-Name: com/example/util
Specification-Title: example.com's util package
Specification-Version: 1.4
Specification-Vendor: example.com
Implementation-Version: build96
La syntaxe d'une entrée de manifeste varie suivant que l'entrée s'applique à un membre avec un rôle de définition (bibliothèque partagée) ou à un membre avec un rôle de référencement (application Java EE ou module d'une application Java EE).
Balisage des entrées de manifeste
Les entrées du manifeste utilise les principales balises suivantes :
- Extension-List
- Balise requise avec une syntaxe variable. Dans le contexte du rôle de référencement (manifeste de l'application), il s'agit d'une liste, dont les éléments sont délimités par des espaces, qui identifie et crée des balises Extension-Name et Extension-Specification uniques pour chacun de ses éléments. Dans le contexte du rôle de définition (bibliothèque partagée), cette balise n'est pas valide.
- Extension-Name
- Balise requise fournissant un nom et associant les membres définisseur et référenceur. La syntaxe de l'élément dans le rôle de référencement permet d'ajouter comme préfixe à l'élément la chaîne <ListElement>. A chaque élément de la balise Extension-List, correspond une balise <ListElement>-Extension-Name. La valeur littérale de la chaîne de définition de cette balise (com/example/util1 dans l'exemple précédent) permet de rechercher (lors d'un test d'égalité) les balises correspondantes entre les rôles de définition et de référencement.
- Specification-Version
- Balise requise identifiant la version de la spécification et associant les membres définisseur et référenceur.
- Implementation-Version
- Balise facultative identifiant la version de l'implémentation et associant les membres définisseur et référenceur.
Des informations supplémentaires sur ces balises sont disponibles dans la spécification de fichier .jar sur le site http://docs.oracle.com/javase/1.4.2/docs/guide/jar/jar.html.