Vous pouvez créer une fonction Liberty manuellement et l'installer sous Liberty.
Pourquoi et quand exécuter cette tâche
Une fonction peut se composer d'un bundle OSGi et d'un fichier manifeste de fonction. Cet exemple met une bibliothèque à la disposition des applications pour que les packages externes soient visibles dans le chemin d'accès aux classes des applications par défaut. En copiant le manifeste de la fonction dans le répertoire ${wlp.user.dir}/extension/lib/features
et le bundle OSGi dans le répertoire ${wlp.user.dir}/extension/lib, la fonction
peut être installée sous Liberty. Ensuite,
vous pouvez utiliser la fonction dans votre fichier server.xml.
Pour des détails sur le format du fichier manifeste de fonction, voir Fichiers manifeste de fonction Liberty.
Cet exemple décrit la construction manuelle d'un dispositif Liberty. Vous
pouvez aussi utiliser WebSphere Application Server Developer Tools. Voir Création d'une fonction Liberty à l'aide des outils de développement.
Procédure
Pour créer une fonction Liberty manuellement, procédez comme suit :
- Créez un bundle OSGi qui contient vos classes Java™ ainsi qu'un fichier manifeste de bundle comportant les en-têtes OSGi appropriés, par exemple pour exporter les packages Java à fournir aux applications. Bundle-SymbolicName est le seul en-tête requis ; cette entrée spécifie un identificateur unique pour le bundle, en fonction de la convention de nom de domaine inversé. Il est recommandé de spécifier une version pour le bundle, et dans cet exemple, certains packages Java sont exportés en vue de leur utilisation par les applications :
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>