1.3. 新機能、機能拡張、および技術的な変更
本セクションでは、Red Hat ビルドの Quarkus 2.13 で導入された新機能、機能拡張、および技術変更の概要を説明します。
1.3.1. クラウド リンクのコピーリンクがクリップボードにコピーされました!
1.3.1.1. Reactive SQL クライアントの Kubernetes サービスバインディングサポートが導入されました リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 バージョンには、リアクティブ SQL クライアントの Kubernetes サービスバインディングサポートが導入されました。
サービスバインディング用に以下の拡張機能が追加され、ワークロードのプロジェクションでサポートされます。
-
quarkus-reactive-mssql-client -
quarkus-reactive-mysql-client -
quarkus-reactive-pg-client
詳細は、サービスバインディング ガイド を参照してください。
1.3.1.2. Microsoft JDBC Driver for SQL Server for SQL Server が 7.2.2.jre8 から 11.2.0.jre11 に更新されました。 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、SQL Server の Microsoft JDBC ドライバーが mssql-jdbcTRUSTED.2.jre8.jar から に更新されます。
mssql-jdbc-11. 2.0.jre11.jar
1.3.2. Core リンクのコピーリンクがクリップボードにコピーされました!
1.3.2.1. Apache Kafka UI リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、Kafka UI が Dev UI に導入されています。
quarkus-kafka-client エクステンションを使用するように Quarkus アプリケーションを設定し、開発モードで実行すると、Kafka UI は自動的に Kafka インスタンスに接続します。
Kafka UI を使用すると、次のタスクを実行できます。
- Kafka クラスターの管理
- トピックの一覧表示および作成
- レコードの可視化
- 新しいレコードの発行
- コンシューマーグループとその消費ラグを検査する
1.3.2.2. Java サポートの変更 リンクのコピーリンクがクリップボードにコピーされました!
1.3.2.2.1. Java 17 のサポートの増加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、以下の方法で Java 17 のサポートが強化されます。
- ネイティブモードと JVM モードの両方で Java 17 サポート
Java 17 は、JVM およびネイティブモードの両方で、Red Hat ビルドの Quarkus 2.13 でサポートされるようになりました。Quarkus で Java 17 を使用して、実稼働環境のネイティブ実行可能ファイルを構築できます。今回の更新以前は、Java 17 を使用したネイティブ実行可能ファイルのビルドは、Red Hat のテクノロジープレビューとしてのみサポートされていました。
- ネイティブ実行可能ファイルは、Java 17 を使用してビルドされます。
Mandrel でネイティブ実行可能ファイルをビルドする場合は、Java 17 が使用されます。Quarkus は、アプリケーションが Java 11 で作成されたかどうかに関係なく、ネイティブ実行可能ファイルを生成する際にデフォルトで Java 17 ビルダーイメージに設定されます。
JVM モードで使用される場合、Red Hat は Quarkus で Java 11 を引き続きサポートします。
-
Quarkus
code.quarkus.redhat.comのデフォルトは Java 17 です
Red Hat ビルドの Quarkus 2.13 では、code.quarkus.redhat.com プロジェクトジェネレーターはデフォルトで Java 17 に設定されます。Java 11 で Quarkus プロジェクトを作成するには、クイックスタート設定オプションの CONFIGURE YOUR APPLICATION セクションで Java バージョンを設定します。
サポートされる Java および OpenJDK バージョンの詳細は、Red Hat カスタマーポータルにログインし、ナレッジベースソリューション Supported Configurations を参照してください。
1.3.2.3. Eclipse Vert.x および Netty がアップグレードされている リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、Eclipse Vert.x および Netty が以下のバージョンにアップグレードされます。
1.3.2.4. 新しいプラグイン quarkus-extension-maven-plugin は、quarkus-bootstrap-maven-pluginを置き換えます。 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、新しいプラグイン quarkus-extension-maven-plugin が導入され、Quarkus 2.13 で非推奨となった quarkus-bootstrap-maven-plugin の代わりに使用されます。
プロジェクトの pom.xml ファイルを更新し、artifactId プロパティーの値を quarkus-bootstrap-maven-plugin から quarkus-extension-maven-plugin に変更して、Quarkus エクステンションプロジェクトを更新し、新しいプラグインを使用します。
1.3.2.5. RESTEasy Reactive JAXB コンテキストをカスタマイズできるようになりました リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、RESTEasy Reactive 用の quarkus-resteasy-reactive-jaxb エクステンションを使用すると、 JaxbContextCustomizer CDI bean を介して Java Architecture for XML Binding (JAXB)コンテキストをカスタマイズできます。
詳細は、Quarkus "Writing REST Services With RESTEasy Reactive" の Customize the JAXB configuration セクションを参照してください。
1.3.2.6. SmallRye Config シークレットキーのサポート リンクのコピーリンクがクリップボードにコピーされました!
設定プロパティーにパスワードやその他の種類のシークレットが含まれている場合、SmallRye Config は、このような値をログに出力するなどして、このような値の偶発的な露出を防ぐためにそれらを保護できます。
今回の更新により、キーをシークレットとしてマークできるようになりました。次に、アプリケーションコードは、SecretKeys.doUnlocked 呼び出しで読み取りをラップした後、protected プロパティーの値のみを読み取ることができます。
Red Hat ビルドの Quarkus では、この機能に暗号化やハッシュ関数を追加するなど、今後のリリースでのシークレットのサポートを拡張する計画があります。
1.3.2.7. Quiltflower デコンパイラーのサポート リンクのコピーリンクがクリップボードにコピーされました!
Quarkus エクステンションを開発すると、Quarkus は複数のクラスを生成し、多くの場合はビルドフェーズで既存のクラスを変換する。
Red Hat ビルドの Quarkus 2.13 では、Quiltflower デコンパイラーを使用して、これらのクラスのソースコードをデバッグおよび検査できます。これにより、コードをよりよく理解し、その品質、速度、および使いやすさを向上させることができます。
今回の更新以前は、Fernflower デコンパイラーが使用されていました。ただし、Quiltflower に切り替えると、Quarkus 2.13 では Fernflower デコンパイラーが非推奨になりました。
Quiltflower decompiler をダウンロードして実行するには、application.properties ファイルを更新して quarkus.package.quiltflower.enabled プロパティーを true に設定します。
Quiltflower decompiler の詳細は、Quarkus Writing your own extension ガイドを参照してください。
1.3.3. Data リンクのコピーリンクがクリップボードにコピーされました!
1.3.3.1. ValidatorFactoryCustomizer Bean の登録による Hibernate Validator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、ValidatorFactoryCustomizer Bean を登録することで ValidatorFactory を完全に設定できます。
この更新の前は、置換 Bean を宣言することで ValidatorFactory のみを設定していました。そのため、組み込み制約バリデーターの上書きなど、一部の高度な設定はできませんでした。
詳細は、Quarkus "Validation with Hibernate Validator" の Configuring the ValidatorFactory セクションを参照してください。
1.3.3.2. Elasticsearch の Dev Services リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、Elasticsearch 用の Dev Services が導入されるため、Quarkus アプリケーションの開発およびテスト中にローカルの Elasticsearch サービスをセットアップ/設定する必要がなくなります。
Elasticsearch サービスを使用する Quarkus エクステンションを使用している場合、開発およびテストモードで Quarkus アプリケーションを実行すると、Quarkus は Elasticsearch コンテナーを自動的にプロビジョニングし、開始します。アプリケーションは、最初にセットアップおよび設定せずに、Quarkus によって提供される Elasticsearch サービスをすぐに使用できます。
さらに、Elasticsearch Dev Services で Quarkus Hibernate Search 拡張を使用する場合、Elasticsearch スキーマは新しいコンテナーインスタンスごとに初期化され、アプリケーションの再起動時に再初期化されます。
設定プロパティーや制限など、Elasticsearch の Dev Services の詳細は、以下の Quarkus コミュニティーリソース を参照してください。
1.3.3.3. Infinispan の Dev Services リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 には、Infinispan の Dev Services にさらに機能拡張が追加されました。
application.properties 設定ファイルで属性を設定すると、Infinispan クライアントの最初のアクセスでキャッシュを設定できるようになりました。Infinispan クライアントでのニアキャッシュの実装も強化され、新しい設定プロパティーが導入されました。詳細は、Quarkus "Infinispan Client" の Creating caches from the client セクションを参照してください。
1.3.3.4. CacheKeyGenerator インターフェイスを実装してキャッシュキーを生成する リンクのコピーリンクがクリップボードにコピーされました!
この更新の前は、キャッシュキーを生成するときにのみメソッド引数にアクセスできていました。
今回の更新により、@CacheResult または @CacheInvalidate アノテーションが付けられたメソッドの名前と引数にアクセスできるようになりました。Contexts and Dependency Injection (CDI)を使用して、外部データをジェネレーター実装に挿入することもできます。
これを行うには、io.quarkus.cache.CacheKeyGenerator インターフェイスを実装し、@CacheResult または @CacheInvalidate アノテーションの keyGenerator フィールドでその実装を宣言します。
また、この更新により、ジェネレーターの実装で Method オブジェクトが自動的に利用できるようになりました。このオブジェクトは、@CacheResult または @CacheInvalidate アノテーションが付けられたメソッドに関する情報とアクセスを提供します。Method オブジェクトを使用する主な理由は、メソッド名を取得し、キャッシュキーの要素として使用することです。
ほとんどの Method オブジェクトメソッドはコストが高いため、注意して使用してください。ただし、その method #getName メソッドは、有益で非安価です。
詳細は、Quarkus の Application Data Caching ガイドの Generating a cache key with CacheKeyGenerator セクションを参照してください。
1.3.3.5. Hibernate Search が @SearchExtension アノテーションを使用したカスタマイズが容易になる リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では @SearchExtension アノテーションが導入され、Hibernate Search のカスタマイズが容易になりました。
この更新前は、設定プロパティーの代わりにアノテーションを使用して Hibernate Search のカスタムレーザー Bean を定義する場合は、application. properties ファイルで Bean を参照する必要があり ました。今回の更新により、@SearchExtension アノテーションを追加するだけで、1 つの手順でカスタムレジュラー Bean を定義できるようになりました。たとえば、Hibernate Search の分析コンフィグレーサー Bean を実装するには、以下の手順を完了する必要があります。
AnalysisConfigurerの実装にアノテーションが付けられている。@Dependent @Named("myAnalysisConfigurer") public class AnalysisConfigurer implements ElasticsearchAnalysisConfigurer { @Override public void configure(ElasticsearchAnalysisConfigurationContext context) { // ... } }application.propertiesファイルからコンフィグレーター Bean を参照している必要があります。quarkus.hibernate-search-orm.elasticsearch.analysis.configurer=bean:myAnalysisConfigurer
今回の更新により、@SearchExtension を使用して application.properties ファイルでカスタム Bean を参照しなくなりました。実装にアノテーションを付けるだけです。
@SearchExtension
public class AnalysisConfigurer implements ElasticsearchAnalysisConfigurer {
@Override
public void configure(ElasticsearchAnalysisConfigurationContext context) {
// ...
}
}
分析 Bean の例で提供される構文は、以下のすべての Hibernate Search Bean 参照設定プロパティーで機能します。
-
quarkus.hibernate-search-orm.background-failure-handler -
quarkus.hibernate-search-orm.automatic-indexing.synchronization.strategy -
quarkus.hibernate-search-orm.elasticsearch.layout.strategy -
quarkus.hibernate-search-orm.elasticsearch.analysis.configurer
詳細は、Quarkus コミュニティーの Hibernate Search ガイド を参照してください。
1.3.3.6. Quarkus Transaction API リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 は QuarkusTransaction API をサポートするようになりました。これを使用して、アプリケーションでトランザクションをプログラムで管理できます。JTA UserTransaction API を使用する代わりに、QuarkusTransaction API を使用してトランザクションをより詳細に制御し、失敗時にトランザクションのロールバックが正しく処理されるようにできるようになりました。
QuarkusTransaction API の詳細は、Quarkus でのトランザクションの使用の プログラムに よるアプローチ を参照してください。
1.3.3.7. 安定した機能としてリリースされた Spring Data REST 拡張 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、Spring Data REST エクステンションが安定した機能としてリリースされます。このリリースより前は、プレビュー機能でした。
Spring Data 互換レイヤーを使用すると、Spring Data REST エクステンションを使用して、作成、取得、更新、および削除(CRUD)操作のための REST レイヤーの作成を簡素化できます。
詳細は、Quarkus Spring Data REST ガイド を参照してください。
1.3.4. ロギング リンクのコピーリンクがクリップボードにコピーされました!
1.3.4.1. quarkus.log.file.rotation.max-file-size の仕組みへの変更 リンクのコピーリンクがクリップボードにコピーされました!
今回の更新以前は、quarkus.log.file.rotation.max-file-size パラメーターが設定されていない場合:
-
quarkus.log.file.rotation.file-suffixパラメーターが設定されている場合、Quarkus は定期的なログファイルのローテーションを実行しました。ただし、LOGMGR-303 により、ファイルサイズの制限は、10 MB に記載されている代わりに約 650 KB でした。 -
quarkus.log.file.rotation.file-suffixパラメーターが設定されていない場合、Quarkus はファイルサイズログファイルのローテーションを実行せず、ファイルサイズが時間の経過とともに継続的に増加しました。
今回の更新により、quarkus.log.file.rotation.max-file-size パラメーターが設定されていない場合:
-
quarkus.log.file.rotation.file-suffixパラメーターが設定されている場合、Quarkus は定期的なログファイルローテーションを実行し、ファイルサイズ制限は 10 MB です。 -
quarkus.log.file.rotation.file-suffixパラメーターが設定されていない場合、Quarkus はファイルサイズログファイルのローテーションを実行し、ファイルサイズ制限は 10 MB です。
|
|
| |
|
| 変更はありません:
| 更新の前:
今回の更新により、以下が可能になります。
|
|
| 変更はありません:
| 更新の前:
今回の更新により、以下が可能になります。
|
詳細は、Quarkus 「 ロギングの設定」ガイドの ファイルのロギング セクションを参照してください。
1.3.5. メッセージング リンクのコピーリンクがクリップボードにコピーされました!
1.3.5.1. SmallRye Reactive Messaging がバージョン 3.16 に更新されました。 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、SmallRye Reactive Messaging フレームワークがバージョン 3.16 に更新されました。
以下の機能が導入されました。
- 独自のコンテキストで実行されるメッセージ処理。これにより、パイプライン全体でデータを暗黙的に伝播できます。
- Apache Kafka のチェックポイント API の初期バージョン。
- ユーザーが Apache Kafka のカスタム障害の書き込みや、Apache Kafka のハンドラーをコミットすることを許可する機能。
1.3.5.2. Qpid JMS 拡張機能のサポート リンクのコピーリンクがクリップボードにコピーされました!
Quarkus は、Quarkus アプリケーションの一部として Qpid JMS エクステンションを追加し、ネイティブ実行可能ファイルビルドを使用するものを含む、Apache Qpid からの AMQP JMS クライアントの使用を容易にします。
AMQP 1.0 で JMS API を使用するためのメッセージブローカー:
- ActiveMQ Artemis
- ActiveMQ 5
- Microsoft Azure Service Bus
- Qpid Broker-J
- Qpid Dispatch ルーターなど
拡張機能の使用を開始するには、以下を行います。
以下のように、
org.amqphub.quarkus:quarkus-qpid-jmsモジュールをプロジェクトの依存関係として追加します。<dependency> <groupId>org.amqphub.quarkus</groupId> <artifactId>quarkus-qpid-jms</artifactId> </dependency>@Injectアノテーションを使用して、ConnectionFactoryJava Messaging Service (JMS)ブローカーを注入します。@Inject ConnectionFactory connectionFactory;- 接続ファクトリー設定 を管理します。
このエクステンションのアプリケーション使用例については、quarkus-qpid-jms-quickstart リポジトリー を参照してください。
1.3.6. セキュリティー リンクのコピーリンクがクリップボードにコピーされました!
1.3.6.1. OpenID Connect の事前設定されたプロバイダー リンクのコピーリンクがクリップボードにコピーされました!
今回の更新により、quarkus.oidc.provider 設定プロパティーを使用して、Apple、Facebook、GitHub、Google、Microsoft、Spotify、Twitter などのよく知られている OpenID Connect および OAuth2 プロバイダーを参照することができるようになりました。
このプロパティーを使用する場合は、通常、アカウント固有のクライアント ID、クライアントシークレット、およびその他のプロパティーを設定して設定を完了します。
この新機能により、OIDC Authorization Code Flow メカニズムを使用して、Quarkus エンドポイントをよりシンプルで簡単に保護できます。
詳細は、Quarkus よく知られている OpenID Connect プロバイダーの設定 ガイドを参照してください。
1.3.6.2. OIDC バックチャネルログアウトのサポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、OpenID Connect (OIDC)エクステンションのバックチャネルログアウト機能のサポートが導入されました。
今回の更新により、Keycloak などのこの機能をサポートする OIDC プロバイダーは、参加するすべての Quarkus アプリケーションからユーザーのグローバルログアウトを行うことができます。
バックチャネルログアウトのサポートを設定するには、application.properties ファイルに移動して、quarkus.oidc.logout.backchannel.path プロパティーを更新します。
詳細は、以下を参照してください。
- Quarkus OpenID Connect (OIDC)認可コードフローメカニズムガイドの バックチャネルログアウト セクション
- OpenID connect back-channel logout documentation
1.3.6.3. OIDC での Proof Key for Code Exchange (PKCE)のサポート リンクのコピーリンクがクリップボードにコピーされました!
この更新により、OpenID Connect (OIDC)プロトコルの Quarkus 実装に、Proof Key for Code Exchange (PKCE)のサポートが追加されました。
PKCE は、OIDC を使用する Quarkus Web アプリケーションの認証コードインターセプションのリスクを最小限に抑えます。
詳細は、Quarkus "OpenID Connect (OIDC) Authorization Code Flow Mechanism" ガイドの PKCE 関連のセクション を参照してください。
1.3.7. Web リンクのコピーリンクがクリップボードにコピーされました!
1.3.7.1. RESTEasy Reactive、リアクティブルート、および静的リソースの HTTP 圧縮の詳細な制御を追加しました。 リンクのコピーリンクがクリップボードにコピーされました!
特定のメディアタイプの HTTP 圧縮を有効にするには、quarkus.http.compress-media-types 設定プロパティーを使用し、io.quarkus.vertx.http.Compressed アノテーションを使用して、個別のリソースメソッドに対してます。必要な圧縮レベルを設定することもできます。
詳細は、Quarkus "Writing REST services with RESTEasy reactive" の HTTP Compression セクションを参照してください。
1.3.7.2. パスごとの追加の HTTP ヘッダー リンクのコピーリンクがクリップボードにコピーされました!
今回の更新により、特定のリソースパスによって受信される要求に応答して、カスタマイズされた HTTP ヘッダー値を返すように Web アプリケーションを設定できます。
詳細は、Quarkus "HTTP Reference" の Additional HTTP Headers per path セクションを参照してください。
1.3.7.3. SmallRye GraphQL 非ブロッキングサポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus 2.13 では、SmallRye GraphQL API はリアクティブおよび非ブロッキング実行モデルを提供し、Mutiny リアクティブプログラミングモデルと統合します。