Red Hat build of Quarkus 3.15 のリリースノート


Red Hat build of Quarkus 3.15

Red Hat Customer Content Services

概要

リリースノートでは、新機能、注目すべき技術的な変更、テクノロジープレビュー機能、バグ修正、既知の問題、および関連するアドバイザリーに関する情報を提供します。

Red Hat build of Quarkus ドキュメントへのフィードバックの提供

エラーを報告したり、ドキュメントを改善したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。

手順

  1. 次のリンクをクリックして チケットを作成します
  2. Summary に課題の簡単な説明を入力します。
  3. Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
  4. Submit をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。

第1章 Red Hat build of Quarkus 3.15 のリリースノート

リリースノートでは、Red Hat build of Quarkus 3.15 の新機能、注目すべき技術的な変更、テクノロジープレビュー機能、バグ修正、既知の問題、関連するアドバイザリーの情報を提供します。

これには次のような注目すべき変更が含まれます。

以前のリリースからの移行に役立つように、アップグレードと下位互換性に関する情報も提供されます。

1.1. Red Hat build of Quarkus について

Red Hat build of Quarkus は、コンテナーおよび Red Hat OpenShift Container Platform 用に最適化された Kubernetes ネイティブ Java スタックです。Quarkus は、Eclipse MicroProfile、Eclipse Vert.x、Apache Camel、Apache Kafka、Hibernate ORM with Jakarta Persistence、Jakarta REST などの一般的な Java 標準、フレームワーク、ライブラリーと連携するように設計されています。

開発者は、Java アプリケーションに必要な Java フレームワークを選択できます。これは、Java 仮想マシン (JVM) モードで実行することも、ネイティブモードでコンパイルして実行することもできます。Quarkus は、コンテナーファーストという手法で Java アプリケーションをビルドします。コンテナーファーストのアプローチにより、コンテナー化と、マイクロサービスと関数の効率的な実行が容易になります。このため、Quarkus アプリケーションのメモリーフットプリントは小さく、起動時間が短縮されます。

Quarkus はまた、統合設定、未設定のサービスの自動プロビジョニング、ライブコーディング、コード変更に関する即時フィードバックを提供する継続的テストなどの機能により、アプリケーション開発プロセスを最適化します。

1.2. Quarkus コミュニティーバージョンと Red Hat build of Quarkus の違い

アプリケーション開発者は、Quarkus の 2 つの異なるバージョン (Quarkus コミュニティーバージョンと Red Hat build of Quarkus の製品バージョン) にアクセスできます。

次の表は、Quarkus コミュニティーバージョンと Red Hat build of Quarkus の違いを説明しています。

Expand
機能Quarkus コミュニティーバージョンRed Hat build of Quarkus バージョン説明

最新のコミュニティー機能へのアクセス

はい

いいえ

Quarkus コミュニティーバージョンを使用すると、最新の機能開発にアクセスできます。

Red Hat は、コミュニティーがリリースするすべてのバージョンに対応する Red Hat build of Quarkus をリリースするわけではありません。Red Hat build of Quarkus 機能リリースの頻度は、約 6 カ月ごとです。

Red Hat によるエンタープライズサポート

いいえ

はい

Red Hat は、Red Hat build of Quarkus に対してのみエンタープライズサポートを提供します。Quarkus コミュニティーバージョンに関する問題を報告するには、quarkusio/quarkus - Issues を参照してください。

長期サポートへのアクセス

いいえ

はい

Red Hat build of Quarkus のメジャーリリースのライフサイクルは、フルサポートとメンテナンスサポートの 2 つのサポートフェーズに分かれています。

Red Hat build of Quarkus の製品ライフサイクル、タイムライン、サポートポリシーの詳細は、Red Hat カスタマーポータルにログインし、ナレッジベースの記事である 製品ライフサイクル および Red Hat build of Quarkus のライフサイクルとサポートポリシー を参照してください。

以前のリリースにバックポートされた Common Vulnerabilities and Exposures (CVE) の修正とバグ修正

いいえ

はい

Red Hat build of Quarkus では、選択された CVE 修正とバグ修正がサポートされているストリームに定期的にバックポートされます。

メンテナンスサポートの詳細は、Red Hat build of Quarkus のライフサイクルとサポートポリシー を参照してください。

Red Hat OpenShift Container Platform および Red Hat Enterprise Linux (RHEL) でテストおよび検証済み

いいえ

はい

Red Hat build of Quarkus は、Red Hat OpenShift Container Platform および RHEL でビルド、テスト、および検証されています。Red Hat は、サブスクリプション契約に従って、サポートされる構成とテスト済みのインテグレーションについて、実稼働と開発の両方のサポートを提供します。詳細は、Red Hat build of Quarkus でサポートされる構成 を参照してください。

安全なビルドシステムを使用したソースからのビルド

いいえ

はい

Red Hat build of Quarkus では、コアプラットフォームとサポートされているすべてのエクステンションは、安全なソフトウェア配信を使用して Red Hat によって提供されます。つまり、それらはソースから構築され、セキュリティー上の問題がスキャンされ、ライセンスの使用が検証されています。

JDK および Red Hat Build of Quarkus ネイティブビルダーディストリビューションのサポートへのアクセス

いいえ

はい

Red Hat build of Quarkus は、認定された OpenJDK ビルドと認定されたネイティブ実行可能ビルダーをサポートします。以下の警告を参照してください。詳細は、Red Hat build of Quarkus でサポートされる構成 を参照してください。

重要

ネイティブ Linux 実行可能ファイルをビルドする ために、Red Hat build of Quarkus は GraalVM Mandrel に基づく Red Hat build of Quarkus Native Builder イメージ (quarkus/mandrel-for-jdk-21-rhel8) の使用をサポートしています。

Red Hat build of Quarkus は、Oracle GraalVM Community Edition (CE)、Mandrel コミュニティーエディション、またはその他の GraalVM ディストリビューションを使用したネイティブ実行可能ファイルのビルドをサポートしていません。詳細は、Red Hat build of Quarkus アプリケーションをネイティブ実行可能ファイルにコンパイルする を参照してください。

1.3. 新機能、機能拡張、および技術的な変更

このセクションでは、Red Hat build of Quarkus 3.15 で導入された新機能、機能拡張、および技術的な変更点を概説します。

1.3.1. 互換性

1.3.1.1. Spring API が Spring Boot 3 に合わせてリファクタリングされる

Red Hat build of Quarkus 3.15 では、quarkus-spring-data-rest-extension が最新の spring-data-jpa 3.x 更新に合わせてリファクタリングされています。この更新では、次の重要な変更が導入されています。

  • 2 つの新しいインターフェイス、ListCrudRepositoryListPagingAndSortingRepository。これらの新しい List メソッドは、Spring の動作と一致して、Quarkus REST では公開されません。
  • クラス階層の変更:

    • PagingAndSortingRepositoryCrudRepository を拡張しなくなる
    • ListCrudRepositoryCrudRepository を拡張する
    • ListPagingAndSortingRepositoryPagingAndSortingRepository を拡張する
    • JpaRepositoryListCrudRepositoryListPagingAndSortingRepository の両方を拡張する

このリファクタリングにより重大な変更が導入されます。詳細は、以前のバージョンとの互換性に影響する変更 の章を参照してください。

1.3.2. コア

1.3.2.1. container-image-podman エクステンションが導入される

Red Hat build of Quarkus 3.15 では、Podman 専用の新しいエクステンション container-image-podman が導入されています。

Docker よりも Podman を優先したい場合は、この新しいエクステンションを使用できます。既存の container-image-docker エクステンションの機能をレプリケートすると同時に、Podman を使用してコンテナーイメージを構築し、ローカルレジストリーにロードするためのサポートも提供します。

container-image-docker エクステンションは Podman の Docker 互換 API と常に互換性がありますが、container-image-podman は Podman ツールセットを使用してイメージをシームレスに構築するように調整されています。

Docker 固有のタスクには container-image-docker エクステンションを使用し、Podman に関連するタスクには container-image-podman エクステンションを使用します。たとえば、マルチプラットフォームイメージの構築は、Docker と Podman では異なる方法で実装されます。Docker は Buildx プラグインを使用しますが、Podman はマルチプラットフォームイメージをネイティブにビルドできます。このため、その機能を実行するには特定のエクステンションを使用する必要があります。

1.3.2.2. デフォルトの UBI イメージがアップグレードされる

Red Hat build of Quarkus 3.15 では、次のデフォルトの UBI イメージがアップグレードされました。

  • ubi-minimal がバージョン 8.10 にアップグレードされる
  • openjdk-17-runtime がバージョン 1.20 にアップグレードされる
  • openjdk-21-runtime がバージョン 1.20 にアップグレードされる
1.3.2.3. エクステンションアノテーションプロセッサーの再開発

Red Hat build of Quarkus 3.15 では、エクステンションアノテーションプロセッサーの新しいアーキテクチャーが導入され、設定ドキュメントの生成方法が再開発されています。

注記

この更新は、Red Hat build of Quarkus 用のエクステンションを開発するユーザーに関係します。

エクステンションアノテーションプロセッサーには主に 2 つの目的があります。

  • Red Hat build of Quarkus のビルドとランタイムに必要なファイルを生成します。たとえば、ビルドステップのリストや設定ルートのリストなどです。
  • エクステンションの設定プロパティーのドキュメントを生成します。

この再開発により、アノテーションプロセッサーアーキテクチャーが合理化され、エクステンションの構築に必要なファイルとドキュメントの生成に必要なファイルが分離されます。

以前は、エクステンションアノテーションプロセッサーは、ルート target/generated/config ディレクトリーに設定ドキュメントを生成していました。これで、エクステンションアノテーションプロセッサーは設定のモデルを構築し、それを AsciiDoc などのさまざまな必要な形式で出力できるようになります。

詳細は、次の Quarkus リソースを参照してください。

1.3.2.4. プロデューサーメソッドと合成 Bean のインターセプションの導入

ArC は、Red Hat build of Quarkus のコンテキストと依存性の注入 (CDI) 実装です。デフォルトでは、インターセプションはクラスベース Bean とも呼ばれるマネージド Bean に対してのみサポートされます。

Red Hat build of Quarkus 3.15 では、プロデューサーメソッドと合成 Bean のインターセプションをサポートする InterceptionProxy API と @BindingsSource アノテーションが導入されています。

InterceptionProxy API は、メソッド呼び出しをターゲットインスタンスに転送する前に、@AroundInvoke インターセプターを適用するプロキシーを作成します。@BindingsSource アノテーションを使用すると、インターセプトされたクラスが外部にあり変更できない場合に、インターセプターバインディングを設定できます。

詳細は、Quarkus の コンテキストと依存性の注入 ガイドを参照してください。

1.3.2.5. ライブリロードを無効にするオプションの導入

Red Hat build of Quarkus 3.15 では、Dev Services 機能を使用して開発モードを使用しているときに自動ライブリロードをオフにできる quarkus.live-reload.enabled 設定プロパティーが導入されました。

デフォルトでは、このプロパティーは true に設定されています。自動ライブリロードを無効にするには、false に設定します。

1.3.2.6. quarkus config コマンドが更新される

Red Hat build of Quarkus 3.15 では、quarkus config コマンドに次の更新が導入されています。

  • quarkus config encrypt サブコマンドが更新され、secret オプションがパラメーターに変更されました。以前は、値を暗号化するには、次のコマンドを実行していました。

    quarkus config encrypt --secret=<xyz123>
    Copy to Clipboard Toggle word wrap

    ここで、次のコマンドを実行します:

    quarkus config encrypt <xyz123>
    Copy to Clipboard Toggle word wrap
  • quarkus config set サブコマンドが更新され、namevalue オプションがパラメーターに変更されました。以前は、設定を行うには、次のコマンドを実行していました。

    quarkus config set --name=<abc> --value=<xyz123>
    Copy to Clipboard Toggle word wrap

    ここで、次のコマンドを実行します:

    quarkus config set <abc> <xyz123>
    Copy to Clipboard Toggle word wrap
  • また、このリリースでは、設定コマンドから value パラメーターを省略しても、application.properties ファイルから既存の設定が削除されなくなりました。代わりに、設定を削除するには、<abc> を設定プロパティー名に置き換えて、次のコマンドを使用します。

    quarkus config remove <abc>
    Copy to Clipboard Toggle word wrap
注記

Quarkus CLI は、Quarkus プロジェクトの作成、更新、ビルドなどのタスクを含む開発目的で使用されます。Red Hat は、実稼働環境での Quarkus CLI の使用をサポートしていません。

詳細は、Quarkus の Secrets 設定 ガイドを参照してください。

1.3.3. データ

1.3.3.1. Flyway が 10.10 にアップグレードされる

Red Hat build of Quarkus 3.15 では、Flyway エクステンションが Flyway 10.10 にアップグレードされます。

詳細は、Quarkus の Flyway の使用 ガイドを参照してください。

1.3.3.2. 大規模モデル向けに最適化された Hibernate ORM ビルド時間

Red Hat build of Quarkus 3.15 では、大規模なエンティティーモデルの Hibernate Object-Relational Mapping (ORM) のビルド時間を短縮する機能拡張が導入されています。

特に、これらの機能拡張により、大規模なエンティティーモデルを持つアプリケーションで、Quarkus 開発モードのライブリロード機能の応答性が向上することが期待されます。

1.3.3.3. Hibernate ORM のバージョン 6.6 へのアップグレード

Red Hat build of Quarkus 3.15 では、Hibernate ORM がバージョン 6.6 にアップグレードされます。

詳細は、以下の資料を参照してください。

1.3.3.4. Hibernate Reactive のバージョン 2.4 へのアップグレード

Red Hat build of Quarkus 3.15 では、Hibernate Reactive エクステンションがバージョン 2.4 にアップグレードされています。

詳細は、Quarkus の Hibernate Reactive ガイドを参照してください。

1.3.3.5. Hibernate Search のバージョン 7.2 へのアップグレード

Red Hat build of Quarkus 3.15 では、Hibernate Search がバージョン 7.2 にアップグレードされます。

Hibernate Search は、Red Hat build of Quarkus アプリケーションにインデックス作成機能と全文検索機能を提供します。Hibernate Search の詳細は、次のリソースを参照してください。

1.3.3.6. MongoDB クライアントがバージョン 5.1 にアップグレードされる

Red Hat build of Quarkus 3.15 では、MongoDB クライアントがバージョン 4.11 からバージョン 5.1 にアップグレードされます。

1.3.4. ネイティブ

1.3.4.1. ネイティブイメージエージェントのインテグレーション

Red Hat build of Quarkus 3.15 では、ネイティブイメージエージェントとのインテグレーションが導入されており、これを使用して、アプリケーションをネイティブイメージにコンパイルするときに、Red Hat build of Quarkus でまだサポートされていないライブラリーまたはコンポーネントを統合できます。

このインテグレーションにより、広範なネイティブイメージ設定が必要な JDK API を使用できます。ネイティブイメージエージェントを使用して、JVM モードでアプリケーションのインテグレーションテストを実行することもできます。エージェントによって生成された設定は、サポートされていないライブラリーを使い始めたり、アプリケーションをネイティブ実行可能ファイルとして実行し始めたりする際に役立ちます。

このインテグレーションは Apache Maven でのみ利用可能です。

注記

新しく生成されたプロジェクトには、pom.xml に適切な設定が自動的に含まれます。

詳細は、Quarkus の Native リファレンス ガイドを参照してください。

1.3.5. 可観測性

1.3.5.1. 可観測性 Dev Services エクステンションの導入

Red Hat build of Quarkus 3.15 では、Dev Services 用の quarkus-observability-devservices および quarkus-observability-devservices-lgtm エクステンションが導入され、OpenTelemetry LGTM (OTel LGTM) Docker イメージがサポートされます。

pom.xml ファイルを更新して、これらのエクステンションをそれぞれ依存関係として追加できます。以下に例を示します。

<dependency>
   <groupId>io.quarkus</groupId>
   <artifactId>quarkus-observability-devservices-lgtm</artifactId>
   <version>${project.version}</version>
    <scope>provided</scope>
</dependency>
Copy to Clipboard Toggle word wrap

詳細は、次の Quarkus リソースを参照してください。

1.3.5.2. OpenTelemetry と計装がアップグレードされる

Red Hat build of Quarkus 3.15 では、OpenTelemetry (OTel) SDK バージョンが 1.32 から 1.39 にアップグレードされます。また、OTel 計装はバージョン 1.32 から 2.50 にアップグレードされます。

これらのアップグレードにより、次の重大な変更が導入されます。

  • HTTP セマンティック規約が変更されました。詳細は、HTTP semantic convention stability migration で変更リストを参照してください。
  • ユーザーがオプトインできなくなったため、quarkus.otel.semconv-stability.opt-in システムプロパティーは削除されました。
  • テーブル作成の場合、データベーススパンの名称が変更されました。
  • io.opentelemetry.extension.annotations.WithSpan の非推奨のアノテーションが削除されました。Red Hat build of Quarkus 3.15 からは、新しい io.opentelemetry.instrumentation.annotations.WithSpan を使用する必要があります。

詳細は、以前のバージョンとの互換性に影響する変更 を参照してください。

1.3.5.3. Quarkus Redis クライアント使用時の OpenTelemetry サポート

Red Hat build of Quarkus 3.15 では、OpenTelemetry (OTel) で quarkus-redis-client エクステンションを使用する際のトレーシングのサポートが導入されています。

Red Hat build of Quarkus は、トレーシング用の手動および自動の計装を提供します。この OpenTelemetry Redis 実装を、quarkus-opentelemetry エクステンションの計装の下に配置する必要があります。

トレーシングデータには、他の属性のほか、要求ステートメント、データベースインスタンス、ピアアドレスなどが含まれます。ステータスコードとメッセージはエラースパンで使用できます。

詳細は、Quarkus の Quarkus Redis クライアントの使用 ガイドを参照してください。

1.3.6. セキュリティー

1.3.6.1. REST エンドポイントの認証メカニズム選択のためのアノテーション

Red Hat build of Quarkus 3.15 では、アノテーションを使用して、Jakarta REST エンドポイントに固有の認証メカニズムを有効にできます。

REST エンドポイントが一致した後にのみアノテーションを使用して認証メカニズムを選択できるため、この機能はプロアクティブ認証が無効になっている場合、つまり quarkus.http.auth.proactivefalse に設定されている場合にのみ有効になります。

詳細は、「Quarkus 認証メカニズム」ガイドの アノテーションを使用して Jakarta REST エンドポイントのパスベースの認証を有効にする セクションを参照してください。

1.3.6.2. @ClientBasicAuth アノテーションが導入される

Red Hat build of Quarkus 3.15 では、新しいアノテーション @ClientBasicAuth が導入され、Red Hat build of Quarkus REST クライアントで Basic 認証のユーザー名とパスワードを使用して HTTP 認証ヘッダーを設定する方法が簡素化されました。

HTTP Basic 認証を使用する場合、quarkus.rest.client.reactive.ClientBasicAuth アノテーションにより、必要な認証ヘッダーの設定が簡素化されます。

以下に例を示します。

@ClientBasicAuth(username = "${service.username}", password = "${service.password}")
public interface SomeClient {
}
Copy to Clipboard Toggle word wrap

この例では、service.usernameservice.password は、実行時に適切なユーザー名とパスワードを設定してターゲットサービスへのアクセスを許可する設定プロパティーです。

詳細は、Quarkus の REST クライアントの使用 ガイドを参照してください。

1.3.6.3. 静的 OIDC テナントの発行者ベースの解決

Red Hat build of Quarkus 3.15 では、アクセストークンの発行者を使用して、ベアラートークン認証をサポートする静的 OpenID Connect (OIDC) テナントを解決できます。

この発行者ベースの解決が機能するように、次の条件を満たしていることを確認してください。

  • アクセストークンは JSON Web Token (JWT) 形式であり、発行者 (iss) トークン要求を含んでいる必要があります。
  • アプリケーションタイプが service または hybrid である OIDC テナントのみが考慮されます。これらのテナントでは、トークン発行者が検出または設定されている必要があります。

quarkus.oidc.resolve-tenants-with-issuer プロパティーを使用してトークン発行者を有効にする必要があります。

詳細は、Quarkus の OIDC マルチテナントの使用 ガイドを参照してください。

1.3.6.4. OIDC リダイレクトフィルターを導入

ユーザーが認証のために OpenID Connect (OIDC) プロバイダーにリダイレクトされる場合、認証が完了したときにユーザーをどこに誘導するかをリダイレクトでプロバイダーに示す必要があります。

Red Hat build of Quarkus 3.15 では、OIDC リダイレクトをフィルタリングするための OpenID Connect (OIDC) リダイレクトフィルターが導入されています。1 つ以上の io.quarkus.oidc.OidcRedirectFilter 実装を登録して、OIDC 認可およびログアウトエンドポイントへの OIDC リダイレクトをフィルターし、カスタムエラーおよびセッション期限切れページへのローカルリダイレクトをフィルターできます。

OidcRedirectFilter を使用すると、追加のクエリーパラメーターや応答ヘッダーを追加したり、すべてのリダイレクト要求に対して新しい Cookie を設定したりすることもできます。

詳細は、Quarkus の「OIDC 認可コードフローメカニズム」ガイドの OIDC リダイレクトフィルター のセクションを参照してください。

1.3.6.5. OIDC セッション期限切れページを導入

以前は、ユーザーセッションを更新できない場合、現在認証されているユーザーは OpenID Connect (OIDC) プロバイダーにリダイレクトされ、再認証が行われていました。ただし、再認証が必要な理由がユーザーには明らかでない可能性があります。

Red Hat build of Quarkus 3.15 では、ユーザーをパブリックのアプリケーション固有のセッションの期限切れページにリダイレクトするように設定できるようになりました。このページでは、セッションの有効期限が切れたことをユーザーに知らせ、保護されたアプリケーションの Welcome ページへのリンクに従って再認証するようにアドバイスします。

このページを有効にするには、quarkus.oidc.authentication.session-expired-page 相対パスプロパティーを指定します。

詳細は、Quarkus の OIDC 認可コードフローメカニズム ガイドを参照してください。

1.3.6.6. OIDC TokenCertificateValidator アノテーションの導入

Red Hat build of Quarkus 3.15 では、OpenID Connect (OIDC) TokenCertificateValidator アノテーションの導入によりセキュリティーが強化されています。このアノテーションを使用すると、デフォルトのチェーン検証に加えて、トークンの証明書チェーンにカスタム証明書チェーン検証チェックを追加できます。

詳細は、Quarkus の OIDC ベアラートークン認証 ガイドを参照してください。

1.3.6.7. OpenTelemetry イベントとしてエクスポートされたセキュリティーイベント

Red Hat build of Quarkus 3.15 では、セキュリティーコンテキストが利用可能な場合、スパン内のセキュリティーイベントを OpenTelemetry (OTel) イベントとしてエクスポートできます。この機能は、スパン属性にユーザー ID とロールを追加します。

この機能を有効にするには、application.properties ファイルで次の設定プロパティーを true に設定します。

quarkus.otel.security-events.enabled=true

詳細は、次の Quarkus リソースを参照してください。

1.3.6.8. 署名された OIDC UserInfo が受け入れられる

OpenID Connect (OIDC) 認可中に、ID トークンが現在認証されているユーザーに関する十分な情報を提供しない場合は、UserInfo エンドポイントから JSON 形式で詳細情報を取得できます。

Red Hat build of Quarkus 3.15 では、署名された JSON Web Token (JWT) として返される UserInfo がサポートされています。Red Hat build of Quarkus はこの署名された JWT トークンを検証し、その後、UserInfo は保護された JSON データで初期化されます。

1.3.7. Web

1.3.7.1. 集中型 TLS レジストリーの導入

Red Hat build of Quarkus 3.15 では、次の機能を含む新しい Transport Layer Security (TLS) レジストリーエクステンション quarkus-tls-registry が導入されました。

アプリケーション向け集中型 TLS 設定

以前は、TLS 設定が複数の Red Hat build of Quarkus エクステンションに分散されていたため、不整合が発生することがありました。TLS レジストリーの導入により、TLS 設定を 1 カ所 (application.properties ファイル) で完了し、アプリケーション内の複数の場所から参照できるようになりました。

メーラー、HTTP サーバー、REST クライアント、メッセージングコンポーネントの集中設定

  • メーラー

    TLS レジストリーを使用して、quarkus-mailer エクステンションを設定できます。他の TLS 設定との競合を避けるには、TLS レジストリーに保存されている名前付き TLS 設定を使用する必要があります。quarkus.tls.<name>.* プロパティーを使用して、個別の名前付き設定を定義できます。

  • HTTP サーバー

    quarkus.tls.<name>.* プロパティーを使用して、HTTP サーバーを設定し、特定の接続に対して個別の名前付き設定を定義できます。

  • REST client

    特定の設定の代わりに TLS レジストリーを使用して quarkus-rest-client エクステンションを設定できます。

  • Quarkus メッセージング

    mp.messaging.incoming.your-channel.tls-configuration-name=<name> および quarkus.tls.<name>.* プロパティーを使用して、TLS レジストリーで Quarkus メッセージングチャネルを設定できます。詳細は、個別の Quarkus メッセージング ガイドを参照してください。

詳細は、Quarkus TLS レジストリーリファレンス ガイドを参照してください。

1.3.7.2. REST クライアント用の HTTP パススループロキシー

Quarkus REST クライアントを使用する場合、サーバーに送信されたリクエストを調べる必要がある場合があります。HTTPS 接続を処理する場合、トラフィックを検査する最も簡単な方法は、パススループロキシーを使用することです。

Red Hat build of Quarkus 3.15 では、REST クライアント用の HTTP パススループロキシーを追加できます。このプロキシーを Wireshark のターゲットとして使用して、REST クライアントが送信するリクエストの内容を取得できます。

プロキシーを有効にするには、quarkus.rest-client.<client name>.enable-local-proxy プロパティーを true に設定します。

注記

この機能は、Quarkus REST クライアントでのみ、および開発モードでのみ使用できます。

1.3.7.3. HTTP サーバーの起動時にカスタムロジックを実行する

Red Hat build of Quarkus 3.15 では、Vert.x HTTP が強化されています。これで、HTTP サーバーの起動時にカスタムアクションを実行できるようになりました。

これを行うには、非同期コンテキストと依存性の注入 (CDI) オブザーバーメソッドを宣言します。次に、対応する HTTP サーバーが設定されたホストとポートでリッスンを開始すると、Red Hat build of Quarkus は次の CDI イベントを起動します。

  • io.quarkus.vertx.http.HttpServerStart
  • io.quarkus.vertx.http.HttpsServerStart
  • io.quarkus.vertx.http.DomainSocketServerStart

詳細は、Quarkus の HTTP リファレンス ガイドを参照してください。

1.4. サポートおよび互換性

Red Hat build of Quarkus 3.15 と互換性のあるサポートされる構成とアーティファクトの詳細、およびサポートライフサイクルポリシーの概要は、次の Red Hat カスタマーサポートポータルで参照できます。

1.4.1. 製品の更新とサポートライフサイクルポリシー

Red Hat build of Quarkus では、機能リリースはメジャーリリースまたはマイナーリリースのいずれかになります。

  • メジャーリリースでは、新しい機能が導入され、最低 3 年間のサポートライフサイクル (フルサポートとメンテナンスサポート) が適用されます。
  • マイナーリリースでは、以前のリリースとの互換性に影響を与えない新しい機能や変更 (重大な変更) が導入されます。最新のマイナーバージョンは完全にサポートされ、新しいマイナーバージョンがリリースされてから 6 カ月間、以前のバージョンはメンテナンスサポートの対象となります。

詳細は、Red Hat ライフサイクルおよびサポートポリシー を参照してください。

Red Hat build of Quarkus リリースのバージョン番号は、Quarkus コミュニティープロジェクト の長期サポート (LTS) バージョンと直接一致しています。詳細は、ブログ記事 Long-Term Support (LTS) for Quarkus を参照してください。

Red Hat build of Quarkus 機能リリースのバージョン番号は、ベースとなる Quarkus コミュニティーのバージョンと一致します。

重要

Red Hat は、コミュニティーがリリースするすべてのバージョンに対して、Quarkus の製品版をリリースするわけではありません。Red Hat build of Quarkus 機能リリースの頻度は、約 6 カ月ごとです。

Red Hat build of Quarkus は、後続のバージョンのリリースまで、機能リリースの完全なサポートを提供します。機能リリースが新しいバージョンに置き換えられた場合、Red Hat は、以下のサポートライフサイクルチャート [図 1] に示すように、そのリリースに対してさらに 6 カ月間のメンテナンスサポートを提供し続けます。

図 1 Red Hat build of Quarkus の機能リリースの頻度とサポートライフサイクル

リリースのフルサポートフェーズとメンテナンスサポートフェーズの期間中、Red Hat はバグや Common Vulnerabilities and Exposures (CVE) を修正するための 'service-pack (SP)' 更新と 'マイクロ' リリースも提供します。

Red Hat build of Quarkus の後続の機能リリースの新機能により、基盤となるテクノロジーまたはプラットフォームの依存関係に機能拡張、革新、および変更が導入される可能性があります。後続の機能リリースにおける新機能または変更点の詳細は、新機能、機能拡張、および技術的な変更 を参照してください。

Red Hat build of Quarkus のほとんどの機能は、最新リリースにアップグレードした後も期待どおりに動作し続けますが、特定のシナリオでは、既存のアプリケーションを変更したり、環境や依存関係に追加の設定を実行したりすることが必要になる場合があります。したがって、Red Hat build of Quarkus を最新リリースにアップグレードする前に、必ずリリースノートの 以前のバージョンとの互換性に影響を与える変更 および 非推奨のコンポーネントおよび機能 のセクションを確認してください。

Red Hat build of Quarkus の製品ライフサイクル、タイムライン、サポートポリシーの詳細は、Red Hat カスタマーポータルにログインし、ナレッジベースの記事である Red Hat build of Quarkus のライフサイクルとサポートポリシー を参照してください。

1.4.2. テスト済みおよび検証済みの環境

Red Hat build of Quarkus 3.15 は、Red Hat OpenShift Container Platform のバージョン 4.17、4.12 および Red Hat Enterprise Linux 8.10 で利用できます。

サポートされる構成のリストは、Red Hat カスタマーポータルにログインし、ナレッジベースのソリューション記事 Red Hat build of Quarkus でサポートされる構成 を参照してください。

1.4.3. 開発サポート

Red Hat は、以下の Red Hat build of Quarkus の機能、プラグイン、エクステンション、および依存関係の 開発サポート を提供します。

機能

  • 継続的テスト
  • Dev Services
  • Dev UI
  • ローカル開発モード
  • リモート開発モード

プラグイン

  • Maven Protocol Buffers プラグイン
1.4.3.1. 開発ツール

Red Hat は、Quarkus CLI、Maven および Gradle プラグインなどの Quarkus 開発ツールを使用して、Red Hat build of Quarkus アプリケーションのプロトタイプを作成、開発、テスト、デプロイするための 開発サポート を提供します。

Red Hat は、実稼働環境での Quarkus 開発ツールの使用をサポートしていません。詳細は、Red Hat ナレッジベースの記事 Development Support Scope of Coverage を参照してください。

1.5. 非推奨のコンポーネントおよび機能

このセクションに記載されているコンポーネントおよび機能は、Red Hat build of Quarkus 3.15 で非推奨となりました。これらはこのリリースに含まれており、サポートされています。ただし、これらのコンポーネントと機能は拡張されず、今後削除される可能性があります。

このリリースで非推奨となったコンポーネントと機能のリストは、Red Hat カスタマーポータルにログインし、Red Hat build of Quarkus コンポーネントの詳細の概要 ページを参照してください。

1.5.1. Apache Derby の非推奨化

Apache Derby データベースは Red Hat build of Quarkus 3.15 では非推奨となり、今後のリリースで削除される予定です。Red Hat は、現在のリリースライフサイクル期間中、Apache Derby の 開発サポート を引き続き提供します。

1.5.2. OpenShift Service Binding Operator の非推奨

OpenShift Service Binding Operator は OpenShift Container Platform 4.13 以降では非推奨となり、今後の OpenShift Container Platform リリースでは削除される予定です。

1.6. テクノロジープレビュー

このセクションには、Red Hat build of Quarkus 3.15 でテクノロジープレビューとして使用できるようになった機能とエクステンションを記載しています。

重要

テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat テクノロジープレビュー機能の詳細は、テクノロジプレビュー機能のサポート範囲 を参照してください。

1.6.1. Cert-manager のサポートと TLS 証明書の定期的なリロード

Red Hat build of Quarkus 3.15 では、TLS レジストリーから、または Kubernetes で実行している場合は cert-manager を使用して、TLS 証明書の定期的な自動リロードを設定できます。この機能はテクノロジープレビューとして導入されています。

  • TLS 証明書の定期的な自動リロード

    TLS レジストリーには、ファイルシステムで証明書の変更を定期的にチェックし、リロードする組み込みメカニズムが含まれています。証明書をリロードする頻度を定義する reload-period プロパティーを使用して、リロードの間隔を設定します。

    HTTP サーバーの TLS 証明書ファイル (キーストアとトラストストア) をリロードできます。証明書ファイルは、最初に読み込まれたのと同じロケーションからリロードされ、最後のリロード以降に変更された証明書のみが含まれます。リロードが失敗した場合、HTTP サーバーは以前にリロードされた証明書を引き続き使用します。

    互換性のあるエクステンションを使用すると、TLS レジストリーが Red Hat build of Quarkus プロジェクトに自動的に追加されます。たとえば、アプリケーションが Quarkus REST、gRPC、または Reactive ルートを使用する場合、TLS レジストリーがプロジェクトに自動的に追加されます。

  • cert-manager の使用

    Kubernetes を実行するときに、cert-manager 機能を使用して証明書を自動的に生成、更新、保存できます。cert-manager は、キーストアとトラストストアを使用してシークレットを生成します。TLS レジストリーの設定は、Kubernetes シークレットを使用する場合と同じです。

