Java-Framework: Quarkus 1.4 erobert die Kommandozeile

Das aktuelle Release erlaubt das Ausführen von Quarkus-Anwendungen im CLI und wartet zudem mit einem neuen Framework für Serverless Computing auf.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 6 Beiträge
Von

Das Open-Source-Framework Quarkus ist in Version 1.4 erschienen. Im Gegensatz zu den drei weniger spektakulären Minor Releases, die seit der ersten Hauptversion im Herbst 2019 erschienen sind, hat die aktuelle Version einige spannende Neuerungen an Bord, allen voran einen Command Mode und ein neues Framework für Functions as a Service (FaaS).

Quarkus: Supersonic Subatomic Java

Quarkus ist ein quelloffenes Java-Framework, das Red Hat im Frühjahr 2019 mit dem Slogan "Supersonic Subatomic Java" angekündigt und schließlich im November desselben Jahren in Version 1.0 veröffentlicht hat. Es verbindet imperative und reaktive Programmierstile und zielt auf containerisierte Anwendungen.

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. Zudem 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.

Java 8 gilt mit dem aktuellen Release als überholt (deprecated). Ab Version 1.6, die planmäßig im Juni vorgesehen ist, soll die Anbindung an Java 8 gänzlich verschwinden. Das Quarkus-Team empfiehlt den Umstieg auf Java 11. Wer einen wichtigen Grund hat, nicht auf Java 8 zu verzichten, soll sich auf der Mailing-Liste quarkus-dev melden.

Nachdem Quarkus sich bisher nur innerhalb von Serveranwendungen verankern ließ, führt Version 1.4 einen Command Mode ein. Entwickler können darüber Anwendungen schreiben, die von der Kommandozeile ausführbar sind. Die Annotation @QuarkusMain bestimmt den Einstiegspunkt für das Framework. Die Umsetzung erfolgt wahlweise über eine Java-main-Methode oder eine entsprechend gekennzeichnete Klasse.

Für die Einbindung in main sollte möglichst der Start der Quarkus-Anwendung die einzige Anweisung in der Methode sein, da sie in einem anderen ClassLoader verankert ist als die Quarkus-Applikation, was zu unvorhersehbarem Verhalten des Programms führen kann. Ein optionaler name-Parameter für die@QuarkusMain-Annotation legt den Namen der gewünschten main-Methode fest, wenn mehrere vorhanden sind.

Command-Mode-Anwendungen lassen sich mit dem Entwicklermodus kombinieren und erlauben die Übergabe von Parametern wie in folgendem Beispiel aus der Quarkus-Dokumentation:

mvn compile quarkus:dev -Dquarkus.args='--help'

Ein neues Framework soll beim Erstellen von Anwendungen für Serverless Computing helfen, auch wenn der Blogbeitrag dazu noch wenige Details nennt. Unter dem Namen Funqy (der im Beitrag auch als "Funky" vorkommt) soll das Framework primär das Zusammenspiel mit AWS Lambda und Azure Functions verbessern.

Lesen Sie auch

Für Mocking-Tests will Quarkus 1.4 das Einbinden entsprechender CDI-Beans (Contexts and Dependency Injection) vereinfachen. Außerdem bietet es eine Integration in das Testing-Tool Mockito.

Weitere Neuerung wie die Anbindung an HTTP/2 und der aktualisierte MongoDB-Client lassen sich dem Quarkus-Blog entnehmen. (rme)