Erstellen eines Erweiterungs-Bundles für eine Drittanbieter-Bibliothek

Frage

Wie können wir eine Drittanbieter-Bibliothek laden, welche kein OSGi-Bundle ist?

Antwort

Eine Option zum Laden einer Drittanbieter-Bibliothek, welche kein OSGi-Bundle ist, besteht darin, ein Erweiterungs-/Fragment-Bundle zu erstellen.

Dies kann wie folgt über die Befehlszeile erfolgen. Angenommen wir haben eine 3rdparty.jar, welche Pakete unter com.3rdparty.libs enthält, die exportiert werden müssen.

  • Fügen Sie die jar-Datei zum geteilten Klassenpfad Ihres Anwendungsservers hinzu, wie beispielsweise crx-quickstart/server/lib/container unter CQSE.
  • Erstellen Sie eine Manifestdatei. Für dieses Beispiel nennen wir es ext.mf. Die Datei hat die folgenden Inhalte:
    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 
    Beachten Sie, dass eine leere Zeile am Ende einer JAR-Manifestdatei erforderlich ist. Außerdem müssen alle Pakete die Sie exportieren wollen, explizit zu dem Export-Package als kommagetrennte Liste hinzugefügt werden.
  • Erstellen Sie eine JAR-Datei mit obigem Manifest unter Verwendung des folgenden Befehls.
    jar -cfm com.3rdparty.extension-1.0.jar ext.mf 
  • Installieren Sie com.3rdparty.extension-1.0.jar mit der Felix-Konsole oder legen Sie es im Installationsordner Ihrer CQ-Anwendung ab. Dies sollte das org.h2 package zur Exportliste des System-Bundles hinzufügen.
  • Weitere Informationen zu Extension-Bundles finden Sie in Abschnitt 3.15, Extension Bundles, der OSGi-Kerndienstplattform.

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online