詳細は、Quarkus TLS レジストリーリファレンス ガイドを参照してください。

1.6.2. リフレクションなしの Jackson シリアライザーを生成する

Red Hat build of Quarkus 3.15 を使用すると、Quarkus REST によってシリアル化された型に対して、より高速なリフレクションなしの Jackson シリアライザーを生成できます。この機能はテクノロジープレビューとして導入されています。

Jackson シリアル化は、リフレクションを通じてオブジェクトをイントロスペクトすることで、オブジェクトを JSON 表現に変換します。この更新により、ビルド時に、JSON に変換するクラスごとに 1 つずつ、Jackson StdSerializer の実装を自動的に生成できるようになります。Red Hat build of Quarkus は、実行時に生成されたシリアライザーを使用して、REST エンドポイントによって返されるオブジェクトの JSON シリアル化を実行します。

デフォルトでは、この機能は有効になっていません。有効にするには、次の設定プロパティーを true に設定します。

quarkus.rest.jackson.optimization.enable-reflection-free-serializers=true

詳細は、Quarkus の「Quarkus REST を使用した REST サービスの作成」ガイドの リフレクションなしの Jackson シリアル化 セクションを参照してください。

1.6.3. Infinispan キャッシュエクステンションの導入

Red Hat build of Quarkus 3.15 では、新しいエクステンション quarkus-infinispan-cache が導入されました。

以前は、Red Hat build of Quarkus では、Quarkus キャッシュのバックエンドとして Caffeine を使用していました。このリリースにより、代わりに Infinispan をキャッシュバックエンドとして使用できるようになりました。

Caffeine がプロセス内で動作するのとは異なり、Infinispan は Quarkus の外部で動作するため、キャッシュのライフサイクルがアプリケーションのライフサイクルから独立しています。さらに、Infinispan は分散システムであるため、1 つのノードに障害が発生しても他のノードの動作には影響しません。

  • Red Hat build of Quarkus 3.15 では、Infinispan コンポーネントがバージョン 15.0 にアップグレードされます。

詳細は、Quarkus の Infinispan キャッシュ ガイドを参照してください。

1.6.4. JDK Flight Recorder エクステンションの導入

Red Hat build of Quarkus 3.15 では、JDK Flight Recorder (JFR) エクステンション quarkus-jfr がテクノロジープレビューとして導入されています。

JFR は、Java アプリケーションのパフォーマンスを監視および診断するための組み込み JVM ツールです。CPU 使用率、メモリー、スレッドアクティビティーなどのイベントデータをキャプチャーします。ボトルネックを特定してパフォーマンスを最適化するには、アプリケーションに JFR を追加し、記録するイベントを設定して、データを分析します。

quarkus-jfr エクステンションは、次のエクステンションと互換性があります。

  • quarkus-rest
  • quarkus-opentelemetry

詳細は、Quarkus の Using Java Flight Recorder ガイドを参照してください。

1.6.5. OpenTelemetry メトリクスデータの作成とレポート

OpenTelemetry (OTel) を使用して、インタラクティブ Web アプリケーションのメトリクスを提供できます。Red Hat build of Quarkus 3.15 では、quarkus-opentelemetry エクステンションを使用して OTel メトリクスデータを作成およびエクスポートできます。

この機能はテクノロジープレビューとして導入されており、デフォルトでは無効になっています。

OTel メトリクスを有効にするには、ビルド時に次の設定を指定します: quarkus.otel.metrics.enabled=true

詳細は、Quarkus の OpenTelemetry メトリクスの使用 ガイドを参照してください。

1.6.6. MongoDB トレーシングの強化

Red Hat build of Quarkus 3.15 では、quarkus-opentelemetry エクステンションとのインテグレーションを導入することで MongoDB トレーシングが強化されています。

この機能拡張はテクノロジープレビューとして導入されており、デフォルトでは無効になっています。

MongoDB でトレーシングを使用するには、プロジェクトに quarkus-opentelemetry エクステンションを追加し、次の設定を指定します。

quarkus.mongodb.tracing.enabled=true

詳細は、Quarkus の MongoDB クライアントの使用 ガイドを参照してください。

1.7. 以前のバージョンとの互換性に影響を与える変更

このセクションでは、以前の製品バージョンでビルドされたアプリケーションの互換性に影響を与える、Red Hat build of Quarkus 3.15 の変更点を説明します。

これらの重大な変更を確認し、アプリケーションを Red Hat build of Quarkus 3.15 に更新した後もアプリケーションが引き続き機能するように必要な手順を実行してください。

アプリケーションプロジェクトを Red Hat build of Quarkus 3.15 に更新するには、アプリケーションを Red Hat build of Quarkus 3.15 に移行する ガイドを参照してください。

1.7.1. 互換性

1.7.1.1. Spring 互換性レイヤーが Spring Boot 3 に合わせて更新される

Red Hat build of Quarkus 3.15 では、最新の Spring Boot 3 API 更新に合わせて quarkus-spring-data-rest-extension がアップグレードされました。

コード内で PagingAndSortingRepository インターフェイスを使用している場合、このアップグレードによって重大な変更が発生する可能性があります。以前は、PagingAndSortingRepositoryCrudRepository を拡張し、カスタムリポジトリーが CrudRepository からメソッドを継承できるようにしていました。

この変更に関連する問題を解決するには、カスタムリポジトリーを更新して、ListCrudRepository または CrudRepository のいずれかを直接拡張する必要があります。この調整により、必要なメソッドへの継続的なアクセスが確保され、更新されたアーキテクチャーとの互換性が維持されます。

1.7.2. コア

1.7.2.1. Dev Services の起動検出の変更

Red Hat build of Quarkus 3.15 では、Dev Services を起動するかどうかを決定する方法が変更されました。

以前は、Dev Services を起動するかを決定するために、Red Hat build of Quarkus は、設定プロパティーが拡張せずに定義されているかをチェックしていました。ただし、この方法では、プロパティーが空の値に展開された場合に問題が発生しました。

現在、Red Hat build of Quarkus は、展開されたプロパティーが空かどうかを最初にチェックします。この変更により、展開されたプロパティーが空になった場合に、以前は起動しなかった Dev Services が予期せず起動する可能性があります。ほとんどの Dev Services は、JDBC URL などの特定のプロパティーが提供されていないときに開始されます。

この変更により、展開されたプロパティーが空にならないように、設定プロパティーを調整してデフォルト値を含める必要があります。

たとえば、quarkus-test-oidc-server コンポーネントを使用して OpenID Connect (OIDC) サーバーをモックし、application.properties ファイルに次の内容が含まれている場合:

%test.quarkus.oidc.auth-server-url=${keycloak.url}/realms/quarkus/
Copy to Clipboard Toggle word wrap

プロパティー値を次のように変更します。

%test.quarkus.oidc.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
Copy to Clipboard Toggle word wrap

このように、keycloak.url が定義されていない場合、デフォルトの replaced-by-test-resource 値により、プロパティーが空の値に拡張されることが防止され、Dev Services が意図せず起動することが回避されます。式で変数が定義されていない場合、式全体が空になります。

注記

この特定の例では、quarkus update を実行することでこの変更が自動的に適用されます。ただし、他のユースケースでは、変更を手動で適用する必要がある場合があります。

1.7.2.2. GraalVM SDK の更新

Red Hat build of Quarkus 3.15 では、GraalVM SDK の依存関係がバージョン 23.1.2 に更新され、以前の見落としが修正され、最新の GraalVM 機能との互換性が確保されています。

GraalVM の代替を使用してエクステンションを開発する場合は、org.graalvm.sdk:graal-sdk 依存関係を org.graalvm.sdk:nativeimage に置き換えます。nativeimage アーティファクトには置換に必要なクラスのみが含まれるため、より合理化されます。

この変更を適用するには、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドに記載されている自動更新を実行します。

重要

JDK 17 の要件: GraalVM SDK 23.1.2 では、実行時に最低でも JDK 17 が必要です。

1.7.2.3. Infinispan 15 コンポーネントのアップグレード

Red Hat build of Quarkus 3.15 では、Infinispan 15 コンポーネントがバージョン 15.0 にアップグレードされます。

以前のリリースでは、Infinispan 15 インテグレーションより前は、次の .Query.java コードを使用してクエリーを実行していました。

@Inject
RemoteCache<String, Book> booksCache;

…

QueryFactory queryFactory = Search.getQueryFactory(booksCache);
Query query = queryFactory.create("from book_sample.Book");
List<Book> list = query.execute().list();
Copy to Clipboard Toggle word wrap

ただし、このリリースでは、RemoteCache@ApplicationScoped プロキシー Bean になり、Search.getQueryFactory によって ClassCastException が発生するため、このコードは機能しなくなりました。

これを解決するには、次のように RemoteCache API の query メソッドを使用して間接参照を削除します。

@Inject
RemoteCache<String, Book> booksCache;

…

Query<Book> query = booksCache.<Book>query("from book_sample.Book");
List<Book> list = query.execute().list();
Copy to Clipboard Toggle word wrap

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.2.4. パッケージ設定の変更

Red Hat build of Quarkus 3.15 では、次のパッケージ関連のプロパティーが改名または変更されました。設定で元のプロパティーを使用した場合、それらは引き続き機能しますが、警告が表示されます。

この変更を適用するには、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドに記載されている自動更新を実行します。

Expand
表1.1 設定内の次のプロパティーを更新する
元の名前現在の名前

quarkus.package.type

JAR ビルドの場合は、有効な JAR タイプ (fast-jaruber-jarmutable-jar、または legacy-jar (非推奨)) を指定した quarkus.package.jar.type を使用します。ネイティブビルドの場合は、quarkus.native.enabledtrue に設定します。ネイティブソースビルドの場合は、quarkus.native.sources-onlytrue に設定します。quarkus.package.jar.enabledfalse に設定して、JAR ビルドを無効にすることもできます。

quarkus.package.create-appcds

quarkus.package.jar.appcds.enabled

quarkus.package.appcds-builder-image

quarkus.package.jar.appcds.builder-image

quarkus.package.appcds-use-container

quarkus.package.jar.appcds.use-container

quarkus.package.compress-jar

quarkus.package.jar.compress

quarkus.package.filter-optional-dependencies

quarkus.package.jar.filter-optional-dependencies

quarkus.package.add-runner-suffix

quarkus.package.jar.add-runner-suffix

注記: この設定プロパティーは通常、uber-JAR をビルドする場合にのみ適用されます。

quarkus.package.user-configured-ignored-entries

quarkus.package.jar.user-configured-ignored-entries

quarkus.package.user-providers-directory

quarkus.package.jar.user-providers-directory

quarkus.package.included-optional-dependencies

quarkus.package.jar.included-optional-dependencies

quarkus.package.include-dependency-list

quarkus.package.jar.include-dependency-list

quarkus.package.decompiler.versionquarkus.package.vineflower.version

代替はありません。これらのプロパティーは無視されるようになりました。

quarkus.package.decompiler.enabledquarkus.package.vineflower.enabled

quarkus.package.jar.decompiler.enabled

quarkus.package.decompiler.jar-directoryquarkus.package.vineflower.jar-directory

quarkus.package.jar.decompiler.jar-directory

quarkus.package.manifest.attributes.*

quarkus.package.jar.manifest.attributes.*

quarkus.package.manifest.sections.*.*

quarkus.package.jar.manifest.sections.*.*

quarkus.package.manifest.add-implementation-entries

quarkus.package.jar.manifest.add-implementation-entries

これらの変更を反映し、ビルドプロセス中の警告メッセージを停止するために、コードファイルと設定ファイルを更新します。

1.7.2.5. ProfileManager と ProfileManager#getActiveProfile が削除される

Red Hat build of Quarkus 3.15 では、ProfileManager が複数のプロファイルを処理しなかったため、非推奨の ProfileManager クラスと ProfileManager#getActiveProfile メソッドが削除されました。

この削除により、次の設定変更が必要になります。

アクティブなプロファイルを取得するには、io.quarkus.runtime.configuration.ConfigUtils#getProfiles API を使用します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.2.6. quarkus-app ディレクトリーは fast-jar パッケージ用にのみ作成されるようになる

以前のリリースでは、生成されるアーティファクトの種類に関係なく、ビルドシステムの出力ディレクトリーに quarkus-app ディレクトリーが常に生成されるという意図しない動作が確認されました。

Red Hat build of Quarkus 3.15 では、ビルドプロセスによって、デフォルトのアーティファクトタイプである fast-jar パッケージに対してのみ quarkus-app ディレクトリーが作成されます。別のアーティファクトタイプ用にビルドを設定すると、quarkus-app ディレクトリーは作成されません。

1.7.2.7. エクステンション開発者に必要な調整

Red Hat build of Quarkus 3.15 では、ランタイムファイルと設定ドキュメントの生成に使用されるエクステンションアノテーションプロセッサーが再開発され、柔軟性が向上しましたが、新しい制約が追加されました。

  • 同じモジュール内で従来の @ConfigRoot と新しい @ConfigMapping アプローチを混在させることは許可されなくなりました。@ConfigMapping のみを使用する場合は、何も変更する必要はありません。
  • 従来の @ConfigRoot の場合は、maven-compiler-plugin 設定に以下を追加して、アノテーションプロセッサーに通知します。

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <annotationProcessorPaths>
                <path>
                    <groupId>io.quarkus</groupId>
                    <artifactId>quarkus-extension-processor</artifactId>
                    <version>${quarkus.version}</version>
                </path>
            </annotationProcessorPaths>
            <compilerArgs>
                <arg>-AlegacyConfigRoot=true</arg>
            </compilerArgs>
        </configuration>
    </plugin>
    Copy to Clipboard Toggle word wrap

    テストクラスに設定アノテーションが存在しない場合、このフラグはテストクラスのコンパイル時に警告をトリガーできます。これを回避するには、default-compile 実行に対してのみアノテーションプロセッサーを有効にします。

    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <executions>
            <execution>
                <id>default-compile</id>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>io.quarkus</groupId>
                            <artifactId>quarkus-extension-processor</artifactId>
                            <version>${quarkus.version}</version>
                        </path>
                    </annotationProcessorPaths>
                    <compilerArgs>
                        <arg>-AlegacyConfigRoot=true</arg>
                    </compilerArgs>
                </configuration>
            </execution>
        </executions>
    </plugin>
    Copy to Clipboard Toggle word wrap

新しい @ConfigMapping インターフェイスへの移行が推奨されますが、スムーズな移行を確実にするために、従来の @ConfigRoot クラスのサポートもしばらく継続される予定です。非推奨化の予定は、後日発表される予定です。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.3. データ

1.7.3.1. 起動時にデータベースのバージョンが検証される

Red Hat build of Quarkus 3.15 では、Hibernate ORM エクステンションは、実行時に接続するデータベースバージョンが、ビルド時に設定されたバージョン以上であることを確認します。この検証は、設定が Red Hat build of Quarkus でサポートされている最小データベースバージョンをターゲットとするデフォルト設定に依存している場合でも実行されます。

この更新の目的は、Hibernate ORM または Red Hat build of Quarkus がサポートしなくなったデータベースバージョンを使用しようとした場合に、アプリケーション開発者に警告することです。サポートされなくなったデータベースバージョンを使用しようとすると、Red Hat build of Quarkus は起動せず、例外がスローされます。

この変更は、次のデータベースバージョンに依存するアプリケーションに影響します。

  • DB2 10.5 より前のバージョン
  • バージョン 10.15.2 より前の Derby
  • バージョン 19.0 より前の Oracle データベース
  • MariaDB バージョン 10.6 より前
  • Microsoft SQL Server バージョン 13 (2016) より前
  • MySQL バージョン 8.0 より前
  • PostgreSQL バージョン 12.0 より前

データベースをサポートされているバージョンにアップグレードできない場合でも、一部の機能が動作しない可能性がありますが、引き続き使用してみることはできます。以前のサポートされていないデータベースバージョンを引き続き使用するには、db-version を明示的に設定し、必要に応じて dialect も設定します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

詳細は、以下の資料を参照してください。

1.7.3.2. Dev Services のデフォルトイメージの更新

Red Hat build of Quarkus 3.15 では、いくつかの Dev Services のデフォルトイメージが次のバージョンに更新されました。

  • PostgreSQL バージョン 16
  • MySQL バージョン 8.4
  • MongoDB バージョン 7.0
  • Elasticsearch バージョン 8.15
  • OpenSearch バージョン 2.16

この変更を適用するには、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドに記載されている自動更新を実行します。

これらのサービスの特定のバージョンまたはディストリビューションを使用するには、アプリケーションプロパティーでデフォルトのコンテナーイメージを手動でオーバーライドする必要があります。

詳細は、Quarkus の「Dev Services for Elasticsearch」ガイドの イメージの設定 セクションを参照してください。

1.7.3.3. Hibernate ORM auto-flush 最適化

Red Hat build of Quarkus 3.15 では、Hibernate Object/Relational Mapping (ORM) auto-flush 機能が最適化されています。

現在、デフォルトでは、Hibernate Query Language (HQL)、Java Persistence Query Language (JPQL)、またはネイティブクエリーを実行する前に、これらの変更がクエリー結果に影響を及ぼす可能性があることを検出した場合、Hibernate ORM は保留中の変更のみをデータベースにフラッシュします。

ほとんどの場合、この最適化により、バッチ処理の効率化など、アプリケーションのパフォーマンスが向上しますが、次の問題が発生する可能性があります。

  • ネイティブクエリーを実行している場合、自動フラッシュでは、クエリーで関連するエンティティータイプを指定する必要があります。詳細は、Hibernate ORM ユーザーガイド を参照してください。
  • 保留中の変更がクエリーで使用される外部キーのターゲットテーブルにのみ影響するが、それらのターゲットテーブルがクエリーで使用されていない場合、自動フラッシュは行われません。

以前の動作に戻して別のデフォルト値を選択する場合は、quarkus.hibernate-orm.flush.mode 設定プロパティーが導入されています。このプロパティーを always に設定します: quarkus.hibernate-orm.flush.mode=always

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

詳細は、以下の資料を参照してください。

1.7.3.4. Hibernate ORM のバージョン 6.6 へのアップグレード

Red Hat build of Quarkus 3.15 では、Hibernate ORM エクステンションが Hibernate ORM 6.6 にアップグレードされ、次の重大な変更が導入されました。

  • 特定の形式の不適切な設定、マッピング、またはクエリーを持つアプリケーションでも例外がスローされる可能性があります。以前は、警告を出すか、誤動作するだけでした。以下に例を示します。

    • @GeneratedValue 識別子または null 以外の値に設定された @Version プロパティーを持つエンティティーをマージするときに、無効な作成試行が失敗するようになりました。以前は、データベースにエンティティーを作成していました。詳細は、Merge versioned entity when row is deleted を参照してください。
    • 同じタイプに @MappedSuperclass@Embeddable の両方を適用することはできなくなりました。詳細は、Explicit validation of annotated class types を参照してください。
  • 予期しない動作を回避するために、一部の機能がデフォルトで有効になっています。たとえば、@Embeddable アノテーションが付けられたサブタイプを持つ Embeddable は、デフォルトで識別子ベースの継承を使用するようになりました。詳細は、Discriminator-based embeddable inheritance のリンクを参照してください。
  • 場合によっては、Java Persistence API (JPA) 仕様に準拠するように動作が変更されました。詳細は、Criteria:jakarta.persistence.criteria.Expression#as(Class) を参照してください。

詳細は、以下の資料を参照してください。

quarkus-hibernate-search-orm-outbox-polling エクステンションは、Hibernate ORM が接続するデータベース内のシステムテーブルに依存しており、Red Hat build of Quarkus 3.15 では、これらのシステムテーブルのスキーマが変更される可能性があります。

このエクステンションを使用する場合は、データベーススキーマを移行する必要があります。データベーススキーマを移行する方法は、"Hibernate Search migration" ガイドの Outbox polling database tables セクションを参照してください。

データベーススキーマを更新できない場合は、次の設定を適用して以前のデフォルトを復元します。

  • デフォルトの永続性ユニットの場合は、以下を指定します。

    • quarkus.hibernate-search-orm.coordination.entity-mapping.agent.uuid-type=char
    • quarkus.hibernate-search-orm.coordination.entity-mapping.outbox-event.uuid-type=char
  • 名前付き永続性ユニットの場合は、以下を指定します。

    • quarkus.hibernate-search-orm.<persistence-unit-name>.coordination.entity-mapping.agent.uuid-type=char
    • quarkus.hibernate-search-orm.<persistence-unit-name>.coordination.entity-mapping.outbox-event.uuid-type=char

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.3.6. Hibernate ORM、Hibernate Reactive、MongoDB の Panache アノテーションプロセッサーが削除される

Red Hat build of Quarkus 3.15 では、Hibernate ORM with Panache、Hibernate Reactive with Panache、または MongoDB with Panache を使用する場合、外部定義エンティティーに io.quarkus:quarkus-panache-common アノテーションプロセッサーが不要になったため、削除されました。

以前のリリースでは、このアノテーションプロセッサーはクラスパスで見つかったときに自動的に実行されていました。ビルドツールでアノテーションプロセッサーのセットをオーバーライドした場合は、明示的に追加する必要がありました。

アノテーションプロセッサーリストから io.quarkus:quarkus-panache-common へのすべての参照を削除します。

この変更を適用するには、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドに記載されている自動更新を実行します。

Maven ユーザー

pom.xml ファイルから io.quarkus:quarkus-panache-common アノテーションプロセッサーを見つけて削除します。

<build>
    <plugins>
        <!-- other plugins -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.13.0</version> <!-- Necessary for proper dependency management in annotationProcessorPaths -->
            <configuration>
                <annotationProcessorPaths>
                    <path>
                        <groupId>io.quarkus</groupId>
                        <artifactId>quarkus-panache-common</artifactId>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
        <!-- other plugins -->
    </plugins>
</build>
Copy to Clipboard Toggle word wrap

Gradle ユーザー

Gradle ビルドの場合は、build.gradle ファイルから io.quarkus:quarkus-panache-common アノテーションプロセッサーを見つけて削除します。

dependencies {
    annotationProcessor "io.quarkus:quarkus-panache-common"
}
Copy to Clipboard Toggle word wrap

1.7.4. メッセージング

1.7.4.1. Quarkus メッセージングの同期メソッドの実行モードの変更

Red Hat build of Quarkus 3.15 では、Quarkus メッセージングエクステンションの 同期メソッド の実行モードがデフォルトでワーカースレッドに設定されるようになりました。以前のバージョンでは、これらのメソッドは Vert.x イベントループ (I/O スレッド) で実行されていました。

たとえば、次の処理メソッドは、Vert.x I/O スレッドではなくワーカースレッドでデフォルトで呼び出されるようになりました。

package org.acme;

import org.eclipse.microprofile.reactive.messaging.Incoming;
import org.eclipse.microprofile.reactive.messaging.Outgoing;

@Incoming("source")
@Outgoing("sink")
public Result process(int payload) {
    return new Result(payload);
}
Copy to Clipboard Toggle word wrap

以前の動作に戻すには、quarkus.messaging.blocking.signatures.execution.mode 設定プロパティーを使用できます。

可能な値は次のとおりです。

  • worker (デフォルト)
  • event-loop (以前の動作)
  • virtual-thread

@Blocking および @NonBlocking アノテーションを使用して、メソッドごとに実行モードを調整することもできます。

package org.acme;

import io.smallrye.common.annotation.NonBlocking;
import org.eclipse.microprofile.reactive.messaging.Incoming;

@Incoming("source")
@NonBlocking
public void consume(int payload) {
    // called on I/O thread
}
Copy to Clipboard Toggle word wrap

メソッドに @NonBlocking アノテーションを付けることで、そのメソッドが Vert.x イベントループ (I/O スレッド) で呼び出されるようになります。

メッセージングメソッドを確認して、必要な実行モードで実行されることを確認し、必要に応じてコードまたは設定を更新します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.4.2. SmallRye Reactive Messaging エクステンションの名前が Quarkus Messaging に変更される

Red Hat build of Quarku 3.15 では、SmallRye Reactive Messaging エクステンションの名前が quarkus-messaging-* に変更され、リアクティブワークロードとブロッキングワークロードの両方をサポートしていることが反映されています。

Maven の再配置が実装されました。この変更を適用するには、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドに記載されている自動更新を実行します。

プロジェクト内の古いエクステンション名のすべてのインスタンスを新しい名前に置き換えます。

名前を変更したエクステンション

以下のエクステンションの名前が変更されました。

Expand
以前の名前新しい名前

quarkus-smallrye-reactive-messaging

quarkus-messaging

quarkus-smallrye-reactive-messaging-amqp

quarkus-messaging-amqp

quarkus-smallrye-reactive-messaging-kafka

quarkus-messaging-kafka

quarkus-smallrye-reactive-messaging-mqtt

quarkus-messaging-mqtt

quarkus-smallrye-reactive-messaging-pulsar

quarkus-messaging-pulsar

quarkus-smallrye-reactive-messaging-rabbitmq

quarkus-messaging-rabbitmq

設定ルートも quarkus.smallrye-reactive-messaging. から quarkus.messaging. に更新されました。必要に応じて、古い設定プロパティーに戻すための自動フォールバックメカニズムが用意されています。

エクステンション開発者への影響

エクステンション開発者の場合は、次のデプロイメント関連のアーティファクトも名前が変更されていることに注意してください。

Expand
以前の名前新しい名前

quarkus-smallrye-reactive-messaging-deployment

quarkus-messaging-deployment

quarkus-smallrye-reactive-messaging-kotlin

quarkus-messaging-kotlin

quarkus-smallrye-reactive-messaging-amqp-deployment

quarkus-messaging-amqp-deployment

quarkus-smallrye-reactive-messaging-kafka-deployment

quarkus-messaging-kafka-deployment

quarkus-smallrye-reactive-messaging-mqtt-deployment

quarkus-messaging-mqtt-deployment

quarkus-smallrye-reactive-messaging-pulsar-deployment

quarkus-messaging-pulsar-deployment

quarkus-smallrye-reactive-messaging-rabbitmq-deployment

quarkus-messaging-rabbitmq-deployment

これらの変更を反映するようにコードと設定を更新します。

1.7.5. 可観測性

1.7.5.1. すべての quarkus.opentelemetry.* 設定プロパティーが削除される

Red Hat build of Quarkus 3.15 では、quarkus.opentelemetry.* namespace の下にあるすべての設定プロパティーが削除されました。

これらのプロパティーは非推奨となり、バージョン 3.2 および 3.8 では下位互換性のために維持されています。これらは 3.15 で削除されたため、アプリケーションを移行するには次の変更を行う必要があります。

  • quarkus.opentelemetry. namespace のすべてのプロパティーを quarkus.otel. namespace に更新して、OpenTelemetry Java 自動設定規則 に合わせます。
  • サンプラープロパティーを quarkus.opentelemetry.tracer.sampler から quarkus.otel.traces.sampler に更新します。
  • parent-based のサンプラープロパティー quarkus.opentelemetry.tracer.sampler.parent-based が削除されました。サンプラーを親ベースとしてマークするには、以下に示すように、quarkus.otel.traces.sampler プロパティーで直接指定します。
Expand
表1.2 元のサンプラー設定から新しいサンプラー設定への値のマッピング
古い値新しい値新しい値 (親ベース)

on

always_on

parentbased_always_on

off

always_off

parentbased_always_off

ratio

traceidratio

parentbased_traceidratio

これらの新しいプロパティーと値を使用するには、コードと設定を更新します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.5.2. OpenTelemetry io.opentelemetry.extension.annotations.WithSpan アノテーションが削除される

Red Hat build of Quarkus 3.15 では、非推奨のアノテーション io.opentelemetry.extension.annotations.WithSpan が削除されました。新しい io.opentelemetry.instrumentation.annotations.WithSpan アノテーションを使用するようにコードを更新します。

この更新との互換性を確保するために、古いアノテーションに依存する設定またはコードを確認して変更してください。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.5.3. OpenTelemetry における HTTP の新しいセマンティック規約

Red Hat build of Quarkus 3.15 では、OpenTelemetry (OTel) SDK がバージョン 1.39.0 に、計装がバージョン 2.5.0 にアップグレードされました。このアップグレードでは、OpenTelemetry HTTP semantic convention stability migration で定義された新しい規則が適用されます。また、非推奨の標準の削除も完了します。これらの規約に依存するコードまたは設定を更新します。

さらに、オプトインがサポートされなくなったため、quarkus.otel.semconv-stability.opt-in システムプロパティーは削除されました。このプロパティーに依存するコードまたは設定を更新します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.5.4. OpenTelemetry REST クライアントのスパン名の変更

Red Hat build of Quarkus 3.15 では、OpenTelemetry (OTel) REST クライアントのスパン名に HTTP リクエストメソッドとパスの両方が含まれるようになりました (例: GET /hello)。以前の REST クライアントのスパン名には、HTTP メソッドのみが含まれていました。

REST クライアントスパンの特定の形式に依存するコードまたは設定を更新します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.5.5. データベース操作によって生成された OpenTelemetry (OTel) スパン名が変更される

Red Hat build of Quarkus 3.15 では、使用するライブラリーの更新により、データベース操作によって生成されるスパン名が変更されました。

たとえば、この変更前は、データベーステーブルを作成するための古いスパン名は DB Query でした。この変更により、新しいスパン名は CREATE TABLE {table_name} になります。

この新しい命名規則により、実行される特定のデータベース操作を正確に反映する、より説明的で意味のあるスパン名が提供されます。

その結果、可観測性ツールでデータベース操作によって生成されたスパンに異なる名前が付けられていることに気付く場合があります。

新しい命名規則に対応するために、古いスパン名に依存するカスタムモニタリング設定、アラート、またはダッシュボードを確認して更新します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

データベーススパンの命名規則とベストプラクティスの詳細は、OpenTelemetry Database Span Semantic Conventions の仕様を参照してください。

1.7.5.6. SmallRye ヘルス設定プロパティーの再配置

以前のバージョンでは、一部の設定プロパティーが quarkus.health 設定ルートの下に誤って配置されていました。

Red Hat build of Quarkus 3.15 では、一貫性を保つために、これらのプロパティーは quarkus.smallrye-health 設定ルートに再配置されました。

  • quarkus.health.extensions.enabled は、quarkus.smallrye-health.extensions.enabled に移動されました。
  • quarkus.health.openapi.included は、quarkus.smallrye-health.openapi.included に移動されました。

Red Hat build of Quarkus 3.15 では、古い設定ルートを持つプロパティーは非推奨となり、今後のリリースで削除される予定です。新しいプロパティーのロケーションを使用するようにコードまたは設定を更新します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.6. セキュリティー

1.7.6.1. キーストアとトラストストアのデフォルト形式が変更される

Red Hat build of Quarkus 3.15 では、Java Keystroke (JKS) はデフォルトのキーストアおよびトラストストア形式ではなくなりました。

代わりに、Red Hat build of Quarkus は、次のようにファイル拡張子に基づいて形式を決定します。

  • .pem.crt.key ファイルは Privacy Enhanced Mail (PEM) 証明書とキーとして読み取られます。
  • .jks.keystore.truststore ファイルは JKS キーストアとトラストストアとして読み取られます。
  • .p12.pkcs12.pfx ファイルは PKCS12 キーストアとトラストストアとして読み取られます。

ファイルでこれらの拡張子のいずれも使用していない場合は、ファイル形式を設定する必要があります。

たとえば、JKS 形式を指定するには、次の設定値を設定します。

  • quarkus.http.ssl.certificate.key-store-file-type=JKS
  • quarkus.http.ssl.certificate.trust-store-file-type=JKS
注記

P12 または PEM 形式を指定するには、JKS の代わりに P12 または PEM を設定します。

1.7.6.2. UserInfo が注入されると OpenID Connect (OIDC) UserInfo の取得が強制される

Red Hat build of Quarkus 3.15 では、io.quarkus.oidc.UserInfo が REST エンドポイントに注入されると、quarkus.oidc.authentication.user-info-required プロパティーが自動的に true に設定されるようになりました。この変更により、UserInfo は通常、使用が意図されたときに注入されるため、このプロパティーを手動で設定する必要がなくなります。

ただし、複数の OIDC テナントがエンドポイントを保護し、一部のテナントが UserInfo をサポートしていない複雑なセットアップでは、この変更によりテナントの初期化が失敗する可能性があります。これは、UserInfo をサポートしていないテナントが UserInfo を取得するように設定されている場合にのみ発生し、そのテナントによって保護されたリクエストが失敗する可能性があります。

マルチテナントセットアップでこのような失敗を回避するには、UserInfo をサポートしていないテナントに対して、テナント固有の quarkus.oidc.<tenant-id>.authentication.user-info-required プロパティーを false に設定します。これにより、UserInfo をサポートするテナントのみがその取得を強制するようになります。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.7. ツール

1.7.7.1. JUnit Pioneer バージョンが強制されなくなる

Red Hat build of Quarkus 3.15 では、Quarkus BOM は org.junit-pioneer:junit-pioneer 依存関係のバージョンを強制しなくなりました。プロジェクトでこの依存関係を使用している場合は、ビルドファイルでそのバージョンを明示的に指定する必要があります。

ビルドの問題を回避するには、pom.xml または build.gradle ファイルでバージョンを定義します。次に例を示します。

pom.xml

<properties>
    ...
    <junit-pioneer.version>2.2.0</junit-pioneer.version>
    ...
</properties>
Copy to Clipboard Toggle word wrap

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.8. Web

1.7.8.2. 非 REST パス上の Quarkus REST フィルター

以前のリリースでは、要求されたリソースが REST リソースでない場合でも、Quarkus REST (旧称 RESTEasy Reactive) フィルターが実行されていました。Red Hat build of Quarkus 3.15 では、その動作が変更されました。現在、Quarkus REST フィルターは REST リソースでのみ実行されます。

注記

Quarkus REST は、Quarkus の共通 Vert.x レイヤーで動作するようにゼロから構築された Jakarta REST (旧称 JAX-RS) 実装です。完全にリアクティブであり、ビルド時の処理に高度に最適化されています。

フィルターを Quarkus 以外の REST リソースに適用する必要がある場合は、次の例に示すように、NotFoundException のカスタム ExceptionMapper を追加することで適用できます。

package io.quarkus.resteasy.reactive.server.test.customproviders;

import jakarta.ws.rs.NotFoundException;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.ext.ExceptionMapper;
import jakarta.ws.rs.ext.Provider;

@Provider
public class NotFoundExeptionMapper implements ExceptionMapper<NotFoundException> {
    @Override
    public Response toResponse(NotFoundException exception) {
        return Response.status(404).build();
    }
}
Copy to Clipboard Toggle word wrap

この ExceptionMapper を使用すると、Quarkus REST は "Not Found" リソースを処理し、フィルターが期待どおりに実行されるようになります。以前は、フィルターは常に非 REST リソースで実行されていたため、他のエクステンションが "Not Found" シナリオを効果的に処理することが困難でした。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.8.3. Qute REST インテグレーションの更新: TemplateInstance はデフォルトでブロックされる

Red Hat build of Quarkus 3.15 では、io.quarkus.qute.TemplateInstance クラスは非ブロッキング型として登録されなくなりました。その結果、Jakarta REST (旧称 JAX-RS) リソースメソッドが TemplateInstance オブジェクトを返す場合、デフォルトでブロッキングと見なされるようになりました。

以前の非ブロッキング動作を復元するには、リソースメソッドに @io.smallrye.common.annotation.NonBlocking アノテーションを適用します。

注記

この変更は、Quarkus REST (旧称 RESTEasy Reactive) エクステンション quarkus-rest を使用するアプリケーションにのみ影響します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

1.7.8.4. RESTEasy Reactive エクステンションの名前が Quarkus REST に変更される

Red Hat build of Quarkus 3.15 では、RESTEasy Reactive エクステンションの名前が quarkus-rest-* に変更され、リアクティブワークロードとブロッキングワークロードの両方をサポートしていることが反映されています。

Maven の再配置が実装されました。この変更を適用するには、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドに記載されている自動更新を実行します。

プロジェクト内の古いエクステンション名のすべてのインスタンスを新しい名前に置き換えます。

新しいエクステンションの名前のほとんどは、次の命名規則に従います。

  • -rest で終わるエクステンションは、Quarkus REST (旧称 RESTEasy Reactive) を使用します。
  • -resteasy で終わるエクステンションは、RESTEasy Classic を使用します。

名前を変更したエクステンション

以下のエクステンションの名前が変更されました。

Expand
以前の名前新しい名前

quarkus-resteasy-reactive

quarkus-rest

quarkus-resteasy-reactive-jackson

quarkus-rest-jackson

quarkus-resteasy-reactive-jaxb

quarkus-rest-jaxb

quarkus-resteasy-reactive-jsonb

quarkus-rest-jsonb

quarkus-resteasy-reactive-kotlin

quarkus-rest-kotlin

quarkus-resteasy-reactive-kotlin-serialization

quarkus-rest-kotlin-serialization

quarkus-resteasy-reactive-links

quarkus-rest-links

quarkus-resteasy-reactive-qute

quarkus-rest-qute

quarkus-resteasy-reactive-servlet

quarkus-rest-servlet

quarkus-rest-client-reactive

quarkus-rest-client

quarkus-rest-client-reactive-jackson

quarkus-rest-client-jackson

quarkus-rest-client-reactive-jaxb

quarkus-rest-client-jaxb

quarkus-rest-client-reactive-jsonb

quarkus-rest-client-jsonb

quarkus-rest-client-reactive-kotlin-serialization

quarkus-rest-client-kotlin-serialization

quarkus-jaxrs-client-reactive

quarkus-rest-client-jaxrs

quarkus-keycloak-admin-client

quarkus-keycloak-admin-resteasy-client

quarkus-keycloak-admin-client-reactive

quarkus-keycloak-admin-rest-client

quarkus-oidc-client-filter

quarkus-resteasy-client-oidc-filter

quarkus-oidc-client-reactive-filter

quarkus-rest-client-oidc-filter

quarkus-oidc-token-propagation

quarkus-resteasy-client-oidc-token-propagation

quarkus-oidc-token-propagation-reactive

quarkus-rest-client-oidc-token-propagation

quarkus-csrf-reactive

quarkus-rest-csrf

quarkus-spring-web-resteasy-classic

quarkus-spring-web-resteasy

quarkus-spring-web-resteasy-reactive

quarkus-spring-web-rest

設定ルートも更新されました:

Expand
古い設定ルート新しい設定ルート

quarkus.resteasy-reactive.*

quarkus.rest.*

quarkus.rest-client-reactive.*

quarkus.rest-client.*

quarkus.oidc-client-reactive-filter.*

quarkus.rest-client-oidc-filter.*

quarkus.oidc-token-propagation-reactive.*

quarkus.rest-client-oidc-token-propagation.*

quarkus.csrf-reactive.*

quarkus.rest-csrf.*

quarkus.oidc-client-filter.*

quarkus.resteasy-client-oidc-filter.*

quarkus.oidc-token-propagation.*

quarkus.resteasy-client-oidc-token-propagation.*

必要に応じて、古い設定プロパティーに戻すための自動フォールバックメカニズムが用意されています。

エクステンション開発者への影響

エクステンション開発者の場合は、次のデプロイメント関連のアーティファクトも名前が変更されていることに注意してください。

Expand
以前の名前新しい名前

quarkus-resteasy-reactive-deployment

quarkus-rest-deployment

quarkus-resteasy-reactive-jackson-common

quarkus-rest-jackson-common

quarkus-resteasy-reactive-jackson-common-deployment

quarkus-rest-jackson-common-deployment

quarkus-resteasy-reactive-jackson-deployment

quarkus-rest-jackson-deployment

quarkus-resteasy-reactive-jaxb-common

quarkus-rest-jaxb-common

quarkus-resteasy-reactive-jaxb-common-deployment

quarkus-rest-jaxb-common-deployment

quarkus-resteasy-reactive-jaxb-deployment

quarkus-rest-jaxb-deployment

quarkus-resteasy-reactive-jsonb-common

quarkus-rest-jsonb-common

quarkus-resteasy-reactive-jsonb-common-deployment

quarkus-rest-jsonb-common-deployment

quarkus-resteasy-reactive-jsonb-deployment

quarkus-rest-jsonb-deployment

quarkus-resteasy-reactive-kotlin-deployment

quarkus-rest-kotlin-deployment

quarkus-resteasy-reactive-kotlin-serialization-common

quarkus-rest-kotlin-serialization-common

quarkus-resteasy-reactive-kotlin-serialization-common-deployment

quarkus-rest-kotlin-serialization-common-deployment

quarkus-resteasy-reactive-kotlin-serialization-deployment

quarkus-rest-kotlin-serialization-deployment

quarkus-resteasy-reactive-links-deployment

quarkus-rest-links-deployment

quarkus-resteasy-reactive-qute-deployment

quarkus-rest-qute-deployment

quarkus-resteasy-reactive-server-common

quarkus-rest-server-common

quarkus-resteasy-reactive-server-spi-deployment

quarkus-rest-server-spi-deployment

quarkus-resteasy-reactive-servlet-deployment

quarkus-rest-servlet-deployment

quarkus-resteasy-reactive-common

quarkus-rest-common

quarkus-resteasy-reactive-common-deployment

quarkus-rest-common-deployment

quarkus-rest-client-reactive-deployment

quarkus-rest-client-deployment

quarkus-rest-client-reactive-jackson-deployment

quarkus-rest-client-jackson-deployment

quarkus-rest-client-reactive-jaxb-deployment

quarkus-rest-client-jaxb-deployment

quarkus-rest-client-reactive-jsonb-deployment

quarkus-rest-client-jsonb-deployment

quarkus-rest-client-reactive-kotlin-serialization-deployment

quarkus-rest-client-kotlin-serialization-deployment

quarkus-rest-client-reactive-spi-deployment

quarkus-rest-client-spi-deployment

quarkus-jaxrs-client-reactive-deployment

quarkus-rest-client-jaxrs-deployment

quarkus-keycloak-admin-client-deployment

quarkus-keycloak-admin-resteasy-client-deployment

quarkus-keycloak-admin-client-reactive-deployment

quarkus-keycloak-admin-rest-client-deployment

quarkus-oidc-client-filter-deployment

quarkus-resteasy-client-oidc-filter-deployment

quarkus-oidc-client-reactive-filter-deployment

quarkus-rest-client-oidc-filter-deployment

quarkus-oidc-token-propagation-deployment

quarkus-resteasy-client-oidc-token-propagation-deployment

quarkus-oidc-token-propagation-reactive-deployment

quarkus-rest-client-oidc-token-propagation-deployment

quarkus-csrf-reactive-deployment

quarkus-rest-csrf-deployment

quarkus-spring-web-resteasy-classic-deployment

quarkus-spring-web-resteasy-deployment

quarkus-spring-web-resteasy-reactive-deployment

quarkus-spring-web-rest-deployment

1.7.8.5. WebJar Locator エクステンションの名前が Web-dependency-locator に変更される

Red Hat build of Quarkus 3.15 では、quarkus-webjars-locator エクステンションの名前が quarkus-web-dependency-locator に変更され、mvnpm (Maven NPM) と importmaps も含まれるように強化されています。

新しいエクステンション名を使用するようにコードと設定を更新します。

この変更は手動で適用する必要があります。これは、Red Hat build of Quarkus 3.15 へのアプリケーションの移行 ガイドで説明されている自動更新ではカバーされません。

詳細は、Quarkus の Web 依存関係ロケーター ガイドを参照してください。

1.8. 既知の問題

Red Hat build of Quarkus 3.15 の制限事項と回避策は、次の既知の問題を確認してください。

1.8.1. Windows 上の Snappy のネイティブライブラリーが見つからない

Red Hat build of Quarkus 3.15 では、Windows 上で Snappy 圧縮ライブラリーを使用するアプリケーションを実行すると、ネイティブライブラリーが見つからないためエラーが発生します。

Windows 環境で Snappy を使用してデータを圧縮しようとすると、次の例のようなエラーメッセージが表示される場合があります。

エラーメッセージの例

...
org.eclipse.microprofile.reactive.messaging.Message$5@1e8dc267 from channel 'test' was not sent to Kafka topic 'test' - nacking message: org.apache.kafka.common.KafkaException: org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Windows and os.arch=x86_64
...
Copy to Clipboard Toggle word wrap

回避策: 現時点では回避策はありません。この問題は今後のリリースで解決される予定です。

1.8.2. Quarkus CLI が Red Hat build of Quarkus TLS プラグインを解決できない

