今週2022年4月18日のJavaラウンドアップは、OpenJDK、JEP 426、2022年4月版Oracle緊急パッチアップデートのリリース、JDK 19、Liberica JDKとNative Image Kitのアップデート、Springのポイントリリースとマイルストンリリース、2022年4月版Payara Platformリリース、Quarkus 2.8.1.Final、Apache Groov y 4.0.2、Apache TomEE 8.0.11、JobRunr 5.0.1、JReleaserr 1.0のアップデートといった情報をお届けする。
OpenJDK
DraftからCandidateへの昇格後1週間を待たず、JEP 426 " Vector API (Fourth Incubator)"がCandidateからさらに、JDK 19を対象としたProposed to Targetへの昇格を果たした。Project Panamaが進めるこのJEPは、JEP 417 "Vector API (Third Incubator)"(JDK 18にて提供)、JEP 414 "Vector API (Second Incubator)"(JDK 17にて提供)、およびJDK 16でインキュベータモジュールとして提供されたJEP 338 "Vector API (Incubator)"という、過去3回のインキュベーションで得られたフィードバックを反映した改良を加えたもので、JEP 424 "Foreign Function & Memory API (Preview)"が定義するMemorySegment
に対して、ベクタをロードおよびストアするためのVector APIを拡張するように提案している。レビューは2022年4月28日に完了する予定である。
Oracleが2022年4月に公開したReleases Critical Patch Updateの一部として、JDK 18.0.1、17.0.3、11.0.15、8u331、7u341のリリースアップデートが公開された。詳細はJDK 18、JDK 17、JDK 11、JDK 8、JDK 7それぞれのリリースノートに記載されている。
JDK 19
JDK 19 早期アクセスビルドのBuild 19が先週公開された。さまざまなイシューの修正を含むアップデートが実施されている。詳細はリリースノートを確認して頂きたい。
JDK 19に関しては、開発者からのバグ報告をJava Bug Database経由で募っている。
Liberica JDKとNative Image Kit
Oracleの2022年4月版Releases Critical Patch Updateと並行する形で、BellSoftが、同社のOpenJDKダウンストリームディストリビューションであるLiberica JDKのバージョン18.0.1、17.0.3、11.0.15、8u332をリリースした。
さらにBellSoftは、Liberica Image Kit(NIK)の新バージョンである22.1.0と、アップグレードバージョンの21.3.2もリリースしている。ポインタ分析中のインクリメンタルかつコンカレントなヒープスキャンによるネイティブイメージビルド時間の短縮、GarbageCollection
、GCPhasePause
、SafepointBegin
、SafepointEnd
、ExecutionSample
各イベントのサポート、脆弱性を持ったlog4jライブラリを対象とする特別なネイティブイメージ内の検索と警告生成、などが新機能だ。また、今回のリリースでは、実行時にイメージをリンクする--allow-incomplete-classpath
がデフォルトになり、オプションとしては非推奨になった。開発者に対しては、ビルド時にイメージをリンクする場合に--link-at-build-time
オプションを使用することを推奨している。
Spring Framework
Springチームにとって今週は、いくつかのプロジェクトでリリース候補やポイントリリースを提供した、多忙な一週間になった。
Spring Boot 2.7.0に向けた最初のリリース候補が、バグ修正、ドキュメントの改善、依存関係のアップデートを載せて公開された。Kafka Retry TopisおよびGraphQLでのRSocketサポート用の自動コンフィギュレーションなどが新機能だ。詳細はリリースノートを参照して頂きたい。
Spring Boot 2.6.7がリリースされた。38件のバグ修正、ドキュメント改善の他、Spring Framework 5.3.19、Spring Data 2021.1.4、Spring Session 2021.1.3、Spring Security 5.6.3、Micrometer 1.8.5、Reactor 2020.0.18、Apache Tomcat 9.0.62など、依存関係のアップグレードが提供されている。このリリースに関する詳細は、リリースノートを参照して頂きたい。
Spring Boot 2.5.13がリリースされた。31件のバグ修正、ドキュメントの改善の他、Spring Framework 5.3.19、Spring Data 2021.0.11、Spring Session 2021.0.6、Spring Security 5.5.6、Micrometer 1.7.11、Reactor 2020.0.18、Apache Tomcat 9.0.62など、依存関係のアップグレードが提供されている。
いずれのバージョンも、VMwareが先週発表したCVE-2022-22968 "Spring Framework Data Binding Rules Vulnerability"に対処する。詳細はリリースノートを参照して頂きたい。
VMwareが発表したCVE-2022-22969 "Denial-of-Service (DoS) in spring-security-oauth2"によると、バージョン2.5.2より前のSpring Security OAuthは、OAuth 2.0 ClientアプリケーションのAuthorization Requestのイニシエーションを通じたDoS攻撃を受ける可能性がある。Spring Security OAuth 2.5.2はこのCVEに対応している。
Spring for GraphQL 1.0に向けた最初のリリース候補が公開された。RSocketプロトコル経由でのGraphQLクライアントサポート、デフォルトメディアタイプとしてGraphQL over HTTPメディアタイプ(application/graphql+json
)のサポート、GraphQLSourceBuilderの機能向上などの新機能を備える。
Spring Dataバージョン2021.2.0-RC1、2021.1.4、2021.0.11がリリースされた。バグ修正に加えて、依存関係がSpring Data Commons 2.7.0-RC1、2.6.4、2.5.11、Spring Data MongoDB 3.4.0-RC1、3.3.4、3.2.11、Spring Data JDBC 2.4.0-RC1、2.3.4、2.2.11、Spring Data Redis 2.7.0-RC1、2.6.4、2.5.11にアップグレードされている。
同じくSpring Sessionバージョン2021.2.0-RC1、2021.1.3、2021.0.6も、バグ修正とSpring Session Core 2.7.0-RC1、2.6.3、2.5.6、Spring Session Data Redis 2.7.0-RC1、2.6.3、2.5.6、Spring Session JDBC 2.7.0-RC1、2.6.3、2.5.6、Spring Session Hazelcast 2.7.0-RC1、2.6.3、2.5.6、Spring Session MongoDB 2.7.0-RC1、2.6.3、and Spring Session for Apache Geode 2.7.0-RC1、2.6.1、2.5.6への依存関係のアップグレードをフィーチャーしてリリースされている。
Spring Security 5.7.0に向けた最初のリリース候補が、バグ修正、ドキュメントの改善、依存関係のアップデートを伴って公開された。SecurityContext
インターフェースの明示的保存が可能な、新しいSecurityContextHolderFilter
クラス、Cross-Origin PoliciesヘッダへのDSLサポートの追加、機密クライアント(confidential client)上での>Proof Key for Code Exchange(PKCE)コンフィギュレーションの許可、SAML 2.0 LoginとSingle Logout XMLのサポートなどが新機能だ。このリリースに関する詳細は、リリースノートを参照して頂きたい。
Spring Securityのバージョン5.6.3と5.5.6がリリースされた。バグ修正に加えて、Spring Framework 5.3.19、Spring Data 2021.1.3と2021.0.10、Reactor Netty 1.0.18、Project Reactor 2020.0.18へのアップグレードが含まれる。
Payara
PayaraはPayara PlatformのApril 2022エディションをリリースした。Community 5.2022.2エディションには13のバグ修正、2つのコンポーネントのアップグレード、3つの改善点と3件のセキュリティ修正が、Enterprise 5.38.0エディションには2件のバグ修正、1つの修正点と4件のセキュリティ修正が、それぞれ含まれている。いずれのエディションも新機能として、新しいgRPCエクステンション、Payara Server内のSpring Framework WARパッケージアプリケーションを対象としたSpring4Shell脆弱性のホットフィックス、JakartaEE9とPrimeFacesをEclipseTransformerで使用する機能などを備える。
さらにPayaraは、Payara 5 Communityエディションの次期リリースでの終了と、Jakarta EE 10のGAリリースに合わせたPayara 6 Communityエディションへの移行を発表した。Payara Platform 5の継続的使用を希望する開発者に対しては、Payara 5 Enterpriseへのマイグレーションが推奨されている。
Quarkus
Quarkus 2.8.0のリリースから一週間、Red Hatが、バグ修正とドキュメント改善を施したQuarkus 2.8.1.Finalをメンテナンスリリースとして提供している。リリースに関する詳細はchangelogで確認が可能だ。
Apache Groovy
Apache Software Foundation(ASF)がApache GroovyとApache TomEEのポイントリリースを公開した。
Groovy 4.0.2がリリースされた。JDK 19の限定的サポート、groovy-all
プロパティの問題に対処するためのGradleメタデータ改良、JEP-411に関連したセキュリティポリシの初期フェーズ、Security Manegerの削除に向けた非推奨化などが含まれる他、 groovysh
ツール使用時にJAVA_OPTS
環境変数を-Djava.security.manager=allow
に設定するために、開発者に対してJDK 18またはJDK 19の使用を推奨している。詳細はリリースノートに記載されている。また、2022年1月下旬にリリースされたGroovy 4.0については、ニュースでも詳細に取り上げている。
Java EE 9.1 Web Profile準拠のアプリケーションサーバであるTomEEバージョン8.0.11もリリースされた。バグ修正、依存関係のアップグレードに加えて、Google AnalyticsからASF Matomoにリプレースされている。また、現行の部品表(bill of materials)自動生成が原因でGitHub ActionsのPullRequest Buildsが失敗する問題が解決し、Webサイト更新後のドキュメントの位置を正しく参照するようにtomee.xml
ファイルがアップデートされた。詳しい内容はリリースノートに記載されている。
JobRunr
JobRunr5.0のリリースから1か月を待たず、バージョン5.0.1がリリースされた。バグ修正に加えて、ジョブ成功後にダッシュボードにログが残るように改善されている。この変更は、ジョブ成功後にメタデータがクリアされるという変更を受けて実施されたものだ。詳細はリリースノートを参照して頂きたい。
JReleaser
JReleaserの小アップデートがリリースされた。プロジェクトオーナのコントリビューション向けリポジトリのクローズを受けて、GoFishパッケージマネージャが廃止されている。