Erweiterte Features mit OSGi Declarative Services erstellen
Einfache Features können mit BundleActivator-Klassen und über direkte Implementierung von Schnittstellen wie ManagedService und ServiceTracker gesteuert werden. Mit zunehmender Komplexität der Bundlebeziehungen empfiehlt es sich, Funktionen wie OSGi Deklarative Services (DS) zu verwenden, um ein Feature in einzelne Services zu zerlegen. DS (manchmal wird auch die Bezeichnung "Service Component Runtime" oder "SCR" verwendet) ermöglicht die Lebenszyklus- und Injektionsverwaltung von OSGi-Services.
Informationen zu diesem Vorgang
- Die Aktivierung des Service (die das Laden der Java™-Klassen, die den Service bereitstellt, einschließt) kann aufgeschoben werden, bis der Service verwendet wird. Das erlaubt dem Server, schnell zu starten und die Ressourcennutzung auf ein Minimum zu beschränken.
- Eine Referenz auf den Service wird in der Service-Registry platziert, selbst wenn der Service nicht aktiviert wurde, sodass Abhängigkeiten vom Service aufgelöst werden können.
- Abhängigkeiten von anderen Services können zur Laufzeit injiziert werden, und die Aktivierung der verschiedenen Services wird auf der Basis solcher Abhängigkeiten bestellt.
- Ein Service kann, falls erforderlich, inaktiviert und reaktiviert werden, vorausgesetzt, seine Serviceeigenschaften werden entsprechend geändert.
Ausführliche Informationen zur Verwendung von OSGi Declarative Services finden Sie in einer Reihe von Onlineressourcen, u. a. im OSGi-Community-Wiki.
Diese Task beschreibt auf einfache Weise, wie Sie Ihre Services in DS deklarieren, Referenzen auf andere Services anfordern und Konfigurationseigenschaften für jeden Service verwalten können.