Sie können ein Liberty-Feature manuell erstellen und es in Liberty installieren.
Informationen zu diesem Vorgang
Ein Feature kann aus einem einzigen OSGi-Bundle und einer Featuremanifestdatei bestehen. In diesem Beispiel
wird eine Bibliothek für Anwendungen verfügbar gemacht, sodass die externen Pakete in dem Klassenpfad der Standardanwendung sichtbar werden. Das Feature wird in Liberty installiert, indem das Featuremanifest in das Verzeichnis ${wlp.user.dir}/extension/lib/features und das OSGi-Bundle in das Verzeichnis ${wlp.user.dir}/extension/lib kopiert werden. Anschließend
können Sie
das Feature in der Datei server.xml verwenden.
Weitere
Informationen zum Format einer Featuremanifestdatei finden Sie unter Manifestdateien für Liberty-Features.
Im
folgenden Beispiel wird beschrieben, wie Sie ein Liberty-Feature manuell erstellen. Alternativ können Sie
WebSphere Application Server-Entwicklertools verwenden. Informationen hierzu finden Sie unter Liberty-Feature mit Entwicklertools erstellen.
Vorgehensweise
Führen Sie die folgenden Schritte aus, um ein Liberty-Feature manuell zu erstellen:
- Erstellen Sie ein OSGi-Bundle mit Ihren Java™-Klassen und ein Bundlemanifest mit den entsprechenden
OSGi-Headern, um beispielsweise die Java-Pakete zu exportieren, die für Anwendungen verfügbar gemacht werden sollen. Der einzige erforderliche Header ist der Header Bundle-SymbolicName.
Dieser Eintrag gibt eine eindeutige ID entsprechend der Domänennamenskonvention für das Bundle an. Es wird
empfohlen eine Bundleversion anzugeben. In dem folgenden Beispiel
werden mehrere Java-Pakete für die Verwendung in anderen Anwendungen exportiert:
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"
- Verwenden Sie den Befehl jar, um die Java-Klassen und die Featuremanifestdatei zu packen.
Beispiel:
jar cfm samplebundle.jar MANIFEST.Mf *.class
- Erstellen Sie eine Featuremanifestdatei mit dem Namen Featurename.mf, in dem
das Feature für die Laufzeitumgebung beschrieben wird.
- Geben Sie die erforderlichen Manifestheader an:
- Subsystem-SymbolicName, um die Identität und die Sichtbarkeit des Features festzulegen
- Subsystem-Content, um die Dateien zu lokalisieren, aus denen sich das Feature zusammensetzt
- IBM-Feature-Version, um die Version des Feature-Supports zu ermitteln, die für die Laufzeitumgebung erforderlich ist.
- Bewährtes Verfahren: Fügen Sie die optionalen Manifestheader hinzu, um die gültige Version der Subsystemspezifikation
(Subsystem-ManifestVersion), die Version Ihres Features
(Subsystem-Version) und einen Kurznamen Ihres Features
(IBM-ShortName) anzugeben.
Wenn Sie diese Werte
angeben, wird Ihnen das bei die zukünftige Entwicklung des Features vereinfachen.
- Listen
Sie im Header IBM-API-Package die Pakete auf, die für das
Standardklassenladeprogramm für Anwendungen verfügbar gemacht werden sollen.
- Optional: Wenn Sie ein eigenes Liberty-Feature erstellen, installieren Sie es in der benutzerspezifischen
Produkterweiterung, damit alle Pakete in Ihrem Feature für alle anderen Features in der benutzerspezifischen Produkterweiterung verfügbar sind. Wenn Sie ein oder mehrere SPI-Pakete für Features
in anderen Produkterweiterungen verfügbar machen möchten, listen Sie
die Pakete im Header IBM-SPI-Package auf.
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
- Kopieren Sie das Bundle in das Verzeichnis ${wlp.user.dir}/extension/lib.
- Kopieren Sie das Featuremanifest in das Verzeichnis ${wlp.user.dir}/extension/lib/features.
- Wenn Sie Header vom Typ Subsystem-Name und Subsystem-Description in der Featuremanifestdatei definiert
und die Werte lokalisiert haben, kopieren Sie die Lokalisierungsdateien, die im Header Subsytem-Localization angegeben sind,
in das Verzeichnis ${wlp.user.dir}/extension/lib/features/l10n.
Ergebnisse
Wenn Ihre Feature in
Liberty installiert ist, können Sie den Featurenamen zur Liste der konfigurierten Features in der Datei
server.xml hinzufügen. Beispiel:
<featureManager>
<feature>usr:sample-1.0</feature>
</featureManager>