1.3. 新機能、機能拡張、および技術的な変更
このセクションでは、Red Hat build of Quarkus 3.2 に導入された新機能、機能拡張、および技術的な変更について概説します。
1.3.1. クラウド リンクのコピーリンクがクリップボードにコピーされました!
1.3.1.1. Qute テンプレーティングエンジンに導入されたキャッシュされたセクション機能 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、Qute テンプレーティングエンジンが強化され、めったに変更されないテンプレートの部分をキャッシュできる機能が提供され、効率の向上に役立ちます。
セクション単位でのキャッシュ機能を使用するには、quarkus-cache エクステンションを使用します。これにより、CacheSectionHelper が自動的に登録および設定されます。
詳細は、QUTE REFERENCE GUIDE の Cached Section を参照してください。
1.3.1.2. Kubernetes Client のバージョン 6.7.2 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus に含まれる Kubernetes Client は、バージョン 5.12 から 6.7.2 にアップグレードされました。このアップグレードでは、機能が強化され、クラウドネイティブアプリケーション開発のサポートが改善されます。詳細は、Kubernetes client - Migration from 5.x to 6.x ガイドを参照してください。
1.3.2. Core リンクのコピーリンクがクリップボードにコピーされました!
1.3.2.1. ビルド時の分析 (ユーザーテレメトリー) のサポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 には、ビルド時分析機能が導入されています。この機能は、アプリケーションの実行時ではなく、アプリケーションのビルド時に、Red Hat build of Quarkus の使用状況に関する情報を提供します。
使用状況分析レポートは、使用されているオペレーティングシステム、JAVA バージョン、ビルドシステム、エクステンションなどの匿名情報を提供します。使用状況分析は、Red Hat build of Quarkus がどのように使用され、どのように改善できるかをより詳細に Red Hat が理解する上で役立ちます。
オプトインするには、Red Hat build of Quarkus を開発モードで実行します。初回の実行時に、匿名のビルド時データを Quarkus コミュニティーに提供することにオプトインするかどうかを尋ねられます。このデータは、実稼働環境などで Red Hat build of Quarkus アプリケーションを実行する場合には収集されません。
詳細は、Quarkus コミュニティーの Quarkus Usage Analytics ガイドを参照してください。収集されるデータの詳細は、Telemetry Data Collection Notice を参照してください。
1.3.2.2. Infinispan アノテーションキャッシュのサポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus Infinispan エクステンションでは、宣言型キャッシュ API がサポートされるようになり、CDI 管理の Bean でアノテーションベースのキャッシュ制御が可能になります。
1.3.2.3. 管理ネットワークインターフェイスインテグレーション リンクのコピーリンクがクリップボードにコピーされました!
管理ネットワークインターフェイスは、ヘルスチェックやメトリクスなどのさまざまな管理タスクにエンドポイントを提供するなど、アプリケーションを管理および監視するための専用チャネルです。
1.3.2.4. quarkus-cache 設定のほとんどがランタイムになる リンクのコピーリンクがクリップボードにコピーされました!
quarkus-cache エクステンション設定のほとんどはランタイムになっており、アプリケーションの起動時にキャッシュ設定を定義できるようになりました。特定の設定プロパティーは、API 呼び出しを通じて実行時に変更できます。
1.3.2.5. 複数の SMTP メーラーのサポート リンクのコピーリンクがクリップボードにコピーされました!
一部のアプリケーションでは、メールを別の SMTP サーバー経由で送信する必要があります。Red Hat build of Quarkus 3.2 では、複数のメーラーを設定し、複数の SMTP サーバーを使用してメールを送信できるようになりました。
詳細は、MAILER REFERENCE GUIDE の Multiple mailer configurations セクションを参照してください。
1.3.2.6. 開発 UI の刷新 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、開発中のアプリケーションコンポーネントの管理とモニタリングを合理化するためのグラフィカルインターフェイスなど、開発 UI に大幅な変更と機能拡張が導入されています。これは、効率的なログナビゲーション、メトリクス追跡、エンドポイント管理に役立ちます。
1.3.2.7. スケジューラーのプログラム API リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 リリースでは、新しいスケジューラープログラム API を使用して、プログラムでジョブをスケジュールできます。
プログラムでジョブをスケジュールするには、io.quarkus.scheduler.Scheduler を注入します。プログラム的にスケジュールされたジョブを削除することもできます。
詳細は、Quarkus の SCHEDULER REFERENCE GUIDE の Programmatic scheduling セクションを参照してください。
1.3.2.8. 更新ツールインテグレーション リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 更新ツールは、最新の Red Hat build of Quarkus バージョンに一致するようにプロジェクトの依存関係、設定、およびコードを自動的に更新することで、アプリケーションのアップグレードを簡素化します。移行プロセスを合理化し、互換性を確保して、最新の状態を維持するために必要な労力を軽減します。
このツールを使用するには、対話型プロンプトに従ってプロジェクトディレクトリーで quarkus update コマンドを実行し、アプリケーションを更新します。
Quarkus CLI は開発モードのみを対象としています。Red Hat は、実稼働環境での Quarkus CLI の使用をサポートしていません。
詳細は、Red Hat build of Quarkus バージョン 3.2 へのアプリケーションの移行 ガイドを参照してください。
1.3.3. Data リンクのコピーリンクがクリップボードにコピーされました!
1.3.3.1. Hibernate ORM エクステンションに自動 IN 句パラメーターパディングが組み込まれる リンクのコピーリンクがクリップボードにコピーされました!
この 3.2 リリースでは、Hibernate Object-Relational Mapping (ORM) エクステンションが変更され、デフォルト設定として自動 IN 句パラメーターパディングが組み込まれました。この改善により、IN 句を組み込んだクエリーのキャッシュ効率が向上します。
quarkus.hibernate-orm.query.in-clause-parameter-padding のプロパティー値を false に設定すると、以前の機能に戻してこの機能を非アクティブにできます。
1.3.3.2. Hibernate ORM のバージョン 6.2 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus には Hibernate ORM バージョン 6.2 が含まれ、サポートされるようになったため、メインの永続層が大幅にアップグレードされました。
Hibernate ORM 6.2 は、バージョン 5.6 と比較して多くの改良および新機能を提供しますが、いくつかの破壊的変更もあります。
詳細は、以下を参照してください。
- 以前のバージョンとの互換性に影響を与える変更
- Quarkus の Migration Guide 3.0: Hibernate ORM 5 to 6 migration ガイド
- Quarkus の Using Hibernate ORM and Jakarta Persistence ガイド
1.3.3.3. Hibernate Search のバージョン 6.2 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、Hibernate Search がバージョン 6.2 にアップグレードされました。
Hibernate Search は、Red Hat build of Quarkus アプリケーションにインデックス作成機能と全文検索機能を提供します。バージョン 6.2 では、機能拡張、新機能のほか、Red Hat build of Quarkus アプリケーションがgeo-point フィールドのデフォルト値を処理する方法にいくつかの注目すべき変更を導入しています。
詳細は、以前のバージョンとの互換性に影響する変更点 を参照してください。
Hibernate Search の新機能に関する詳細は、Hibernate Search のリリースノートを参照してください。
1.3.3.4. Oracle JDBC ドライバーのバージョン 23.2.0.0 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Oracle JDBC ドライバーが、バージョン 23.2 にアップグレードされました。Oracle DB を使用しているお客様は、古いバージョンの Oracle JDBC ドライバーが最新の Oracle DB リリースと必ずしも互換性があるわけではないことに注意してください。
1.3.3.5. リアクティブデータソースによる CredentialsProvider 値のサポート リンクのコピーリンクがクリップボードにコピーされました!
リアクティブデータソースで CredentialsProvider 値を変更できるようになり、セキュリティーと設定可能性が強化されました。これにより、認証用の認証情報をリアルタイムで更新できるため、アプリケーションの可用性を維持し、運用の中断を最小限に抑えながら、データアクセスのセキュリティーが確保されます。
1.3.4. ネイティブ リンクのコピーリンクがクリップボードにコピーされました!
1.3.4.1. Red Hat Build of Quarkus ネイティブビルダーのバージョン 23 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
バージョン 23 では、パフォーマンスの向上に加えて、デバッグ情報の生成の改善、Java Flight Recorder (JFR) イベントのサポートの拡張、および JFR イベントストリームの実験的なサポートが行われています。また、Java Management Extensions (JMX) の実験的なサポートも導入されています。
環境変数は、新しいネイティブイメージオプション -E<env-var-key>[=<env-var-value>] を通じて、Mandrel に渡す必要があります。
Red Hat Build of Quarkus ネイティブビルダーは、デフォルトで x86-64-v3 (AMD64 アーキテクチャー上のプロセッサー固有のアプリケーションバイナリーインターフェイス (psABI)) をターゲットにするようになり、古いアーキテクチャーがより互換性のあるネイティブイメージにコンパイルするための新しい -march オプションへのサポートを導入しました。
詳細は、Red Hat build of Quarkus コミュニティーの "NATIVE REFERENCE GUIDE" の記事 Work around missing CPU features を参照してください。
1.3.5. 可観測性 リンクのコピーリンクがクリップボードにコピーされました!
1.3.5.1. OpenTelemetry SDK 自動設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus では、OpenTelemetry SDK 自動設定が導入され、分散トレースと可観測性のインテグレーションが簡素化されます。Red Hat build of Quarkus エクステンションに基づいて OpenTelemetry SDK セットアップを自動化し、手動設定を排除して、トレースとメトリクスの収集を最適化します。
1.3.6. セキュリティー リンクのコピーリンクがクリップボードにコピーされました!
1.3.6.1. テストの依存関係でのカスタムクレーム型のサポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、quarkus-test-security-jwt および quarkus-test-security-oidc テストの依存関係が強化され、カスタムクレーム型をサポートします。
この更新により、カスタム JWT トークンクレームを使用するアプリケーションのテストカバレッジを改善できます。
1.3.6.2. OpenID Connect (OIDC) フロントチャネルログアウトのサポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus に OIDC フロントチャネルログアウト サポートが組み込まれたことで、すでにサポートされている OIDC バックチャネルログアウト が補完され、分散環境で複数のサービスにわたってユーザーのログアウトが可能になります。
1.3.6.3. OpenID Connect トークン検証のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、OIDC トークン検証プロセスを調整するオプションを利用できます。このカスタマイズにより、署名検証の前に、Microsoft Azure などの OIDC プロバイダーによって通常発行されるレガシートークンヘッダーの前処理が可能になります。
1.3.6.4. セキュリティーアノテーションはメタアノテーションとして使用可能 リンクのコピーリンクがクリップボードにコピーされました!
メタアノテーションで @TestSecurity と @JwtSecurity を組み合わせることができます。以下に例を示します。
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD })
@TestSecurity(user = "userOidc", roles = "viewer")
@OidcSecurity(introspectionRequired = true,
introspection = {
@TokenIntrospection(key = "email", value = "user@gmail.com")
}
)
public @interface TestSecurityMetaAnnotation {
}
この組み合わせは、複数のテスト方法でセキュリティー設定の同じセットが必要な場合に便利です。
1.3.6.5. 静的テナントの簡素化された OIDC マルチテナント解決 リンクのコピーリンクがクリップボードにコピーされました!
application.properties ファイルで複数のテナントを設定する OIDC マルチテナントセットアップでは、TenantResolver インターフェイス実装を登録してテナント識別子を解決する方法を指定する必要があります。
Red Hat build of Quarkus 3.2 では、規則ベースの静的テナント解決が導入され、現在の HTTP リクエスト URL の最後のパスセグメントが、テナント識別子として使用されます。たとえば、リクエスト URL が /keycloak で終わる場合、テナント ID が keycloak である静的テナント設定が選択されます。
このオプションを使用すると、単純なマルチテナント設定のボイラープレートコードを削減できます。
詳細は、Quarkus の USING OPENID CONNECT (OIDC) MULTI-TENANCY ガイドの Configuring the application セクションを参照してください。
1.3.6.6. @RolesAllowed での SmallRye 設定プロパティーの拡張 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus @RolesAllowed アノテーションは、設定プロパティーを通じて動的なロール名をサポートし、アクセス制御を強化します。このアノテーションは、SecurityIdentity (ユーザーロール) に基づいてアクセスを制限し、コードを変更することなく、適合および設定可能なアクセス制御を提供します。
1.3.7. Standards リンクのコピーリンクがクリップボードにコピーされました!
1.3.7.1. Eclipse MicroProfile 6 インテグレーション リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、Eclipse MicroProfile 6 のインテグレーションが導入され、可観測性、OpenAPI、および JWT を向上させる最新の仕様でマイクロサービス開発を強化します。
1.3.7.2. Jakarta EE 10 インテグレーション リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、Jakarta EE 10 インテグレーションが導入され、開発者は現在の API と仕様にアクセスできます。
1.3.8. ツール リンクのコピーリンクがクリップボードにコピーされました!
1.3.8.1. Apache Maven バージョン 3.9 のサポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 には Maven バージョン 3.9 のサポートが追加され、開発者は最新の Maven 機能を使用できます。Maven バージョン 3.8.6 以降は引き続きサポートされます。
1.3.8.2. デプロイツールインテグレーション リンクのコピーリンクがクリップボードにコピーされました!
Quarkus の quarkus deploy コマンドを使用すると、さまざまなクラウドプラットフォーム、コンテナー、サーバーレス環境へのアプリケーションのデプロイが容易になります。最適化されたコンテナーイメージを生成し、アプリケーションをターゲットプラットフォームに適応させて、効率的かつ信頼性の高いデプロイメントを実現します。
このツールを使用するには、quarkus deploy を実行してから、必要なデプロイメントターゲットと設定オプションを実行することで、手動設定を必要とせずにシームレスなアプリケーションのデプロイメントが可能になります。
1.3.8.3. コンテナーイメージのビルドとプッシュ向けの Red Hat build of Quarkus CLI 機能拡張 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、コンテナーイメージのビルドとプッシュが簡単になりました。詳細は、BUILDING QUARKUS APPS WITH QUARKUS COMMAND LINE INTERFACE ガイドの Container images セクションを参照してください。
1.3.8.3.1. コンテナーイメージのビルド リンクのコピーリンクがクリップボードにコピーされました!
たとえば、Docker イメージをビルドしてコンテナーイメージのエクステンションを追加または削除するために pom.xml プロジェクト設定を調整する必要がなくなりました。代わりに、次のコマンドを実行するだけで済みます。
quarkus image build docker
1.3.8.3.2. コンテナーイメージのプッシュ リンクのコピーリンクがクリップボードにコピーされました!
image push コマンドは、image build コマンドに似ており、イメージをターゲットコンテナーレジストリーにプッシュするためのいくつかの基本オプションを提供します。
quarkus image push --registry=<image registry> --registry-username=<registry username> --registry-password-stdin
Quarkus CLI は開発モードのみを対象としています。Red Hat は、実稼働環境での Quarkus CLI の使用をサポートしていません。
Red Hat build of Quarkus CLI イメージコマンドの詳細なリストとその使用方法については、次のリソースを参照してください。
1.3.9. Web リンクのコピーリンクがクリップボードにコピーされました!
1.3.9.1. SmallRye GraphQL のフェデレーションサポート リンクのコピーリンクがクリップボードにコピーされました!
Quarkus の SmallRye GraphQL は、Apollo Federation 2 subgraph 公開をサポートするようになり、フェデレーテッド GraphQL スキーマの作成が可能となりました。これにより、個別にデプロイされた GraphQL サービスからデータを集約することで統合された GraphQL API が強化され、複雑なアプリケーション開発が簡素化されます。
1.3.9.2. Panache エクステンションを使用した REST データ内の名前付きクエリーによるフィルタリング リンクのコピーリンクがクリップボードにコピーされました!
Panache エクステンションを備えた Red Hat build of Quarkus の REST データでの名前付きクエリーによるフィルタリングは、事前定義されたクエリーを REST エンドポイントに適用することでデータ取得を合理化し、REST API を介した効率的なデータベース操作のためのパフォーマンスとコードの保守性を強化します。
エンティティーをリストする場合、@NamedQuery アノテーションにより、エンティティーに定義された名前付きクエリーでフィルタリングできます。
名前付きクエリーの例
@Entity
@NamedQuery(name = "Person.containsInName", query = "from Person where name like CONCAT('%', CONCAT(:name, '%'))")
public class Person extends PanacheEntity {
String name;
}
次に、生成されたリソースを使用してエンティティーをリストする際に、クエリーパラメーター namedQuery を設定できます。http://localhost:8080/people?namedQuery=Person.containsInName&name=ter を呼び出すなど、目的のクエリーの名前を使用します。これにより、名前に ter を含むすべての人物が取得されます。
1.3.9.3. gRPC 例外処理 リンクのコピーリンクがクリップボードにコピーされました!
gRPC 例外処理により、gRPC サービスでのより堅牢なエラー管理が容易になり、アプリケーションの信頼性と gRPC ベースのアプリケーションのデバッグが強化されます。
この機能により、エラーメッセージをトレーラーとして渡すことができます。gRPC クライアントは、問題が発生した場合、一般的な "サーバー例外" ではなく、サーバーから特定のエラーメッセージを受け取ります。
1.3.9.4. gRPC エクステンションの Vert.x gRPC への移行 リンクのコピーリンクがクリップボードにコピーされました!
gRPC エクステンションを Vert.x の実装に移行すると、Vert.x エコシステムとの連携が強化され、gRPC 通信を使用してマイクロサービスを開発する効率的な方法が提供されます。
この実装により、Red Hat build of Quarkus Security 設定から重複性を削除する単一の HTTP サーバー設定が可能になります。
1.3.9.5. リアクティブ REST クライアントを作成するためのプログラム API リンクのコピーリンクがクリップボードにコピーされました!
以前のリリースでは、application.properties ファイルで設定することによってのみ、リアクティブ REST クライアントを作成できました。動的クライアントを作成する場合、このアプローチは問題となる可能性がありました。
Red Hat build of Quarkus 3.2 では、新しい Quarkus 固有の API QuarkusRestClientBuilder を使用して、プログラムで Reactive REST クライアントを作成できるようになりました。
QuarkusRestClientBuilder インターフェイスは、追加の設定オプションを使用してプログラムで Reactive REST クライアントを作成します。
詳細は、Quarkus の USING THE REST CLIENT ガイドの Programmatic client creation with QuarkusRestClientBuilder セクションを参照してください。
1.3.9.6. RESTEasy Reactive HTTP レスポンスヘッダーとステータスコードはカスタマイズ可能 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、RESTEasy Reactive クライアントが強化され、レスポンスをストリーミングする際の柔軟性が向上しました。
この更新により、HTTP ヘッダー、HTTP レスポンス、ステータスコードをカスタマイズできるようになりました。
詳細は、Quarkus の WRITING REST SERVICES WITH RESTEASY REACTIVE ガイドの Customizing headers and status セクションを参照してください。
1.3.9.7. REST Client Reactive の @Encoded アノテーションのサポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus 3.2 では、REST Client Reactive での @Encoded アノテーションのサポートが導入されています。この更新により、@Encoded アノテーションは、PATH および QUERY などのパラメーターのデコードに影響を与えます。
詳細は、以下を参照してください。