Pregunta

¿Se puede cargar una biblioteca de terceros que no sea un paquete OSGi?

Respuesta

Una opción para cargar una biblioteca de terceros que no sea un paquete OSGi es crear un paquete de extensión/fragmentos.

Esto se puede hacer desde la línea de comandos de la siguiente manera. Digamos que tenemos un archivo 3rdparty.jar que contiene paquetes bajo com.3rdparty.libs que necesitan ser exportados.

  • Añada el archivo jar a la ruta de clase compartida de su servidor de aplicaciones, por ejemplo crx-quickstart/server/lib/container en CQSE.
  • Crear un archivo de manifiesto. Para este ejemplo lo llamaremos ext.mf. El archivo tiene el siguiente contenido:
    Bundle-ManifestVersion: 2 Bundle-SymbolicName: com.3rdparty.extension Bundle-Version: 1.0 Fragment-Host: system.bundle; extension:=framework Bundle-Name: H2 JDBC Driver Extension Bundle-Description: Paquete de exportación de paquetes com.3rdparty.libs Paquete de exportación: com.3rdparty.libs 
    Tenga en cuenta que se requiere la línea en blanco al final de un archivo de manifiesto de tarro. Además, todos los paquetes que necesite exportar deben añadirse explícitamente a Export-Package como una lista separada por comas
  • Cree un archivo jar con el manifiesto anterior utilizando el siguiente comando.
    jar -cfm com.3rdparty.extension-1.0.jar ext.mf 
  • Instale com.3rdparty.extension-1.0.jar usando Felix Console o colóquelo en la carpeta de instalación de su aplicación CQ. Esto debería añadir el paquete org.h2 a la lista de exportación del paquete de sistemas.
  • Consulte la sección 3.15, Paquetes de extensión, del núcleo de la plataforma de servicios OSGi para obtener más información sobre los paquetes de extensión.

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea