OSGi: Welche Version meines Bundles wird verwendet?

Cziensy

Grünschnabel
Hallo zusammen,

nehmen wir an ich habe zwei Bundles, A und B. Bundle A importiert Bundle B. Zur Laufzeit installiere ich eine neue Version von Bundle B.

Nun die vielleicht banale Frage: Wie bekomme ich heraus welche Version des Bundles B von Bundle A benutzt wird? Über die OSGi Konsole kann ich das relativ einfach machen. Wie mache ich das im Code? Muss ich über den BundleContext gehen?

Danke schonmal für eure Antworten,
Grüße Cziensy
 
Noch eine Zusatzbemerkung zum Hintergrund der Frage:
Ich lasse mir über das FrameworkWiring die abhängigen Bundles zurückgeben. Beim oben genannten Beispiel bekomme ich wenn ich nach den abhängigen Bundles von Bundle A frage Bundle B zurück. Soweit so gut.
Was ich nicht verstehe, nachdem ich eine weitere Version von Bundle B installiert habe werden beide Versionen als abhängig zurückgegeben. Wie kann das sein? Ich kann doch jeweils immer nur eine Version binden?

Code:
final FrameworkWiring fw = systemBundle.adapt(FrameworkWiring.class);
bundleCollection = fw.getDependencyClosure(bundleA);
 
Hier die Antwort:
Der Fehler war, dass die Version im Manifest nur als Bundle-Version geführt war, nicht aber im Exported-Package aufgeführt wurde. Somit funktioniert das Auflösen durch das FrameworkWiring offensichtlich nicht.
 
Zurück