今週の総まとめは、JDK 17を対象とした OpenJDK JEP、Jakarta EE 9.1 と Microsoft Build of OpenJDK の GA リリース、Micronaut および Hibernate Reactive それぞれのマイルストーンおよび候補リリース、Spring WebFlux のローカル特権昇格攻撃に対処する脆弱性レポートのリリース、そして Hibernate と Java のバースデーを祝うニュースを取り上げる。
OpenJDK と JDK 17
OpenJDK では、一部の JEP と JDK 17 早期アクセスビルドの更新が行われ今週も忙しい週だった。ビルド 24 とラベル付けされ、これはビルド 23 からの変更が数多くあり、さまざまな問題の修正が含まれている。
2つの JEP、JEP 403: Strongly Encapsulate JDK Internals、JEP 407: Remove RMI Activationが、対象に提案から対象または統合ステータスに昇格し、9月の JDK 17 GA リリースを対象する JEP の更新されたリストが生成された。
- 356: Enhanced Pseudo-Random Number Generators
- 382: New macOS Rendering Pipeline
- 391: macOS/AArch64 Port
- 398: Deprecate the Applet API for Removal
- 403: Strongly Encapsulate JDK Internals
- 407: Remove RMI Activation
- 409: Sealed Classes
- 410: Remove the Experimental AOT and JIT Compiler
- 412: Foreign Function & Memory API (Incubator)
- 414: Vector API (Second Incubator)
まだ検討中だが、JDK 17 の JEP が提案されている。これらは最近、候補から対象に提案ステータスに昇格した:
- 306: Restore Always-Strict Floating-Point Semantics - レビュー期限 2021年5月27日
- 406: Pattern Matching for switch (Preview) - レビュー期限 2021年5月26日
- 411: Deprecate the Security Manager for Removal - レビュー期限 2021年5月27日
詳細はリリースノートに記述され、開発者は Java Bug Database からバグの報告が推奨される。
Jakarta EE 9.1 と互換実装
Jakarta EE 9 のリリースから5か月後、Jakarta EE Working Group は、プラットフォームおよび Jakarta EE 9.1 および関連する TCK の Web Profile 仕様のリリースを発表した。2018年のデビュー以来、これはJakarta EEの最初の更新リリースであり、Java コミュニティが Java SE の現在の長期サポートリリースの JDK 11 および JDK 8 による Jakarta EE 9.1 アプリケーションを開発およびデプロイするための複数の更新を特徴としている。
現時点では、IBM と Tomitribe を含む Jakarta EE 9.1 と互換性のある実装が5つある。先週、Open Liberty と Apache TomEE がそれぞれ TCK に合格したことを発表した。
InfoQ は、Jakarta EE 9.1 のリリースに関するより詳細なニュース記事でフォローアップする。
Microsoft Build of OpenJDK
Microsoft が Microsoft Build of OpenJDK のプレビューリリースを発表してから2か月も経たないうちに、GA リリースが次のものを含めて Java コミュニティで利用可能になった: Docker イメージと対応した Dockerfile、および最新の Minecraft Java Edition スナップショットバージョン 21W19A、これは、Microsoft Build of OpenJDK に基づいた JDK 16 ランタイムに更新されている。
デプロイメント用に Java アプリケーションで使用されるように設計された Docker イメージには、Docker コマンドを呼び出すことで特定のタグにアクセスできる:
$ docker pull mcr.microsoft.com/openjdk/jdk:<tag>
詳細は、コンテナイメージガイドに記述されている。InfoQ はまた、より詳細なニュース記事でフォローアップする。
Micronaut 3.0 への道
Object Computing, Inc. は、マイナーな破壊的変更を含む Micronaut 3.0.0-M1 をリリースした。今後のマイルストーンリリースには、依存性注入のための Jakarta Annotations への移行と、RxJava 2 から Project Reactor への切り替えが含まれる。
Hibernate
Hibernate Reactive 1.0.0.CR5 が Java コミュニティで利用可能になり、バグ修正と Hibernate ORM 5.4.32.Final および SmallRye Mutiny 0.17.0 への依存関係のアップグレードが行われた。最近の内部変更では、この最新バージョンを使用するために Hibernate Reactive が必要になるため、開発者は Hibernate ORM 5.4.32.Final にアップグレードすることが推奨される。
Spring Framework
非常に活発だった過去2週間の後、Spring は静かな1週間だった。CVE-2021-22118: Spring Webflux マルチパートリクエストハンドリングのローカル特権昇格に対処する脆弱性レポートがリリースされた。これにより、Spring WebFlux アプリケーションが、組織のセキュリティ境界内で不正アクセスを取得するために使用されるネットワーク攻撃である特権昇格に対して脆弱である問題が修正される。Spring MVC アプリケーションおよびマルチパートファイルリクエストを処理しないアプリケーションは、特権昇格攻撃の影響を受けないことに注意。
軽い話題
この1週間は、Hibernate と Java の誕生日を祝った。
Hypersistence の CEO であり、Red Hat の元 Hibernate 開発者アドボケイトである Vlad Mihalcea氏は、Twitter を通じて Hibernate が20歳になったことを発表し、Java Persistence と Hibernate の個人的ジャーニーについて説明した。
Java 言語は26歳になり、25歳の誕生日パーティからすでに1年が経った。Kansas City Java Users Group は、Billy Korando氏、Nicolai Parlog氏、Sebastien Blanc氏、Ted Young氏が主催する26時間のライブストリームイベントで祝った。特別ゲストには、Brian Goetz氏、Maurizio Cimadamore氏、Ron Pressler氏、Pratik Patel氏、Josh Long氏が加わり、Java の過去、現在、未来について議論した。