今週2021年8月30日のJava総まとめでは、Spring Framework 6.0とSpring Boot 3.0のロードマップが明らかにされたSpringOne、OpenJDK JEPの更新、JDK 18、Quarkus 2.1および2.2リリーストレインの更新、MicroProfile APIリリース候補、Open Liberty 21.0.0.9、Hibernate 5.6.0.Beta1、GraalVM Native Build Tools 0.9.4、およびHelidonの新しいJHipsterプロジェクトからのニュースを特集する。
OpenJDK
UTF-8 by Default (デフォルトでUTF-8) のJEP 400は、JDK 18の Proposed to Target (ターゲットに提案) から Integrated (統合) ステータスに昇格した。このJEPは、UTF-8を、一貫性を確保してすべての実装、オペレーティングシステム、ロケール、および構成で標準Java APIのデフォルトの文字セットに指定する。
Proposed to Target (ターゲットに提案) ステータスに昇格してから1週間後、Code Snippets in Java API Documentation (JavaAPIドキュメントのコードスニペット) のJEP 413がJDK 18の Targeted (ターゲット) ステータスに昇格した。このJEPは、有名なデフォルトのHTML形式の出力を生成するJava APIドキュメントユーティリティであるOracleの標準ドックレットに @snippet
タグを導入する。その目的は、APIドキュメントにサンプルソースコードを含めることを簡素化することだ。
Internet-Address Resolution SPI (インターネットアドレス解決SPI) のJEP 418は、Draft (ドラフト) から Candidate (候補) ステータスに昇格した。このJEPは、ホスト名とアドレスの解決のためのサービスプロバイダインターフェイスを定義することを提案する。これにより、java.net.InetAddress
は、デフォルトの組み込みOpenJDKリゾルバ以外のリゾルバを利用できる。
AzulのオープンソースプロジェクトのシニアディレクタであるGeertjan Wielenga氏は、OpenJDK上に構築されたアプリケーションを強調するために「Works with OpenJDK」キャンペーンを開始した。Java開発者は以下に示したバッジを追加することが勧められる。たとえば、バッジは、アプリケーションのGitHubリポジトリの README.md
ファイルに追加できる。
JDK 17
JDK 17は、2021年9月14日にGAがリリースされる予定で、リリース候補フェーズのままだ。InfoQは、より詳細なニュース記事でフォローアップする。
JDK 18
Build 13 of the JDK 18 early-access builds was made available this past week featuring updates from Build 12 that include fixes to various issues. More details may be found in the release notes.
先週、JDK 18早期アクセスビルドは、さまざまな問題の修正を含むビルド 12からの更新が行われたビルド 13が利用可能になった。詳細については、リリースノートに記載されている。
JDK 17とJDK 18の両方で、開発者は Java Bug Database を介したバグの報告が奨励される。
Quarkus
Red Hatは、Quarkus 2.1および2.2リリーストレインのポイントリリースが利用可能になった。
Quarkus 2.2.1.Final は、問題を修正し、使いやすさとドキュメントを改善する強化リリースとして定義されている。機能は次のとおりだ: GraalVM 21.2へのアップグレード。プロパティ quarkus.devservices.enabled=false
を追加してすべてのDevServicesを無効にする機能。RESTEasy Reactiveの拡張スレッドモデルで、RESTメソッドに応じてブロッキングまたは非ブロッキングを選択。MongoDBサービスバインディングのサポートの導入。および、Narayana長時間実行アクションを実行するための拡張機能。
Quarkus 2.1.4.Final は、4番目のメンテナンスリリースであり、機能は次のとおりだ: quarkus.redis.devservices.enabled=false
が application.properties
ファイルに適用された場合に「Unable to connect to DOCKER_HOST URI (DOCKER_HOST_URIに接続できない)」エラーの修正。不要なDevServicesのシャットダウンフックの削除。/q/dev/3
エンドポイントを使用した内部サーバーエラーの解決。推奨されるプロパティ quarkus.smallrye-metrics.jaxrs.enabled=true
を非推奨のプロパティ quarkus.resteasy.metrics.enabled=true
で適用する際の警告を削除。詳細は変更ログに記載されている。
Open Liberty
IBMは、MicroProfile 4.1のピアアプリケーションサーバのグループ間の自律トランザクションピアリカバリをサポートするOpen Liberty 21.0.0.9をリリースした。また、今年初めに導入された新しいロギング形式である TBASIC
が、 traceFormat
ログの既存のサポートを補完するために consoleFormat
ログと messageFormat
ログで使用できるようになった。
Spring Framework
先週のSpringOneで発表されたSpring Framework 6.0とSpring Boot 3.0は、JDK 17とJakarta EE 9のベースラインが含まれる。VMwareは、2022年の第4四半期のリリースを計画しており、このベースラインは「APIの設計と統合の取り組みに大きなメリットをもたらし、アプリケーションコードを輝かせ、フレームワークとアプリケーションを今後何年にもわたって将来にわたって保証するものだ」と述べている。InfoQは、より詳細なニュース記事でフォローアップする。
Spring GraphQL 1.0.0の2番目のマイルストーンリリースは、通常のバグ修正とともにGraphQLコントローラの新しいアノテーションモデルを備えて利用可能になった。詳細については、問題リストに記載されている。
Hibernate
Hibernate ORM 5.6.0の最初のベータバージョンは、Hibernate ORMのコア内でHibernate Reactiveの変更をサポートし、ベンチマークとランタイムパフォーマンスを改善する機能を備えている。Hibernateは、バージョン5.6.0が次のHibernate ORM 6.0へのゲートウェイとして機能すると見なしている。そのためHibernateは、Hibernate ORM 5.3以降で利用可能になっているByte Buddyを優先しJavassistのサポートを削除した。
MicroProfile
2021年の第4四半期のリリースが予定されているMicroProfile 5.0への道のりで、8の内製APIのうち7に、レビュー可能なリリース候補がある:
- Config 3.0-RC4
- Health 4.0-RC1
- Metrics 4.0-RC1
- Rest Client 3.0-RC2
- Fault Tolerance 4.0-RC2
- Open Tracing 3.0-RC2
- Open API 3.0-RC1
MicroProfileの JWT 2.0-RC1 はまもなく利用可能になる。
GraalVM
Oracle Labsは、GraalVM Native Imageとの相互運用性のためのプラグインで構成されるGraalVMプロジェクトであるNative Build Toolsのバージョン 0.9.4をリリースした。このリリースは、Windowsオペレーティングシステムで長いクラスパスを処理するMavenとGradleの回避策を提供する。クラスパス上のすべてのエントリを渡す代わりに、Gradleプラグインはこの回避策を無効にするオプションを備えたファットJARを自動的に生成する。Mavenユーザの場合、maven-shade-plugin
を使用してビルドを構成する必要がある。
Helidon ProjectsのJHipsterジェネレータ
Oracleのソフトウェア開発者であるDmitry Aleksandrov氏は、Helidonアプリケーションを生成するJHipsterプロジェクトであるJHipster Helidon 0.0.1という新しいプロジェクトを紹介した。まだ作成中ですが、Aleksandrov氏はJavaコミュニティからのフィードバックを求めている。