This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-java.git


The following commit(s) were added to refs/heads/main by this push:
     new aee6f46cbf Add the JDK 25 support (#783)
aee6f46cbf is described below

commit aee6f46cbfb32ac489e738f9172848ba3a3c238f
Author: peachisai <[email protected]>
AuthorDate: Sun Dec 14 23:36:17 2025 +0800

    Add the JDK 25 support (#783)
---
 .github/workflows/Dockerfile-tomcat-jdk25-withCurl | 21 ++++++
 .github/workflows/ci.yaml                          |  2 +
 .github/workflows/plugins-jdk25-test.0.yaml        | 74 ++++++++++++++++++++++
 .github/workflows/publish-docker.yaml              |  2 +-
 CHANGES.md                                         |  3 +
 Makefile                                           |  3 +-
 docs/en/contribution/compiling.md                  |  2 +-
 .../setup/service-agent/java-agent/Plugin-test.md  |  5 ++
 docs/en/setup/service-agent/java-agent/README.md   |  2 +-
 pom.xml                                            |  2 +-
 10 files changed, 111 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/Dockerfile-tomcat-jdk25-withCurl 
b/.github/workflows/Dockerfile-tomcat-jdk25-withCurl
new file mode 100644
index 0000000000..dc510ffb4c
--- /dev/null
+++ b/.github/workflows/Dockerfile-tomcat-jdk25-withCurl
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM tomcat:10.1.50-jdk25-temurin
+
+RUN apt-get update \
+    && apt-get install -y --no-install-recommends curl \
+    && rm -rf /var/lib/apt/lists/*
\ No newline at end of file
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index b92e5370de..0bc7a9c0e9 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -52,6 +52,8 @@ jobs:
         include:
           - os: ubuntu
             java-version: 21
+          - os: ubuntu
+            java-version: 25
     steps:
       - if: matrix.os == 'windows'
         name: Support longpaths
diff --git a/.github/workflows/plugins-jdk25-test.0.yaml 
b/.github/workflows/plugins-jdk25-test.0.yaml
new file mode 100644
index 0000000000..88c7213101
--- /dev/null
+++ b/.github/workflows/plugins-jdk25-test.0.yaml
@@ -0,0 +1,74 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: Test
+
+on:
+  pull_request:
+    paths:
+      - '.github/workflows/plugins-*.yaml'
+      - 'apm-application-toolkit/**'
+      - 'apm-commons/**'
+      - 'apm-protocol/**'
+      - 'apm-sniffer/**'
+      - 'test/plugin/**'
+      - '**/pom.xml'
+      - '!**.md'
+
+concurrency:
+  group: plugins-jdk25-1-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  build:
+    name: Build
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Build local tomcat-curl image
+        run: |
+          docker build -t tomcat-curl:10.1.50-jdk25-temurin \
+            -f ./.github/workflows/Dockerfile-tomcat-jdk25-withCurl .
+      - name: Build
+        uses: ./.github/actions/build
+        with:
+          base_image_java: eclipse-temurin:25-jdk
+          base_image_tomcat: tomcat-curl:10.1.50-jdk25-temurin
+
+  test:
+    needs: [ build ]
+    name: ${{ matrix.case }}-jdk25
+    runs-on: ubuntu-latest
+    timeout-minutes: 90
+    strategy:
+      matrix:
+        case:
+          - spring-6.x-scenario
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - uses: actions/setup-java@v2
+        with:
+          distribution: 'temurin'
+          java-version: '25'
+      - name: Run Test
+        uses: ./.github/actions/run
+        with:
+          test_case: ${{ matrix.case }}
diff --git a/.github/workflows/publish-docker.yaml 
b/.github/workflows/publish-docker.yaml
index 71597889a3..7c1f4726b5 100644
--- a/.github/workflows/publish-docker.yaml
+++ b/.github/workflows/publish-docker.yaml
@@ -64,7 +64,7 @@ jobs:
     timeout-minutes: 60
     strategy:
       matrix:
-        java-version: [ 8, 11, 17, 21 ]
+        java-version: [ 8, 11, 17, 21, 25 ]
     env:
       TAG: ${{ github.sha }}
     steps:
diff --git a/CHANGES.md b/CHANGES.md
index 1abe98d2d0..ef7d4f8fba 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -24,6 +24,9 @@ Release Notes.
 * Upgrade kafka-clients version in optional-reporter-plugins to 3.9.1.
 * Fix AbstractLogger replaceParam when the replaced string contains a 
replacement marker.
 * Fix `JDBCPluginConfig.Plugin.JDBC.SQL_BODY_MAX_LENGTH` was not working in 
some plugins.
+* Bump up Lombok to v1.18.42 to adopt JDK25 compiling.
+* Add `eclipse-temurin:25-jre` as another base image.
+* Add JDK25 plugin tests for Spring 6.
 
 All issues and pull requests are 
[here](https://github.com/apache/skywalking/milestone/242?closed=1)
 
diff --git a/Makefile b/Makefile
index b0b6adde5e..965c6572bc 100644
--- a/Makefile
+++ b/Makefile
@@ -34,7 +34,7 @@ dist: build
 
 # Docker build
 
-base.all := alpine java8 java11 java17 java21
+base.all := alpine java8 java11 java17 java21 java25
 base.each = $(word 1, $@)
 
 base.image.alpine := alpine:3
@@ -42,6 +42,7 @@ base.image.java8 := eclipse-temurin:8-jre
 base.image.java11 := eclipse-temurin:11-jre
 base.image.java17 := eclipse-temurin:17-jre
 base.image.java21 := eclipse-temurin:21-jre
+base.image.java25 := eclipse-temurin:25-jre
 
 docker.%: PLATFORMS =
 docker.%: LOAD_OR_PUSH = --load
diff --git a/docs/en/contribution/compiling.md 
b/docs/en/contribution/compiling.md
index d1507cc47a..da69b48a91 100644
--- a/docs/en/contribution/compiling.md
+++ b/docs/en/contribution/compiling.md
@@ -1,7 +1,7 @@
 # Compiling project
 This document will help you compile and build a project in your maven and set 
your IDE.
 
-Prepare JDK 17 or 21.
+Prepare JDK 17, 21 or 25.
 
 * If you clone codes from https://github.com/apache/skywalking-java
 ```shell
diff --git a/docs/en/setup/service-agent/java-agent/Plugin-test.md 
b/docs/en/setup/service-agent/java-agent/Plugin-test.md
index c91402e6c5..e9dabb7515 100644
--- a/docs/en/setup/service-agent/java-agent/Plugin-test.md
+++ b/docs/en/setup/service-agent/java-agent/Plugin-test.md
@@ -38,6 +38,10 @@ The test case project must be packaged as `project-name.war` 
by using `mvn packa
 Take the following test project as an example
 * 
[spring-4.3.x-scenario](../../../../../test/plugin/scenarios/spring-4.3.x-scenario)
 
+Note on `tomcat:10.1.50-jdk25-temurin` image:
+
+Starting from JDK 22, the Tomcat community removed `curl` from the official 
Tomcat JDK images. Since `curl` is required by our plugin test framework, we 
provide a custom `tomcat-jdk25` image built with `curl` installed.
+You can refer to the 
[tomcat-jdk25-dockerFile](../../../../../.github/workflows/Dockerfile-tomcat-jdk25-withCurl)
 to build the image for local plugin tests.
 
 ## Test project hierarchical structure
 The test case is an independent maven project, and it must be packaged as a 
war tar ball or zip file, depending on the chosen base image. Also, two 
external accessible endpoints usually two URLs) are required.
@@ -682,6 +686,7 @@ You can run `python3 tools/select-group.py` to see which 
file contains the least
 
 If a test case required to run in JDK 17 environment, please add you test case 
into file `plugins-jdk17-test.<n>.yaml`.
 If a test case required to run in JDK 21 environment, please add you test case 
into file `plugins-jdk21-test.<n>.yaml`.
+If a test case required to run in JDK 25 environment, please add you test case 
into file `plugins-jdk25-test.<n>.yaml`.
 
 ```yaml
 jobs:
diff --git a/docs/en/setup/service-agent/java-agent/README.md 
b/docs/en/setup/service-agent/java-agent/README.md
index f6702c006f..d829b741fc 100755
--- a/docs/en/setup/service-agent/java-agent/README.md
+++ b/docs/en/setup/service-agent/java-agent/README.md
@@ -1,6 +1,6 @@
 # Setup java agent
 
-1. Agent is available for JDK 8 - 21.
+1. Agent is available for JDK 8 - 25.
 1. Find `agent` folder in SkyWalking release package
 1. Set `agent.service_name` in `config/agent.config`. Could be any String in 
English.
 1. Set `collector.backend_service` in `config/agent.config`. Default point to 
`127.0.0.1:11800`, only works for local
diff --git a/pom.xml b/pom.xml
index 77678e9b66..8e85a9cee4 100755
--- a/pom.xml
+++ b/pom.xml
@@ -86,7 +86,7 @@
         <junit.version>4.12</junit.version>
         <mockito-core.version>5.0.0</mockito-core.version>
         <system-stubs-junit4.version>2.0.2</system-stubs-junit4.version>
-        <lombok.version>1.18.30</lombok.version>
+        <lombok.version>1.18.42</lombok.version>
 
         <!-- core lib dependency -->
         <bytebuddy.version>1.17.6</bytebuddy.version>

Reply via email to