Christoph Strobl über den nächsten Spring Data Release Train

Spring Data „Gosling“ gestartet: Wohin geht die Reise?

Redaktion JAXenter

(c) shutterstock.com / okili77

Mit Spring Data soll das Spring-Framework für die Anwendung verschiedener Datenbankmodelle und Datendienste in der Cloud fit gemacht werden. Nach der Release-Reihe „Fowler“ ist jetzt ein erster Meilenstein des Spring 4.1 basierten Release-Trains „Gosling“ erschienen. Wir haben Christoph Strobl (Principal Software Engineer bei Pivotal Software, Inc. und Committer im Spring Data Team) gefragt, was die User in den Waggons von „Gosling“ erwartet und wie es mit Spring Data weitergehen soll.

JAXenter: Was zeichnet den Gosling Release Train innerhalb des Spring Data Projekts aus?

Christoph Strobl: Die Release Trains erlauben es vor allem, notwendige Versions-Upgrades wie z.B. das Spring-Framework-Upgrade auf 4.1 vorzunehmen. Innerhalb eines Trains bleiben diese Versionen bis auf Patch-Level-Upgrades dann stabil. Zudem haben wir die Möglichkeit, größere Änderungen am Commons-Modul vorzunehmen. So wird es mit Gosling dann u.a. sehr viel einfacher werden, Custom-Repository-Implementierungen zu erstellen.

JAXenter: Was sind die Highlights für Entwickler im nun erschienenen Milestone Release?

Christoph Strobl: Wie schon erwähnt basiert Gosling auf Spring 4.1 und ist vollständig kompatibel mit Version 4.2. Ein Teil der Verbesserungen rund um die Änderungen an der Custom-Repository-Implementierung befindet sich bereits im ersten Milestone. Das Hinzufügen eigener Methoden zu allen Repositories ist jetzt schon deutlich schlanker und einfacher. Diese Änderung wirkt sich natürlich auf die anderen Module aus.

Was Store-spezifische Neuerungen angeht haben wir die JPA 2.1 Fetch Graph Story, welche wir mit Release Train Fowler begonnen haben, weiter geführt und erlauben nun die Fetch-Graph-Definition per Annotation direkt an der Query-Methode. Das bedeutet konkret, dass wir den Fetch Graph aus den Property-Namen bzw. dem dot-path der Property ableiten, ohne die zwingende Notwendigkeit der im Standard definierten Annotationen.

Das REST-Modul unterstützt neben dem Conditional PUT E-Tag Headern jetzt auch Conditional GET und verbessert das Handling von Java8/Guava Optional. Außerdem haben wir ein zusätzliches Artefakt hinzugefügt, welches eine repackaged und leicht modifizierte Version des HAL-Browsers beinhaltet, die speziell auch für die Verwendung mit Spring Boot optimiert wurde.

Neben Bugfixes, welche zum Teil auch in die Service Releases von Fowler und Evans zurück portiert wurden, gibt es noch mehrere kleinere Verbesserungen. Beispielsweise geoIntersects für MongoDB oder abgeleitete DeleteBy-Queries für Elastichsearch um zwei Beispiele zu nennen.

JAXenter: Welche Module sind deiner Meinung nach besonders hervorzuheben?

Christoph Strobl: Besonders spannend sind die Entwicklungen rund um Gemfire, Redis und dem neu hinzugekommenen KeyValue Modul. In Spring Data Gemfire wird neben dem in M1 bereits enthaltenen Support für Pivotal Gemfire 8.1 auch an der Unterstützung für das Apache Geode Projekt gearbeitet. Snapshot Builds hierfür sind bereits verfügbar und stabil genug für erste Schritte mit Spring Data und Geode.

Die Entwicklung von Spring Data Redis fokussiert sich derzeit stark auf Redis 3.0 Cluster. Im Speziellen auf das Bereitstellen eines High-Level-Cluster-API, welches die Interaktion mit dem Cluster transparent macht. Die Zusammenarbeit mit den Menschen hinter den Redis-Java-Drivern wie z.B. Jedis oder Lettuce ist hierfür unabdingbar. Wir sind zuversichtlich mit dem Gosling Release Cluster Support anbieten zu können, nachdem wir diesen aus Fowler bewusst herausgenommen hatten.

Das KeyValue-Modul tritt mit Gosling dem Release Train bei und ist insofern spannend, als es mehreren Anforderungen gerecht werden soll. Zum Einen stellt es typische Features aus Spring Data, wie abgeleitete Queries auf Map basierten Strukturen, bereit, zum Anderen soll es die Entwicklung eigener Module vereinfachen. Das Modul kommt bereits mit einer ConcurrentHashMap-basierten Implementierung eines Map-basierten Repositories und verwendet SpEL (Spring Expression Language) als Query-Sprache. Somit eignet es sich gut für Tests, erste Schritte mit Spring Data aber auch für reine In-Memory-Datenhaltung. Während der Entwicklung haben wir allerdings auch bereits Implementierungsvarianten für EhCache bzw. Hazelcast mit der jeweils nativen Query Sprachen, getestet.

JAXenter: Gibt es einen Fahrplan für den Gosling-Train? Welche Stationen sollen noch angefahren werden?

Christoph Strobl: Ja klar, den gibt es natürlich. Gosling wird vor dem ersten Release Candidate noch ein zweites Milestone sehen und im August, wenn alles stabil läuft, fertig sein. Zwischen den Gosling Releases wird es wie gehabt weitere Service Releases für den Fowler Train geben. Die Evans-Serie, wird nach nun gut einem Jahr, mit dem dritten und finalen Service Release auslaufen. Für Dijkstra wird SR6, aufgrund des EOL der Spring 3.2 Line, das letzte Maintainance Release werden.

JAXenter: Wie geht es weiter mit dem Spring-Data-Projekt?

Christoph Strobl: Neben der Arbeit an neuen Features, wie Query Augmentation, Projektionen für Querymethoden oder Support für CompletableFuture / ListenableFuture bemühen wir uns konstant um die Integration neuer Versionen von existierenden Technologien wie z.B. Hibernate 5 oder QueryDSL 4. Das läuft erwartungsgemäß nicht immer ganz reibungslos und erfordert an einigen Stellen „Breaking Changes“ unseres APIs, die wir soweit möglich allerdings vermeiden. Durch das alternierende Release Zyklus stellen wir sicher, dass Fehlerbehebungen konsequent in Service Releases zurückgeführt werden. Unserer Meinung nach ist es wichtig, nicht nur neue Features sondern gerade auch Fixes zeitnah auszuliefern.

Aufmacherbild: Train outline vector von Shutterstock.com / Urheberrecht: okili77

Christoph Strobl ist Principal Software Engineer bei Pivotal Software, Inc. Als Teil des Spring Data Teams entwickelt und betreut er unter anderem Abstraktionen für MongoDB, Redis und Solr. Er hat eine Vorliebe für Design und Testen sowie besonderes Interesse an NoSQL, Suche und Web-Entwicklung.

Verwandte Themen:

Geschrieben von
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: