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


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

このリリースで導入された重大な変更を確認し、既存のアプリケーションを Red Hat ビルドの Quarkus 2.13 にアップグレードするときに、アップグレード後に引き続き機能することを確認するために、必要なアクションを実行します。

1.7.1. assertj が Red Hat ビルドの Quarkus BOM に含まれなくなりました。

AssertJ バイナリーとの互換性の問題を回避するために、バージョン 2.13 から、AssertJ ライブラリーが Red Hat ビルドの Quarkus BOM アーティファクトから削除されました。以前のリリースでは、古いバージョンの AssertJ でコンパイルされたテストを実行すると、Quarkus BOM に含まれるバージョンで問題が発生していました。

アプリケーションで AssertJ ライブラリーを使用するには、以下の例のように POM で AssertJ のバージョンを手動で定義します。

<dependency>
    <groupId>org.assertj</groupId>
    <artifactId>assertj-core</artifactId>
    <version>3.22.0</version>
</dependency>

今回の更新により、データベース名とログイン認証情報をほとんどのデータベースで同じにします。

PostgreSQL、MariaDB、MySQL、IBM Db2、および H2 データベースは、以下の値を使用します。

  • データベース名: quarkus
  • Username: デフォルトのデータソースまたはデータソースの名前用の quarkus
  • パスワード: quarkus

Dev Service for Microsoft SQL Server はこれらの変更をサポートしていないため、次の値を使用します。

  • データベース名:なし
  • Username: SA
  • Password: Quarkus123

次の設定パラメーターまたは環境変数を使用して、それをサポートする Dev Services のこれらの値をオーバーライドできます。

Expand
 

設定パラメーター

環境変数

データベース名

quarkus.datasource.devservices.db-name

QUARKUS_DATASOURCE_DEVSERVICES_DB_NAME

ユーザー名

quarkus.datasource.devservices.username

QUARKUS_DATASOURCE_DEVSERVICES_USERNAME

Password

quarkus.datasource.devservices.password

QUARKUS_DATASOURCE_DEVSERVICES_PASSWORD

詳細は、「Dev Services for Databases」ガイドの Connect To Database Run as a Dev Service セクションを参照してください。

1.7.3. H2 データベースをバージョン 2.1 にアップグレード

Red Hat ビルドの Quarkus 2.13 では、インメモリー H2 データベースがバージョン 1.4 から 2.1 にアップグレードされました。

このバージョンのアップグレードにより、H2 は uservalue、および timestamp などの新しい予約済みキーワードを追加します。既存の列名でこれらのキーワードをすでに使用する場合は、列名を user_timestamp_、または value_ に変更するなどして、データベースモデルを調整する必要があります。

または、テストのためにコンテナーアプローチに切り替え、H2 データベースの代わりに実稼働環境で使用しているのと同じデータベースを使用する必要がある場合もあります。

H2 に関する詳細は、H2 データベース のドキュメントを参照してください。

1.7.4. Hibernate ORM MariaDB 方言 10.6 に更新されました。

今回の更新により、Hibernate ORM はデフォルトで方言 10.6 に MariaDB イメージを使用するようになりました。

MariaDB 方言 10.3、10.4、または 10.5 を使用している場合は、application.properties ファイルの quarkus.hibernate-orm.dialect プロパティーを quarkus.hibernate-orm.dialect=org.hibernate.dialect.MariaDB103Dialect に設定してデフォルトを上書きします。

詳細は、Quarkus の Hibernate ORM および Java Persistence API (JPA)の使用 ガイドの Dialect 関連の設定 セクションを参照してください。また、Hibernate ORM の集約され た JavaDocs ドキュメントの パッケージ org.hibernate.dialect パッケージの概要も参照してください。

1.7.5. Hibernate Search quarkus.hibernate-search-orm.* 設定プロパティーの変更

この更新により、quarkus.hibernate-search-orm.enabled 設定プロパティーの動作が変更されます。今回の更新以前は、実行時に Hibernate Search が有効化されていました。今回の更新により、ビルド時に Hibernate Search が有効になります。

今回の更新では、実行時に Hibernate Search を有効にする quarkus.hibernate-search-orm.active 設定プロパティーも追加されています。

./src/main/resources/application.properties などの quarkus.hibernate-search-orm.enabled プロパティーが含まれる設定ファイルを確認し、それらを更新してこれらの変更を反映させます。

同様に、この更新により、QUARKUS_HIBERNATE_SEARCH_ORM_ENABLED 環境変数の動作が変更され、QUARKUS_HIBERNATE_SEARCH_ORM_ACTIVE 環境変数が追加されます。必要に応じて、QUARKUS_HIBERNATE_SEARCH_ORM_ENABLED 環境変数への参照を更新して、これらの変更を反映します。

詳細は、Quarkus "Hibernate Search" の Main Configuration セクションを参照してください。

1.7.6. HTTP 圧縮設定がビルド時に修正されるようになりました

Red Hat ビルドの Quarkus 2.13 では、HTTP 圧縮設定の動作が変更されました。今回の更新により、HTTP 圧縮設定はビルド時に設定として配信され、起動時にこれらの設定を上書きすることはできなくなりました。ビルド時に HTTP 圧縮設定を指定すると、要件に応じてアプリケーション設定をさらに最適化できます。

注記

すべての HTTP 応答がデフォルトで圧縮される訳ではありません。quarkus.http.enable-compression 設定プロパティーを true に設定すると、HTTP 圧縮サポートを有効にできます。クライアントが HTTP 圧縮に対応していない場合、応答本文は圧縮されません。

HTTP 圧縮更新の詳細については、新機能、機能拡張、および技術変更 セクションを参照してください。以下の HTTP 更新では、HTTP 応答は設定プロパティーの設定とメディアタイプに基づいて圧縮 されます。

RESTEasy Reactive、リアクティブルート、および静的リソースの場合、HTTP レスポンスは、Content-Type ヘッダーが設定され、値が quarkus.http.compress-media-types プロパティーを使用して設定される圧縮メディアタイプである場合にのみ圧縮されます。

デフォルトでは、次のメディアタイプが圧縮されます。

  • text/html
  • text/plain
  • text/xml
  • text/css
  • text/javascript
  • application/javascript

1.7.8. @InjectMock アノテーションに追加の修飾子が必要になる場合があります

Red Hat ビルドの Quarkus 2.13 では、quarkus-junit5-mockito エクステンションで利用可能な @InjectMock アノテーションは、javax.enterprise.inject.spi.BeanManager#getBeans () メソッドを内部で使用して、@InjectMock インジェクションポイントの対象となる Bean のセットを取得します。

今回の更新以前は、BeanManager#getBeans () メソッドの問題により、修飾子を指定しないと、必要な型に一致する Bean はインジェクションの対象でした。その結果、@Default 以外の修飾子で Bean のモックをインジェクトし、この修飾子を指定しなかったテストが成功しました。

今回の更新により、モックが @Default 以外の修飾子を宣言する Bean が宣言される場合は、修飾子を指定する必要があります。その結果、@Default 以外の修飾子を持つ Bean のモックを注入すると、テストに失敗しますが、この修飾子の値は指定しません。

1.7.9. quarkus.datasource.devservices が quarkus.datasource.devservices.enabledに置き換えられました。

Red Hat ビルドの Quarkus 2.7 で非推奨となった quarkus.datasource.devservices 設定プロパティーが削除されました。

リレーショナルデータベースの Dev Services を無効にするには、代わりに quarkus.datasource.devservices.enabled プロパティーを使用します。

詳細は、Quarkus "Dev Services for Databases" の Enabling / Disabling Dev Services for Database セクションを参照してください。

非推奨の quarkus.http.allow-forwarded および quarkus.http.proxy-address-forwarding 設定プロパティーが削除されました。

リバースプロキシーの背後で Quarkus を実行するには、代わりに quarkus.http.proxy.allow-forwarded および quarkus.http.proxy.proxy-address-forwarding プロパティーを使用します。

