Ein OSGi-Bundleprojekt ist eine Java™-Archivdatei, die Java-Code, Ressourcen und ein Manifest enthält, das das Bundle und seine Abhängigkeiten beschreibt. Das Bundle ist die Implementierungseinheit für eine Anwendung.
Anwendungsbundles können in der EBA-Datei oder in einem Repository gespeichert werden. Gemeinsam genutzte Bundles werden in einem Repository gespeichert, da sie ansonsten nicht gemeinsam genutzt werden können.
Nicht direkt in der EBA-Datei enthaltene Anwendungsbundles sind instanzspezifische referenzierte Bundles. Verwendungsbundles sind gemeinsam genutzte referenzierte Bundles. Bereitstellungsbundles sind gemeinsam genutzte Abhängigkeitsbundles.
Eine OSGi-Bundle-JAR-Datei enthält eine JAR-Manifestdatei. Die in dieser Datei enthaltenen Metadaten ermöglichen dem OSGi-Framework die Verarbeitung der modularen Aspekte des Bundles.
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: MyService bundle
Bundle-SymbolicName: com.sample.myservice
Bundle-Version: 1.0.0
Bundle-Activator: com.sample.myservice.Activator
Import-Package: org.apache.commons.logging;version="1.0.4"
Export-EJB: ExampleBean
Export-Package: com.sample.myservice.api;version="1.0.0"
Die Metadaten in dieser Manifestdatei enthalten die folgenden Schlüsseleigenschaften: Das Framework verwaltet den Lebenszyklus von Bundles. Bei der Installation und Ausführung durchläuft ein Bundle verschiedene Stadien.