¿Cómo convierto un archivo jar existente en un paquete OSGi?
Aquí hay una forma muy sencilla de convertir un archivo jar existente en un paquete OSGi, manteniendo al mismo tiempo el control sobre los paquetes exportados.
El ejemplo crea un paquete OSGi desde el junit-4.4.jar adjunto.
Nota: El método siguiente solo funciona en un escenario en el que el archivo jar no tiene dependencias con otros archivos jar externos.
Comience creando un archivo de manifiesto 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
el encabezado está configurado para permitir incrustar el jar original tal cual. Asegúrese de que su valor coincide con el nombre de archivo jar que va a incrustar en el paquete.Export-Package
es una lista de paquetes contenidos en el jar que desea poner a disposición de otros paquetes que se ejecutan en el contenedor OSGi.Obtenga la variable jar archivo.
Cree el archivo jar ejecutando el siguiente comando:
jar cvfm junit-4.4-bundle.jar manifest.txt junit-4.4.jar
Donde manifest.txt
es el nombre del archivo de manifiesto creado anteriormente.
Eso es todo: el archivo jar resultante es un paquete OSGi que exporta los paquetes listados en Export-Package
arriba, usando las clases de la junit-4.4.jar incrustada.