2017-02-15 3 views
0

Ich habe ein sorgfältig erstelltes Bündel "A", das einige Methoden enthält (als Dienste registriert). Und jetzt möchte ich ein weiteres Bündel "B" erstellen, das Methoden von "A" verwendet. Wie ich es verstehe, sollte ich getServiceReference() aus der Klasse, die diese Methoden in "B" Aktivator enthält. Aber wie bekomme ich Zugang zu diesen Klassen? Soll ich ein Projekt mit "A" als Bibliothek importieren oder eine .jar Datei in das "B" Projekt importieren? Ich lese "OSGI in Aktion", konnte dort aber keine klare Antwort finden. Können Sie einen Artikel beantworten oder beraten, der Ihnen helfen wird, eine Antwort zu finden?
P.S. Ich benutze Inteleji IDEA IDE.Wie macht man ein OSGi-Bündel, das Methoden aus einem anderen Bündel verwendet?

Antwort

0

Das Paket A sollte das Paket, in dem sich die Klasse A befindet, exportieren, indem ein Feld "Export-Paket" zum Manifest hinzugefügt wird.

Das Paket B sollte das Paket, in dem sich die Klasse A befindet, importieren, indem ein Feld "Import-Paket" zum Manifest hinzugefügt wird.

Das Bündel A sollte A als Dienst registrieren.

Das Bündel B sollte den Dienst von A erhalten, und dann Methoden der Klasse A aufrufen können.

Je nachdem, welche Tools Sie für die Kompilierung verwenden (Gradle/Maven, Bund-Tools, ...), können Pakete exportiert und importiert werden.

Je nachdem, welche Tools Sie zur Laufzeit verwenden (Blueprint, iPOJO, ds, ...), können Services für die Registrierung und das Injizieren "automatisiert" werden.

Verwandte Themen