Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions posts/2025-10-07-25.0.0.10.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ seo-description: This release introduces support for the override library in the
blog_description: This release introduces support for the override library in the application classloader that allows fixing applications without rebuilding them. It also adds compatibility with Java 25, the latest Long-Term Support (LTS) release of Java.
open-graph-image: https://openliberty.io/img/twitter_card.jpg
open-graph-image-alt: Open Liberty Logo
blog-available-in-languages:
- lang: ja
path: /ja/blog/2025/10/07/25.0.0.10.html
---
= Support for override library in the application classloader and support for Java 25 in 25.0.0.10
Navaneeth S Nair <https://github.com/navaneethsnair1>
Expand Down
196 changes: 196 additions & 0 deletions posts/ja/2025-10-07-25.0.0.10.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
---
layout: post
title: "25.0.0.10におけるアプリケーションクラスローダーでのオーバーライドライブラリのサポートとJava 25のサポート"
# Do NOT change the categories section
categories: blog
author_picture: https://avatars3.githubusercontent.com/navaneethsnair1
author_github: https://github.com/navaneethsnair1
seo-title: アプリケーションクラスローダーでのオーバーライドライブラリのサポートとJava 25のサポート(25.0.0.10) - OpenLiberty.io
seo-description: このリリースでは、アプリケーションを再ビルドせずに修正できるアプリケーションクラスローダーでのオーバーライドライブラリのサポートが導入されています。また、最新の長期サポート(LTS)リリースであるJava 25との互換性も追加されています。
blog_description: このリリースでは、アプリケーションを再ビルドせずに修正できるアプリケーションクラスローダーでのオーバーライドライブラリのサポートが導入されています。また、最新の長期サポート(LTS)リリースであるJava 25との互換性も追加されています。
open-graph-image: https://openliberty.io/img/twitter_card.jpg
open-graph-image-alt: Open Liberty Logo
additional_authors:
- name: 馬場 剛 (翻訳)
github: https://github.com/babatch
image: https://avatars.githubusercontent.com/u/29302643
blog-available-in-languages:
- lang: en
path: /blog/2025/10/07/25.0.0.10.html
---
= 25.0.0.10におけるアプリケーションクラスローダーでのオーバーライドライブラリのサポートとJava 25のサポート
Navaneeth S Nair <https://github.com/navaneethsnair1>
:imagesdir: /
:url-prefix:
:url-about: /
//Blank line here is necessary before starting the body of the post.

このリリースでは、アプリケーションを再ビルドせずに修正できるアプリケーションクラスローダーでのオーバーライドライブラリのサポートが導入されています。また、最新の長期サポート(LTS)リリースであるJava 25との互換性も追加されています。

// // // // // // // //
// In the preceding section:
// Leave any instances of `tag::xxxx[]` or `end:xxxx[]` as they are.
//
// Replace RELEASE_SUMMARY with a short paragraph that summarises the release. Start with the lead feature but also summarise what else is new in the release. You will agree which will be the lead feature with the reviewers so you can just leave a placeholder here until after the initial review.
// // // // // // // //

// // // // // // // //
// Replace the following throughout the document:
// Replace 25.0.0.10 with the version number of Open Liberty, eg: 22.0.0.2
// Replace 250010 with the version number of Open Liberty wihtout the periods, eg: 22002
// // // // // // // //

link:{url-about}[Open Liberty] 25.0.0.10では:

* <<overrideLibrary, アプリケーションクラスローダーでのオーバーライドライブラリのサポート>>
* <<java_25, Java 25のサポート>>
* <<CVEs, セキュリティ脆弱性(CVE)の修正>>

link:https://github.com/OpenLiberty/open-liberty/issues?q=label%3Arelease%3A250010+label%3A%22release+bug%22[25.0.0.10] で修正されたバグのリストをご覧ください。

link:{url-prefix}/blog/?search=release&search!=beta[以前のOpen Liberty GAリリースのブログ記事] をチェックしてください。

[#run]
== 25.0.0.10を使用したアプリケーションの開発と実行

link:{url-prefix}/guides/maven-intro.html[Maven] を使用している場合は、 `pom.xml` ファイルに以下を含めてください:

[source,xml]
----
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.11.5</version>
</plugin>
----

または、link:{url-prefix}/guides/gradle-intro.html[Gradle] の場合は、 `build.gradle` ファイルに以下を含めてください:

[source,gradle]
----
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'io.openliberty.tools:liberty-gradle-plugin:3.9.5'
}
}
apply plugin: 'liberty'
----

