Skip to content
Merged
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
21 changes: 21 additions & 0 deletions .github/workflows/Dockerfile-tomcat-jdk25-withCurl
Original file line number Diff line number Diff line change
@@ -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/*
2 changes: 2 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ jobs:
include:
- os: ubuntu
java-version: 21
- os: ubuntu
java-version: 25
steps:
- if: matrix.os == 'windows'
name: Support longpaths
Expand Down
74 changes: 74 additions & 0 deletions .github/workflows/plugins-jdk25-test.0.yaml
Original file line number Diff line number Diff line change
@@ -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 .
Comment on lines +46 to +47
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As you are overwriting the official image tag by a local build, I think we should update plugin test doc, to mention our Tomcat-jdk25 image is different, and how to build that on developer side.

- 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 }}
2 changes: 1 addition & 1 deletion .github/workflows/publish-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,15 @@ 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
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
Expand Down
2 changes: 1 addition & 1 deletion docs/en/contribution/compiling.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
5 changes: 5 additions & 0 deletions docs/en/setup/service-agent/java-agent/Plugin-test.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion docs/en/setup/service-agent/java-agent/README.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
Loading