Eclipse 4 Dependency Injection mit dem Spring Framework

Beispielprojekt anlegen

Um das Ganze mit Eclipse-4-RCP-Applikationen zu testen, kann man den Eclipse-4-Projekt-Wizard verwenden. Eine detaillierte Beschreibung hierzu findet sich unter [2]. Je nach Version des verwendeten Toolings können Sie auswählen, ob Beispiel-Content mit erzeugt werden soll oder nicht. Konfigurieren Sie die erzeugte Beispielapplikation so, dass man mindestens einen Part hat. Wir nennen das Beispielprojekt com.vogella.e4.rcp.blueprintservice.

Download der Spring DM Bundles

Die im Spring und Utility Bundles können z. B. über [3] jeweils in der neuesten Version heruntergeladen werden. Die Bundles müssen in der verwendeten Target-Plattform verfügbar sein, z. B., indem man sie in seinen Workspace importiert:

  • org.springframework.beans
  • org.springframework.core
  • com.springsource.org.apache.commons.logging
  • org.springframework.context
  • com.springsource.org.aopalliance
  • org.springframework.aop
  • org.springframework.expression
  • org.springframework.asm
  • org.eclipse.gemini.blueprint.core
  • org.eclipse.gemini.blueprint.extender
  • org.eclipse.gemini.blueprint.io
  • osgi.enterprise

Diese Files finden sich vorbereitet im Source-Download zu diesem Artikel. Mehr zur Definition einer Target-Plattform findet sich unter [4]. Wenn man (optional) in der IDE das Spring Tooling installiert [5], dann hat man in den Spring-XML-Dateien sinnvolle Helfer wie Content Assist und Autocompletion, was aber für die Verwendung und Entwicklung nicht notwendig ist.

Spring Service Setup

Um in einer RCP-Applikation Spring DM Services zu verwenden, müssen zum einen die notwendigen Spring Bundles mit ins Produkt aufgenommen werden, zum anderen muss der Spring Extender beim Applikationsstart geladen werden.

Um die Bundles in das Produkt aufzunehmen, ist es sinnvoll, sich ein Spring-Framework-Feature zu definieren. In unserem Beispiel nennen wir es com.example.e4.rcp.springextender. In dem Feature müssen die im Screenshot (Abb. 2) zu sehenden Bundles enthalten sein. Das Feature muss dann nur noch zum Eclipse-4-Produkt hinzugefügt werden.

Abb. 2: Diese Bundles müssen in im Spring-Framework-Feature enthalten sein

Der Start-Level des Extender Bundles (org.eclipse.gemeni.blueprint.extender) wird in der Produktkonfiguration in dem CONFIGURATION-Tab gesetzt. Ein Start-Level von „3“ und das Flag Autostart „true“ sorgen dafür, dass Spring Bundles und auch Bundles mit OSGi-Blueprint-Servicekonfiguration automatisch gefunden und prozessiert werden (Abb. 3).

Abb. 3: Mit diesen Settings werden Spring Bundles und Bundles mit OSGi-Blueprint-Servicekonfiguration automatisch gefunden und prozessiert

Wenn man alles richtig gemacht hat, gibt das Produkt, das das Extender-Feature enthält, beim Start entsprechende Meldungen aus. Im Log sollte die Meldung auftauchen, dass der Blueprint Container enabled wurde.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.