The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.

Quarkus 1.11リリース - RESTEasy Reactive、Dev UI等々!

Quarkusのリリースのたびに、同じことが起きています:沢山の刺激的な新機能や機能強化が行われています、、信じられないかもしれませんが、本当です。

1.11は、2つの驚くべき新機能の始まりを示す重要なマイルストーンです:

  • RESTEasy Reactive.

  • Dev UI

そして、Micrometer、jbang、スプリング互換性レイヤーなどに対しても、他にも多くの機能強化が施されています。

そして、このリリースはBetaとCRをテストしてくれた全ての人がいなければ、ここまで素晴らしいものにはならなかったでしょう。このリリースのテストに参加したすべての人に感謝します!

移行ガイド

既存のアプリケーションの移行をお考えですか? 1.11の移行ガイドはこちらです。

Java 11のフレーバーのGraalVM 20.3は、新たに推奨されているバージョンです。

変更点

RESTEasy Reactive

名前からお察しの通り、この作品は共通の Vert.x レイヤー上で動作するように一から書かれた 新しいJAX-RSの実装 であり、完全に リアクティブ であると同時に、 Quarkusと緊密に統合されて いるため、フレームワーク固有の作業(アノテーションスキャンやメタモデル生成など)の多くを ビルド時に 移行させることができます。

RESTEasy Reactive は、広く使用されている非常に強力な JAX-RS API を活用してアプリケーションの REST レイヤーを公開し、アプリケーションが達成できる最大スループットを大幅に向上させることができます。また、アプリケーションの起動がわずかに速くなり、メモリーの消費量が少し減ります。

それは RESTEasy Reactiveの発表 の中で、Georgios氏によって非常に詳細に紹介されています。

詳細なドキュメントは、 RESTEasy Reactiveガイド にございます。

Dev UI

これは素晴らしい物語の始まりです。Quarkus 1.11では、開発をこれまで以上に簡単にする為に、特化したUIが提供されました。

dev ui

各エクステンションは、CDI Beanのリスト、エンドポイントのリスト、Flywayマイグレーションのリプレイ、OpenShiftへのデプロイなど、このDev UIで機能を公開することができます。

Quarkus 1.11では、このDev UIのインフラと、すでにいくつかの機能が提供されています。もしあなたがエクステンションの開発者であったり、フロントエンドの仕事をしたいと思っているなら、追加や改善は大歓迎です。

Dev UI は開発モードでのみ利用可能で(例: mvn quarkus:dev )、デフォルトでは /q/dev エンドポイントからアクセスできます。

Dev UI に機能を追加したいですか? Dev UI ガイド をご覧ください。

Micrometer対応の改善

当社のMicrometer対応は常に改善しています:

  • Kafka Streams のメトリクスが公開されました。

  • レジストリーはエクステンションに移動しました。

レジストリーに関しては、 Prometheus 用のものはCoreエクステンション: io.quarkus:quarkus-micrometer-registry-prometheus の一部です。

残りのレジストリーはQuarkiverseでホストされています(追加のエクステンションのためのホーム):

Azure Monitor

io.quarkiverse.micrometer.registry:quarkus-micrometer-registry-azure-monitor

Datadog

io.quarkiverse.micrometer.registry:quarkus-micrometer-registry-datadog

JMX

io.quarkiverse.micrometer.registry:quarkus-micrometer-registry-jmx

SignalFX

io.quarkiverse.micrometer.registry:quarkus-micrometer-registry-signalfx

Stackdriver

io.quarkiverse.micrometer.registry:quarkus-micrometer-registry-stackdriver

StatsD

io.quarkiverse.micrometer.registry:quarkus-micrometer-registry-statsd

これらのレジストリーに貢献したい、または新しいレジストリーを作成したいとお考えの方は、 Quarkus Micrometer Registryプロジェクト をご利用ください。

Spring Data REST

弊社のSpring Data互換レイヤーを使用している場合、Spring Data RESTエクステンションの恩恵を受けて、CRUD RESTレイヤーの記述を簡単にすることができます。これはREST with Panacheエクステンションと非常に似ています。

詳細については、 専用のガイド をご覧ください。

アプリケーション以外のエンドポイントは /q/ に移動しました。

Quarkusでは、アプリケーションの一部ではない技術的なエンドポイント(Healthエンドポイントなど)をいくつか公開しています。

アプリケーションのエンドポイントとの衝突を避けるために、これらはすべて /q/ 名前空間に移動されました。古い URL を新しい URL にリダイレクトするためのリダイレクトが追加されました。

このルートパスは、 quarkus.http.non-application-root-path.

Edit: We discovered some issues with the /q namespace introduced in this release that are described here. These issues were resolved in 1.11.5.Final.

Hibernate ORM

これまでは、JPA EntityManagerFactoryEntityManager をアプリケーションに注入することしかできませんでした。1.11 からは、Hibernate ORM 固有の SessionFactorySession の特定のメソッドにアクセスする必要がある場合は、注入することができます。

