Die in der Anwendungsmanifestdatei enthaltenen Metadaten ermöglichen dem OSGi-Framework die Verarbeitung der modularen Aspekte der Bundles.
Manifest-Version: 1.0
Application-Name: OSGi Blog Application
Application-SymbolicName: com.ibm.ws.eba.example.blog.app
Application-Version: 1.0.0
Application-Content: com.ibm.ws.eba.example.blog.api;version=1.0.0,
com.ibm.ws.eba.example.blog.persistence;version=1.0.0,
com.ibm.ws.eba.example.blog.web;version=1.0.0,
com.ibm.ws.eba.example.blog;version=1.0.0,
com.ibm.json.java;version="1.0.0"
Application-ManifestVersion: 1.0
Application-ImportService: com.ibm.ws.eba.counter.Greet
Application-ExportService: com.ibm.ws.eba.example.blog.api.BloggingService
Der eindeutige symbolische Name der OSGi-Anwendung mit einer Java™-ähnlichen Paketnotation.
Die Version der Anwendung, die OSGi-Syntax für eine Bundleversion verwendet.
Der Name der Anwendung..
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 jeden Service deklariert werden.
Eine Reihe von Filtern für externe Services, die von der Anwendung konsumiert werden. Das Anwendungsmanifest muss die für die Services erforderlichen Klassen enthalten. Ohne Angabe dieses Headers wird kein erforderlicher Service importiert.
<service identifier>;<directives>;<attributes>
Beispiel: test.it;filter="some_filter"
Der Header "Application-ImportService" hat das folgende Attribut: Deklariert die Services, die außerhalb des Bundles sichtbar sind. Alle hier nicht deklarierten Services sind nur innerhalb des Bundles sichtbar.
Eine Reihe von Filtern für externe Services, die von der Anwendung produziert werden. Ohne Angabe dieses Headers wird kein erforderlicher Service exportiert.
<service identifier>;<directives>;<attributes>
Beispiel: test.it;filter="some_filter"
Der Header "Application-ExportService" hat das folgende Attribut: Ein gemeinsam genutztes Bundle, das mindestens ein Paket für ein Anwendungsbundle bereitstellt.
Eine Liste mit Bundles oder Verbundbundles, die verwendet werden, um die Paketabhängigkeiten der Bundles in der Application-Content-Liste zu erfüllen. Jedes Bundle oder Verbundbundle in der Use-Bundle-Liste muss mindestens ein Paket für mindestens ein Bundle in der Application-Content-Liste bereitstellen. Diese Bundles werden zur Laufzeit im gemeinsam genutzten Speicherbereich für Bundles bereitgestellt.
In vielen Fällen ist kein Header "Use-Bundle" erforderlich, aber in manchen Situationen kann er hilfreich sein. Mit diesem Header können Sie den Geltungsbereich für die gemeinsame Nutzung beschränken. Beispielsweise können Sie sicherstellen, dass eine Anwendung nur das Bundle für Paketimporte verwendet, mit dem sie getestet wurde. Alternativ können Sie sicherstellen, dass zwei Anwendungen dasselbe Bundle für Paketimporte verwenden. Durch die Festlegung der Einschränkung auf Anwendungsebene bleibt das Bundle flexibel.
Liste der dynamischen Webprojekte ohne OSGi, die in die Anwendung enthalten sind.
Dieser Header ist nicht Teil des OSGi-Standards.
<module identifier>;<directives>;<attributes>
In der Regel ist die Modul-ID der symbolische Name eines Bundles. Zum Referenzieren einer Ressource, die kein Bundle ist, wird die Modul-ID als relativer Pfad zum OSGi-Anwendungsstammverzeichnis angegeben.
Der Header "Application-Content" definiert die wichtigen Anwendungen, aus denen sich die Geschäftsservices zusammensetzen, aber keine vollständige Liste mit den Bundles in der Anwendung. Wenn ein im Inhalt aufgelistetes Bundle ein Paket verwendet, das nicht in der Anwendung enthalten ist, wird eine Abhängigkeitsanalyse durchgeführt und alle fehlenden Bundles werden einbezogen. Diese Bundles können keine externen Services für die Anwendung bereitstellen und es kann keine Sicherheit auf diese Bundles angewendet werden. Mithilfe dieses Verfahrens eingeschlossene Bundles werden gemeinsam genutzt.