quarkus.http.proxy 設定プロパティーは、削除されたプロキシー関連のプロパティーよりもはるかに多くの機能を提供します。

詳細は、Quarkus "HTTP Reference" の Running behind a reverse proxy セクションを参照してください。

1.7.10.1. quarkus.http.root-path @TestHTTPResourceの先頭に付けられた

この更新により、quarkus.http.root-path 設定プロパティーの値が @TestHTTPResource アノテーションの URI 値に追加されます。

@TestHTTPResource アノテーションを使用して URI をテストに注入すると、quarkus.http.root-path 設定プロパティーの値が URI よりも優先されます。

たとえば、Hello World アプリケーションで @ApplicationPath ("/hello")@TestHTTPResource ("index.html") を定義し、quarkus.http.root-path=/root を設定すると、アプリケーションの名前を http://localhost:8080/root/hello と設定します。

詳細は以下を参照してください。

1.7.11. Red Hat は Mandrel 22.3 用の Java 11 ベースのイメージを提供しません。

今回の更新により、Red Hat は Mandrel 22.3 用の Java 11 ベースの Red Hat ビルドの Quarkus ネイティブビルダーイメージを提供しません。

アプリケーションをネイティブ実行可能ファイルにコンパイルするには、以前の Java 11 ベースのイメージを、Java 17 ベースの Red Hat ビルドの Quarkus ネイティブビルダーイメージ に置き換えます。

Java 17 ベースの Red Hat ビルドの Quarkus ネイティブビルダーイメージは、ほとんどの Java 11 アプリケーションと互換性があり、ほとんどの実稼働環境用のネイティブ実行可能ファイルビルドで機能します。ただし、まれに、ビルドが失敗する場合があります。このような場合の 1 つは、ネイティブ実行可能ファイルのビルドが増分またはマルチステージのビルドプロセスの一部である場合です。

注記

Red Hat は、Quarkus コミュニティーの Java 11 ベースの Mandrel 22.3 ベースイメージのテクニカルサポートを提供しません。

1.7.13. quarkus-undertow-websockets エクステンションの削除

Red Hat ビルドの Quarkus 2.13 では、コミュニティーバージョンの io.quarkus:quarkus-undertow-websockets エクステンションが削除されました。Red Hat は、Red Hat ビルドの Quarkus 2.7 ライフサイクルの終了時にのみ、バグ修正とサポートを提供します。io.quarkus:quarkus-undertow-websockets エクステンションの代わりに、Eclipse Vert.x の WebSockets プロトコル実装に基づく WebSockets Client (io.quarkus:quarkus-websockets-client)および WebSockets Server (io.quarkus:quarkus-websockets)エクステンションを使用できます。

詳細は、Quarkus Using WebSockets ガイドの Creating the Maven project セクションを参照してください。

1.7.15. RESTEasy Reactive が新しいデフォルトの REST レイヤーです。

Red Hat ビルドの Quarkus を使用して新しいアプリケーションを作成すると、quarkus-resteasy ではなく、quarkus-resteasy-reactive プロパティーがデフォルトで選択されるようになりました。

RESTEasy Reactive は、従来のブロックワークロードとリアクティブワークロードの両方をサポートします。エンドポイントのメソッドの戻りタイプに応じて、RESTEasy Reactive は適切なパラダイムを選択します。

以下に例を示します。

  • MyEntity を返すと、エンドポイントがブロックされます。
  • Uni<MyEntity> を返すと、エンドポイントをリアクティブにします。

詳細は、Quarkus Writing REST Services with RESTEasy Reactive ガイドを参照してください。

今回の更新以前は、@GraphQLApi エンドポイントに割り当てられたデフォルトのスコープは @Dependent でした。今回の更新により、REST エンドポイントに合わせて、スコープアノテーションを明示的にエンドポイントに追加しない限り、@GraphQLApi@Singleton Bean として機能します。

1.7.17. SmallRye Stork エクステンション設定プロパティーが Quarkus namespace に移動

Red Hat ビルドの Quarkus 2.13 では、quarkus. 名前空間で SmallRye Stork エクステンションのプロパティーを設定する必要があります。

この更新の前は、stork.my-service 接頭辞を持つプロパティーを使用して、SmallRye Stork エクステンションを設定していました。今回の更新により、これらのプロパティーの前に quarkus. stork.my-service などのように付ける必要があります。

以下の例は、利用可能な SmallRy Stork 設定プロパティーの一部を使用した SmallRye Stork エクステンションの設定例を示しています。

  • quarkus.stork.my-service.service-discovery.type=consul
  • quarkus.stork.my-service.service-discovery.consul-host=localhost
  • quarkus.stork.my-service.service-discovery.consul-port=8500
  • quarkus.stork.my-service.load-balancer.type=least-response-time
  • quarkus.stork.my-service.load-balancer.use-secure-random=true

SmallRye Stork とその設定プロパティーの詳細は、Quarkus コミュニティー または SmallRye Stork ドキュメントの すべての設定オプション を参照してください。

1.7.18. 一部の OpenTracing ライブラリーコードが SmallRye OpenTracing に移動しました

非推奨の OpenTracing 機能に関連する OpenTracing ライブラリーコードは、コードが OpenTracing コミュニティーによって維持されなくなったため、SmallRye OpenTracing リポジトリーに移行されました。このコードの Java パッケージは変更しましたが、コードは変わりません。

ただし、移行されたコードはプライベート API で設定され、これらの API の一部を使用していない場合は、この変更はアプリケーションには影響しません。変更が破損しないようにするには、OpenTracing ライブラリーの上に構築された API を使用します。

この変更は、opentracing-contrib ライブラリーからパブリックでない API を使用するアプリケーションにのみ影響します。org.eclipse.microprofile.opentracing.Traced アノテーションで API を使用するユーザーは影響を受けません。

注記

今後の Quarkus バージョンで、OpenTracing テクノロジーが OpenTelemetry に置き換えることが予想されます。Quarkus アプリケーションでのトレースと Telemetry に推奨されるテクノロジーが OpenTelemetry になりました。

1.7.19. OIDC web-app アプリケーションのパス固有の認証のサポートが追加されました。

Red Hat ビルドの Quarkus 2.13 では、OpenID Connect (OIDC) Web アプリケーション用のパスベースの認証が導入されました。

今回の更新により、Quarkus アプリケーションが OIDC 認可コードメカニズムを含む複数の認証メカニズムを組み合わせる場合は、quarkus.http.auth.permission.<policy-name>.auth-mechanism=code ではなく、application.property ファイルで quarkus.http.auth.permission.<policy-name>.auth-mechanism= code プロパティーを指定する必要があります。

この更新の前は、このような JWT ベアラートークンと OIDC 認可コードフローメカニズムの組み合わせはできませんでした。

たとえば、quarkus-smallrye-jwt エクステンションを使用して、/management エンドポイントへの要求を認証するための JWT bearer-token 認証メカニズムと、/web-app エンドポイントへの要求を認証する OIDC 承認コードフローメカニズムを提供する場合は、次のプロパティーを設定します。

  • quarkus.http.auth.permission.webapp.paths=/web-app
  • quarkus.http.auth.permission.webapp.policy=authenticated
  • quarkus.http.auth.permission.webapp.auth-mechanism=code
  • quarkus.http.auth.permission.management.paths=/management
  • quarkus.http.auth.permission.management.policy=authenticated
  • quarkus.http.auth.permission.management.auth-mechanism=bearer

今回の更新以前は、その クライアントでプログラム javax.ws.rs.client.Client Client ()フィルターを作成する際に、OpenTelemetry Tracing が javax.ws.rs.client.ClientBuilder.newClient () クライアントの Spans を作成できるようにする必要がありました。

Red Hat ビルドの Quarkus 2.13 では、プログラムまたは注入された REST クライアントの作成時に、ユーザーが OpenTelemetryClientFilter を明示的に登録する必要がないソリューションが導入されています。REST Client Reactive が使用する基盤となる Vert.x クライアントは、OpenTelemetry インストルメンテーションを追加し、クライアントの作成を簡素化するようになりました。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る