back to all blogsすべてのブログ投稿を表示

25.0.0.10におけるアプリケーションクラスローダーでのオーバーライドライブラリのサポートとJava 25のサポート

image of author image of author
Navaneeth S Nair and 馬場 剛 (翻訳) 2025年10月 7日
他言語版へのリンク: English ,

このリリースでは、アプリケーションを再ビルドせずに修正できるアプリケーションクラスローダーでのオーバーライドライブラリのサポートが導入されています。また、最新の長期サポート(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 IDEAVisual Studio Code、または Eclipse IDE を使用している場合は、オープンソースの Liberty開発ツール を活用して、IDE内での効果的な開発、テスト、デバッグ、アプリケーション管理を行うことができます。

Open Libertyについて質問する

アプリケーションクラスローダーでのオーバーライドライブラリのサポート

この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は完全に提供されています。

テスト機能

提供済み機能

Java 25で明示的なExecutorバッキングなしで CompletableFuture および SubmissionPublisher クラスを使用する場合、デフォルトでは ForkJoinPool.commonPool を使用します。このプールは、並列処理の値を利用可能なプロセッサ数から1を引いた値(利用可能なプロセッサ数 - 1)に設定します。2つ以下のプロセッサを持つシステムで実行されるアプリケーションは、Java 25がデフォルトで単一のスレッドのみを使用するため、並行処理の問題が発生する可能性があります。以前のJavaバージョンでは、 ForkJoinPool 共通プールの並列処理値が2未満の場合、JDKは各非同期タスクに対して新しいスレッドを作成していたため、これは問題ではありませんでした。

以下のアプローチのいずれかを使用して、この問題を回避できます:

  1. この制限のないLibertyのJakarta Concurrency実装で提供される CompletableFuture クラスを使用します。 CompletableFuture クラスを DefaultManagedExecutorService インスタンスと、supplyAsync メソッドまたは runAsync メソッドのいずれかと一緒に使用できます。

  2. システムプロパティ -Djava.util.concurrent.ForkJoinPool.common.parallelism=N (Nは必要な最小スレッド数)を使用して、 ForkJoinPool.commonPool の並列処理値を明示的に設定します。

  3. 明示的なバッキング 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スコア 脆弱性評価 影響を受けるバージョン 注記

CVE-2020-36732

5.3

セキュリティの弱体化

17.0.0.3-25.0.0.9

openidConnectServer-1.0 機能に影響します

過去のセキュリティ脆弱性修正のリストについては、セキュリティ脆弱性(CVE)リスト を参照してください。

Open Liberty 25.0.0.10を今すぐ入手