または、link:{url-prefix}/docs/latest/container-images.html[コンテナイメージ] を使用している場合:

[source]
----
FROM icr.io/appcafe/open-liberty
----

または、link:{url-prefix}/start/[ダウンロードページ] をご覧ください。

link:https://plugins.jetbrains.com/plugin/14856-liberty-tools[IntelliJ IDEA]、link:https://marketplace.visualstudio.com/items?itemName=Open-Liberty.liberty-dev-vscode-ext[Visual Studio Code]、または link:https://marketplace.eclipse.org/content/liberty-tools[Eclipse IDE] を使用している場合は、オープンソースの link:https://openliberty.io/docs/latest/develop-liberty-tools.html[Liberty開発ツール] を活用して、IDE内での効果的な開発、テスト、デバッグ、アプリケーション管理を行うことができます。

[link=https://stackoverflow.com/tags/open-liberty]
image::img/blog/blog_btn_stack.svg[Open Libertyについて質問する, align="center"]

// // // // DO NOT MODIFY THIS COMMENT BLOCK <GHA-BLOG-TOPIC> // // // //
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/33003
// Contact/Reviewer: tjwatson
// // // // // // // //
[#overrideLibrary]
== アプリケーションクラスローダーでのオーバーライドライブラリのサポート

このGAリリースでは、オーバーライドライブラリ参照を設定するために使用できるアプリケーションの `<classloader/>` を設定するための新しいタイプのライブラリ参照が導入されています。オーバーライドライブラリ参照は、クラスインスタンスがアプリケーションのクラスローダーに固有のままであるため、プライベートライブラリ参照に似ています。主な違いは検索順序です。オーバーライドライブラリ参照では、ライブラリクラスパスはアプリケーション自身のクラスパスの前に検索されます。したがって、オーバーライドライブラリを使用すると、ライブラリパスがアプリケーションに既に含まれているクラスをオーバーライドできます。

例えば、 `<webApplication/>` に `org.acme.needs.fix.SomeImpl` のような修正が必要なクラスが含まれているとします。アプリケーションを再ビルドして修正を含めることが難しい、または望ましくない場合は、修正されたクラスファイルを含む新しいライブラリJAR(例: `someImplFix.jar` )をビルドします。以下の `server.xml` 設定は、アプリケーションを再ビルドせずに修正を適用するために `overrideLibraryRef` を使用する方法を示しています:

[source, xml]
----
<webApplication location="appThatNeedsFix.war">
<classloader overrideLibraryRef="someImplFix"/>
</webApplication>

<library id="someImplFix">
<path name="someImplFix.jar"/>
</library>
----


// DO NOT MODIFY THIS LINE. </GHA-BLOG-TOPIC>

// // // // DO NOT MODIFY THIS COMMENT BLOCK <GHA-BLOG-TOPIC> // // // //
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/32929
// Contact/Reviewer: gjwatts
// // // // // // // //
[#java_25]
== Java 25のサポート

Java 25は、最新の長期サポート(LTS)リリースであり、以前のバージョンのJavaと比較して多くの新機能と拡張機能が含まれています。
link:https://openjdk.org/projects/jdk/25/[Java 25] には18の新機能(JEP)があります:6つはテスト機能で、12は完全に提供されています。

**テスト機能**

* 470: link:https://openjdk.org/jeps/470[暗号オブジェクトのPEMエンコーディング(プレビュー)]
* 502: link:https://openjdk.org/jeps/502[安定値(プレビュー)]
* 505: link:https://openjdk.org/jeps/505[構造化並行処理(第5プレビュー)]
* 507: link:https://openjdk.org/jeps/507[パターン、instanceof、およびスイッチでのプリミティブ型(第3プレビュー)]
* 508: link:https://openjdk.org/jeps/508[ベクトルAPI(第10インキュベータ)]
* 509: link:https://openjdk.org/jeps/509[JFR CPUタイムプロファイリング(実験的)]

**提供済み機能**

* 503: link:https://openjdk.org/jeps/503[32ビットx86ポートの削除]
* 506: link:https://openjdk.org/jeps/506[スコープ付き値]
* 510: link:https://openjdk.org/jeps/510[鍵導出関数API]
* 511: link:https://openjdk.org/jeps/511[モジュールインポート宣言]
* 512: link:https://openjdk.org/jeps/512[コンパクトソースファイルとインスタンスメインメソッド]
* 513: link:https://openjdk.org/jeps/513[柔軟なコンストラクタ本体]
* 514: link:https://openjdk.org/jeps/514[事前コンパイル(AOT)コマンドラインエルゴノミクス]
* 515: link:https://openjdk.org/jeps/515[事前コンパイル(AOT)メソッドプロファイリング]
* 518: link:https://openjdk.org/jeps/518[JFR協調サンプリング]
* 519: link:https://openjdk.org/jeps/519[コンパクトオブジェクトヘッダー]
* 520: link:https://openjdk.org/jeps/520[JFRメソッドタイミングとトレーシング]
* 521: link:https://openjdk.org/jeps/521[世代別Shenandoah]

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

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

. この制限のないLibertyのJakarta Concurrency実装で提供される `CompletableFuture` クラスを使用します。 `CompletableFuture` クラスを link:https://www.ibm.com/docs/en/was-liberty/core?topic=manually-configuring-managed-executors[DefaultManagedExecutorService] インスタンスと、link:https://jakarta.ee/specifications/concurrency/3.1/apidocs/jakarta.concurrency/jakarta/enterprise/concurrent/managedexecutorservice#supplyAsync(java.util.function.Supplier)[supplyAsync] メソッドまたは link:https://jakarta.ee/specifications/concurrency/3.1/apidocs/jakarta.concurrency/jakarta/enterprise/concurrent/managedexecutorservice#runAsync(java.lang.Runnable)[runAsync] メソッドのいずれかと一緒に使用できます。
. システムプロパティ `-Djava.util.concurrent.ForkJoinPool.common.parallelism=N` (Nは必要な最小スレッド数)を使用して、 `ForkJoinPool.commonPool` の並列処理値を明示的に設定します。
. 明示的なバッキング `Executor` を使用します。

この変更の詳細については、以下のリンクを参照してください:

* https://bugs.openjdk.org/browse/JDK-8362881
* https://bugs.openjdk.org/browse/JDK-8319447
* https://bugs.openjdk.org/browse/JDK-8360593

Open LibertyでJava 25の変更を今すぐ活用し、お気に入りのサーバーランタイムでアプリケーション、マイクロサービス、ランタイム環境をレビューする時間を増やしましょう!

link:https://adoptium.net/temurin/releases/?version=25[Java 25の最新リリースをダウンロード] し、link:https://openliberty.io/start/#runtime_releases[25.0.0.10] バージョンのOpen Libertyをダウンロードしてインストールし、LibertyサーバーのJAVA_HOMEをJava 25インストールディレクトリに設定した link:https://openliberty.io/docs/latest/reference/config/server-configuration-overview.html#server-env[server.env] ファイルを編集してテストを開始しましょう!

Java 25の詳細については、Java 25の link:https://jdk.java.net/25/release-notes[リリースノートページ] 、link:https://docs.oracle.com/en/java/javase/25/docs/api/index.html[API Javadocページ] 、または link:https://adoptium.net/temurin/releases/?version=25[ダウンロードページ] をご覧ください。
Open Libertyの詳細については、link:https://openliberty.io/docs[ドキュメントページ] をご覧ください。


// DO NOT MODIFY THIS LINE. </GHA-BLOG-TOPIC>

[#CVEs]
== このリリースでのセキュリティ脆弱性(CVE)の修正
[cols="5*"]
|===
|CVE |CVSSスコア |脆弱性評価 |影響を受けるバージョン |注記

|https://www.cve.org/CVERecord?id=CVE-2020-36732[CVE-2020-36732]
|5.3
|セキュリティの弱体化
|17.0.0.3-25.0.0.9
| `openidConnectServer-1.0` 機能に影響します
|===

過去のセキュリティ脆弱性修正のリストについては、link:{url-prefix}/docs/latest/security-vulnerabilities.html[セキュリティ脆弱性(CVE)リスト] を参照してください。

== Open Liberty 25.0.0.10を今すぐ入手

<<run,Maven、Gradle、Docker、およびダウンロード可能なアーカイブ>> を通じて利用可能です。