Wie konvertiere ich eine vorhandene JAR-Datei in ein OSGi-Bundle?
Hier ist eine sehr einfache Möglichkeit, eine vorhandene JAR-Datei in ein OSGi-Bundle umzuwandeln und gleichzeitig die Kontrolle über exportierte Pakete zu behalten.
Das Beispiel erstellt ein OSGi-Bundle aus der angehängten junit-4.4.jar.
Hinweis: Die folgende Methode funktioniert nur in einem Szenario, in dem die JAR-Datei keine Abhängigkeiten von anderen externen JAR-Dateien aufweist.
Erstellen Sie zunächst eine Manifestdatei der JAR-Datei:
Manifest-Version: 1.0
Created-By: myself
Bundle-ManifestVersion: 2
Bundle-Name: JUnit 4.4 bundle
Bundle-Description: Package junit 4.4 in an OSGi bundle
Bundle-Version: 4.4.0
Bundle-ClassPath: .,junit-4.4.jar
Bundle-SymbolicName: org.junit.framework
Export-Package: junit.framework,junit.extensions,org.junit.runner,org.junit,junit.textui
Bundle-ClassPath
-Kopfzeile ist so eingestellt, dass die ursprüngliche JAR-Datei unverändert eingebettet werden kann. Stellen Sie sicher, dass der zugehörige Wert mit dem Dateinamen der JAR-Datei übereinstimmt, die Sie in das Bundle einbetten möchten.Export-Package
ist eine Liste von Paketen, die in der JAR-Datei enthalten sind und die Sie anderen im OSGi-Container ausgeführten Bundles zur Verfügung stellen möchten.Rufen Sie die jar -Datei.
Erstellen Sie die Bundle-JAR-Datei, indem Sie den folgenden Befehl ausführen:
jar cvfm junit-4.4-bundle.jar manifest.txt junit-4.4.jar
Wo manifest.txt
ist der Name der oben erstellten Manifestdatei.
Das war es - die resultierende JAR-Datei ist ein OSGi-Bundle, das die in Export-Package
oben, unter Verwendung der Klassen der eingebetteten junit-4.4.jar.