BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Javaニュースまとめ、JDK20リリース、Springリリース、Quarkus、Helidon、Micronaut、Open Libertyのアップデート

Javaニュースまとめ、JDK20リリース、Springリリース、Quarkus、Helidon、Micronaut、Open Libertyのアップデート

ブックマーク

2023年3月20日のJavaラウンドアップは、OpenJDK、JDK20、JDK21、Amazon Corretto 20、BellSoft Liberica JDK20、Springのマイルストーンとポイントリリース、Quarkus 3.0.0.0Beta1と2.16.5、Helidon 3.2.0、 Open Liberty 23.0.0.3-beta, Micronaut 4.0.0-M1, Camel Quarkus 3.0.0-M1, JBang 0.105.1, Failsafe 3.3.1, Maven 3.9.1 および Gradle 8.1-RC1のリリースニュースだ。

OpenJDK

JEP 431Sequenced Collectionsが、JDK21のProposedからTargeted昇格した。このJEPは、"コレクションの構造的な特性として、その要素が明確に定義され順序またはシーケンスで配置しているコレクションの概念を表す新しいインターフェースのファミリーを導入する "ことを提案している。改修の動機はコレクションフレームワークの中に、よく定義された順序と統一した操作のセットがないことだ。JEP 431の詳細については、InfoQのニュース記事を参照されたい。

JEP 443Unnamed Patterns and Variables (Preview)は、先週、JEP Draft 8294349からCandidate昇格した。このプレビューJEPは「無名パターン(コンポーネントの名前や型を明記せずにレコードのコンポーネントにマッチするパターン)と無名変数(初期化できるが使用されない変数)で言語を強化する」ことを提案している。いずれも以下のようにアンダースコア文字で表記される。

r instanceof _(int x, int y) and r instanceof _.

JDK20

オラクルは7つのJEPの最終機能セットを搭載したJavaプログラミング言語と仮想マシンのバージョン20リリースした。詳細はInfoQのニュース記事に掲載している。

JDK21

またJDK21early-access buildsBuild 15は、Build 14からのアップデートで、様々な問題の修正が含まれており、先週から利用可能になっている。このビルドの詳細は、release notesに記載されている。

JDK20JDK21については、開発者はJava Bug Databaseを通じてバグを報告することが推奨されている。

Amazon Corretto

Amazonは、Linux、Windows、macOSで利用可能なOpenJDK20のdownstream distribution であるAmazon Corretto20をリリースした。開発者はこの最新版をこのサイトからダウンロードできる。

Liberica JDK

同様に、BellSoftはOpenJDK20のダウンストリームディストリビューションであるLiberica JDK20をリリースした。開発者はこのサイトから最新版をダウンロードできる。

Spring Framework

Spring Boot, Spring Framework, Spring Data, Spring Integration, Spring Vault, Spring for GraphQL, Spring Authorization Server, Spring HATEOAS, Spring Modulithのマイルストーンとポイントリリースをプロジェクトチームが提供し、Springは非常に忙しい1週間となった。これらのリリースの中には、これらのCommon Vulnerabilities and Exposures(CVEs)に対処しているものもある。

Spring Boot 3.0.5のリリースでは、ドキュメントの改善、依存関係のアップグレード、および次のような注目すべきバグ修正が行われた。組み込みWebサーバーが構成されていないときにEnbeddedWebSorbeFactyCostomizarAutoConfiguration クラスを起動しないこと、@ConfigurationPropertiesannotationは変異するコットンデータクラスに作用しないこと、@EntityScanannotationが使われるとAOTインスタンスのサプライヤーコード生成エラーが発生する。このリリースの詳細は、リリースノートに記載されている。

同様に、Spring Boot 2.7.10のリリースでは、ドキュメントの改善、依存関係のアップグレード、およびSnakeYAML 2.0の使用時にapplication.yml ファイルの読み込みがNoSuchMethodErrorが例外で発生する。クラスパスに'.' 文字が含まれているとStandardConfigDataResource クラスのインスタンスが同じファイルを2回インポートできる。Mavenプラグインがproject.build.outputTimestampプロパティ使用時に timezone-local timestampsが使われるというバグフィックスの修正が含まれている。このリリースに関する詳細は、リリースノートに記載されている。

Spring Boot 3.1.0の第2回リリース候補では、SanitizableDataクラスにサニタイズされた値を持つ新しいインスタンスを返す新しいメソッドwithSanitizedValue()、GraphQ paginationとソートの自動設定のサポート、Spring Authorization Serverのサポートなどの新機能を提供している。このリリースの詳細は、リリースノートに記載されている。

Spring Frameworkのバージョン6.0.7と5.3.26がリリースされ、主に前述のCVE-2023-20860とCVE-2023-20861の脆弱性に対応している。また、SpELのmatches 演算子や繰り返しテキストの診断機能の改善、HandlerMappingIntrospectorクラスの更新、SnakeYaml 2.0のランタイム互換性の確保などの新機能も提供される。これらのリリースの詳細は、バージョン6.0.7バージョン5.3.26のリリースノートに記載されている。

