Domanda

Come possiamo caricare una libreria di terze parti che non è un bundle OSGi.

Risposta

Un'opzione per caricare una libreria di terze parti che non è un bundle OSGi è quella di creare un bundle di estensioni/frammenti.

Questo può essere fatto dalla riga di comando come segue. Diciamo che abbiamo un 3rdparty.jar che contiene pacchetti sotto com.3rdparty.libs che devono essere esportati.

  • Aggiungi il jar al percorso classe condiviso del server applicativo, per esempio crx-quickstart/server/lib/container sotto CQSE.
  • Crea un file manifesto. Per questo esempio lo chiameremo ext.mf. Il file ha il seguente contenuto:
    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 
    Nota che è richiesta la riga vuota alla fine di un file manifesto jar. Inoltre, tutti i pacchetti da esportare devono essere esplicitamente aggiunti a Export-Package come elenco separato da virgole
  • Crea un file jar con il manifesto di cui sopra utilizzando il seguente comando.
    jar -cfm com.3rdparty.extension-1.0.jar ext.mf 
  • Installa com.3rdparty.extension-1.0.jar usando Felix Console o posizionalo nella cartella di installazione della tua applicazione CQ. Questo dovrebbe aggiungere il pacchetto org.h2 alla lista di esportazione del System Bundle.
  • Fai riferimento alla sezione 3.15, Extension bundle, del Core della piattaforma di servizi OSGi per maggiori informazioni sugli Extension bundle.

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online