OSGi-Verbundbundles

Verbundbundles gruppieren Bundles in Datenverbünden, um konsistentes Verhalten sicherzustellen. Ein Verbundbundle enthält Bundles oder Referenzen zu Bundles außerhalb des Arbeitsbereichs oder der Zielplattform. Ein Verbundbundle stellt konsistentes Verhalten von einer Gruppe gemeinsam genutzter Bundles mit einer bestimmten Version sicher.

Ein Verbundbundlearchiv (CBA, Composite Bundle Archive) gruppiert gemeinsam genutzte Bundles in Datenverbünden. Ein CBA kann OSGi-Bundles oder Referenzbundles enthalten, die im internen Bundle-Repository gehostet werden. Erstellen Sie ein CBA, wenn Sie konsistentes Verhalten über eine Reihe gemeinsam genutzter Bundles hinweg sicherstellen möchten. Sie können das CBA dazu verwenden, die Bundlegruppe mit einer bestimmten Version mit einer Anwendung zu verbinden.

Ein CBA ist eine Archivdatei mit der Dateierweiterung .cba. Es enthält ein Verbundmanifest META-INF/COMPOSITEBUNDLE.MF, das das CBA definiert, und optional einige OSGi-Bundles, mit denen das Repository gefüllt wird. Die in einem CBA enthaltenen oder von einem CBA referenzierten Bundles sind mit den genauen Versionen definiert, im Gegensatz zu einem EBA, in dem Bundles mit Versionsbereichen definiert werden.

Ein Verbundbundle wird im internen Bundle-Repository der Laufzeit installiert. Wenn das CBA bereits OSGi-Bundles enthält, werden diese Bundles im Repository so installiert, als hätten Sie sie einzeln hochgeladen. Das CBA wird dem Bundle-Repository ebenfalls hinzugefügt. Wenn das Verbundbundlearchiv auf OSGi-Bundles verweist, müssen diese Bundles im internen Bundle-Repository vorhanden sein.

Nach der Installation eines CBA im internen Bundle-Repository stehen die Bundles allen Anwendungen zur Verfügung, die die Bundles bei Auflösung der Anwendung verwenden möchten. Wenn ein erforderliches Paket oder ein erforderlicher Service in derselben Version in einem Bundle und einem CBA verfügbar ist, wählt der Bereitstellungsprozess das Paket bzw. den Service aus dem CBA aus.

Ein CBA unterscheidet sich in den folgenden Punkten von einer EBA-Datei:

OSGi-Verbundbundlemanifestdatei

Die Metadaten in dieser Datei umfassen die folgenden Schlüsseleigenschaften:
Manifest-Version
Gibt die Version der Manifestdatei an.
CompositeBundle-ManifestVersion
Gibt die Version des Verbundbundles an.
Bundle-Name
Gibt einen lesbaren Namen für ein Verbundbundle an.
Wenn Sie keinen Wert angeben, wird standardmäßig der symbolische Name des Verbundbundles verwendet.
Bundle-SymbolicName
Eindeutige Identifizierung eines Verbundbundles im Framework. Diese Angabe ersetzt nicht den Header "Bundle-Name", der erforderlich ist.
Bundle-Version
Dieser Header gibt die Version des Verbundbundles an und ermöglicht die gleichzeitige Existenz mehrerer aktiver Versionen eines Verbundbundles in derselben Frameworkinstanz.
CompositeBundle-Content
Eine Liste mit Bundles und Bundlefragmenten im Verbundbundle. Alle Bundles und Fragmente müssen für die Implementierung verfügbar und in der Datei mit der Erweiterung .cba enthalten oder im lokalen Bundle-Repository vorhanden sein. Bundles und Fragmente müssen genaue Versionsnummern haben. Wenn Sie dasselbe Verbundbundle mit unterschiedlichen Inhaltsversionen benötigen, müssen Sie unterschiedliche Versionen des Verbundbundles, d. h. eine Version für jede Verwendung, erstellen.
Das Format ist eine durch Kommas getrennte Liste mit Moduldeklarationen, wobei jede Moduldeklaration das folgende Format verwendet:
<module identifier>;<directives>;<attributes>
Der Header "CompositeBundle-Content" hat das folgende Attribut:
version
Die Version des Moduls, die mit der OSGi-Syntax für einen Versionsbereich angegeben wird. Die Version muss als genauer Bereich, zum Beispiel "[1.0.0,1.0.0]", angegeben werden.
Import-Package
Deklariert die externen Abhängigkeiten des Bundles, die vom OSGi-Framework für die Bundleauflösung verwendet werden. Es können bestimmte Versionen oder Versionsbereiche für jedes Paket deklariert werden.
Verwenden Sie diese Eigenschaft, um die Namen der Pakete anzugeben, die von Ihrem Bundle zur Laufzeit importiert werden sollen. Wenn Sie in dieser Eigenschaft nicht das von Ihrem Bundle benötigte Paket angeben, tritt möglicherweise eine Ausnahme vom Typ NoClassDefFound beim Laden des Bundles auf.
Anmerkung: Sie müssen das zu importierende Paket (über den Header "Import-Package") auch in der Eigenschaft "Export-Package" des Bundles, das das Paket enthält, angeben.
Export-Package
Deklariert die Pakete, die außerhalb des Bundles sichtbar sind. Alle hier nicht deklarierten Pakete sind nur innerhalb des Bundles sichtbar.
Verwenden Sie diese Eigenschaft, um die Namen der Pakete anzugeben, die von Ihrem Bundle zur Laufzeit exportiert werden sollen. Wenn Sie in dieser Eigenschaft nicht die von anderen Bundles benötigten Pakete angeben, können die Abhängigkeitsbundles möglicherweise nicht aufgelöst werden.
CompositeBundle-ExportService

Eine Liste mit Serviceschnittstellennamen und optionalen Filtern, die Services identifizieren, die im Verbundbundle enthalten sind und für die Verwendung außerhalb des Verbundbundles exportiert werden können. Die Schnittstellen, die von einem exportierten Service implementiert werden, sind außerhalb des Verbundbundles verwendbar, wenn diese Schnittstellen außerhalb des Verbundbundles sichtbar sind.

Das Format ist eine durch Kommas getrennte Liste mit Services in Form eines Serviceschnittstellennamens, gefolgt von Attributen oder Anweisungen. Der Header "CompositeBundle-ExportService" hat das folgende Attribut:
filter
Ein OSGi-Servicefilter.
CompositeBundle-ImportService

Eine Liste mit Serviceschnittstellennamen und optionalen Filtern, die die Services identifizieren, die der Inhalt des Verbundbundles verwenden möchte und die sich außerhalb des Verbundbundles befinden. Zur Laufzeit muss mindestens ein solcher Service vorhanden sein.

Das Format ist eine durch Kommas getrennte Liste mit Services in Form eines Serviceschnittstellennamens, gefolgt von Attributen oder Anweisungen. Der Header "CompositeBundle-ImportService" hat das folgende Attribut:
filter
Ein OSGi-Servicefilter.
Symbol das den Typ des Artikels anzeigt. Konzeptartikel
Nutzungsbedingungen für Information Center | Feedback

Symbol für Zeitmarke Letzte Aktualisierung: 29.04.2014

Dateiname: ccba.html