Suche

Demo beweist: OSGi und Java-9-Module arbeiten zusammen

Michael Thomas

© Shutterstock.com/pattara puttiwong

Modularität (Projekt Jigsaw) gehört zu den gefragtesten Features, die mit Java 9 erwartet werden. Wie der OSGi-Entwickler Neil Bartlett in einem aktuellen Blogpost beweist, ist die Nutzung einer modularen OSGi-Anwendung zusammen mit einer modularen Java-Runtime im Bereich des Möglichen.

Dass der Quellcode des JDK im Rahmen des Projekts „Jigsaw“ modularisiert wird, ist schon seit einiger Zeit bekannt. Wie Mark Reinhold, Chef der Entwicklungsabteilung der Java Standard Edition bei Oracle, in dem entsprechenden Statusbericht beschreibt, soll das Modulsystem eine grundlegend neue Art Java-Komponente darstellen. Seine Definition bezeichnet ein Modul als eine benannte, selbstbeschreibende Sammlung von Code und Daten. Der Code soll sich dabei aus einer Zusammenstellung von Paketen zusammensetzen, die wiederum Typen (z. B. Java-Klassen und Interfaces) enthalten. Die Daten bestehen aus Ressourcen und anderen statischen Informationen.

Die Module sollen selbst beschreiben können, welche anderen Module sie für die Kompilierung und den Betrieb benötigen. Um zu bestimmen, welcher Code aus anderen Modulen sich auf Typen im eigenen Paket beziehen, kann ein Modul beschreiben, welche Pakete es exportiert. Im Modulsystem werden die erforderlichen Module lokalisiert. Das System soll dafür Sorge tragen, dass sich Module nur nach ihren beschriebenen Typ- und Paketfreigaben aufeinander beziehen.

OSGi und Java 9

Wie der OSGi-Entwickler Neil Bartlett in seinem Blogpost „OSGi and Java 9 Modules Working Together“ schreibt, soll Java durch die Aufspaltung der monolithischen Java-Runtime in kleinere Module künftig auch für diejenigen Anwendungsfälle eine attraktive Technologie werden, für die es historisch betrachtet weniger geeignet war: Bislang müssen sich Desktop- oder Mobile-Anwendungen entweder darauf verlassen, dass der User über eine vorinstallierte Version von Java verfügt, oder deren Entwickler müssen Java ihrer Installationsroutine beifügen. Doch nicht nur an dieser Stelle ist ein Verbesserungspotential vorhanden: So bringt das Internet of Things Entwickler dazu, nach einer kleinere Installationsgröße und geringerem Speicherbedarf zu trachten.

Wie Bartlett allerdings anmerkt, weist auch Jigsaw einige Defizite als Modulsystem für Anwendungen auf, weshalb einige Entwickler seiner Einschätzung nach zu diesem Zweck auf OSGi zurückgreifen dürften. Nichtsdestotrotz, so Bartlett weiter, wäre es nützlich, wenn die Nutzung einer modularen OSGi-Anwendung zusammen mit einer modularen Java-Runtime möglich wäre, da somit gleichzeitig von einer minimalen Java-Installation und den vollen Vorteilen von OSGi profitiert werden könnte. Zudem, so Bartlett, könnte auf diesem Weg der Großteil von Jigsaws Komplexität vor den Anwendungsentwicklern verborgen werden.

Um zu beweisen, dass dies durchaus möglich ist, hat Bartlett eine entsprechende Demo erstellt. Der von ihm ausführlich beschriebene Anwendungsfall sieht eine gegebene Java-Runtime, die eine bekannte Anzahl Module enthält, vor. Der hypothetische User möchte dabei ein OSGi-Framework im Kontext des Moduls starten, so dass die Bundles im Framework Packages aus den Plattform-Modulen importieren können.

Der mit der heißen Nadel gestrickte Prototyp funktioniert Bartletts Aussagen zufolge zwar, jedoch weist er explizit darauf hin, dass er keinesfalls für den Arbeitseinsatz geeignet ist. Allerdings, so Bartlett weiter, wird die OSGi Core Platform Expert Group (CPEG) sich um einen offiziellen Support für Java-9-Features bemühen.

Der Code von Bartletts Prototyp kann über GitHub bezogen werden.

Aufmacherbild: Alphabet from coffee beans isolated on white von Shutterstock.com / Urheberrecht: pattara puttiwong

Verwandte Themen:

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

1 Kommentar auf "Demo beweist: OSGi und Java-9-Module arbeiten zusammen"

avatar
400
  Subscribe  
Benachrichtige mich zu:
richard
Gast

Just to point out that Neil Bartlett is a senior engineer at Paremus – see http://www.paremus.com.

Paremus are active in the area of general modularity and specifically – OSGi and Java9. If you readers are interested – please feel free to contact me.

Richard