Das Framework für domänen-spezifische Sprachen

Eclipse Xtext 2.15 veröffentlicht: Was ist neu?

Karsten Thoms

Das Eclipse Simultaneous Release wurde nach Eclipse Photon auf ein quartalsweises Rolling Release umgestellt und am 19. September erstmals als Eclipse 2018-09 erfolgreich umgesetzt. Als ein zentrales Framework im Simultaneous Release hat auch Xtext teilgenommen und die neue Version 2.15 veröffentlicht. Was gibt es Neues?

Eclipse Xtext 2.15 – neuer Releasezyklus, neue Features

Die neue Taktung des Releasezyklus, dem Xtext fortan ebenfalls mit schnelleren Releases folgen wird, und die damit einhergehenden Änderungen der Prozesse stellte das Xtext-Team vor einige Herausforderungen. Es gab viel zu lernen, manchmal auch auf die harte Tour, doch am Ende konnten alle Hindernisse überwunden und erneut ein stabiles und rundum aktualisiertes Release erzeugt werden. Über das Ergebnis freut sich das Team und ist zuversichtlich, mit der Beschleunigung des Releasezyklus nun mithalten zu können. Die häufigeren Releases haben zur Konsequenz, dass man sich entschlossen hat, die minimal unterstützte Plattform auf Oxygen.3a festzulegen.

Neben den vielen Aktivitäten im Release Engineering und den Arbeiten an der Basis ist es trotz Urlaubszeit gelungen, etwas Zeit für ein paar Goodies zu finden, die in das aktuelle Release eingeflossen sind. Hier konnte auch von zunehmender Aktivität von Contributoren profitiert werden, die sich in die Entwicklung mit viel Fleiß und Liebe zum Detail eingebracht haben.

Verbesserte Gradle Integration

Xtext wurde auf Gradle 4.9 durchgehend aktualisiert. Insbesondere für die Programmiersprache Xtend konnte dadurch eine deutliche Performancesteigerung realisiert werden.

Projekterzeugung von der Kommandozeile

Die Funktionalität des Xtext Project Wizards wurde nun durch eine neue Main-Klasse (org.eclipse.xtext.xtext.wizard.cli.CliProjectsCreatorMain) bereit gestellt. Damit lässt sich die Anlage von Xtext-Projekten aus einem Kommandozeilen-Programm per Skript steuern oder in andere Tools integrieren. Für alle Einstellungsmöglichkeiten werden passende Parameter angeboten.

Was bitte wird in einem Chunk gebaut?

Anwender von Xtext-basierten Sprachen (inkl. Xtend) werden es kennen, dass die Progress View in Eclipse zum Buildfortschritt immer Chunks ausgab. Da häufig sehr viele Ressourcen gebaut werden, hätte das Feedback jeder einzeln kompilierten Ressource die Performance des UI zu sehr beeinträchtigt. Doch durch kürzliche Verbesserungen in der Eclipse-Plattform erfolgt nun keine Verlangsamung des UI bei detaillierteren Ausgaben, so dass das Feedback an den Benutzer während eines Builds deutlich verbessert werden konnte.

Testing Support

Seit Eclipse Photon können Quellcode-Ordner markiert werden, die Test Sourcen enthalten. Dies erlaubt es, Projekte so zu strukturieren, wie man es von Buildsystemen wie Gradle und Maven gewohnt ist. Projekte, die mit Xtext neu angelegt werden, berücksichtigen dieses neue Plattform-Feature und markieren Test-Ordner entsprechend.

Die Xtext Testing API wurde erweitert und ermöglicht nun das Testen des lexikalischen und semantischen Highlightings. Dafür gibt es nun eine neue Basis-Klasse AbstractHighlightingTest, deren Anwendung man exemplarisch in den „State-Machine“ und „Homeautomation“ Beispielen sehen kann.

Die Sprache Xtend lässt sich sehr gut zur Implementierung von Unit-Tests verwenden. Template Expressions und Typ Inference sind nützliche Stärken der Sprache. Allerdings ist es notwendig, dass Testmethoden den Rückgabetyp void besitzen; ein inferierter Typ ist dann nur hinderlich. Die Situation wird nun durch einen zusätzlichen Check überprüft, und bei Bedarf kann der Code mit einem neuen Quickfix korrigiert werden.

Mit Xtext 2.15 können nun auch Felder in einer mit @BeforeEach markierten Setup-Methode verwendet werden, die mit @Inject in die Testinstanz injiziert werden.

Zusammenfassung

Xtext 2.15 wurde zusammen mit dem Eclipse 2018-09 Simultaneous Release veröffentlicht und besitzt einen Fokus auf Stabilität, Qualität, Performance und Testing. Die detaillierten Änderungen können den Release Notes zu Xtext und Xtend entnommen werden. Der Releasezyklus von Xtext wird sich nun an den neuen Rolling Releases von Eclipse orientieren. Xtext 2.16 wird daher mit Eclipse 2018-12 im Dezember erwartet.

Verwandte Themen:

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
400
  Subscribe  
Benachrichtige mich zu: