Última atualização em
06/05/2021
Pergunta
Como carregar uma biblioteca de terceiros que não é um pacote OSGi
.
Resposta
Uma opção para carregar uma biblioteca de terceiros que não seja um pacote OSGi
é criar um pacote de extensão/fragmento.
Isso pode ser feito a partir da linha de comando da seguinte maneira. Digamos que temos um 3rdparty.jar que contém pacotes em com.3rdparty.libs que precisam ser exportados.
- Inclua o jar no caminho de classe compartilhado do seu servidor de aplicativos, por exemplo, crx-quickstart/server/lib/container em CQSE.
- Crie um arquivo de manifesto. Para este exemplo, vamos chamá-lo ext.mf. O arquivo tem o seguinte conteúdo:
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: Bundle exporting com.3rdparty.libs Export-Package: com.3rdparty.libs
Observe que a linha em branco no final de um arquivo de manifesto jar é necessária. Além disso, todos os pacotes a serem exportados devem ser explicitamente adicionados ao Pacote de exportação como uma lista separada por vírgulas
- Crie um arquivo jar com o manifesto acima usando o seguinte comando.
jar -cfm com.3rdparty.extension-1.0.jar ext.mf
- Instale com.3rdparty.extension-1.0.jar usando o Felix Console ou coloque-o na pasta de instalação do seu aplicativo CQ. Isso deve adicionar o pacote org.h2 à lista de exportação do Pacote do Sistema.
- Por favor, consulte a seção 3.15, Pacotes de extensão, da Plataforma de Serviço Principal
OSGi
para obter mais informações sobre Pacotes de extensão.