Das Implementierungsmanifest META-INF/DEPLOYMENT.MF gibt alle Bundles an, die zur Anwendung gehören, einschließlich der Bundles, die laut Abhängigkeitsanalyse erforderlich sind. Im Implementierungsmanifest ist auch angegeben, welche Versionen der einzelnen Bundles in der Anwendung verwendet werden. Dieses Manifest wird beim Installieren einer EBA-Ressource automatisch erstellt. Es stellt sicher, dass bei jedem Starten eines Anwendungsservers dieselben Bundles für die Anwendung verwendet werden.
Nach dem Installieren einer Anwendung kann die Version eines Bundles durch Konfigurieren der EBA-Ressource aktualisiert werden.
Der folgende Beispielcode zeigt den Inhalt einer Implementierungsmanifestdatei:
Manifest-Version: 1.0
Deployed-Content: bundle1;deployed-version=1.0.0.qualifier
Application-SymbolicName: bundle.app
Application-Version: 1.0.0.qualifier
Import-Package: javax.servlet.jsp;version="2.0.0",javax.persistence;ve
rsion="0.0.0",javax.servlet.http;version="2.5.0",javax.servlet;versio
n="2.5.0",javax.servlet.jsp.el;version="2.0.0",javax.servlet.jsp.tage
xt;version="2.0.0",javax.el;version="2.0.0"
Ein Implementierungsmanifest enthält die folgenden Header:
- Manifest-Version
- Eine Versionsnummer für das Manifestformat.
- Application-SymbolicName
- Der eindeutige symbolische Name der Anwendung mit einer Java™-ähnlichen Paketnotation. Dieser symbolische Name entspricht dem Wert zu "Application-SymbolicName" im Anwendungsmanifest.
- Application-Version
- Die Version der Anwendung, die OSGi-Syntax für eine Bundleversion verwendet. Diese Version entspricht dem Wert zu "Application-Version" im Anwendungsmanifest.
- Deployed-Content
Eine durch Kommas getrennte Liste mit den symbolischen Namen der Bundles und den genauen zu verwendenden Versionen.
Die Liste enthält alle im Header "Application-Content" des Anwendungsmanifests aufgeführten Bundles sowie alle Bundles, die aufgrund der Abhängigkeitsanalyse importiert werden. Für Nicht-OSGi-Modultypen wird der symbolische Name des konvertierten Bundles angegeben.
Der Header "Deployed-Content" hat die folgende Anweisung:
- deployed-version
- Die genaue Version des Bundles, die mit der OSGi-Syntax für eine Version angegeben wird.
- Deployed-Use-Bundle
- Eine Liste mit Bundles oder Verbundbundles, die die Paketabhängigkeiten der Bundles in der
Deployed-Content-Liste erfüllen. Jedes Element in der Liste "Deployed-Use-Content" muss mindestens ein Paket für mindestens ein Bundle aus der Liste "Deployed-Content" bereitstellen. Die Liste "Deployed-Use-Bundle" ist eine exakte Teilmenge der Liste "Use-Bundle". Diese Bundles werden zur Laufzeit in den gemeinsam genutzten Speicherbereich für Bundles geladen. Ein Administrator kann Bundles, die der Deployed-Use-Bundle-Liste über die
Use-Bundle-Liste zugeordnet sind, nach der Implementierung der Anwendung aktualisieren.
- Provision-Bundle
- Eine Liste mit zusätzlichen Bundles und
Verbundbundles, die nach der Auflösung der OSGi-Anwendung erforderlich sind.
Jedes Bundle oder Verbundbundle wird zur Laufzeit in den gemeinsam genutzten Speicherbereich für Bundles geladen, auch wenn sie möglicherweise nicht erforderlich sind. Ein Administrator kann Bundles in der Provision-Bundle-Liste nach der Implementierung der Anwendung nicht mehr aktualisieren.
- Import-Package
- Eine Liste mit Paketen, die die Bundles in der Deployed-Content-Liste aus den Bundles und Verbundbundles in der Deployed-Use-Bundle-Liste und in der Provision-Bundle-Liste konsumieren. Der Paketimport für die genutzten Pakete aus der Liste "Deployed-Use-Bundle" enthält die Attribute ;bundle-symbolic-name und ;bundle-version.