Un bundle OSGi est un fichier d'archive Java™ qui contient du code Java, des ressources et un manifeste qui décrit le bundle et ses dépendances. Le bundle est l'unité de déploiement d'une application.
Les bundles d'application peuvent être stockés dans le fichier EBA ou dans un référentiel. Les bundles partagés sont stockés dans un référentiel (sinon, ils ne peuvent pas être partagés).
Les bundles d'application qui ne se trouvent pas directement dans le fichier EBA sont des bundles référencés propres à une instance. Les bundles d'utilisation sont des bundles référencés partagés. Les bundles de gestion des versions sont des bundles de dépendance partagés.
Un fichier JAR de bundle OSGi contient un fichier manifeste JAR. Il contient des métadonnées qui permettent à l'infrastructure OSGi de traiter les aspects modulaires du bundle.
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"
Les métadonnées qui figurent dans ce fichier manifeste incluent les propriétés principales suivantes :L'infrastructure gère le cycle de vie des bundles. Au cours de son installation et de son exécution, un bundle passe par différents états.