Verbundbundles
Ein Verbundbundle gruppiert gemeinsam genutzte Bundles in einem Datenverbund. Es stellt einer OSGi-Anwendung ein oder mehrere Pakete mit bestimmten Versionen bereit. Sie können eine implementierte Anwendung außerdem erweitern, indem Sie der Kompositionseinheit für die Anwendung ein oder mehrere Verbundbundles hinzufügen.
Ein Verbundbundle ist als CBA-Datei (Composite Bundle Archive) gepackt. Diese Datei ist ein komprimiertes Archiv mit der Dateierweiterung .cba. Wenn das Verbundbundle Teil einer OSGi-Unternehmensanwendung ist, kann die CBA-Datei in der EBA-Datei (Enterprise Bundle Archive, Unternehmensbundlearchiv) für die Anwendung enthalten sein oder durch Referenz aus dem internen Bundle-Repository oder aus einem externen Repository, das Verbundbundles verarbeiten kann, angezogen werden. Ein Verbundbundle kann in seiner CBA-Datei Bundles enthalten. Es kann auch Bundles nach Referenz einschließen, die zusammen mit der CBA-Datei in derselben EBA-Datei gehostet werden, oder Bundles, die in demselben Bundle-Repository installiert sind.
- Die Bundles, die in einem Verbundbundle enthalten sind oder referenziert werden, sind mit genauen Versionen definiert. Die Bundles in einer OSGi-Unternehmensanwendung können mit Versionsbereichen definiert werden.
- Ein Verbundbundle enthält ein Verbundbundlemanifest, das eine Modularitätserklärung ist, die zusichert, dass Bundles implementiert werden können, und nicht, dass sie aufgelöst werden. Eine OSGi-Anwendung hat ein Anwendungsmanifest, das eine Bereitstellungserklärung ist.
- Ein Verbundbundle kann Pakete importieren und exportieren. Dies gilt nicht für eine OSGi-Unternehmensanwendung.
- Eine OSGi-Unternehmensanwendung muss ihren Inhalt nicht vollständig definieren. Wenn eine Anwendung implementiert wird, werden Abhängigkeiten analysiert und zusätzliche Bundles bereitgestellt.
Wenn Sie über eine Gruppe gemeinsam genutzter Bundles ein konsistentes Verhalten sicherstellen möchten, verwenden Sie ein Verbundbundle, um diese Gruppe von Bundles für die Anwendung bereitzustellen. Wenn ein erforderliches Paket oder ein erforderlicher Service in derselben Version in einem Bundle und einem Verbundbundle verfügbar ist, wählt der Bereitstellungsprozess das Paket bzw. den Service aus dem Verbundbundle aus.
Wenn Sie eine implementierte Geschäftsanwendung erweitern möchten, die eine OSGi-Anwendung enthält, und Sie die Anwendung nicht stoppen bzw. das zugrunde liegende EBA-Asset nicht ändern möchten, fügen Sie der Kompositionseinheit Verbundbundles hinzu.
Nachdem Sie die EBA-Datei (Enterprise Bundle Archive, Unternehmensbundlearchiv) für Ihre OSGi-Anwendung als Asset importiert haben, können Sie Versionen vorhandener Bundles aktualisieren, aber Sie können dem Asset keine zusätzlichen Bundles hinzufügen. Wenn Sie einer Kompositionseinheit ein oder mehrere Verbundbundles hinzufügen, können Sie eine Geschäftsanwendung erweitern, ohne dass eine Neuentwicklung und erneute Implementierung der zugrunde liegenden OSGi-Anwendung erforderlich ist. Wenn Sie die Änderungen an der Kompositionseinheit speichern, wird die zugehörige Anwendung mit der neuen Konfiguration aktualisiert. Wenn die Geschäftsanwendung ausgeführt wird, werden die Bundle- und Konfigurationsaktualisierungen sofort angewendet.
- Wenn Sie in der Version 7 des Feature Packs für OSGi-Anwendungen und Java™ Persistence API 2.0 von WebSphere® Application Server ein zusammengesetztes Bundle zum internen Bundle-Repository hinzufügen und dieses zusammengesetzte Bundle direkt Bundles enthält (in komprimierten Dateien im Stammverzeichnis der Archivdatei des zusammengesetzten Bundles), werden diese Bundles sowohl als Teil des zusammengesetzten Bundles als auch als einzeln verfügbare Bundles zum internen Bundle-Repository hinzugefügt. Wenn Sie das Verbundbundle zu einem späteren Zeitpunkt aus dem Repository entfernen, werden die einzeln verfügbaren Kopien der Bundles nicht gelöscht. Möglicherweise haben Sie diesen Mechanismus als komfortable Methode für den Upload von Bundlesätzen in das Repository verwendet.
- Wenn Sie in der aktuellen Version dem Repository ein Verbundbundle, das Bundles enthält, hinzufügen, werden diese Bundles nicht zusätzlich als einzelne Bundles hinzugefügt. Wenn Sie dem internen Bundle-Repository Bundlesätze hinzufügen möchten, packen Sie jeden Satz als komprimierte Archivdatei mit der Dateierweiterung .zip, und fügen Sie die Archivdatei anschließend dem Repository hinzu. Das System hebt die Komprimierung der Datei auf, und alle Bundles im Stammverzeichnis der Datei werden dem Repository einzeln hinzugefügt.