Red Hat ビルドの Quarkus 1.7 の リリースノート
前書き
本リリースノートには、新機能、テクノロジープレビューの機能、既知の問題、および Red Hat ビルドの Quarkus 1.7 で修正された問題が記載されています。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社 の CTO、Chris Wright のメッセージ を参照してください。
第1章 Red Hat ビルドの Quarkus
Red Hat ビルドの Quarkus は、コンテナーおよび Red Hat OpenShift Container Platform と使用するために最適化された Kubernetes ネイティブ Java スタックです。Quarkus は、Eclipse MicroProfile、Apache Kafka、RESTEasy (JAX-RS)、Hibernate ORM (JPA)、Spring、Infinispan、Apache Camel などの一般的な Java 標準、フレームワーク、およびライブラリーと連携するように設計されています。
Quarkus のディペンデンシーインジェクション (依存性の注入) ソリューションは、CDI (コンテキストとディペンデンシーインジェクション) をベースとし、エクステンションフレームワークを備えているので、機能の拡張、およびフレームワークの設定、起動、アプリケーションへの統合が可能です。
Quarkus は、コンテナーファーストという手法で Java アプリケーションをビルドします。この手法により、Java で書かれたマイクロサービスベースのアプリケーションのビルドが大幅に容易になるほか、これらのアプリケーションがサーバーレスコンピューティングフレームワークで実行している関数を呼び出すことができるようになります。これにより、Quarkus アプリケーションのメモリーフットプリントは小さくなり、起動時間は高速化されます。
第2章 新機能および変更された機能
本セクションでは、Red Hat ビルドの Quarkus 1.7.6 で導入された新機能および変更について概説します。
2.1. gRPC Quarkus エクステンション
quarkus-grpc
エクステンションは、以下の機能を提供します。
- Quarkus アプリケーションが gRPC サービスを消費して公開する機能
- Quarkus リアクティブコアおよびインペラティブ (ブロッキング) 消費をベースとするサポート
- HTTP/2 トランスポートに依存するプレーンテキストと TLS コミュニケーションのサポート
- TLS による暗号化と相互認証のサポート
-
gRPC ヘルスおよびリフレクションサービスの実装。ヘルスは
quarkus-smallrye-health
エクステンションと統合され、リフレクションサービスにより grpcurl などのツールの使用が容易になります。
2.2. Quarkus のネイティブモード
本リリースは、Red Hat ビルドの Quarkus ネイティブビルドコンテナーを使用してコンパイルする場合、ネイティブアプリケーションとしての Quarkus アプリケーションの実行をフルサポートします。Java アプリケーションの代わりに、Quarkus アプリケーションをネイティブアプリケーションとして実行すると、起動時間とメモリー使用率を大幅に改善することができます。この機能は、Red Hat ビルドの Quarkus の以前のバージョンでは、テクノロジープレビュー機能でした。
2.3. ネイティブおよび JVM モードでの OpenShift Serverless Serving
OpenShift Serverless (Serving) での Quarkus アプリケーションの実行は、JVM およびネイティブの両方のモードでフルサポートされるようになりました。quarkus-openshift
エクステンションは、Apache Maven を使用して Serverless Serving がインストールされた OpenShift Container Platforms に JVM アプリケーションをデプロイすることもサポートします。
2.4. Red Hat Data Grid に接続するクライアントのサポート
quarkus-infinispan-client
エクステンションにより、クライアントはアプリケーションプロセスの外部で実行されるサーバーへ接続することができます。
Infinispan クライアントの Quarkus エクステンションは以下の機能を提供します。
- ネイティブイメージの作成
- RemoteCache (named)、RemoteCacheManger、CounterManager などの重要なリソースの自動インジェクション
- ユーザーベースの ProtoStream マーシャリング
- インデックス付きおよびインデックスなしのクエリー
- 継続的なクエリー
- ニアキャッシュ
- 認証および認可
- 暗号化
- カウンター
2.5. Spring 互換レイヤー
以下を含む新規の Spring 互換レイヤーへのサポートの拡張
-
quarkus-spring-cache
-
quarkus-spring-cloud-config-client
-
quarkus-spring-scheduled
第3章 Red Hat ビルドの Quarkus 対応プラットフォーム、設定、エクステンション、および依存関係
- サポートされる設定とテスト済みの統合の一覧は、「Red Hat build of Quarkus Supported Configurations」 のページを参照してください (ログインが必要です)。
- サポートされる Maven アーティファクトの一覧は、Red Hat build of Quarkus Component Details ページを参照してください (ログインが必要です)。
3.1. サポートされるエクステンションおよび依存関係
Red Hat ビルドの Quarkus にて、Red Hat が 本番環境でサポートするエクステンションおよび依存関係の一覧は、「Red Hat build of Quarkus Component Details」 ページ (ログインが必要) を参照してください。
3.2. 開発サポート
Red Hat は、以下に示す Red Hat ビルドの Quarkus の機能、プラグイン、エクステンション、および依存関係に対して 開発サポート を提供します。
機能
- ライブ開発モード
- リモート開発モード
プラグイン
-
protobuf-maven-plugin
エクステンションおよび依存関係
- 開発サポート の対象範囲で Red Hat がサポートする Red Hat ビルドの Quarkus のエクステンション一覧は、「Red Hat build of Quarkus Component Details」ページ (ログインが必要) を参照してください。
第4章 非推奨のコンポーネントおよび機能
本セクションに記載するコンポーネントおよび機能は、Red Hat ビルドの Quarkus 1.7 で非推奨となりました。これらは、本リリースに含まれており、サポートもされますが、機能拡張の予定はなく、今後削除される可能性があります。
-
quarkus-smallrye-opentracing
エクステンション - ReactiveX API の使用
第5章 テクノロジープレビュー
本セクションでは、Red Hat ビルドの Quarkus 1.7 のテクノロジープレビューにおける機能およびエクステンションについて記載しています。
これらの機能は、テクノロジープレビュー機能としてのみ利用可能です。テクノロジープレビュー機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供し、お客様には開発段階で機能性をテストし、フィードバックをお寄せいただくことができます。
Red Hat のテクノロジープレビューについての詳細は 「テクノロジープレビュー機能のサポート範囲」 を参照してください。
エクステンションおよび依存関係
- Red Hat ビルドの Quarkus 1.7.6 でテクノロジープレビューとして提供される Red Hat ビルドの Quarkus のエクステンションおよび依存関係の一覧は、「Red Hat build of Quarkus Component Details」 ページ (ログインが必要) を参照してください。
第6章 既知の問題
本セクションでは、Red Hat ビルドの Quarkus 1.7 の既知の問題について記載しています。
- Issue #11633 OpenShift Serverless のゼロ設定ソリューションがありません。この問題は、Quarkus ネイティブ Serverless アプリケーションのデプロイメントのみに影響があります。
-
QUARKUS-451
kafka-streams-quickstart
のNativeAggregatorIT
における不安定さが増しています。 -
QUARKUS-688 OpenShift で
mutable-jar
(リモート開発機能で使用される) をデプロイできません。
第7章 Quarkus で修正された問題
Quarkus 1.7.5 SP1 には、以下のバグ修正が含まれます。
第8章 Quarkus 1.7.6 GA で修正された問題
Quarkus 1.7.6 GA には、以下のバグ修正が含まれます。
8.1. セキュリティー関連のバグ修正
-
CVE-2020-13956: バージョン 4.5.13 および 5.0.3 よりも古い
HttpClient
ライブラリーによって、java.net.URI
オブジェクトとしてライブラリーに渡されるリクエスト URI の無効なオーソリティー部が誤って解釈される可能性があり、その結果、リクエストの実行に誤ったターゲットホストが選択される可能性がありましたが、この脆弱性は Quarkus 1.7.6 で修正されました。
8.2. その他の製品や技術とのインテグレーションに関する変更
- QUARKUS-278: Red Hat Single Sign-On バージョン 7.4 とのインテグレーションをテストおよび検証。
- QUARKUS-279: HTTP/2 のサポートを導入。
8.3. 開発者のエクスペリエンスに関連するバグ修正
-
QUARKUS-449: Quarkus がコミュニティーバージョンの
javassist
およびprotobuf-java
を使用する Protostream を使用する。 -
QUARKUS-450:
JarResultBuildStep
- META-INF/build.metadata エントリー警告の重複。 - QUARKUS-460: シンプルなスタブに JSR305 がないと Quarkus gRPC が失敗する。
- QUARKUS-487: Maven コンパイラープラグイン 3.8.1 および Protostream - Marshaller JAVA ファイルがクラスファイルにコンパイルされない。
- QUARKUS-525: Camel ケース名のある組み込みフィールドが Spring Data JPA リポジトリーで動作するようにする。
- QUARKUS-526: Eclipse Vert.x のホストおよびポートの解析が向上された。
-
QUARKUS-532: 階層
@MappedSuperclasses
でspring-data-jpa
フィールド検索を修正。 -
QUARKUS-533: リソースの「allow
java.lang
annotations」を追加。 - QUARKUS-534: create コマンドのデフォルトのプラットフォームバージョン範囲の修正。
- QUARKUS-535: ブートストラップ依存関係の修正。
- QUARKUS-537: Vert.x プロキシーアドレス転送のログエラーの削減。
- QUARKUS-538: BOM からブートストラップ依存関係を削除。
- QUARKUS-539: JSONB がスコープにない場合に JSONP を追加。
-
QUARKUS-540:
@Valid
アノテーションを付けた場合にObject
の階層を考慮しない。 - QUARKUS-541: 別の Quarkus エクステンションとともにアプリケーションで使用される場合に gRPC がネイティブモードで動作するようにする。
-
QUARKUS-544:
build.metadata
ファイルの重複に関する警告をログに記録しない。 - QUARKUS-545: ソースを直接ソースキャッシュにコピーしないようにする。
- QUARKUS-546: ソースをコピーしてデバッグを改善。
-
QUARKUS-547:
@Scope#scopeName
Spring アノテーションが考慮されるようになった。 - QUARKUS-549: XA モードで MySQL に接続する機能を修正。
- QUARKUS-551: リフレクションに String コンストラクターを登録。
-
QUARKUS-557: Quarkus が URI の解析に失敗すると、HTTP コード
500 Internal Server Error
およびNullPointerException
を返す。 - QUARKUS-579: JWK はチェーン証明書の使用をサポートしない。
-
QUARKUS-608:ユーザー名と一致するよう設定された場合は
quarkus.container-image.group
から空白文字を削除する。 -
QUARKUS-610:
objcopy
依存関係に関するロギングおよびドキュメントを改良。 -
QUARKUS-611:
SimpleScheduler
の解析機能を修正。 - QUARKUS-614: Bad Request でエラーメッセージをログに記録しない。
- QUARKUS-615: 新しい RESTEasy コンテキストマップの作成。
-
Quarkus 1.7.6 GA では、Mandrel とソースキャッシュディレクトリー構造の互換性がない原因だった問題が修正されました。ソースは
sources/
サブディレクトリーではなくsources/src
サブディレクトリーに作成されたため、GDB ツールを使用してネイティブ実行可能ファイルをデバッグする場合は、ディレクトリーパスをsources:path/to/sources/src
に設定する必要がありました。
8.4. コンポーネントバージョンのアップグレード
- QUARKUS-543: Hibernate Validator のバージョンを 6.1.6.Final にアップグレード。
- QUARKUS-548: Quarkus HTTP のバージョンを 3.0.15.Final にアップグレード。
- QUARKUS-606: Eclipse Vert.x コンポーネントをバージョン 3.9.5 にアップグレード。
- QUARKUS-625: Apache HTTP Client をバージョン 4.5.13 にアップグレード。
- QUARKUS-685: Infinispan のバージョンを 11.0.4 に、Infinispan ProtoStream のバージョンを 4.3.4.Final に更新。
改訂日時: 2021-04-27 03:43:33 UTC