Spring Framework 5.2.23のリリースでは、CVE-2023-20861の脆弱性にも対応し、Spring Framework 5.3.26と同じ新しいSpEL機能を提供する。このリリースの詳細は、リリースノートに記載されている。

Spring Dataのバージョン2023.0-M1(コードネーム:Ullman)、2022.0.4、2021.2.10がこの一週間でリリースされた。このサービスリリースには、バグ修正とドキュメントの改善が含まれており、それぞれSpring Boot 3.0.5と2.7.10で消費される可能性がある。マイルストーンリリースの新機能には、オフセットとキーベースのページネーションをサポートする新しいスクロールAPI、HQLとJPQLのJPAクエリパースの改善、MongoDBの明示的なフィールドレベルの暗号化のサポート、Spring Data RESTの集約参照リクエストパラメータがある。マイルストーンリリースの詳細は、リリースノートに記載されている。

Spring Integrationのバージョン6.1.0-M2、6.0.4、5.5.17がリリースされた。LockRegistryLeaderInitiatorクラスの改善(現在のスレッドが中断された場合にターゲットロックプロバイダの呼び出しが遅延)、AbstractRemoteFileStreamingMessageSourceクラスのリモート呼び出しの改善、コードカバレッジツールのソナーとジャコの関係修正などの目立った変更点があった。これらのリリースの詳細は、バージョン6.1.0-M2バージョン6.0.4バージョン5.5.17のリリースノートに記載されている。

Spring Vaultのバージョン3.0.2およびバージョン2.3.3がリリースされ、前述のCVE-2023-20859の脆弱性に対応するとともに、トークン失効失敗後のログの精密化、ClientHttpRequestFactoryFactoryおよびClientHttpConnectorFactoryクラスにおけるライブラリ固有の設定コードの再利用、EnvironmentVaultConfigurationクラスへのAWS IAM Authentication追加などの新機能が追加された。これらのリリースの詳細は、バージョン 3.0.2 およびバージョン 2.3.3 のリリースノートに記載されている。

Spring for GraphQL 1.2.0の最初のマイルストーン・リリースで、@SchemaMappingアノテーションで定義されたメソッドにおけるページネーション戻り値およびページネーション要求のサポート、HandlerMethodArgumentResolverインターフェースのカスタムインスタンスのサポート、およびGraphQL Java 20.0 への依存性アップグレードなどの新機能を提供する。このリリースの詳細は、リリースノートに記載されている。

Spring for GraphQLのバージョン1.1.3と1.0.4がリリースされ、新機能としてWebGraphQlInterceptorインターフェイスのアクセスリクエスト属性とcookies、ContextDataFetcherDecoratorクラスのインスタンスが名前が変わったときにサブスクリプションを無視する不具合が修正された。これらのリリースは、それぞれSpring Boot 3.0.5と2.7.10で消費される。これらのリリースの詳細は、バージョン1.1.3およびバージョン1.0.4のリリースノートに記載されている。

Spring Authorization Server 1.1.0のsecond milestone releaseは、バグ修正、依存関係のアップグレード、新機能を搭載している。RFC 8628, OAuth 2.0 Device Authorization Grantの実装、OAuth2 client secretsのPasswordEncoder interfaceで定義されたupgradeEncoding()メソッドを有効にする。このリリースの詳細は、リリースノートに記載されている。

Spring HATEOASのバージョン2.1-M1、2.0.3、1.5.4がこの一週間でリリースされた。今回のサービスリリースでは、ドキュメントの改善や依存関係のアップグレードが行われている。マイルストーンリリースでは、JSR-303,Bean Validationで定義されている@Sizeアノテーションを使用したフォーム上のプロパティメタデータのサポート、PagedModelクラスの簡略版である新しいSlicedModelクラスでスライスをナビゲーションするが、合計は計算されないという特徴がある。これらのリリースの詳細は、バージョン 2.1-M1バージョン 2.0.3バージョン 1.5.4 のリリースノートに記載されている。

Spring Modulith 0.5.1のリリースでは、spring-modulith-runtimeモジュールに、テスト使用のみを目的としたLogback設定ファイルが誤って含まれていたバグが大幅に修正された。また、Spring Boot 3.0.5への依存関係のアップグレードが行われた。このリリースの詳細は、リリースノートに記載されている。

Spring Data JPAチームは、@Queryアノテーションと連携してSpring Data JPAアプリケーションのクエリをより簡単にカスタマイズできるよう、開発者向けにHQLとJPQLクエリパーサを導入した。

Quarkus

