Conversión de un archivo jar en un paquete OSGi

Descripción

¿Cómo convierto un archivo jar existente en un paquete OSGi?

Resolución

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.

  1. 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.
  2. Obtenga la variable jar archivo.

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

En esta página