diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index e1a016b394..f286166990 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -49,6 +49,9 @@ jobs:
matrix:
os: [ ubuntu, macos, windows ]
java-version: [ 17 ]
+ include:
+ - os: ubuntu
+ java-version: 21
steps:
- uses: actions/checkout@v2
with:
diff --git a/.github/workflows/plugins-jdk17-test.0.yaml b/.github/workflows/plugins-jdk17-test.0.yaml
index 88ec2e1750..6d2ad4c2b6 100644
--- a/.github/workflows/plugins-jdk17-test.0.yaml
+++ b/.github/workflows/plugins-jdk17-test.0.yaml
@@ -49,7 +49,7 @@ jobs:
test:
needs: [ build ]
- name: ${{ matrix.case }}
+ name: ${{ matrix.case }}-jdk17
runs-on: ubuntu-latest
timeout-minutes: 90
strategy:
diff --git a/.github/workflows/plugins-jdk17-test.1.yaml b/.github/workflows/plugins-jdk17-test.1.yaml
index 69629116e6..a0c7718d64 100644
--- a/.github/workflows/plugins-jdk17-test.1.yaml
+++ b/.github/workflows/plugins-jdk17-test.1.yaml
@@ -49,7 +49,7 @@ jobs:
test:
needs: [ build ]
- name: ${{ matrix.case }}
+ name: ${{ matrix.case }}-jdk17
runs-on: ubuntu-latest
timeout-minutes: 90
strategy:
diff --git a/.github/workflows/plugins-jdk21-test.0.yaml b/.github/workflows/plugins-jdk21-test.0.yaml
new file mode 100644
index 0000000000..2851619f12
--- /dev/null
+++ b/.github/workflows/plugins-jdk21-test.0.yaml
@@ -0,0 +1,70 @@
+# 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-jdk21-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
+ uses: ./.github/actions/build
+ with:
+ base_image_java: eclipse-temurin:21-jdk
+ base_image_tomcat: tomcat:10.1-jdk21-temurin
+
+ test:
+ needs: [ build ]
+ name: ${{ matrix.case }}-jdk21
+ 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: '21'
+ - name: Run Test
+ uses: ./.github/actions/run
+ with:
+ test_case: ${{ matrix.case }}
diff --git a/CHANGES.md b/CHANGES.md
index 0b38c88c14..0032844b61 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -21,8 +21,13 @@ Release Notes.
* Fix Impala Jdbc URL (including schema without properties) parsing exception.
* Optimize byte-buddy type description performance.
* Add `eclipse-temurin:21-jre` as another base image.
+* Bump byte-buddy to 1.14.9 for JDK21 support.
+* Add JDK21 plugin tests for Spring 6.
+* Bump Lombok to 1.18.30 to adopt JDK21 compiling.
#### Documentation
+* Fix JDK requirement in the compiling docs.
+* Add JDK21 support in the compiling docs.
All issues and pull requests are [here](https://github.com/apache/skywalking/milestone/194?closed=1)
diff --git a/apm-sniffer/bytebuddy-patch/pom.xml b/apm-sniffer/bytebuddy-patch/pom.xml
index 799e9a5356..fe254f2abb 100644
--- a/apm-sniffer/bytebuddy-patch/pom.xml
+++ b/apm-sniffer/bytebuddy-patch/pom.xml
@@ -38,13 +38,6 @@
byte-buddy
-
- org.projectlombok
- lombok
- 1.18.20
- provided
-
-
junit
junit
diff --git a/dist-material/LICENSE b/dist-material/LICENSE
index f8a5552565..982dfe0ae9 100755
--- a/dist-material/LICENSE
+++ b/dist-material/LICENSE
@@ -215,7 +215,7 @@ Apache 2.0 licenses
The following components are provided under the Apache License. See project link for details.
The text of each license is the standard Apache 2.0 license.
- raphw (byte-buddy) 1.12.19: http://bytebuddy.net/ , Apache 2.0
+ raphw (byte-buddy) 1.14.9: http://bytebuddy.net/ , Apache 2.0
Google: grpc-java 1.50.0: https://github.com/grpc/grpc-java, Apache 2.0
Google: gson 2.8.9: https://github.com/google/gson , Apache 2.0
Google: proto-google-common-protos 2.0.1: https://github.com/googleapis/googleapis , Apache 2.0
diff --git a/docs/en/contribution/compiling.md b/docs/en/contribution/compiling.md
index 94d8d790c9..d1507cc47a 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 8+.
+Prepare JDK 17 or 21.
* 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 817bf33da0..e67c365672 100644
--- a/docs/en/setup/service-agent/java-agent/Plugin-test.md
+++ b/docs/en/setup/service-agent/java-agent/Plugin-test.md
@@ -681,6 +681,7 @@ mostly you'll just need to decide which file (`plugins-test..yaml`) to add yo
You can run `python3 tools/select-group.py` to see which file contains the least cases and add your cases into it, in order to balance the running time of each group.
If a test case required to run in JDK 17 environment, please add you test case into file `plugins-jdk17-test..yaml`.
+If a test case required to run in JDK 21 environment, please add you test case into file `plugins-jdk21-test..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 f457913c83..139fb50a5a 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 - 17.
+1. Agent is available for JDK 8 - 21.
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 3182775be8..e521e38152 100755
--- a/pom.xml
+++ b/pom.xml
@@ -83,10 +83,10 @@
4.12
5.0.0
2.0.2
- 1.18.20
+ 1.18.30
- 1.14.4
+ 1.14.9
1.50.0
4.1.100.Final
2.8.9