OSGi goes Enterprise

Bleiben wir jedoch bei unserem Beispielprojekt. Damit das Bundle mit der Persistence Unit Accounts wie gewünscht funktioniert, müssen die Bundles von Gemini DBAccess inklusive H2-Unterstützung sowie das Bundle für Gemini JPA deployt sein. Das ist im Beispielprojekt der Fall. Starten wir das Beispielprojekt, so können wir in der OSGi-Konsole von Eclipse prüfen, ob die Services alle da sind. Abbildung 1 zeigt den Ausschnitt der OSGi-Konsole für den Service EntityManagerFactory der Persistence Unit Accounts sowie den Service EntityManagerFactoryBuilder des Gemini-JPA-Projekts.

Abb. 1: Ausschnitt der OSGi-Konsole: die JPA-ServicesAbb. 1: Ausschnitt der OSGi-Konsole: die JPA-Services (Vergrößern)

Damit stehen uns nun genau die Services zur Verfügung die wir in unserer Enterprise-Anwendung brauchen. Wir können die nächste Schicht draufsetzen, typischerweise Data Access Objects (DAO) [12], um die Arbeit mit den JPA-Entitäten zu vereinfachen. Das Beispielprojekt enthält zwei Varianten davon. Die erste basiert auf manuell programmierten DAO-Objekten und ist im Bundle com.pe-international.sample.repository.jpa.manual enthalten. Die zweite Variante nutzt des Spring-Data-JPA-Framework [13] und ist in Bundle com.pe-international.sample.repository.jpa.spring realisiert. Auf diese Bundles weiter einzugehen, würde zu weit führen. Bei Interesse sind Sie herzlich eingeladen, sich durch den Code zu wühlen.

Resümee von JPA mit Eclipse Gemini

Wir haben mit den Gemini-Projekten DBAccess und JPA lauffähige und aus Sicht des Entwicklers einfache Implementierungen der OSGi-Enterprise-Spezifikationen für JDBC und JPA kennen gelernt. Ein wesentlicher Nachteil ist jedoch die fehlende Unterstützung für wichtige Datenbanktreiber wie Oracle. Auch an anderen Stellen merkt man, dass das Eclipse-Gemini-Projekt noch recht jung ist. Die Dokumentation ist recht dürftig, und die Tatsache, dass gerade die erste stabile Version 1.0.0 veröffentlicht wurde, wirft die Frage auf ob das alles schon praxistauglich ist. Jedoch sind Foren und Mailingliste sehr aktiv, und Fragen werden rasch und ausführlich beantwortet. Ein Blick hinter die Kulissen zeigt, dass die Gemini-Projekte von erfahrenen Entwicklern großer Unternehmen vorangetrieben werden, die ihr Handwerk verstehen. Unsere Erfahrungen bis jetzt waren jedenfalls durchweg positiv.

Wie es mit unserer Enterprise-Anwendung weitergeht

Eine wichtige Basis unserer modularen Enterprise-Anwendung haben wir nun mit der Persistenzschicht gelegt. Wir können diese modular aufbauen, indem wir mehrere Bundles mit JPA-Entitäten nutzen, die dann jeweils als JPA Persistence Unit bereitgestellt werden. Die Schichten darüber haben wir jedoch bis jetzt außen vor gelassen. Aber auch dort warten noch spannende Themen auf uns. Beispielsweise haben wir noch kein Konzept zur Steuerung der Transaktionen oder wie wir die verschiedenen Bundles unserer Enterprise-Anwendung miteinander koppeln wollen. Diese Themen werden wir in den kommenden Artikeln dieser Serie in Angriff nehmen.

Jan Stamer ist Senior Software Engineer beim Sustainability-Experten PE INTERNATIONAL. Er ist dort verantwortlich für weltweit führende Softwarelösungen, um Produkte und Unternehmen nachhaltiger zu gestalten.
Kommentare

Schreibe einen Kommentar

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