/ / Programmatisches Bereitstellen von Bundle in OSGI Runtime - Java, Eclipse, OSGI, Eclipse-RCP, Tagundnachtgleiche

Programmatisches Bereitstellen von Paketen in OSGI Runtime - Java, Eclipse, OSGI, Eclipse-RCP, Tagundnachtgleiche

Ich habe ein System-Setup, wo ich Eclipse laufen lasseEquinox in einer serverseitigen Anwendung und in meiner Eclipse RCP-Anwendung. Mein Ziel ist es, ein Plugin in den Arbeitsbereich zu integrieren und es in die serverseitige App zu implementieren. Ich bin mir nicht sicher, wie ich das anstellen soll.

Ich weiß, dass OSGI Runtime-Bundle-Installationen unterstützt, aber müsste ich zuerst mein Workspace-Projekt in ein Jar kompilieren? Gibt es eine API, die ich in Eclipse Runtime verwenden kann? ..installBundle(String pathToJar or pathToProject)?

Antworten:

0 für die Antwort № 1

Dies ist ein Beispiel, das ich am Eclipse-Tagundnachtgleiche getestet habe. Ob "Plugins" ist der Name des Ordners, der alle Ihre osgi-Bundles enthält. Eine Methode, um ein Bundle von dort zu installieren und zu starten, ist:

void installAndStartBundle(String bundlName) throws BundleException{
BundleContext bundlecontext = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
Bundle b = bundlecontext.installBundle("file:plugins" + File.separator + bundleName);
b.start();
}

woher BündelName ist der Name mit der Erweiterung jar des deploybaren Pakets.

Dies entspricht den Anweisungen der osgi-Konsole

install file:plugins/<bundle name>.jar
start <bundle id>

In der Regel möchten Sie vielleicht in Betracht ziehen Apache Felix Datei installieren als eine robustere Option.