Última actualización el
3 may. 2021
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.