Red Hat build of Quarkus 3.15 では、製品化された Quarkus TLS CLI プラグインが追加されました。現在、開発ツールは maven.repostory.redhat.com から Quarkus CLI プラグインを検出しません。その結果、Quarkus CLI はデフォルトではこのプラグインを見つけることができません。

回避策:

  • Quarkus CLI がプラグインを解決できるようにするには、maven.repository.redhat.com を使用するように JBang を設定します。

    これを行うには、プロジェクトのルートディレクトリー (Quarkus CLI がそのプロジェクトで使用される場合にのみ使用される) またはグローバル設定の ~/.jbang ディレクトリーで、次の内容を含む jbang.properties ファイルを使用します。

    run.repos=central,https://maven.repository.redhat.com/ga/
    Copy to Clipboard Toggle word wrap
  • JBang がすでにインストールされている場合は、次のコマンドを使用してグローバルに設定することもできます。

    jbang config set run.repos central,https://maven.repository.redhat.com/ga/
    Copy to Clipboard Toggle word wrap

詳細は、QUARKUS-5183 およびリンクされた問題を参照してください。

1.8.3. Quarkus CLI が Red Hat build of Quarkus プラットフォームバージョンのみを更新する

Red Hat build of Quarkus 3.15 では、更新コマンドを実行すると、Red Hat build of Quarkus プラットフォーム (com.redhat.quarkus.platform) に含まれる BOM のみが更新されます。これらには、quarkus-camel-bomquarkus-cxf-bom (リリースの一部である場合)、quarkus-qpid-jms-bomquarkus-operator-sdk-bom などの BOM が含まれます。

ただし、このコマンドは、アップストリームコミュニティーリリースに関連付けられた BOM バージョンを更新しません。プロジェクトに Red Hat build of Quarkus とアップストリーム BOM の両方が含まれている場合、この問題により、Quarkus とアップストリーム BOM の組み合わせに互換性がなくなる可能性があります。

更新コマンドの例

$ mvn com.redhat.quarkus.platform:quarkus-maven-plugin:3.15.7.redhat-00001:update -Dmaven.repo.local=<path-to-local-repo>
Copy to Clipboard Toggle word wrap

問題のある pom.xml ファイルの例

<properties>
    <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
    <quarkus.platform.group-id>com.redhat.quarkus.platform</quarkus.platform.group-id>
    <quarkus.platform.version>3.15.7.redhat-00001</quarkus.platform.version>
</properties>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>${quarkus.platform.group-id}</groupId>
            <artifactId>${quarkus.platform.artifact-id}</artifactId>
            <version>${quarkus.platform.version}</version>
        </dependency>
        <dependency>
            <groupId>io.quarkus.platform</groupId>
            <artifactId>quarkus-amazon-services-bom</artifactId>
            <version>3.2.12.Final</version> 
1

        </dependency>
    </dependencies>
</dependencyManagement>
Copy to Clipboard Toggle word wrap

1
バージョンは更新されていません。

回避策: バージョン番号を手動で更新します。

Red Hat build of Quarkus 3.15 では、quarkus/mandrel-for-jdk-21-rhel8:23.1 Red Hat build of Quarkus Native Builder イメージを使用して、FIPS 対応環境内でネイティブモードで RSA 暗号を初期化すると、NullPointerException (NPE) エラーが発生します。

この問題は、FIPS が有効になっているネイティブモードでのみ発生し、FIPS が無効になっているネイティブモードには影響しません。また、FIPS が有効になっている Red Hat build of OpenJDK を使用する場合、JVM モードには影響しません。

注記

FIPS 対応環境ではネイティブモードはサポートされません。

エラーメッセージの例

2024-10-17 10:45:01,931 ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /repro failed, error id: 9b1f5dbb-058b-4c9b-9377-f3acc0a6cba5-1: java.lang.RuntimeException: java.lang.NullPointerException
    at org.acme.ReproResource.init(ReproResource.java:38)
...
Copy to Clipboard Toggle word wrap

回避策:

  1. 存在する場合は、application.properties ファイルから次のプロパティーを削除します。

    quarkus.security.security-providers=SunPKCS11
    Copy to Clipboard Toggle word wrap
  2. 実行時に ReproResource クラスを初期化するには、application.properties ファイルに次のプロパティーを追加します。

    quarkus.native.additional-build-args=--initialize-at-run-time=org.acme.ReproResource
    Copy to Clipboard Toggle word wrap

1.9. Red Hat ビルドの Quarkus 3.15.7

Red Hat build of Quarkus 3.15 では安定性が向上しました。また、ユーザーに大きな影響を与えるバグ修正が含まれています。

Red Hat ビルドの Quarkus の最新の修正を取得するには、利用可能な最新バージョンである 3.15.7 を使用していることを確認してください。

1.9.1. バグ修正

このリリースで解決された問題を確認するには、Red Hat ビルドの Quarkus 3.15.7 のバグ修正 を参照してください。

1.9.2. セキュリティー修正

  • CVE-2025-58056 netty-codec-http:チャンクの拡張機能の誤った解析により、Netty がリクエストに対して脆弱である
  • CVE-2025-58057 netty-codec: Netty の BrotliDecoder が zip bomb スタイルの攻撃を介して DoS に対して脆弱

1.9.3. アドバイザリー

Red Hat ビルドの Quarkus 3.15.7 の使用およびデプロイを開始する前に、リリースに関連する以下のアドバイザリーを確認してください。

1.10. Red Hat ビルドの Quarkus 3.15.6 SP1

Red Hat build of Quarkus 3.15 では安定性が向上しました。また、ユーザーに大きな影響を与えるバグ修正が含まれています。

Red Hat ビルドの Quarkus の最新の修正を取得するには、利用可能な最新バージョンである 3.15.7 SP1 を使用していることを確認してください。

1.10.1. セキュリティー修正

  • CVE-2025-55163 netty-codec-http2: Netty MadeYouReset HTTP/2 DDoS の脆弱性

1.10.2. アドバイザリー

Red Hat ビルドの Quarkus 3.15.6 SP1 の使用およびデプロイを開始する前に、リリースに関連する以下のアドバイザリーを確認してください。

1.11. Red Hat ビルドの Quarkus 3.15.6

Red Hat build of Quarkus 3.15 では安定性が向上しました。また、ユーザーに大きな影響を与えるバグ修正が含まれています。

Red Hat ビルドの Quarkus の最新の修正を取得するには、利用可能な最新バージョンである 3.15.7 を使用していることを確認してください。

1.11.1. バグ修正

このリリースで解決された問題を確認するには、Red Hat ビルドの Quarkus 3.15.6 のバグ修正 を参照してください。

1.11.2. セキュリティー修正

  • CVE-2025-49146 quarkus-bom: チャネルバインディングでの pgjdbc 非セキュアな認証
  • CVE-2025-49574 quarkus-bom: Quarkus によるデータ漏洩

1.11.3. アドバイザリー

Red Hat ビルドの Quarkus 3.15.6 の使用およびデプロイを開始する前に、リリースに関連する以下のアドバイザリーを確認してください。

1.12. Red Hat ビルドの Quarkus 3.15.5

Red Hat build of Quarkus 3.15 では安定性が向上しました。また、ユーザーに大きな影響を与えるバグ修正が含まれています。

Red Hat ビルドの Quarkus の最新の修正を取得するには、利用可能な最新バージョンである 3.15.7 を使用していることを確認してください。

1.12.1. バグ修正

このリリースで解決された問題を確認するには、Red Hat ビルドの Quarkus 3.15.5 のバグ修正 を参照してください。

1.12.2. アドバイザリー

Red Hat ビルドの Quarkus 3.15.5 の使用およびデプロイを開始する前に、リリースに関連する以下のアドバイザリーを確認してください。

1.13. Red Hat build of Quarkus 3.15.4

Red Hat build of Quarkus 3.15 では安定性が向上しました。また、ユーザーに大きな影響を与えるバグ修正が含まれています。

Red Hat ビルドの Quarkus の最新の修正を取得するには、利用可能な最新バージョンである 3.15.7 を使用していることを確認してください。

1.13.1. バグ修正

このリリースで解決された問題を確認するには、Red Hat build of Quarkus 3.15.4 のバグ修正 を参照してください。

1.13.2. セキュリティー修正

  • CVE-2025-2240 io.smallrye/smallrye-fault-tolerance-core: SmallRye フォールトトレランス

1.13.3. アドバイザリー

Red Hat build of Quarkus 3.15.4 の使用とデプロイを開始する前に、このリリースに関連する次のアドバイザリーを確認してください。

1.14. Red Hat build of Quarkus 3.15.3 SP1

Red Hat build of Quarkus 3.15 では安定性が向上しました。また、ユーザーに大きな影響を与えるバグ修正が含まれています。

Red Hat ビルドの Quarkus の最新の修正を取得するには、利用可能な最新バージョンである 3.15.7 を使用していることを確認してください。

1.14.1. セキュリティー修正

  • CVE-2025-1634 io.quarkus:quarkus-resteasy: クライアントがタイムアウトを要求したときに Quarkus RESTEasy Classic でメモリーリークが発生する
  • CVE-2025-24970 io.netty/netty-handler: SSLHandler でパケットが正しく検証されないため、ネイティブ SSLEngine を使用するとネイティブクラッシュが発生する可能性がある
  • CVE-2025-1247 io.quarkus/quarkus-netty: 共有インスタンスによる Quarkus REST エンドポイント要求パラメーターが漏洩する

1.14.2. アドバイザリー

Red Hat build of Quarkus 3.15.3 SP1 の使用とデプロイを開始する前に、このリリースに関連する次のアドバイザリーを確認してください。

1.15. Red Hat build of Quarkus 3.15.3

Red Hat build of Quarkus 3.15 では安定性が向上しました。また、ユーザーに大きな影響を与えるバグ修正が含まれています。

Red Hat ビルドの Quarkus の最新の修正を取得するには、利用可能な最新バージョンである 3.15.7 を使用していることを確認してください。

1.15.1. バグ修正

このリリースで解決された問題を確認するには、Red Hat build of Quarkus 3.15.3 のバグ修正 を参照してください。

1.15.2. セキュリティー修正

  • CVE-2024-12397 io.quarkus.http/quarkus-http-core: Quarkus HTTP Cookie Smuggling
  • CVE-2024-47535 io.quarkus/quarkus-netty: Denial of Service attack on Windows app using Netty

1.15.3. アドバイザリー

Red Hat build of Quarkus 3.15.3 の使用とデプロイを開始する前に、このリリースに関連する次のアドバイザリーを確認してください。

1.16. Red Hat build of Quarkus 3.15.2

Red Hat build of Quarkus 3.15 では安定性が向上しました。また、ユーザーに大きな影響を与えるバグ修正が含まれています。

Red Hat ビルドの Quarkus の最新の修正を取得するには、利用可能な最新バージョンである 3.15.7 を使用していることを確認してください。

1.16.1. バグ修正

このリリースで解決された問題を確認するには、Red Hat build of Quarkus 3.15.2 のバグ修正 を参照してください。

1.16.2. アドバイザリー

Red Hat build of Quarkus 3.15.2 の使用とデプロイを開始する前に、このリリースに関連する次のアドバイザリーを確認してください。

1.17. Red Hat build of Quarkus 3.15.1 に関するアドバイザリー

Red Hat build of Quarkus 3.15.1 の使用とデプロイを開始する前に、このリリースに関連する次のアドバイザリーを確認してください。

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る