Java-Framework: Quarkus erreicht Version 1.0

Das erste stabile Release des auf Containerisierung ausgelegten Open-Source-Framework soll die Kompatibilität für künftige Versionen sicherstellen.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Java-Framework: Quarkus erreicht Version 1.0
Lesezeit: 4 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Das Open-Source-Framework Quarkus ist in Version 1.0 erschienen. Red Hat hatte es Anfang März erstmals mit dem vollmundigen Slogan "Supersonic Subatomic Java" angekündigt. Das Java-Framework verbindet imperative und reaktive Programmierstile und zielt auf Anwendungen, die in Containern laufen.

Der Veröffentlichung von Quarkus 1.0 sind zwei Release Candidates vorausgegangen. Die Version markiert zum einen, dass Red Hat und die Community das Java-Framework als bereit für den produktiven Einsatz sehen. Zum anderen sollen künftige Releases rückwärtskompatibel und so die Stabilität der Software gesichert sein.

Zusammen mit dem Slogan hat Red Hat für Quarkus vier Richtlinien vorgegeben: Container First, Unifies Imperative and Reactive, Developer Joy und Best of Breed Libraries. "Container First" stellt Container in den Vordergrund, allen voran Kubernetes und Docker. Die Website spricht von einem Kubernetes-nativen Java Stack. Unter anderem kann das Framework ohne große Umstände Docker-Images erstellen. Quarkus ist auf geringeren Speicherbedarf und kurze Startzeiten optimiert, die für containerisierte Anwendungen besonders wichtig sind.

"Unifies Imperative and Reactive" beschreibt, dass das Framework zwar ein reaktives Programmiermodell bevorzugt, einen imperativen Stil aber ebenso ermöglicht. Letzterer bildet die ältere Herangehensweise an die Entwicklung über eine Folge von Anweisungen ab, während Ersterer auf die Verfügbarkeit von Ressourcen reagiert und sich am Datenfluss orientiert. Quarkus 1.0 setzt auf das ereignisorienterte Framework Vert.x und verwaltet den Wechsel zwischen den Ausführungsmodellen.

Als drittes Versprechen soll Quarkus "Developer Joy" bringen, also beim Entwickeln Spaß machen, statt umständlich zu sein. In der Tat bringt das Framework einige Erweiterungen von Haus aus mit, die den Programmieralltag erleichtern, darunter vorgefertigte JUnit-5-Erweiterung für Unit-Tests und einen Developer-Modus für das Maven-Plug-in.

Schließlich sollen "Best of Breed Libraries" beim Entwickeln helfen. Zum Zeitpunkt der Veröffentlichung von Quarkus 1.0 spricht die Projektseite von 50 Bibliotheken, die sich mit dem Framework nutzen lassen. Für die Anbindung setzen die Macher auf Standards wie Contexts and Dependency Injection (CDI). REST-Endpunkte lassen sich über JAX-RS (Java API for RESTful Web Services) beschreiben.

Überhaupt steht die Anbindung an Standards ganz oben auf der Liste der Versprechen. Quarkus will wo immer möglich das Rad nicht neu erfinden, sondern auf Vorhandenes setzen: die GraalVM, MicroProfile, Vert.x oder Spring.

Seit der ersten Ankündigung vor acht Monaten hat die Community Quarkus konsequent weiterentwickelt, sodass Version 1.0 keine großen Neuerungen mitbringt. Nennenswert ist vor allem die Aktualisierung der angebundenen Systeme. Das betrifft unter anderem die Anbindung an das Spring-Ökosystem inklusive der Anbindung an Spring Web, Spring Data JPA (Java Persistence API) und Spring DI (Dependency Injection). Auch die Integration für Gradle und Kotlin haben die Entwickler aktualisiert.

Darüber hinaus hat die erste Hauptversion einen neuen Security Layer an Bord, der auf Vert.x aufsetzt. Die neue Klasse HttpRequests ersetzt die bisherige HttpServletRequest, da Letztere wohl im Zusammenspiel mit Vert.x zu Problemen geführt hat. Wer Images mit GraalVM baut, muss Version 19.2.1 verwenden, da die Anbindung an die vor Kurzem veröffentlichte Version 19.3.0 erst für Quarkus 1.1 geplant ist. Weiterhin lässt sich Quarkus alternativ mit OpenJDK HotSpot als Virtual Machine verwenden.

Weitere Details zur Veröffentlichung von Quarkus 1.0.0 lassen sich dem Quarkus-Blog entnehmen. Die Get-Started-Seite hilft bei den ersten Schritten und gibt eine Übersicht über die benötigten Werkzeuge.

Siehe dazu auf heise Developer:

(rme)