2022年6月13日、今週のJavaラウンドアップは、JDK19とJDK 20の最新情報、Spring Framework 5.3.21、Spring CVE-2022-22979レポート、Spring Cloud 2022.0.0-M3、Spring Tools 4.15、Spring Tool Suite 3のサポート終了、Hibernate 6.1.0-Final、Apache NetBeans 14、Apache Tomcat 8.5.81、Piranha 22.6.0、TornadoVM 0.14、JDKMonのアップデート、JobRunr 5.1.4、JReleaser早期アクセス、といった内容でお届けする。
JDK 19
JDK 19 早期アクセスビルドのBuild 27が先週公開された。Build 26から、さまざまな問題の修正を含むアップデートが実施されている。詳細はリリースノートで確認して頂きたい。
JDK 20
JDK 20早期アクセスビルドのBuild 2も同じく先週公開され、Build 1からのアップデートとして、さまざまな問題が修正されている。リリースノートはまだ用意されていない。
JDK 19とJDK 20については、開発者からのバグ報告をJava Bug Database経由で募集している。
Spring Framework
Spring Framework 5.3.21がリリースされた。キューのサイズと容量をThreadPoolTaskExecutor
クラスからメトリクスとして公開、DataSize.PATTERN
フィールドの遅延初期化により不必要に早い初期化(eager initialization)を回避、JDK 17上でcglib BeanCopier
クラスのサポート、といった新機能を備えている。バグ修正やドキュメント改善の他、この最新バージョンにはProject Reactor 2020.0.20へのアップグレードも含まれる。リリースに関する詳細はリリースノートで見ることができる。
VMwareは、Torsten Jürgeleit、Christian Dupuis両氏による2004年の開発から18年以上を経たSpring Tool Suite 3のサポートを終了すると発表した。2017年12月に公開されたEclipse、Visual Studio Code、Theia用のSpring Tools 4が、今後はSpring開発者の標準IDEとして提供されることになる。InfoQでは、より詳細なニュースを追ってお伝えする予定である。
Spring Tools 4.15.0がリリースされた。最新のEclipse 2022-06がフィーチャーされた他、多数のバグ修正や改良が含まれている。Spring Tools 4.15.0のフォローアップとして、バージョン4.15.1も今週リリースされた。Spring Boot関連に加えて、Windows 11上で、spring-tool-suite-4-4.15.0.RELEASE-e4.24.0-win32.win32.x86_64.self-extracting.jar
ファイル経由で新バージョンを取得できない点が改善されている。これらのリリースに関する詳細は、それぞれバージョン4.15.0とバージョン4.15.1のリリースノートにある。
VMwareは、Spring Cloud Function 3.2.5以前のFunctionCatalogコンポーネントにおけるキャッシュの問題が原因でサービス拒否状態の発生する脆弱性を、CVE-2022-22979 "Spring Cloud Function Dos Vulnerability"として公開した。この脆弱性は、Spring Cloud Function 3.2.6では解決済である。
Spring Cloud 2022.0.0に向けた3番目のマイルストンリリース、コードネーム Kilburnが公開された。いくつかの重大な変更を含む他、Stream、Config、Kubernetes、GatewayなどのSpring Cloudサブプロジェクトが、対応するM3リリースにアップグレードされている。このリリースの詳細はリリースノートを参照して頂きたい。
Hibernate
Hibernate ORM 6.1.Finalがリリースされた。HQLのFROM
句およびCriteriaクエリでのラテラル(lateral)サブクエリを含むサブセレクト/サブクエリのサポート、データベースの基本的な配列およびコレクションのARRAY型あるいはJSON/XML型へのマップ、AttributeConverter<X,Y>
インターフェースをコンバータ自体の外部に自動適用する定義を取得可能にする新たな@ConverterRegistration
アノテーション、JPA 3.1 orm.xml
の機能とHibernate hbm.xml
フォーマットを組み合わせる新しいドメインモデルマッピングXMLスキーマ定義(XSD)、といった新機能が搭載されている。ただし最後の機能は、まだIncubatingステータスである。
Apache NetBeans
Apache Software FoundationがApache NetBeans 14をリリースした。新機能および修正点として、JDK 17の追加サポート、Gradleに関する多数の修正、クラウドサービス用の新しいExplorer Manager、DialogDisplayer内でのCompletableFuture
クラスのサポート、JAX-B 2.3.5への依存関係アップグレードが含まれている。このリリースに関する詳細はリリースノートを参照してほしい。InfoQでは、より詳細なニュースを追ってお伝えする予定である。
リリーススケジュールに従えば、バージョン15は8月、16は11月に入手可能になる見込みだ。
Apache Tomcat
Apache Software Foundationはさらに、Apache Tomcat 8.5.81もリリースした。要求が非同期モードになった後もRemoteIPValve
クラスが要求に対して行った変更が確実に持続されるようになるとともに、前リリースから追加された暗号化PKCS#1形式秘密鍵のサポートにより、暗号化されていないPKCS#1形式の秘密鍵サポートが動作しなくなっていたリグレッションが修正された。また、クラスタメッセージのデフォルトサイズが43,800バイトから65,536バイトに拡張された。これにより、Linuxベースのシステムで動作する場合、サイズの大きなメッセージのパフォーマンス改善が期待される。さらに、非ブロック書き込みおよびNIOコネクタでTLSを使用する場合、バッファフラッシュですべての出力バッファをクリアにする処理が実施されるようになった。リリースの詳細はchangelogを参照してほしい。
Piranha
Piranha 22.6.0がリリースされた。2022年6月、"Slowly, but surely"エディションと称された今回のリリースには、Piranha Microアプリケーションの起動方法に関するクイックスタート手順のREADME.md
ファイルへの記載追加、古いコード(stale code)判定しきい値を140日に低減、TCKテスト前にPiranhaが安定するようにスリープ時間を1分に変更、DefaultResourceClassManagerLoader
のより寛容な設定を許可、などが含まれている。今回のリリースに関する詳細は、それぞれのドキュメントやイシュートラッカに記載がある。
TornadoVM
オープンソースソフトウェアテクノロジ企業のTornadoVMは、TornadoVM バージョン0.14をリリースした。新機能および強化機能として、Graal 22.1.0 JITコンパイラとのインテグレーション、Azul Zulu JDKサポート、OpenCL BackendのデフォルトターゲットとしてOpenCL 2.1、OpenCLのメモリ割り当て制限に対処する新しいデバイスメモリマネージャなどを備える。
マンチェスター大学Advanced Processor TechnologiesResearchGroupのリサーチアソシエイトであるJuan Fumero氏は、2020年3月のQCon Londonで、このTornadoVMを紹介し、InfoQの技術記事にも度々寄稿してくれている。
JDKMon
インストール済JDKの監視とアップデートを行うツールJDKMonの17.0.28、17.0.27、17.0.26が先週、Javaコミュニティを対象に公開された。AzulのプリンシパルエンジニアであるGerrit Grunwald氏の手によるこれらの新バージョンでは、DiscoClientが最新バージョンにアップデートされた他、パッケージのアップデート、アップデートのチェック、オンラインチェックが改善されている。
JobRunr
Javaでバックグラウンド処理を実行するユーティリティJobRunrの創設者で中心的開発者のRonald Dehuysser氏が、バージョン5.1.4をリリースした。 Flywayデータベースマイグレーションへの組み込みに必要なSQLマイグレーションの生成機能、スケジュール済(scheduled)、孤立(orphaned)、成功(succeeded)ジョブ用のページ要求サイズ構成の指定、BackgroundJobPerformer
クラスを拡張するカスタマイズ機能、などが利用できるようになった。
JReleaser
バージョン1.1.0に向けて、プロジェクトのリリース生成を効率化するJavaユーティリティJReleaserの新たな早期アクセスリリースが公開された。依存関係が、AssertJ 3.23.1、jsoup 1.15.1、Mockito 4.6.1、AWS SDK for Java 1.12.242、Jacksonが2.13.3に、それぞれアップグレードされている。