Jackson

デフォルトで CDI で有効になっている ObjectMapperFAIL_ON_UNKNOWN_PROPERTIES が無効になりました。

前の動作に戻す方法については、 https://quarkus.io/guides/rest-json#jackson を参照してください。

jbangの開発モードとプラットフォームのサポート

jbangとの統合は、開発モードの有効化をサポートするようになり、バージョン管理にQuarkusプラットフォーム(BOM)を使用できるようになりました。このためには、jbang v0.62+を使用する必要があります。

実行するには、 -Dquarkus.dev を渡すだけです:

jbang -Dquarkus.dev myapp.java

ここで、例えば myapp.java は以下のようになります:

//usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS io.quarkus:quarkus-bom:1.11.0.Final@pom
//DEPS io.quarkus:quarkus-resteasy
//DEPS io.quarkus:quarkus-smallrye-openapi

import io.quarkus.runtime.Quarkus;
import io.quarkus.runtime.QuarkusApplication;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

import static java.lang.System.*;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/hello")
public class quarkusrest {

    public static void main(String... args) {
        Quarkus.run(args);
    }

    @GET
    public String sayHello() {
        return "hello from Quarkus with jbang.dev";
    }
}

最初の行で @pom を使用していることに注意してください。これは jbang にプラットフォーム用の pom をロードしてバージョン管理に使用するように指示しており、他のバージョン指定をしないで済むようになります。

その後、開発モードでファイルを編集して再度保存すると、Quarkusのライブリロード機能が変更の適用の世話をしてくれます。

他にも https://localhost:8080/q/devhttps://localhost:8080/q/swagger-ui のような開発モードの機能が用意されています。

今のところ、これは単一ファイルのjbangスクリプトに対してのみ動作しますが、将来のリリースでは複数のファイルに対しても動作するようになるでしょう。

GraalVM 20.3

Quarkus 1.11に対するGraalVMの推奨バージョンはGraalVM 20.3です。

完全な変更履歴

1.11.0.Beta11.11.0.Beta21.11.0.CR11.11.0.Finalの全変更履歴は GitHub で入手できます。

ADOPTERS.md

Quarkusの使用方法についてのストーリーを共有するために、リポジトリのルートに ADOPTERS.md ファイルを追加しました。

Quarkusをご利用の方で、ブログで取材を受けたい方や、このファイルに単純に追加したい方は、ご連絡いただければ、喜んでお受けいたします。

コントリビューター

Quarkusコミュニティは成長しており、現在 417人の貢献者 がいます。一人ひとりに多くの感謝の意を表します。

特に 1.11 のリリースについては、以下の方々に感謝します: Alex Soto, Alexey Loubyansky, Amos Feng, Andy Damevin, Auri Munoz, Bill Burke, Bruno Gonçalves, Cem Nura, Chin Huang, Chris Laprun, Christian von Atzigen, Christoph Hermann, Clement Escoffier, cristhiank, David M. Lloyd, Davide D’Alto, Dejan Bosanac, Dennis Kieselhorst, Erin Schnabel, essobedo, Falko Modler, Foivos Zakkak, Galder Zamarreño, Geoffrey De Smet, George Andrinopoulos, George Gastaldi, Georgios Andrianakis, Guillaume Le Floch, Guillaume Smet, Gunnar Morling, Gwenneg Lepage, Gytis Trikleris, Henrique Prange, Ioannis Canellos, Jan Martiška, Jordi Sola, Julien Ponge, Justin Holmes, Justin Lee, Jérôme TAMA, Kai Hudalla, Katia Aresti, kdnakt, Ken Finnigan, Ken Kwan, Kevin Viet, Knut Wannheden, Ladislav Thon, Loïc Mathieu, Lucca Biagi de Paula Prado, luneo7, Manyanda Chitimbo, Mark Little, Martin Kouba, Martin Panzer, Masafumi Miura, Matej Vasek, Max Rydahl Andersen, Mayank Kunwar, Michael Edgar, Michał Szynkiewicz, mrizzi, Nicolas Gimenez, nragon, Oscar, Peter Palaga, Phillip Kruger, Pierre Smeyers, Piotr Delert, René Grob, Robbie Gemmell, Roberto Cortez, Rostislav Svoboda, Rustam Sultansoy, Samuel Le Berrigaud, Sanne Grinovero, Saumya Singh, Sergey Beryozkin, Simon Bengtsson, Slava, Stuart Douglas, Stéphane Épardaud, Timothy Power, Viacheslav Medvediev, Vincent Sevel, Willem Jan Glerum, Yoann Rodière, Zach Kimberg, and Àngel Ollé Blázquez.

参加のお誘い

私達は皆様からのフィードバックに重きを置いています。バグ報告、改善要望を是非お願いします。一緒に素晴らしいものを作り上げていきましょう!

Quarkusユーザーの場合でも、単に興味を持っているだけの場合でも、恥ずかしがらずにコミュニティに参加して下さい!: