Konvertieren einer JAR-Datei in ein OSGi-Bundle

Beschreibung

Wie konvertiere ich eine vorhandene JAR-Datei in ein OSGi-Bundle?

Auflösung

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.

  1. 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.
  2. Rufen Sie die jar -Datei.

  3. 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.

Auf dieser Seite