今週2021年10月25日のJava総まとめは、OpenJDK、JDK 18、Springプロジェクトの多数の更新、MicroStream 6.0、Quarkus 2.4.0、Hibernate Reactive 1.0、Open Liberty 21.0.0.11、Eclipse Vert.x 4.2.0、Red HatのCryostat 2.0の発表、GraalVM Native Build Tools 0.9.7.1、Liberica Native Image Kit 21.3、およびJDKMon 17.0.7からニュースを特集する。
OpenJDK
メソッドハンドルを使用したコアリフレクションの再実装、JEP 416のレビュー終了の後、JDK 18の Proposed to Target から Targeted ステータスに昇格した。このJEPは、java.lang.invoke
で定義されたメソッドハンドル上の java.lang.reflect
クラス、Method
、Constructor<T>
、および Field
の再実装を提案している。これらのメソッドハンドルは、両者のパッケージの保守と開発のコストを削減するためのリフレクションのメカニズムとして機能する。
インターネットアドレス解決 SPI、JEP 418は、JDK 18の Candidate から Proposed to Target ステータスに昇格した。このJEPは、java.net.InetAddress
がデフォルトの OpenJDK 組み込みリゾルバ以外のリゾルバが利用できるホスト名とアドレス解決のためのサービスプロバイダインターフェイスを定義することを提案する。JEP 418のレビューは、2021年11月4日に完了する。
JDK 18
JDK 18 早期アクセスビルドはさまざまな問題の修正を含むビルド 20からのアップデートを行ったビルド 21が先週利用可能になった。詳細については、リリースノートに記載されている。
現在の JDK 18 の機能セットは次のとおりだ:
- JEP 400: UTF-8 by Default
- JEP 408: Simple Web Server
- JEP 413: Code Snippets in Java API Documentation
- JEP 416: Reimplement Core Reflection with Method Handles
- JEP 417: Vector API (Third Incubator)
- JEP 418: Internet-Address Resolution SPI (Proposed to Target)
開発者は Java Bug Database を介してバグのレポートが奨励される。
Spring Framework
チームが多くのプロジェクトでポイントリリースを提供し、Spring はまた忙しい1週間だった。
先ごろレポートされた、Spring Boot バージョン 2.5.6 および 2.4.12 の最近のリリースに含まれていた Spring Framework (CVE-2021-22096)、Spring Data REST (CVE-2021-22047)、Spring AMQP (CVE-2021-22097) の脆弱性に対処するセキュリティが修正された。4番目の脆弱性である CVE-2021-22044 は、Spring Cloud OpenFeign バージョン 2.2.10.RELEASE、3.0.5 および 3.1.0-M4 のリリースで対処された。
Spring Tools 4.12.1 for Eclipse が JDK 17、Eclipse 2021-12 の早期アクセスビルド、および Apple Silicon Platform (ARM M1) のサポートでリリースされた。詳細については、リリースノートに記載されている。
Spring GraphQL 1.0.0 への道のりで、3番目のマイルストーンリリースが利用可能になった。この新しいバージョンでは、バッチサポートの改善で @BatchMapping
アノテーションが導入されている。その他の新機能は次のとおりだ: 改善された Querydsl サポート。GraphQL union と interface の TypeResolver
インターフェースの新しいデフォルトリゾルバ。入力引数を解析するための Spring Framework の DataBinder
クラスの組み込み。詳細については、問題リストに記載されている。
最近の State of Spring 2021 調査に基づいて、Spring Cloud 2021.0.0 の3番目のマイルストーンリリースに追加された Spring Cloud Kubernetes の新機能には、アプリケーションが Kubernetes API サーバに権限提供が必要な障壁に対処するサービスディスカバリーと構成管理のサポートの改善が含まれる。Spring Cloud 2021.0.0-M3 は新しく「Kubernetes API を使用して Kubernetes サービスとエンドポイントをフェッチし、アプリにサービス情報を提供する」ディスカバリーサーバを導入している。
MicroStream
MicroStream は、Helidon との統合、Spring Boot 構成レイヤ、List.of()
および Set.of()
メソッドで作成された JDK 17 コレクションの特別なタイプハンドラ、および新しいユーティリティ ObjectCopier
、オブジェクトグラフのディープコピーの作成を特徴とするフレームワークのバージョン 6.0 をリリースした。InfoQ は、より詳細なニュース記事をフォローアップする。
Hibernate
Hibernate は、Quarkus との完全な統合を特徴とする Hibernate Reactive 1.0.0.Final をリリースした。2020年12月に最初に発表された Hibernate Reactive は、Vert.x ノンブロッキング SQL クライアントライブラリを利用し、PostgreSQL、MySQL、MariaDB、Db2、SQL Server、および CockroachDB をサポートする。InfoQは、より詳細なニュース記事をフォローアップする。
Open Liberty
IBM は、Open Liberty 21.0.0.11 を次のような新機能でベータリリースから昇格した: FeatureUtility
コマンドラインツールを使用して Open Liberty ランタイムにユーザ機能をインストールできる。Open Liberty 構成変数としての Kubernetes シークレットの使用。クライアントのエフェメラルポート (トランスポート層プロトコルの通信エンドポイント) の新しい HTTP アクセスログフォーマットオプション。
Quarkus
Red Hat は Quarkus 2.4.0.Final を次の機能でリリースした: Hibernate Reactive 1.0.0.Final への依存関係のアップグレード。Quarkus DevUI を使用した Kafka ストリームトポロジのサポート。マルチモジュールプロジェクトでの継続的テスト。また、Abstract Window Toolkit (AWT) および Java2D で使用するための新しい quarkus-awt
拡張機能。
Quarkus Tools for IntelliJ 1.8.0 が利用可能になり、RESTエンドポイントの CodeLens がサポートされ、MicroProfile Fault Tolerance と Metrics 仕様が強化された。
Eclipse Vert.x
Eclipse Vert.x 4.2.0 がリリースされ、JDK 17 がサポートされ、リアクティブ SQL クライアント、Web クライアントと認可クライアントが拡張された。Reactive Oracle Client は、データベースクライアントの Vert.x スイートに追加された。詳細については、リリースノートと非推奨と重大な変更を含むドキュメントに記載されている。
Cryostat
Red Hat は、新しいコンテナネイティブ JVM アプリケーションである Cryostat 2.0 を発表した。これは JDK Flight Recorder でコンテナをプロファイリングおよびモニターするための安全な API を提供する。Cryostat は、アプリケーションの全体的な状態を評価するためにコンテナ化された JVM からフライトの記録を取得、保存、分析できる。JFR の記録は、さらに分析するために JDK Mission Control または Grafana にアップロードできる。Cryostat の紹介は、このブログ投稿にある。
GraalVM Native Build Tools
Oracle Labs は、GraalVM Native Image との相互運用性のためのプラグインで構成される GraalVM プロジェクトである Native Build Tools のバージョン 0.9.7.1 をリリースした。これは、親 pom.xml
ファイルで宣言された Maven プラグインを使用したマルチプロジェクトビルドでのテスト実行に対応するバグ修正リリースだ。
Liberica Native Image Kit
BellSoft は、GraalVM のダウンストリームディストリビューションである Liberica Native Image Kit (NIK) 21.3 をリリースした。Liberica JDK 17 および JDK 11 に基づいて構築された次の新機能を含んでいる: JPMS の初期サポート。分析中に Reflection および JNI 構成ファイルで構成してより小さなネイティブイメージの生成。GC パフォーマンスを向上させるための新しい適応型ガベージコレクションポリシー。ネイティブイメージユーティリティがコマンドライン引数を読み取ることができるようになった。
JDKMon
インストールされた JDK のモニタおよび更新する新しいツールである JDKMon の最新バージョンが、Java コミュニティで利用可能になった。Azul のプリンシパルエンジニアである Gerrit Grunwald 氏によって作成されたバージョン 17.0.7 には次の機能がある: Bi Sheng JDK、Tencent Kona JDK および Semeru Certified のサポート追加。JavaFX 17.0.1 への依存関係のアップグレードと一部のプラグインと UI の更新もある。