今週、2022年2月7日版のJavaラウンドアップは、OpenJDK、JDK 18、JDK 19、JCPがJSR 381を承認、Payara Platform 2022のロードマップ、Quarkus 2.7.1、Helidon 2.4.2、Micronaut 3.3.1、Hibernate Search 6.1.1、Hibernate Reactive 1.1.3.Final、JReleaser Early-Access、Failsafe 3.2.1、Kotlin 1.6.20-M1、Apache Tika 2.3.0のリリースとApache Tika 1.xリリーストレインの終了、といった内容でお届けする。
OpenJDK
OpenJDKの将来的なリリースへの統合候補として、先頃、2つの新たなJEPドラフトのレビューが開始された。
JEP Draft 8280826 "Seqienced Collections"は、"構造的特性として、明確に定義された順序あるいは規則に従って要素が配置されるコレクションの概念を表現する、インターフェースの新ファミリ"の導入を提案するものだ。Collection Frameworkにおいて順序が明確に定義されていないこと、統一的な操作セットが存在しないことなどが、この提案の背景となっている。
JEP Draft 8280173 Vector API (第4インキュベータ)は、これまでの3つのJEP、すなわち、JDK 16で提供されたJEP 338 vector API (インキュベータ)、JDK 17で提供された JEP 414 Vector API (第2インキュベータ)、近く登場するJDK 18 GAリリースで提供予定のJEP 417 Vector API (第3インキュベータ)に対して、Javaコミュニティから寄せられたフィードバックに基づく拡張機能の導入を提案するものだ。
JDK 18
JDK 18 早期アクセスビルドのBuild 35が先週公開された。Build 34でのさまざまな問題の修正を含むアップデートがフィーチャーされている。詳細はリリースノートで確認して頂きたい。
JDK 19
JDK 19 アーリーアクセスビルドのBuild 9も先週公開された。Build 8でのさまざまな問題の修正を含むアップデートがフィーチャーされている。詳細はリリースノートで確認して頂きたい。
JDK 18とJDK 19では、開発者からのJava Bug Database経由でのバグ報告を募集している。
Java Community Process (JCP)
JCP Executive Committeeは、JSR 381 Visual Recognition (VisRec) Specificationを正式に承認した。JSR 381は、" アプリケーション開発者が容易に理解可能な、Javaに特化したマシンラーニングAPI"だと、仕様リーダのひとりであるFrank Greco氏は説明している。同じく仕様リーダであるZoran Severac氏がjConference 2021で行ったプレゼンテーションを見れば、VisRec仕様についてさらに詳しく学ぶことができる。
Payara
Payaraは、Payara Platform 6の発表と同時に、2022年の同社のロードマップを公開した。今年後半のリリースが計画されているPayara Platform 6は、間もなく公開されるJakarta EE 10 GAリリースに準拠した実装になる予定である。
Payara Platform 5は、2023年2月までアップデートが実施された後、2028年2月を期限とするメンテナンスモードに移行する。
Quarkus
2.7リリーストレインとして最初のメンテナンスリリースになるQuarkus 2.7.1.Finalには、2.7.0.Finalで一時的に無効となっていたKogitoエクステンションの再導入、アプリケーションの他に依存関係からもコード生成を可能にするgRPCエクステンションの機能強化、OIDCトークンContext ProgramエクステンションにRESTEasy Reactiveでも使用可能なリアクティブ対応版の導入、といったものが含まれる。詳細はchangelongに記載されている。
Helidon
OracleがリリースしたHelidon 2.4.2では、バグ修正に加えて、WebServerとWebClient、Fault Tolerance、Long-Running Actionsなど、さまざまなHelidonコンポーネントが最適化されている。Netty 4.1.73.Final、log4j 4.4.3、grpc-java 1.41.2など、依存関係もアップグレードされた。詳細はリリースノートを参照して頂きたい。
Micronaut
Micronaut FoundationがMicronaut 3.3.1をリリースした。Micronaut Azure 3.0.1、Micronaut Servlet 3.1.1、Micronaut Flyway 5.1.2、Micronaut AWS 3.1.1、Micronaut Email 1.0.1といったプロジェクトのポイントリリース、UnsafeBeanProperty
インターフェースの導入、BeanProperty
インターフェースへの入力/出力のバリデーションを行わないread/writeメソッドの追加などの他、ドキュメントのリンク切れが修正されている。
Hibernate
Hibernate Search 6.1.1.Finalがリリースされた。依存関係のHibernate ORM 5.6.5.Finalおよびslf4j 1.7.35(Elastic Search用)へのアップグレード、-orm6
アーティファクトのHibernate ORM 6.0.0.CR1へのアップグレードなどが含まれる。
Hibernate Reactive 1.1.3.Finalがリリースされた。Oracleデータベース接続の初期サポートが含まれている。これにはOracle Vert.x SQLクライアントの使用が必要だ。詳細は問題点リスト(list of issues)に記載されている。
JReleaser
バージョン1.0のリリースに向けて、プロジェクトリリースの作成を合理化するJavaユーティリティであるJReleaserの3回目の早期アクセスリリースが公開された。デフォルトでfalse
であるremoteBuild
プロパティが指定されていないにも関わらずGitHub "bucket"リポジトリが生成される、という問題が修正されている。
Failsafe
Java 8以降を対象とする、軽量かつ依存関係を持たない障害処理ライブラリFailsafeのバージョン3.2.1が、バージョン3.2のリリースから1週間を待たずにリリースされた。待機時間を備えたRateLimiter
予約のサポート、ExecutionContext
インターフェースとExecution
インターフェースでそれぞれ定義されているメソッドgetLastFailure()
、recordFailure()
の非推奨化とgetLastException()
、recordException()
への置き換え、ポリシビルダのインターフェースPredicate
、BiPredicate
のCheckedPredicate
and CheckedBiPredicate
への置き換えなどがおもな内容だ。詳細はchangelongに記載されている。
Kotlin
Kotlin 1.6.20に向けた最初のマイルストンリリースが公開された。JVM IRバックエンドにおける単一モジュールの並行コンパイルによるビルド時間の改善、Kotlin/JS IRでのインクリメンタルコンパイルによる開発時間の改善、マルチプラットフォームプロジェクトの階層構造によるコード共有の改善、Kotlin/Nativeのパフォーマンス向上などの機能がプレビュー提供されている。
Gradle
人気の高いビルドツールであるGradleのバージョン7.4がリリースされた。複数のプロジェクトを対象とする単一テストあるいはJaCoCoコードカバレッジレポート生成の改善、AdoptOpenJDKからEclipse Adoptiumへの移行をサポートするためのJava Toolchainのアップデート、Shared Build ServicesおよびVersion Catalogs各機能の安定版への移行宣言などが提供されている。InfoQでは、詳細を別ニュースとしてお伝えする予定である。
Apache Tika
Apache Tika開発チームは、メタデータ抽出ツールキットのバージョン2.3.0をリリースした。以前はApache Luceneのサブプロジェクトであったが、この最新バージョンでは、依存関係のセキュリティアップグレードとApache POI 5.2.0へのアップグレードが含まれている。詳細はリリースノートで確認して頂きたい。
これに合わせて、1.xリリーストレインの開発が終了し、2022年9月30日を期限とするセキュリティ限定のメンテナンスモードに移行したことも発表された。最終版として、セキュリティ関係と依存関係一般がアップグレードされたバージョン1.28.1がリリースされている。詳細はリリースノートを参照して頂きたい。