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