今週2021年10月11日のJava総まとめでは、OpenJDK、JDK 18、Spring Framework、Grails 5.0、Micronaut 3.1、Helidon 2.3.4、Hibernate ORMおよびReactiveのポイントとGAリリース、WildFly 25の最近のGAリリースに関連するアップデート、GraalVM Native Build Tools 0.9.6、Apache Camel 3.11.3、Piranha 21.10.0、およびKotlinのMultik多次元アレイライブラリを導入するJetBrainsからのニュースを特集している。
OpenJDK
1週間のレビューの後、JEP 408 (Simple Web Server) が Proposed to Target から JDK 18 の Targeted に昇格した。この JEP は、静的ファイルのみを提供する最小限の HTTP コマンドライン Web サーバを提供する。このユーティリティは、特に教育環境でのプロトタイピング、アドホックコーディング、およびテストに役立つように設計されている。サーバは次のように起動できる:
$ java -m jdk.httpserver [-b bind address] [-p port] [-d directory] [-h to show help message] [-o none|default|verbose]
Foreign Function & Memory API (Second Incubator) の JEP 419 は、Draft から Candidate ステータスに昇格した。この JEP は、JDK 17 で提供された最初のインキュベーター Foreign Function & Memory API (Incubator) である JEP 412 を進化させ、Java コミュニティのフィードバックに基づく改善を組み込んでいる。この2番目のインキュベーターの変更点は次のとおりだ: boolean
や MemoryAddress
インターフェイスなどのメモリアクセス変数の処理でより多くのキャリアのサポート。MemoryAddress
と MemorySegment
インターフェースのより一般的な逆参照API。ダウンコールメソッドを取得するときの MemoryType
の列挙を渡す必要なしに処理するより単純なAPI。Java 配列をメモリセグメントとの間でコピーするための新しいAPI。
JDK 18
JDK 18 早期アクセスビルドはビルド 18 からさまざまな問題の修正を含むアップデートを行ったビルド 19 が先週利用可能になった。詳細については、リリースノートに記載されている。
JDK 18 の機能セットは、現在次のとおりだ:
- 400: UTF-8 by Default
- 408: Simple Web Server
- 413: Code Snippets in Java API Documentation
- 417: Vector API (Third Incubator)
開発者は、Java Bug Database を介してバグのレポートが奨励されている。
Spring Framework
Spring Framework のポイントリリースが先週利用可能になった。
バージョン 5.3.11 には 32 の修正と改善が含まれ、バージョン 5.2.18.RELEASE には 10 の修正と改善が含まれている。どちらのバージョンも、完全なエラーレスポンス本文をログに記録できるようにする拡張された DefaultResponseErrorHandler
クラスを備えている。バージョン 5.3.11 のその他の新機能は次のとおりだ: パブリック以外のレコード宣言サポートの追加。そして、Closeable
および AutoCloseable
インターフェースそれぞれのBeanから派生した close()
メソッドの直接呼び出し。
Grails
Grails Foundation は、Apache Groovy 3、Micronaut Framework 3、Gradle 7、Spring Boot 2.5、Spring Framework 5.3、および Spock 2.0 への依存関係のアップグレードを行った Grails 5.0 をリリースした。その他の注目すべき変更点は次のとおりだ: 「ドット」ベースのナビゲーションの非推奨。デフォルトを型による autowire から名前による autowire への置き換え。そして、Gradle プラグインの変更。詳細については、リリースノートとドキュメントに記載されている。InfoQは、より詳細なニュース記事をフォローアップする。
Micronaut
Micronaut Foundation は、次のような多数の新機能を含む Micronaut 3.1 をリリースした: JDK 17のサポート。ファクトリ Bean でプリミティブまたはプリミティブ配列タイプの Bean を作成できるようになった。定義されたスコープがないときに Bean を破棄する新しい @InjectScope
アノテーション。Bean イントロスペクションをサポートするためのクラスの生成方法の最適化。Kotlin によるコンテキスト伝播のサポートの改善。また、HTTP フィルターに正規表現を使用する機能。
Helidon
メンテナンスリリースの Helidon 2.3.4 が先週利用可能になり、次のような改善が行われた: [a] Nettyサーバが負荷の下でハングする、[b] エンティティかどうかの分析で完全な読み取り時に競合状態の存在の WebServer コンポーネントの問題の修正。ホストが非ホストリストにある場合にリクエストURIを相対化する WebClient コンポーネントの問題の修正。[a] 新しい PeriodicExecutor
クラスが警告メッセージを誤ってログに記録し、その警告のテキストが間違っている可能性、[b] メトリックのパフォーマンスの最適化が原因でネイティブイメージのビルドが失敗する、Metrics コンポーネントの問題を修正。 詳細については、リリースノートに記載されている。
Hibernate
Hibernate ORM および Hibernate Reactive プロジェクトでポイントと GA リリースを提供したため、Hibernate は忙しい1週間だった。
Hibernate ORM 5.6.0.Final は、@EmbeddedId
と @MapsId
アノテーションを組み合わせたときのエラー、ByteBuddy 1.11.20 の依存関係のアップグレード、および Hibernate ORM 6.0 に備えた追加の非推奨警告に関連するバグ修正とともにリリースされた。
Hibernate ORM 6.0 への道のりで、最初のベータリリースが利用可能になった。機能は次のとおりだ: Jakarta Persistence 仕様への移行。JDBC の Result を読み取るための新しい位置による読み取りの概念を導入する改良された型システム。新しい型注釈。タイムゾーンサポートの改善。詳細については、ユーザガイド、移行ガイド、リリースページに記載されている。
Hibernate Reactive 1.0.0.CR10 がリリースされ、MySQL、Db2、および MS SQL Server データベースの自動スキーマ検証と更新のサポートが含まれるようになった。
WildFly
また、WildFly 25 に関連する多数の更新が Java コミュニティで利用可能になったため、WildFly チームにとっても忙しい週だった。
WildFly 25 Source-to-Image (S2I) Docker イメージが quay.io でリリースされた。これは、コンテナイメージを構築、分析、および配布するための Red Hat のユーティリティだ。これらのイメージには、WildFly 25 の GA リリースに関連する変更が含まれている。
WildFly Bootable JAR 6.0 Maven プラグインのリリースは次を備えている: WildFly 25 で導入された Galleon プロビジョニングをデモンストレーションする新しいサンプル。自己署名セキュリティ証明書の自動生成。OpenID Connect のネイティブサポート。詳細については、このブログ投稿に記載されている。
Wildfly 25 は、MicroProfile Reactive Messaging 2.0 仕様をサポートするようになった。SmallRye Reactive Messaging の実装に基づいて、開発者は新しい @Channel
アノテーションと Emitter
インターフェースを利用して、アプリケーションからリアクティブストリームにデータをプッシュできるようになった。
GraalVM
バージョン 1.0 への道のりで、Oracle Labs は Native Build Tools のバージョン 0.9.6 をリリースした。これは、GraalVM Native Image との相互運用のためのプラグインで構成される GraalVM プロジェクトだ。このリリースは JUnit 5.8 との統合を特徴としているが、Maven ユーザがバージョン 0.9.6 でプラグイン拡張機能を定義しなければならない重要な変更が導入されている:
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<version>${native.maven.plugin.version}</version>
<extensions>true</extensions>
</plugin>
junit-platform-native
依存関係は Maven では不要になったが、Gradle ユーザは引き続き必要だ。
Apache Camel
Apache Camel 3.11.3 は、Apache Karaf 1.1.11 および Camel Spring Boot 2.5.5 への依存関係のアップグレードなど、26 のバグ修正と改善で利用可能になった。詳細については、リリースノートに記載されている。
Piranha
Piranha 21.10.0 がリリースされた。「最初のサポートされたバージョン」エディションと呼ばれるこのリリースは、JDK 17 以降の LTS Java バージョンに対応し、Jakarta EE もサポートする新しいサポートブランチを備えている。詳細については、ドキュメントと課題追跡システムに記載されている。
Kotlin の Multik ライブラリの導入
JetBrains は、Kotlin の新しい多次元配列ライブラリである Multik 0.1 を導入した。これは、.csv
ファイルの読み取り/書き込み、線形代数演算の実行、複素数のサポート、および既存の関数のパフォーマンスの向上を実現する。詳細については、このブログ投稿に記載されている。InfoQは、より詳細なニュース記事をフォローアップする。