今週2022年2月28日のJavaラウンドアップは、OpenJDKからのニュース、JDK 19、数々のSpringプロジェクトのポイントリリースとマイルストンリリース、Quarkus 2.7.3 Final、Micronaut 3.3.4、Hibernate Validatorバージョン6.2.2 Final・7.0.3 Final・8.0.0 Alpha1、Apache NetBeans 13、Apache Log4j 2.17.2、JReleaser 1.0.0-M3、といった内容でお届けする。
OpenJDK
JEP 424 "Foreign Function & Memory API (Preview)"が先週DraftからCandidateステータスに昇格し、JDK 19の対象機能にされる可能性が高くなった。このJEPは、JDK 17で提供されたJEP 412 "Foreign Function & Memory API (Incubator)"とJDK 18で提供されたJEP 419 "Foreign Function & Memory API (Second Incubator)"を発展させて、Javaコミュニティのフィードバックに基づく改良を加えたものだ。
JDK 18
JDK 18は現在、リリース候補(release candidate)の段階にあって、2022年3月22日のGAリリースが見込まれている。リリースノートにはAPIの全仕様、説明付きのAPI仕様、JDK 17(Build 35)とJDK 18(Build 37)との差分などのドキュメントへのリンクが含まれている。InfoQでは今後、より詳細なニュースストーリとして本件をお伝えする予定である。
JDK 19
JDK 19 早期アクセスビルドのBuild 12が先週公開された。さまざまな問題の修正を含むアップデートが実施されている。詳細はリリースノートを確認して頂きたい。
JDK 18とJDK 19では、開発者からのバグ報告をJava Bug Database経由で募集している。
Spring Framework
Spring Native 0.11.3がリリースされた。GraalVM 22.0、Spring Boot 2.6.4、Spring Cloud 2021.0.1といった依存関係のアップグレード、25件のバグ修正とドキュメントの改善がその内容だ。このリリースに関する詳細はchangelogで確認することができる。
Spring Cloud Gatewayの "Code Injection Vulnerability (CVE-2022-22947)"と"HTTP2 Insecure TrustManager (CVE-2022-22946)"という2つの脆弱性が特定されて、修正がバージョン3.1.1と3.0.7に含まれている。開発者に対しては、Spring Cloud 2021.0.1 (Gateway 3.1.1)あるいは2020.0.xリリーストレイン(Gateway 3.0.7)へのアップグレードが推奨されている。
Spring Cloud Square 0.4.1がバグ修正リリースとして公開された。ロードバランサを使用しないシナリオ用に、@LoadBalanced
を使用しないカスタムWebClientBuilder
beansの設定をサポートする機能が含まれている。
Spring Cloud Data Flow 2.10.0に向けた最初のマイルストンリリースが公開された。Spring Boot 2.6.3およびSpring Cloud 2021.0.0へのアップグレード、Kubernetesを対象としたデプロイを改善するCarvelパッケージ、MySQLに代えてMariaDBをサポート、といった内容だ。詳しいことはリリースノートに記載されている。
Quarkus
3回目のメンテナンスリリースとなるQuarkus 2.7.3.Finalが公開された。QuarkusTestResourceLifecycleManagwer
使用時のエラーに起因するNoSuchElementExceptionの防止、Rest Client Reactiveにおけるマルチパート応答内の小ファイルの適切な処理、Jibがワーキングディレクトリの所有者をroot
に書き換える問題の解決、といった修正が含まれている。このリリースに関する詳細はchangelogに記載されている。
Micronaut
Micronaut FoundationがMicronaut 3.3.4をリリースした。Micronaut Flyway 5.1.3およびMicronaut Serialization 1.0.0-RC2への依存関係のアップグレード、これまでbeanのクローズ時にコールされていなかったScheduledMethodProcessor
のclose()
メソッドへの@PreDestroy
アノテーションの追加、TimeConverterRegistrar
クラス内の冗長な整数ボクシング(boxing)の排除、といった内容だ。このリリースの詳細はchangelogで確認できる。
Hibernate
Hibernate Validatorのバージョン6.2.2.Final、7.0.3.FInal、8.0.0.Alpha1がリリースされた。6.2および7.0リリーストレインのメンテナンスリリースでは、時間制約のリファクタリング後に機能しなくなっていたjava.sql.Date
のバリデーションが復活している。また、バージョン7.0.3では、Jakarta.*
パッケージネームスペースへのマイグレーションに伴うアノテーションプロセッサの問題が修正された。バージョン8.0.0に向かって最初のアルファバージョンとなる8.0.0は、Jakarta EE 10をサポートする最初のステップである。
Hazelcast
Hazelcast 5.0のリリースから4か月あまり、インメモリ・コンピューティングプラットフォームのHazelcastがバージョン5.1をリリースした。JDK 17のサポート、使用可能なメモリよりもはるかに大きなデータセットをストア可能なTiered Storageの導入、SQL Data Manipulation Languageの機能拡張によるビューの生成、インデックスの生成、explain plansのトラブルシューティング実行のサポート、"dynamic configuration persistence"の機能強化により、エンドポイントに加えてファイルベースの構成変更をリロード可能にする同時永続化、などが新機能だ。詳細は改めてニュースでお伝えする予定である。
Apache NetBeans
Apache NetBeans 13がリリースされた。NetBeans Javaコンパイラ(nb-javac
)の改良、FlatLafルックアンドフィールを使ったデフォルトのライトモード、Maven、Gradle、PHPの改善などがフィーチャーされている。詳細は改めてニュースでお伝えする予定である。
Apache Log4J
Apache Log4j 2.17.2がリリースされた。50件を超える修正と改良の他、アプリケーションとして承認する言語を指定するシステムプロパティがスクリプトエンジンに求められるようになった。また、リモートコンフィギュレーションが可能なプロトコルがデフォルトではHTTPのみになり、その他のプロトコルはシステムプロパティで許可ないし禁止されるようになった。さらに、コンフィギュレーションファイルで定義されたプロパティの再帰的な参照が可能になるように、変数の解決方法が拡張されている。
JHipster
JHiperのバージョン7.7.0がリリースされた。サブコマンド経由で起動する新たなブループリントジェネレータのgenerate-blueprint
、ES Moduleの拡張、Couchbaseのスコープとコレクションのサポートなどが新機能だ。
OktaのデベロッパアドボケートであるMatt Reible氏が、アップデートされた">Spring Native with JHipster"サンプルをベースにした新しいブループリント"Spring Native for JHipster"を公開している。詳細は改めてニュースでお伝えする予定である。
JReleaser
バージョン1.0.0に向けて、先週、JReleaserの3番目のマイルストンと新たな早期アクセスが公開された。JDK 17.0.2へのアップグレード、java.mainClass
を補足するために、moduleName
プロパティをjava.main.Module
に名称変更(これは互換性を損なう可能性がある)、Linuxの小文字名称とmacOS/Windowsの大小文字混じりの名称に対応するための、プラットフォームパッケージャによるアプリケーション名のオーバーライド、ファイル解凍のためのさまざまなメカニズムの導入、Linuxにおける"--static
"のような、プラットフォーム対応の設定のサポート、などがフィーチャーされている。