Come convertire un file jar in un bundle OSGi

Ultimo aggiornamento: 2023-02-22

Descrizione

Come posso convertire un file jar esistente in un bundle OSGi?

Risoluzione

Ecco un modo molto semplice di trasformare un file jar esistente in un bundle OSGi, mantenendo il controllo sui pacchetti esportati.

L'esempio crea un bundle OSGi dal junit-4.4.jar allegato.

Nota: Il metodo seguente funziona solo in uno scenario in cui il file jar non ha dipendenze da altri file jar esterni.

  1. Inizia creando un file manifesto del jar:

    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 l’intestazione è impostata per consentire l’incorporazione del jar originale così come è. Assicurati che il suo valore corrisponda al nome del file del jar che stai per incorporare nel bundle.
    • Export-Package è un elenco di pacchetti contenuti nel jar che desideri rendere disponibili ad altri bundle in esecuzione nel contenitore OSGi.
  2. Ottieni il barattolo file.

  3. Crea il file jar del bundle eseguendo il seguente comando:

    jar cvfm junit-4.4-bundle.jar manifest.txt junit-4.4.jar
    

    Dove manifest.txt è il nome del file manifesto creato sopra.

    Eccolo - il file jar risultante è un bundle OSGi che esporta i pacchetti elencati in Export-Package sopra, utilizzando le classi del junit-4.4.jar incorporato.

In questa pagina