25.0.0.10におけるアプリケーションクラスローダーでのオーバーライドライブラリのサポートとJava 25のサポート
このリリースでは、アプリケーションを再ビルドせずに修正できるアプリケーションクラスローダーでのオーバーライドライブラリのサポートが導入されています。また、最新の長期サポート(LTS)リリースであるJava 25との互換性も追加されています。
Open Liberty 25.0.0.10では:
25.0.0.10 で修正されたバグのリストをご覧ください。
以前のOpen Liberty GAリリースのブログ記事 をチェックしてください。
25.0.0.10を使用したアプリケーションの開発と実行
Maven を使用している場合は、 pom.xml ファイルに以下を含めてください:
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.11.5</version>
</plugin>
または、Gradle の場合は、 build.gradle ファイルに以下を含めてください:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'io.openliberty.tools:liberty-gradle-plugin:3.9.5'
}
}
apply plugin: 'liberty'
または、コンテナイメージ を使用している場合:
FROM icr.io/appcafe/open-liberty
または、ダウンロードページ をご覧ください。
IntelliJ IDEA、Visual Studio Code、または Eclipse IDE を使用している場合は、オープンソースの Liberty開発ツール を活用して、IDE内での効果的な開発、テスト、デバッグ、アプリケーション管理を行うことができます。
アプリケーションクラスローダーでのオーバーライドライブラリのサポート
このGAリリースでは、オーバーライドライブラリ参照を設定するために使用できるアプリケーションの <classloader/> を設定するための新しいタイプのライブラリ参照が導入されています。オーバーライドライブラリ参照は、クラスインスタンスがアプリケーションのクラスローダーに固有のままであるため、プライベートライブラリ参照に似ています。主な違いは検索順序です。オーバーライドライブラリ参照では、ライブラリクラスパスはアプリケーション自身のクラスパスの前に検索されます。したがって、オーバーライドライブラリを使用すると、ライブラリパスがアプリケーションに既に含まれているクラスをオーバーライドできます。
例えば、 <webApplication/> に org.acme.needs.fix.SomeImpl のような修正が必要なクラスが含まれているとします。アプリケーションを再ビルドして修正を含めることが難しい、または望ましくない場合は、修正されたクラスファイルを含む新しいライブラリJAR(例: someImplFix.jar )をビルドします。以下の server.xml 設定は、アプリケーションを再ビルドせずに修正を適用するために overrideLibraryRef を使用する方法を示しています:
<webApplication location="appThatNeedsFix.war">
<classloader overrideLibraryRef="someImplFix"/>
</webApplication>
<library id="someImplFix">
<path name="someImplFix.jar"/>
</library>
Java 25のサポート
Java 25は、最新の長期サポート(LTS)リリースであり、以前のバージョンのJavaと比較して多くの新機能と拡張機能が含まれています。 Java 25 には18の新機能(JEP)があります:6つはテスト機能で、12は完全に提供されています。
テスト機能
-
502: 安定値(プレビュー)
-
505: 構造化並行処理(第5プレビュー)
-
508: ベクトルAPI(第10インキュベータ)
提供済み機能
-
503: 32ビットx86ポートの削除
-
506: スコープ付き値
-
510: 鍵導出関数API
-
511: モジュールインポート宣言
-
513: 柔軟なコンストラクタ本体
-
518: JFR協調サンプリング
-
519: コンパクトオブジェクトヘッダー
-
520: JFRメソッドタイミングとトレーシング
-
521: 世代別Shenandoah
Java 25で明示的なExecutorバッキングなしで CompletableFuture および SubmissionPublisher クラスを使用する場合、デフォルトでは ForkJoinPool.commonPool を使用します。このプールは、並列処理の値を利用可能なプロセッサ数から1を引いた値(利用可能なプロセッサ数 - 1)に設定します。2つ以下のプロセッサを持つシステムで実行されるアプリケーションは、Java 25がデフォルトで単一のスレッドのみを使用するため、並行処理の問題が発生する可能性があります。以前のJavaバージョンでは、 ForkJoinPool 共通プールの並列処理値が2未満の場合、JDKは各非同期タスクに対して新しいスレッドを作成していたため、これは問題ではありませんでした。
以下のアプローチのいずれかを使用して、この問題を回避できます:
-
この制限のないLibertyのJakarta Concurrency実装で提供される
CompletableFutureクラスを使用します。CompletableFutureクラスを DefaultManagedExecutorService インスタンスと、supplyAsync メソッドまたは runAsync メソッドのいずれかと一緒に使用できます。 -
システムプロパティ
-Djava.util.concurrent.ForkJoinPool.common.parallelism=N(Nは必要な最小スレッド数)を使用して、ForkJoinPool.commonPoolの並列処理値を明示的に設定します。 -
明示的なバッキング
Executorを使用します。
この変更の詳細については、以下のリンクを参照してください:
Open LibertyでJava 25の変更を今すぐ活用し、お気に入りのサーバーランタイムでアプリケーション、マイクロサービス、ランタイム環境をレビューする時間を増やしましょう!
Java 25の最新リリースをダウンロード し、25.0.0.10 バージョンのOpen Libertyをダウンロードしてインストールし、LibertyサーバーのJAVA_HOMEをJava 25インストールディレクトリに設定した server.env ファイルを編集してテストを開始しましょう!
Java 25の詳細については、Java 25の リリースノートページ 、API Javadocページ 、または ダウンロードページ をご覧ください。 Open Libertyの詳細については、ドキュメントページ をご覧ください。
このリリースでのセキュリティ脆弱性(CVE)の修正
| CVE | CVSSスコア | 脆弱性評価 | 影響を受けるバージョン | 注記 |
|---|---|---|---|---|
5.3 |
セキュリティの弱体化 |
17.0.0.3-25.0.0.9 |
|
過去のセキュリティ脆弱性修正のリストについては、セキュリティ脆弱性(CVE)リスト を参照してください。
Open Liberty 25.0.0.10を今すぐ入手
Maven、Gradle、Docker、およびダウンロード可能なアーカイブ を通じて利用可能です。