Das Framework für domänen-spezifische Sprachen

Eclipse Xtext 2.17 ist da und steht ganz im Zeichen von Java 11

Karsten Thoms

© Shutterstock / arosoft

Nutzer von Xtext 2.16 mussten noch mit Einschränkungen bei der Unterstützung von Java 11 leben, denn einige Elemente im Xtext-Technologie-Stack mussten erst selbst einmal fit für Java 11 werden. Diese standen erst kurz vor oder manche gar erst nach dem Release von Xtext 2.16 zur Verfügung. Was es sonst noch Neues gibt, erklärt Karsten Thoms.

Xtext: Aktualisierung des Technologie-Stacks

Mit der jüngst veröffentlichten Version 2.17, die Teil des Eclipse 2019-03 Simultaneous Release ist, wurden alle externen Abhängigkeiten auf den neuesten Stand gebracht. Neben der Unterstützung von Java 11 setzt Xtext ab sofort auf Gradle 5.2.1, Maven 3.6, EMF 2.15, Tycho 1.3, ASM 7, lsp4j 0.6 und für die Web-Integration auf die neuesten Releases der Editoren ACE, CodeMirror und Orion. Auch intern wurde kräftig aufgeräumt und alle Builds auf die letzten Stände der verwendeten Plug-ins für Maven und Gradle aktualisiert. Die von Xtext bereitgestellten Maven-Plug-ins wurden zudem auf die Verwendung des Annotation APIs umgestellt.

Maven Bill of Materials

Erstmals wird mit dem Release 2.17 eine Maven Bill of Materials (BOM) geliefert. Diese beschreibt das Dependency-Management aller von Xtext in Maven und Gradle Builds verwendeten externen Abhängigkeiten. Damit wird die Wartung von Projekten vereinfacht und Probleme mit der Verwendung von inkompatiblen Versionen in Builds von Anwenderprojekten, die in der Vergangenheit ab und zu auftraten, können damit vermieden werden.

Neue Projekte werden direkt mit der Verwendung der BOM durch den New Project Wizard angelegt, für bestehende Projekte sind kleinere Anpassungen nötig: Nach der Deklaration der BOM wird die Angabe von Versionen für abhängige Bibliotheken überflüssig und sollten entfernt werden.

API Confernce 2019
 Maik Schöneich

gRPC – Ein neuer heiliger Gral?

mit Maik Schöneich

Oliver Drotbohm

REST Beyond the Obvious – API Design for Ever Evolving Systems

mit Oliver Drotbohm (Pivotal Software, Inc.)

 

Software Architecture Summit 2019
Stephan Pirnbaum

Lasst uns einen Monolithen (z)erlegen

mit Stephan Pirnbaum (buschmais GbR)

Scott Davis

Making Your Mobile Web App Talk

mit Scott Davis (ThoughtWorks)

Testing

Das API zur Unterstützung von JUnit 5 wurde seit dessen Einführung mit Xtext 2.14 zunächst als restricted markiert. Nun hat man beschlossen, dass das API stabil genug für die Aufhebung dieser Einschränkung ist. Der New Project Wizard verwendet JUnit 5 daher ab sofort als Standardeinstellung.

Im Bereich UI Testing wurde ein neues APIs zum Testen von Hyperlinking eingeführt. Die im Xtext SDK enthaltenen Beispiele enthalten nun entsprechende Tests, welche deren Anwendung demonstrieren.

Xtend

Das Xtend Tooling unterstützt in der aktuellen Version die aus dem JDT bekannten Static Member Favorites. Damit lassen sich über die Preferences Klassen konfigurieren, die häufig verwendere statische Methoden enthalten (z.B. org.junit.Assert, java.util.Collections). Für diese Typen kann Xtend jetzt durch Aktivierung der Content-Assist-Funktion beim Schreiben von Methodennamen (z.B. "assert<CTRL+SPACE>") automatisch statische Import Statements ergänzen.

Eine neue Validierungsregel sorgt dafür, dass eine Warnung ausgelöst wird, wenn eine Klasse einen Namen mit dem Präfix Abstract besitzt, selbst aber nicht mit dem abstract-Modifier markiert wurde. Mit einem Quickfix kann das abstract-Keyword dann ergänzt werden.

Anwender des xtend-maven-plugin dürfen sich über eine schnellere Startgeschwindigkeit freuen. Diese ist vor allem auf die Einführung der Maven BOM zurückzuführen, wodurch sich die Zeit der Auflösung von Plug-in-Dependencies reduziert.

Release-Zyklus

Entsprechend der Eclipse Rolling Releases (eine neue Eclipse-Version alle drei Monate) veröffentlicht das Xtext-Team nun ebenfalls alle drei Monate eine neue Version. Mit dem „2019-03 Release“ hat das Projekt erstmals auch alle Milestone Releases (M1 bis M3) mitgemacht und profitiert nun langsam aber sicher von der verbesserten Release-Automatisierung. Intern wurde vor allem an der Performance der UI-Testausführung gearbeitet, die einen Großteil der Buildlaufzeit ausmacht. Auch hier ist man guter Hoffnung, die richtigen Weichen für die Zukunft gestellt zu haben, um für einen reibungslosen Ablauf der Release-Erstellung zu sorgen.

Fazit

Xtext 2.17 wurde am 5. März veröffentlicht. Die wesentlichen Neuerungen für Anwender sind die vollständige Unterstützung von Java 11 und die Einführung der Maven Bill of Materials. Das Release ist Teil des Eclipse 2019-03 Simultaneous Release und kompatibel zu Eclipse 4.7.3 (Eclipse Oxygen) bis 4.11 (Eclipse 2019-03). An dem Eclipse Rolling Release Train wird das Projekt auch weiter mit einem Release pro Quartal teilnehmen.

Weitere Details zur neuen Version von Xtext können den offiziellen Release Notes entnommen werden, für Xtend gibt es einen eigenen Eintrag.

Geschrieben von
Karsten Thoms
Karsten Thoms
Karsten is a software architect at itemis and part of the Xtext team. He strongly believes that Model Driven Software Development helps to be more efficient in mission critical projects.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: