Come posso convertire un file jar esistente in un bundle OSGi?
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.
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.Ottieni il barattolo file.
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.