Laden des OSGi-Bundles dynamisch aus einem Dateisystem

Ich habe eine modulare Anwendung, die OSGi-Framework verwendet. Hier verwende ich den OSGi-Container org.eclipse.equinox.common_3.4.0. Die Anwendung wird jetzt bereits mit allen installierten und aktiven osgi-Bundles ausgeführt, und ich zeige alle aktiven OSGi-Bundles auf der Benutzeroberfläche an, indem ich basierend auf einer Aktion eine Hash-Map durchlaufe. Jetzt ist die Voraussetzung, dass ich, während die Anwendung bereits ausgeführt wird, ein neues OSGi-Bundle aus einem Dateisystem installieren möchte, indem ich dieses neue Bundle dem OSGi-Container der Anwendung übergebe, damit dieses Bundle gestartet wird.

Wie erreiche ich das? Ich habe versucht, das OSGi-Bundle als JarInputstream zu lesen und den vollständig qualifizierten Klassenpfad des Bundle-Aktivators zu lesen. Ich habe versucht, dies mithilfe von Class.forName ("") zu instanziieren und in die BundleActivator-Schnittstelle zu schreiben. Beim Starten wird jedoch der Bundle-Kontext als Argument zum Starten der Methode verwendet.

Gibt es eine Möglichkeit, das OSGi-Bundle einfach pragmatisch an den Container zu übergeben, damit das Bundle installiert und gestartet wird, und meine Benutzeroberfläche diesen neuen Bundle-Namen automatisch in der Anzeige aufnimmt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage