You can create a Liberty feature
manually and install it to Liberty.
Pourquoi et quand exécuter cette tâche
A feature can consist of a single OSGi bundle and a feature manifest file. This example makes a
library available to applications so that the external packages are visible on the default
application class path. By copying the feature manifest into the
${wlp.user.dir}/extension/lib/features directory, and the OSGi bundle into the
${wlp.user.dir}/extension/lib directory, the feature can be installed to Liberty. Then you can use the feature in your
server.xml file.
For
details about the format of a feature manifest file, see Fichiers manifeste de fonction Liberty.
This example describes how to construct a Liberty feature manually. Alternatively, you can use the WebSphere Application Server Developer Tools. See Création d'une fonction Liberty à l'aide des outils de développement.
Procédure
To create a Liberty feature
manually, complete the following steps:
- Create an OSGi bundle containing your Java™ classes, and a bundle manifest file with
appropriate OSGi headers, for example to export the Java packages that you want to expose to applications. Bundle-SymbolicName is
the only required header; this entry specifies a unique identifier
for a bundle, based on the reverse domain name convention. It is
good practice to specify a version for the bundle, and in this example
some Java packages are exported
for application use:
Bundle-SymbolicName: com.usr.samplebundle
Bundle-Version: 1.0.1
Export-Package: com.usr.samplebundle.pkg1; version="1.0.0",
com.usr.samplebundle.pkg2; version="1.0.1"
- Utilisez la commande jar pour conditionner les classes Java et le fichier manifeste de fonction. Exemple :
jar cfm samplebundle.jar MANIFEST.Mf *.class
- Créez un fichier manifeste de fonction appelé
nom-fonction.mf, qui décrit
la fonction dans l'environnement d'exécution.
- Fournissez les en-têtes de manifeste requis :
- Subsystem-SymbolicName pour spécifier l'identité
et la visibilité de la fonction ;
- Subsystem-Content pour localiser les fichiers
composant la fonction ;
- IBM-Feature-Version pour identifier la version de la prise en charge de fonction requise par l'environnement d'exécution.
- Pratique recommandée : ajoutez les en-têtes de manifeste
facultatifs pour indiquer la version applicable de la spécification
de sous-système (Subsystem-ManifestVersion), la
version de votre fonction (Subsystem-Version), et
un nom abrégé de votre fonction (IBM-ShortName).
La spécification de ces valeurs permettra de faire évoluer votre
fonction.
- Dans l'en-tête IBM-API-Package, répertoriez les packages devant être fournis dans le chargeur de classe par défaut pour les applications.
- Facultatif : Lorsque vous créez votre fonction Liberty, vous l'installez
dans l'extension de produit utilisateur, et les packages de votre
fonction sont accessibles depuis les autres fonctions
installées
dans l'extension de produit utilisateur. Pour mettre un ou plusieurs packages de SPI à la disposition de fonctions dans d'autres extensions de produit, répertoriez les packages dans l'en-tête IBM-SPI-Package.
Subsystem-ManifestVersion: 1.0
Subsystem-SymbolicName: com.example.myfeature.sample-1.0; visibility:=public
Subsystem-Version: 1.0.0.qualifier
Subsystem-Type: osgi.subsystem.feature
Subsystem-Content: samplebundle; version="[1,1.0.100)"
IBM-Feature-Version: 2
IBM-API-Package: com.usr.samplebundle.pkg1; type="api",
com.usr.samplebundle.pkg2; type="api"
IBM-SPI-Package: com.sample.myservice.spi;
IBM-ShortName: sample-1.0
- Copiez le bundle dans le répertoire ${wlp.user.dir}/extension/lib.
- Copiez le manifeste de fonction dans le répertoire ${wlp.user.dir}/extension/lib/features.
- Si vous avez défini les en-têtes Subsystem-Name et Subsystem-Description dans le fichier manifeste de fonction et avez localisé les valeurs, copiez les fichiers de localisation spécifiés dans l'en-tête Subsytem-Localization dans le répertoire ${wlp.user.dir}/extension/lib/features/l10n.
Résultats
Une fois votre fonction installée sous
Liberty, vous pouvez ajouter le nom de la fonction à la liste des fonctions
configurées dans votre fichier
server.xml. Exemple :
<featureManager>
<feature>usr:sample-1.0</feature>
</featureManager>