Quarkus 3.0.0のfirst beta releaseでは、選択したルート(管理ルート)を別のHTTPサーバーに公開する管理インターフェイスがサポートしている。このリリースに関する詳細は、変更履歴から見られる。

Quarkus 2.16.5.Finalでは、5回目のメンテナンスリリースとして、 テストクラスProviderConfigInjectionWarningsTestの実行によるRESTEasy関連の警告のフィルタリング、ワークスペースモジュール読み込み時のNullPointerException の修正、サーバーサイドイベントMessageBodyWriterがヘッダーを蓄積する可能性を防ぐなどの変更点があった。このリリースに関する詳細は、変更履歴で見られる。

Helidon

Oracleは、WriteableMultiPartクラスで定義されたオーバーロードされたcreate() メソッドの修正、JtaConnectionクラスでデータベース接続を閉じる際の誤った動作の修正、SnakeYAML 2.0への依存性アップグレードなどの変更を含むHelidon 3.2.0を公開した。SnakeYAML 2.0には、破壊的な変更があることに注意することが重要だ。SnakeYAMLを直接使用すると、Helidonアプリケーションに影響を与える可能性がある。ただし、ダウングレードしたSnakeYAML 1.3.2でHelidon 3.2.0にアップグレードが可能だ。このリリースに関する詳細は、リリースノートで参照できる。

Open Liberty

IBMは、JDK20、Jakarta EE 10 Platform、MicroProfile 6.0をサポートしたOpen Liberty 23.0.0.3-βをリリースした。

Micronaut

Micronaut foundationは、Kotlin Symbol Processingの実験的サポート、 virtual threadsのサポート、Beanが見つからない場合のエラーメッセージの改善、フィルターメソッドのサポートなどを特徴とする最初のマイルストーンリリースMicronaut Framework 4.0.0 を提供した。

Apache Software Foundation

Apache Tomcatチームにより開示されているCVE-2023-28708の通り、RemoteIpFilterクラスを使用して、X-Forwarded-ProtoヘッダーがHTTPSに設定されているHTTP経由でリバースプロキシから受け取ったリクエストで、Tomcatが作成したセッションクッキーにsecur属性が含まれていない脆弱性だ。この脆弱性により、攻撃者はセッションクッキーを安全でないチャネルで送信する可能性がある。本脆弱性の影響を受けるTomcatのバージョンは以下の通りだ。 11.0.0-M1〜11.0.0-M2、10.1.0-M1〜10.1.5、 9.0.0-M1 〜 9.0.71 および 8.5.0 〜 8.5.85 だ。

Quarkus 3.0.0.Alpha5とCamel 4.0.0-M2を含む最初のマイルストーン・リリースであるCamel Quarkusは、JDK17とJakarta EE 10のベースラインを特徴とする最初のCamel Quarkusリリースである。その他の注目すべき変更点としては、ReflectiveClassBuildItemクラスの廃止、Camel 4とQuarkus 3でテスト中にPerfRegressionITクラスを使用して発生する例外の修正、InfinispanテストのQuarkusおよびCamel管理クライアント用の別々のモジュールへの分割がある。このリリースの詳細は、リリースノートに記載されている。

JBang

JBangのバージョン0.105.10.105.2は、次のような顕著な変更を提供する。サポートされているJBang IDEプラグインの1つがインストールされていると仮定するjbang edit コマンドの改良、クラスパスよりもモジュールパスを使用する改良の継続、jbang export jlinkコマンドは、開発者がJava runtimeを組み込んだJBangアプリケーションやスクリプトをエクスポートできるオプションとなった。Apple Silicon VSCodiumダウンロードに関する修正などだ。

Failsafe

Java 8+で失敗を処理するための軽量で依存性のないライブラリであるFailsafeは、Failsafe JARへの完全なJavaモジュール記述子の追加、Failsafeが提供するCompletableFutureクラスのインスタンス内の実行参照の解放などのAPIの変更を含むバージョン3.3.1をリリースした。このリリースに関する詳細は、変更履歴から参照できる。

Maven

Maven 3.9.1がリリースされた。 "missing dependency "エラーメッセージの改善、replaceAll()メソッドの正規表現以外のパターンをreplace()メソッドに置き換える、またはプリコンパイルパターンを使用するといったパフォーマンス向上、${localRepository}によって注入されたArtifactFactoryインターフェースのインスタンスはMaven ResolverインターフェースLocalRepositoryManagerとコンテキスト不足により互換しないためMojo pluginパラメータ表現、${localRepository}は非推奨となっている。

Gradle

Gradle 8.1の最初のリリース候補は、安定とみなされるようになったConfiguration cacheの継続的な改善、Groovy DSLの代替であるKotlin DSLの継続的な改善、Kotlin DSLスクリプトでの実験的な単純プロパティ割り当て、およびJDK20のサポートを提供する。このリリースの詳細は、リリースノートに記載されている。

作者について

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT