Von here:
Die BundleContext
Klasse eine getBundles
() Methode hat, die alle installierten Pakete zurückgibt.
Sie erhalten eine Instanz der BundleContext
, wenn Ihr Bundle aktiviert ist BundleActivator.start(BundleContext))
.
Sie können es verwenden, um zum Beispiel einige Bundle version number zu bekommen.
Die Wechselwirkungen zwischen den Bündeln werden durch zwei komplementäre Mechanismen erfolgen: Der Paket-Export/Import und die Registrierung lookup Facility Service.
Die Veröffentlichung und Lookup-Dienstleistungen werden durch die BundleContext
Referenz durchgeführt, die jedes Bündel beim Start empfängt.
Während des Veröffentlichungsprozesses registriert das Werbebündel einen Dienst, indem es eine Java-Schnittstelle veröffentlicht, die es implementiert, und indem es eine Klasse bereitstellt, die diese Schnittstelle implementiert.
Die Suche wird vom Client-Bundle durchgeführt, das den Service von BundleContext
bezieht und als Standard-Java-Objekt verwendet.
Großer Dank VonC installiert zu bekommen, das ist genau das, was ich brauchte. Am Ende nutzte ich die Erweiterung Registry und fand die Plugins, nach denen ich suchte, durch eine Erweiterung, die sie alle gemeinsam hatten, aber diese Antwort ist die kanonische. Diskutieren Sie über Dienste, denn auf diese Weise entdecken die Bundles ihre Anwesenheit und ermöglichen so die Entdeckung installierter Plugins? – Bryji
@Bryan: Ja, der Service-Teil war da, um der BundleContext-Verwendung ein wenig Kontext (Wortspiel nicht beabsichtigt) zu geben. – VonC