Der PDE-Annotation-Builder für Eclipse

Declarative Service Annotationen

Wer in OSGi mit deklarativen Services arbeitet, muss neben der eigentlichen Komponentenklasse die Komponentenbeschreibungen in Form eines XML-Dokumentes anlegen. Innerhalb des Eclipse Plug-in Development Environments (PDE) kann man dafür den so genannten Komponenteeditor verwenden der seit der Version 3.5 integraler Bestandteil des PDE ist.

Das Spezifizieren der Komponentenbeschreibung in einem XML Dokument hat aber eine Reihe von Nachteilen, die das Arbeiten mit mit deklarativen Services im PDE recht umständlich machen:

  1. Die Entwicklung einer Komponente erfordert einen ständigen Wechsel zwischen dem Java-Editor und dem Komponentenbeschreibungseditor.
  2. Refactorings wie bspw. das Verschieben oder Umbenennen einer Klasse führen zu ungültigen Komponentenbeschreibungen, da der entsprechende Eintrag in der kompletten Schreibung nicht angepasst wird.
  3. Schreibfehler in Methodennamen (activate, deactivate etc.) führen dazu, dass die Komponente nicht oder fehlerhaft ausgeführt wird.

Um das Arbeiten mit Service Components zu vereinfachen, spezifiziert die OSGi Alliance derzeit verschiedene Annotationen (@Component, @Reference etc.), mit deren Hilfe die Komponentenbeschreibung für eine Komponentenklasse während des Build-Prozesses automatisiert erzeugt werden kann. Eine Auswertung der Annotationen durch die Service Component Runtime zur Laufzeit ist nicht vorgesehen. Die Annotationen sind derzeit noch nicht final verabschiedet, können aber bereits in einem Draft eingesehen werden (OSGi early draft 09-2011).

Der DS-Annotation-Builder für Eclipse

Um die Annotationen in Eclipse einsetzen zu können, muss also ein Plug-in installiert sein, das auf Basis der Annotierungen Komponentenbeschreibungen in Form von XML-Dokumenten erzeugt. Ein solches Plug-in ist das DS-Annotation-Builder-Plug-in, das unter https://github.com/wuetherich/ds-annotation-builder als Open-Source-Projekt (EPL) verfügbar ist.

Das DS-Annotation-Builder-Plug-in kann über den Eclipse-Update-Mechanismus installiert werden. Das P2-Repository, das den DS-Annotation-Builder enthält, befindet sich unter http://www.wuetherich.com/ds-annotations/update/.



Einbinden der Annotationen-Bundles

Um die DS-Annotationen in eigenen Bundles verwenden zu können, müssen diese innerhalb der Eclipse Target-Platform enthalten sein. Mit dem Erscheinen der finalen Spezifikationen werden diese Klassen in das OSGi-Framework-Bundle (oder das OSGi-Kompendium-Bundle) integriert werden.Da diese Spezifikation bislang nicht verabschiedet ist, müssen diese Klassen derzeit explizit zu Target-Platform hinzugefügt werden. Die dazu notwendigen Jars können können hier heruntergeladen werden:

Aktivieren des DS-Annotation-Builders

Nach der Installation und des Einbinden der notwendigen Annotationen-Bundles kann der DS-Annotation-Builders verwendet werden. Dazu muss dieser zunächst für das Plug-in-Projekt, in dem DS-Annotationen verwendet werden sollen, aktiviert werden. Dazu muss im Kontextmenü des jeweiligen Projektes der Menupunkt Configure -> Enable DS Annotations ausgeführt werden.



Verwenden von Annotationen

Wenn die Verwendung des DS-Annotation-Builders einmal aktiviert ist, dann können die DS-Annotationen innerhalb eigener Komponentenklassen verwendet werden. Für jede annotierte Komponentenklasse wird automatisch eine entsprechende Komponentenbeschreibung in Form eines XML-Dokumentes angelegt.



OSGi im Linuxhotel
Nächste Termine:
04.08 - 06.08.14
OSGi Supporter