This is an automated email from the ASF dual-hosted git repository.
songxiaosheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-spi-extensions.git
The following commit(s) were added to refs/heads/master by this push:
new a7aeaf1 build: Add GitHub Actions workflow (#300)
a7aeaf1 is described below
commit a7aeaf180dc565543d60aab5b1670dd9b7da2f54
Author: aofall <[email protected]>
AuthorDate: Sun Mar 31 14:36:51 2024 +0800
build: Add GitHub Actions workflow (#300)
* build: upload GitHub ci/cd workflow for push/pr
* build: remove extra spotless format check
* build: create license check config file
* build: add some ignore file for license check
* fix: prepare build-tools
* fix: setup jdk error
* build: add scheduled workflow
* chore: fix missed or incorrect ASF license
* build: add release workflow
* try to fix cache key not found
* try to fix cache key not found
* fix coverage result filename conflict
---
.codecov.yml | 15 +
.github/workflows/build-and-test-pr.yml | 361 ++++++++++++++++++++
.github/workflows/build-and-test-scheduled-3.1.yml | 365 +++++++++++++++++++++
.github/workflows/build-and-test-scheduled-3.2.yml | 365 +++++++++++++++++++++
.../workflows/build-and-test-scheduled-main.yml | 365 +++++++++++++++++++++
.github/workflows/ci.yml | 68 ----
.github/workflows/release-test.yml | 365 +++++++++++++++++++++
.licenserc.yaml | 213 ++++++++++++
.../cluster/loadbalance/LoadBalanceBaseTest.java | 2 +-
.../loadbalance/PeakEwmaLoadBalanceTest.java | 2 +-
.../test/resources/security/serialize.allowlist | 19 ++
11 files changed, 2070 insertions(+), 70 deletions(-)
diff --git a/.codecov.yml b/.codecov.yml
index 1acf443..8a9fd1b 100644
--- a/.codecov.yml
+++ b/.codecov.yml
@@ -1,3 +1,18 @@
+# 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.
+#
coverage:
status:
# pull-requests only
diff --git a/.github/workflows/build-and-test-pr.yml
b/.github/workflows/build-and-test-pr.yml
new file mode 100644
index 0000000..fd9a81a
--- /dev/null
+++ b/.github/workflows/build-and-test-pr.yml
@@ -0,0 +1,361 @@
+name: Build and Test For PR
+
+on: [push, pull_request, workflow_dispatch]
+
+permissions:
+ contents: read
+
+env:
+ FORK_COUNT: 2
+ FAIL_FAST: 0
+ SHOW_ERROR_DETAIL: 1
+ #multi-version size limit
+ VERSIONS_LIMIT: 4
+ JACOCO_ENABLE: true
+ CANDIDATE_VERSIONS: '
+ spring.version:5.3.24;
+ spring-boot.version:2.7.6;
+ '
+
+jobs:
+ # Check ASF License
+ check-license:
+ name: "Check License"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Check License
+ uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - name: Restore Maven local repository cache
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Check Dependencies' License
+ uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ config: .licenserc.yaml
+ mode: check
+ # Build dubbo-build-tool
+ build-tools:
+ name: "Build-tools"
+ needs: check-license
+ runs-on: ubuntu-latest
+ outputs:
+ cache-key: ${{ steps.dubbo-build-tools.cache }}
+ steps:
+ - uses: actions/checkout@v4
+ name: build tools
+ with:
+ repository: 'apache/dubbo'
+ ref: '3.2'
+ path: dubbo
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: "Build tools"
+ run: |
+ cd ./dubbo
+ ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
+ # Build from source code
+ build-source:
+ name: "Build Dubbo-SPI-Extensions"
+ needs: [check-license, build-tools]
+ runs-on: ubuntu-latest
+ # output dubbo-spi-extensions version to others jobs
+ outputs:
+ version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ path: dubbo-spi-extensions
+ - uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: "Compile Dubbo-SPI-Extensions (Linux)"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+ - name: "Build Dubbo-SPI-Extensions with Maven"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean source:jar install -Pjacoco,checkstyle
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace
}}/.tmp/zookeeper
+ - name: "Pack class result"
+ run: |
+ shopt -s globstar
+ zip ${{ github.workspace }}/class.zip **/target/classes/* -r
+ - name: "Upload class result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: "class-file"
+ path: ${{ github.workspace }}/class.zip
+ - name: "Pack checkstyle file if failure"
+ if: failure()
+ run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
+ - name: "Upload checkstyle file if failure"
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: "checkstyle-file"
+ path: ${{ github.workspace }}/checkstyle.zip
+ - name: "Upload coverage to Codecov"
+ uses: codecov/codecov-action@v4
+ - name: "Calculate Dubbo-SPI-Extensions Version"
+ id: dubbo-spi-extensions-version
+ run: |
+ REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
+ echo "version=$REVISION" >> $GITHUB_OUTPUT
+ echo "dubbo-spi-extensions version: $REVISION"
+ # Download dependencies Prepare for unit test
+ unit-test-prepare:
+ name: "Preparation for Unit Test"
+ needs: [check-license, build-source]
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ ZOOKEEPER_VERSION: 3.6.3
+ steps:
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ - name: "Set up msys2 if necessary"
+ if: ${{ startsWith( matrix.os, 'windows') &&
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
+ uses: msys2/setup-msys2@v2
+ with:
+ release: false # support cache, see
https://github.com/msys2/setup-msys2#context
+ - name: "Download zookeeper binary archive in Linux OS"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/zookeeper
+ wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ echo "list the downloaded zookeeper binary archive"
+ ls -al ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ - name: "Create Secret"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/rsa
+ cd ${{ github.workspace }}/.tmp/rsa
+ openssl genrsa -out rsa_private.pem 1024
+ openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
+ echo "Current workflow run id: ${{ github.run_id }}"
+ echo "Start Print Rsa Public Key ---"
+ cat rsa_public.pem
+ echo "--- End Print Rsa Public Key"
+ # Start unit test
+ unit-test-jdk8:
+ needs: [check-license, build-source, unit-test-prepare]
+ name: "Unit Test On ubuntu-latest with JDK8"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk8
+ path: "**/target/site/**/jacoco.xml"
+ unit-test-jdk11:
+ needs: [ check-license, build-source, unit-test-prepare ]
+ name: "Unit Test On ubuntu-latest with JDK11"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 11
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk11
+ path: "**/target/site/**/jacoco.xml"
+
+# error-code-inspecting:
+# needs: [check-license, build-tools]
+# runs-on: ubuntu-latest
+# steps:
+# - uses: actions/checkout@v4
+# with:
+# path: "./dubbo-spi-extensions"
+# - uses: actions/checkout@v4
+# with:
+# repository: 'apache/dubbo-test-tools'
+# ref: main
+# path: "./dubbo-test-tools"
+# - name: "Set up JDK 21"
+# uses: actions/setup-java@v4
+# with:
+# distribution: 'zulu'
+# java-version: 21
+# - name: Restore Maven local repository cache
+# uses: actions/cache@v3
+# with:
+# path: ~/.m2/repository
+# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# restore-keys: |
+# ${{ runner.os }}-maven-
+# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# - name: "Compile Dubbo-SPI-Extensions (Linux)"
+# run: |
+# cd ${{ github.workspace }}/dubbo-spi-extensions
+# ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+# - name: "Run Error Code Inspecting"
+# env:
+# DUBBO_ECI_REPORT_AS_ERROR: true
+# run: |
+# cd ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector
+# ../mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast -T 2C package exec:java
-Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace
}}/dubbo-spi-extensions
+# - name: "Upload error code inspection result"
+# # always() should not be used here, since we don't need to handle the
'canceled' situation.
+# if: ${{ success() || failure() }}
+# uses: actions/upload-artifact@v4
+# with:
+# name: "error-inspection-result"
+# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.github/workflows/build-and-test-scheduled-3.1.yml
b/.github/workflows/build-and-test-scheduled-3.1.yml
new file mode 100644
index 0000000..051d617
--- /dev/null
+++ b/.github/workflows/build-and-test-scheduled-3.1.yml
@@ -0,0 +1,365 @@
+name: Build and Test For PR
+
+on:
+ schedule:
+ - cron: '0 0/6 * * *'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+env:
+ FORK_COUNT: 2
+ FAIL_FAST: 0
+ SHOW_ERROR_DETAIL: 1
+ #multi-version size limit
+ VERSIONS_LIMIT: 4
+ JACOCO_ENABLE: true
+ CANDIDATE_VERSIONS: '
+ spring.version:5.3.24;
+ spring-boot.version:2.7.6;
+ '
+
+jobs:
+ # Check ASF License
+ check-license:
+ name: "Check License"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Check License
+ uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - name: Restore Maven local repository cache
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Check Dependencies' License
+ uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ config: .licenserc.yaml
+ mode: check
+ # Build dubbo-build-tool
+ build-tools:
+ name: "Build-tools"
+ needs: check-license
+ runs-on: ubuntu-latest
+ outputs:
+ cache-key: ${{ steps.dubbo-build-tools.cache }}
+ steps:
+ - uses: actions/checkout@v4
+ name: build tools
+ with:
+ repository: 'apache/dubbo'
+ ref: '3.1'
+ path: dubbo
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: "Build tools"
+ run: |
+ cd ./dubbo
+ ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
+ # Build from source code
+ build-source:
+ name: "Build Dubbo-SPI-Extensions"
+ needs: [check-license, build-tools]
+ runs-on: ubuntu-latest
+ # output dubbo-spi-extensions version to others jobs
+ outputs:
+ version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ ref: "3.1.0"
+ path: dubbo-spi-extensions
+ - uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: "Compile Dubbo-SPI-Extensions (Linux)"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+ - name: "Build Dubbo-SPI-Extensions with Maven"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean source:jar install -Pjacoco,checkstyle
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace
}}/.tmp/zookeeper
+ - name: "Pack class result"
+ run: |
+ shopt -s globstar
+ zip ${{ github.workspace }}/class.zip **/target/classes/* -r
+ - name: "Upload class result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: "class-file"
+ path: ${{ github.workspace }}/class.zip
+ - name: "Pack checkstyle file if failure"
+ if: failure()
+ run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
+ - name: "Upload checkstyle file if failure"
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: "checkstyle-file"
+ path: ${{ github.workspace }}/checkstyle.zip
+ - name: "Upload coverage to Codecov"
+ uses: codecov/codecov-action@v4
+ - name: "Calculate Dubbo-SPI-Extensions Version"
+ id: dubbo-spi-extensions-version
+ run: |
+ REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
+ echo "version=$REVISION" >> $GITHUB_OUTPUT
+ echo "dubbo-spi-extensions version: $REVISION"
+ # Download dependencies Prepare for unit test
+ unit-test-prepare:
+ name: "Preparation for Unit Test"
+ needs: [check-license, build-source]
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ ZOOKEEPER_VERSION: 3.6.3
+ steps:
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ - name: "Set up msys2 if necessary"
+ if: ${{ startsWith( matrix.os, 'windows') &&
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
+ uses: msys2/setup-msys2@v2
+ with:
+ release: false # support cache, see
https://github.com/msys2/setup-msys2#context
+ - name: "Download zookeeper binary archive in Linux OS"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/zookeeper
+ wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ echo "list the downloaded zookeeper binary archive"
+ ls -al ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ - name: "Create Secret"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/rsa
+ cd ${{ github.workspace }}/.tmp/rsa
+ openssl genrsa -out rsa_private.pem 1024
+ openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
+ echo "Current workflow run id: ${{ github.run_id }}"
+ echo "Start Print Rsa Public Key ---"
+ cat rsa_public.pem
+ echo "--- End Print Rsa Public Key"
+ # Start unit test
+ unit-test-jdk8:
+ needs: [check-license, build-source, unit-test-prepare]
+ name: "Unit Test On ubuntu-latest with JDK8"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk8
+ path: "**/target/site/**/jacoco.xml"
+ unit-test-jdk11:
+ needs: [ check-license, build-source, unit-test-prepare ]
+ name: "Unit Test On ubuntu-latest with JDK11"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 11
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk11
+ path: "**/target/site/**/jacoco.xml"
+
+# error-code-inspecting:
+# needs: [check-license, build-tools]
+# runs-on: ubuntu-latest
+# steps:
+# - uses: actions/checkout@v4
+# with:
+# path: "./dubbo-spi-extensions"
+# - uses: actions/checkout@v4
+# with:
+# repository: 'apache/dubbo-test-tools'
+# ref: main
+# path: "./dubbo-test-tools"
+# - name: "Set up JDK 21"
+# uses: actions/setup-java@v4
+# with:
+# distribution: 'zulu'
+# java-version: 21
+# - name: Restore Maven local repository cache
+# uses: actions/cache@v3
+# with:
+# path: ~/.m2/repository
+# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# restore-keys: |
+# ${{ runner.os }}-maven-
+# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# - name: "Compile Dubbo-SPI-Extensions (Linux)"
+# run: |
+# cd ${{ github.workspace }}/dubbo-spi-extensions
+# ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+# - name: "Run Error Code Inspecting"
+# env:
+# DUBBO_ECI_REPORT_AS_ERROR: true
+# run: |
+# cd ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector
+# ../mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast -T 2C package exec:java
-Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace
}}/dubbo-spi-extensions
+# - name: "Upload error code inspection result"
+# # always() should not be used here, since we don't need to handle the
'canceled' situation.
+# if: ${{ success() || failure() }}
+# uses: actions/upload-artifact@v4
+# with:
+# name: "error-inspection-result"
+# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.github/workflows/build-and-test-scheduled-3.2.yml
b/.github/workflows/build-and-test-scheduled-3.2.yml
new file mode 100644
index 0000000..73538be
--- /dev/null
+++ b/.github/workflows/build-and-test-scheduled-3.2.yml
@@ -0,0 +1,365 @@
+name: Build and Test For PR
+
+on:
+ schedule:
+ - cron: '0 0/6 * * *'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+env:
+ FORK_COUNT: 2
+ FAIL_FAST: 0
+ SHOW_ERROR_DETAIL: 1
+ #multi-version size limit
+ VERSIONS_LIMIT: 4
+ JACOCO_ENABLE: true
+ CANDIDATE_VERSIONS: '
+ spring.version:5.3.24;
+ spring-boot.version:2.7.6;
+ '
+
+jobs:
+ # Check ASF License
+ check-license:
+ name: "Check License"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Check License
+ uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - name: Restore Maven local repository cache
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Check Dependencies' License
+ uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ config: .licenserc.yaml
+ mode: check
+ # Build dubbo-build-tool
+ build-tools:
+ name: "Build-tools"
+ needs: check-license
+ runs-on: ubuntu-latest
+ outputs:
+ cache-key: ${{ steps.dubbo-build-tools.cache }}
+ steps:
+ - uses: actions/checkout@v4
+ name: build tools
+ with:
+ repository: 'apache/dubbo'
+ ref: '3.2'
+ path: dubbo
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: "Build tools"
+ run: |
+ cd ./dubbo
+ ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
+ # Build from source code
+ build-source:
+ name: "Build Dubbo-SPI-Extensions"
+ needs: [check-license, build-tools]
+ runs-on: ubuntu-latest
+ # output dubbo-spi-extensions version to others jobs
+ outputs:
+ version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ ref: "3.2.0"
+ path: dubbo-spi-extensions
+ - uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: "Compile Dubbo-SPI-Extensions (Linux)"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+ - name: "Build Dubbo-SPI-Extensions with Maven"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean source:jar install -Pjacoco,checkstyle
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace
}}/.tmp/zookeeper
+ - name: "Pack class result"
+ run: |
+ shopt -s globstar
+ zip ${{ github.workspace }}/class.zip **/target/classes/* -r
+ - name: "Upload class result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: "class-file"
+ path: ${{ github.workspace }}/class.zip
+ - name: "Pack checkstyle file if failure"
+ if: failure()
+ run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
+ - name: "Upload checkstyle file if failure"
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: "checkstyle-file"
+ path: ${{ github.workspace }}/checkstyle.zip
+ - name: "Upload coverage to Codecov"
+ uses: codecov/codecov-action@v4
+ - name: "Calculate Dubbo-SPI-Extensions Version"
+ id: dubbo-spi-extensions-version
+ run: |
+ REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
+ echo "version=$REVISION" >> $GITHUB_OUTPUT
+ echo "dubbo-spi-extensions version: $REVISION"
+ # Download dependencies Prepare for unit test
+ unit-test-prepare:
+ name: "Preparation for Unit Test"
+ needs: [check-license, build-source]
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ ZOOKEEPER_VERSION: 3.6.3
+ steps:
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ - name: "Set up msys2 if necessary"
+ if: ${{ startsWith( matrix.os, 'windows') &&
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
+ uses: msys2/setup-msys2@v2
+ with:
+ release: false # support cache, see
https://github.com/msys2/setup-msys2#context
+ - name: "Download zookeeper binary archive in Linux OS"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/zookeeper
+ wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ echo "list the downloaded zookeeper binary archive"
+ ls -al ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ - name: "Create Secret"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/rsa
+ cd ${{ github.workspace }}/.tmp/rsa
+ openssl genrsa -out rsa_private.pem 1024
+ openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
+ echo "Current workflow run id: ${{ github.run_id }}"
+ echo "Start Print Rsa Public Key ---"
+ cat rsa_public.pem
+ echo "--- End Print Rsa Public Key"
+ # Start unit test
+ unit-test-jdk8:
+ needs: [check-license, build-source, unit-test-prepare]
+ name: "Unit Test On ubuntu-latest with JDK8"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk8
+ path: "**/target/site/**/jacoco.xml"
+ unit-test-jdk11:
+ needs: [ check-license, build-source, unit-test-prepare ]
+ name: "Unit Test On ubuntu-latest with JDK11"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 11
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ ${{ runner.os }}-maven-
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk11
+ path: "**/target/site/**/jacoco.xml"
+
+# error-code-inspecting:
+# needs: [check-license, build-tools]
+# runs-on: ubuntu-latest
+# steps:
+# - uses: actions/checkout@v4
+# with:
+# path: "./dubbo-spi-extensions"
+# - uses: actions/checkout@v4
+# with:
+# repository: 'apache/dubbo-test-tools'
+# ref: main
+# path: "./dubbo-test-tools"
+# - name: "Set up JDK 21"
+# uses: actions/setup-java@v4
+# with:
+# distribution: 'zulu'
+# java-version: 21
+# - name: Restore Maven local repository cache
+# uses: actions/cache@v3
+# with:
+# path: ~/.m2/repository
+# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# restore-keys: |
+# ${{ runner.os }}-maven-
+# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# - name: "Compile Dubbo-SPI-Extensions (Linux)"
+# run: |
+# cd ${{ github.workspace }}/dubbo-spi-extensions
+# ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+# - name: "Run Error Code Inspecting"
+# env:
+# DUBBO_ECI_REPORT_AS_ERROR: true
+# run: |
+# cd ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector
+# ../mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast -T 2C package exec:java
-Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace
}}/dubbo-spi-extensions
+# - name: "Upload error code inspection result"
+# # always() should not be used here, since we don't need to handle the
'canceled' situation.
+# if: ${{ success() || failure() }}
+# uses: actions/upload-artifact@v4
+# with:
+# name: "error-inspection-result"
+# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.github/workflows/build-and-test-scheduled-main.yml
b/.github/workflows/build-and-test-scheduled-main.yml
new file mode 100644
index 0000000..a3fb199
--- /dev/null
+++ b/.github/workflows/build-and-test-scheduled-main.yml
@@ -0,0 +1,365 @@
+name: Build and Test For PR
+
+on:
+ schedule:
+ - cron: '0 0/6 * * *'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+env:
+ FORK_COUNT: 2
+ FAIL_FAST: 0
+ SHOW_ERROR_DETAIL: 1
+ #multi-version size limit
+ VERSIONS_LIMIT: 4
+ JACOCO_ENABLE: true
+ CANDIDATE_VERSIONS: '
+ spring.version:5.3.24;
+ spring-boot.version:2.7.6;
+ '
+
+jobs:
+ # Check ASF License
+ check-license:
+ name: "Check License"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Check License
+ uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - name: Restore Maven local repository cache
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Check Dependencies' License
+ uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ config: .licenserc.yaml
+ mode: check
+ # Build dubbo-build-tool
+ build-tools:
+ name: "Build-tools"
+ needs: check-license
+ runs-on: ubuntu-latest
+ outputs:
+ cache-key: ${{ steps.dubbo-build-tools.cache }}
+ steps:
+ - uses: actions/checkout@v4
+ name: build tools
+ with:
+ repository: 'apache/dubbo'
+ ref: '3.2'
+ path: dubbo
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: "Build tools"
+ run: |
+ cd ./dubbo
+ ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
+ # Build from source code
+ build-source:
+ name: "Build Dubbo-SPI-Extensions"
+ needs: [check-license, build-tools]
+ runs-on: ubuntu-latest
+ # output dubbo-spi-extensions version to others jobs
+ outputs:
+ version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ ref: "master"
+ path: dubbo-spi-extensions
+ - uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: "Compile Dubbo-SPI-Extensions (Linux)"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+ - name: "Build Dubbo-SPI-Extensions with Maven"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean source:jar install -Pjacoco,checkstyle
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace
}}/.tmp/zookeeper
+ - name: "Pack class result"
+ run: |
+ shopt -s globstar
+ zip ${{ github.workspace }}/class.zip **/target/classes/* -r
+ - name: "Upload class result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: "class-file"
+ path: ${{ github.workspace }}/class.zip
+ - name: "Pack checkstyle file if failure"
+ if: failure()
+ run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
+ - name: "Upload checkstyle file if failure"
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: "checkstyle-file"
+ path: ${{ github.workspace }}/checkstyle.zip
+ - name: "Upload coverage to Codecov"
+ uses: codecov/codecov-action@v4
+ - name: "Calculate Dubbo-SPI-Extensions Version"
+ id: dubbo-spi-extensions-version
+ run: |
+ REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
+ echo "version=$REVISION" >> $GITHUB_OUTPUT
+ echo "dubbo-spi-extensions version: $REVISION"
+ # Download dependencies Prepare for unit test
+ unit-test-prepare:
+ name: "Preparation for Unit Test"
+ needs: [check-license, build-source]
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ ZOOKEEPER_VERSION: 3.6.3
+ steps:
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ - name: "Set up msys2 if necessary"
+ if: ${{ startsWith( matrix.os, 'windows') &&
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
+ uses: msys2/setup-msys2@v2
+ with:
+ release: false # support cache, see
https://github.com/msys2/setup-msys2#context
+ - name: "Download zookeeper binary archive in Linux OS"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/zookeeper
+ wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ echo "list the downloaded zookeeper binary archive"
+ ls -al ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ - name: "Create Secret"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/rsa
+ cd ${{ github.workspace }}/.tmp/rsa
+ openssl genrsa -out rsa_private.pem 1024
+ openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
+ echo "Current workflow run id: ${{ github.run_id }}"
+ echo "Start Print Rsa Public Key ---"
+ cat rsa_public.pem
+ echo "--- End Print Rsa Public Key"
+ # Start unit test
+ unit-test-jdk8:
+ needs: [check-license, build-source, unit-test-prepare]
+ name: "Unit Test On ubuntu-latest with JDK8"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ ${{ runner.os }}-maven-
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk8
+ path: "**/target/site/**/jacoco.xml"
+ unit-test-jdk11:
+ needs: [ check-license, build-source, unit-test-prepare ]
+ name: "Unit Test On ubuntu-latest with JDK11"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 11
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ ${{ runner.os }}-maven-
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk11
+ path: "**/target/site/**/jacoco.xml"
+
+# error-code-inspecting:
+# needs: [check-license, build-tools]
+# runs-on: ubuntu-latest
+# steps:
+# - uses: actions/checkout@v4
+# with:
+# path: "./dubbo-spi-extensions"
+# - uses: actions/checkout@v4
+# with:
+# repository: 'apache/dubbo-test-tools'
+# ref: main
+# path: "./dubbo-test-tools"
+# - name: "Set up JDK 21"
+# uses: actions/setup-java@v4
+# with:
+# distribution: 'zulu'
+# java-version: 21
+# - name: Restore Maven local repository cache
+# uses: actions/cache@v3
+# with:
+# path: ~/.m2/repository
+# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# restore-keys: |
+# ${{ runner.os }}-maven-
+# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# - name: "Compile Dubbo-SPI-Extensions (Linux)"
+# run: |
+# cd ${{ github.workspace }}/dubbo-spi-extensions
+# ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+# - name: "Run Error Code Inspecting"
+# env:
+# DUBBO_ECI_REPORT_AS_ERROR: true
+# run: |
+# cd ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector
+# ../mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast -T 2C package exec:java
-Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace
}}/dubbo-spi-extensions
+# - name: "Upload error code inspection result"
+# # always() should not be used here, since we don't need to handle the
'canceled' situation.
+# if: ${{ success() || failure() }}
+# uses: actions/upload-artifact@v4
+# with:
+# name: "error-inspection-result"
+# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 5270c23..0000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-name: CI
-
-on: [ push, pull_request ]
-
-jobs:
- build:
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ ubuntu-latest]
- jdk: [ 8, 11 ]
- steps:
- - uses: actions/checkout@v2
- with:
- path: dubbo-spi-extensions
- - uses: actions/checkout@v2
- with:
- repository: 'apache/dubbo'
- ref: '3.0'
- path: dubbo
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v1
- with:
- java-version: ${{ matrix.jdk }}
- - uses: actions/cache@v2
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- - name: "Build tools"
- run: |
- cd ./dubbo
- ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
- - name: "Test with Maven"
- timeout-minutes: 40
- if: ${{ startsWith( matrix.os, 'ubuntu') }}
- run: |
- cd ./dubbo-spi-extensions
- ./mvnw --batch-mode -U -e --no-transfer-progress clean test verify
-Pjacoco -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
- - name: "Test with Maven"
- timeout-minutes: 50
- if: ${{ startsWith( matrix.os, 'windows') }}
- run: |
- cd ./dubbo-spi-extensions
- ./mvnw --batch-mode -U -e --no-transfer-progress clean test verify
-Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false"
-D"maven.wagon.httpconnectionManager.ttlSeconds=120"
-D"maven.wagon.http.retryHandler.count=5" -DskipTests=false
-DskipIntegrationTests=true -D"checkstyle.skip=false"
-D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true"
- - name: "Pack rat file if failure"
- if: failure()
- run: 7z a ${{ github.workspace }}/rat.zip *rat.txt -r
- - name: "Upload rat file if failure"
- if: failure()
- uses: actions/upload-artifact@v2
- with:
- name: "rat-file"
- path: ${{ github.workspace }}/rat.zip
- - name: "Pack checkstyle file if failure"
- if: failure()
- run: 7z a ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
- - name: "Upload checkstyle file if failure"
- if: failure()
- uses: actions/upload-artifact@v2
- with:
- name: "checkstyle-file"
- path: ${{ github.workspace }}/checkstyle.zip
- - name: "Upload coverage to Codecov"
- uses: codecov/codecov-action@v1
diff --git a/.github/workflows/release-test.yml
b/.github/workflows/release-test.yml
new file mode 100644
index 0000000..1880a58
--- /dev/null
+++ b/.github/workflows/release-test.yml
@@ -0,0 +1,365 @@
+name: Build and Test For PR
+
+on:
+ push:
+ branches:
+ - '**-release'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+env:
+ FORK_COUNT: 2
+ FAIL_FAST: 0
+ SHOW_ERROR_DETAIL: 1
+ #multi-version size limit
+ VERSIONS_LIMIT: 4
+ JACOCO_ENABLE: true
+ CANDIDATE_VERSIONS: '
+ spring.version:5.3.24;
+ spring-boot.version:2.7.6;
+ '
+
+jobs:
+ # Check ASF License
+ check-license:
+ name: "Check License"
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Check License
+ uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - name: Restore Maven local repository cache
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Check Dependencies' License
+ uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ config: .licenserc.yaml
+ mode: check
+ # Build dubbo-build-tool
+ build-tools:
+ name: "Build-tools"
+ needs: check-license
+ runs-on: ubuntu-latest
+ outputs:
+ cache-key: ${{ steps.dubbo-build-tools.cache }}
+ steps:
+ - uses: actions/checkout@v4
+ name: build tools
+ with:
+ repository: 'apache/dubbo'
+ ref: '3.2'
+ path: dubbo
+ - name: "Set up JDK 21"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ ${{ runner.os }}-maven-
+ - name: "Build tools"
+ run: |
+ cd ./dubbo
+ ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
+ # Build from source code
+ build-source:
+ name: "Build Dubbo-SPI-Extensions"
+ needs: [check-license, build-tools]
+ runs-on: ubuntu-latest
+ # output dubbo-spi-extensions version to others jobs
+ outputs:
+ version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ path: dubbo-spi-extensions
+ - uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ ${{ runner.os }}-maven-
+ - name: "Compile Dubbo-SPI-Extensions (Linux)"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+ - name: "Build Dubbo-SPI-Extensions with Maven"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean source:jar install -Pjacoco,checkstyle
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace
}}/.tmp/zookeeper
+ - name: "Pack class result"
+ run: |
+ shopt -s globstar
+ zip ${{ github.workspace }}/class.zip **/target/classes/* -r
+ - name: "Upload class result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: "class-file"
+ path: ${{ github.workspace }}/class.zip
+ - name: "Pack checkstyle file if failure"
+ if: failure()
+ run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
+ - name: "Upload checkstyle file if failure"
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: "checkstyle-file"
+ path: ${{ github.workspace }}/checkstyle.zip
+ - name: "Upload coverage to Codecov"
+ uses: codecov/codecov-action@v4
+ - name: "Calculate Dubbo-SPI-Extensions Version"
+ id: dubbo-spi-extensions-version
+ run: |
+ REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
+ echo "version=$REVISION" >> $GITHUB_OUTPUT
+ echo "dubbo-spi-extensions version: $REVISION"
+ # Download dependencies Prepare for unit test
+ unit-test-prepare:
+ name: "Preparation for Unit Test"
+ needs: [check-license, build-source]
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ ZOOKEEPER_VERSION: 3.6.3
+ steps:
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ - name: "Set up msys2 if necessary"
+ if: ${{ startsWith( matrix.os, 'windows') &&
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
+ uses: msys2/setup-msys2@v2
+ with:
+ release: false # support cache, see
https://github.com/msys2/setup-msys2#context
+ - name: "Download zookeeper binary archive in Linux OS"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/zookeeper
+ wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
+ wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION
}}-bin.tar.gz -O ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ echo "list the downloaded zookeeper binary archive"
+ ls -al ${{ github.workspace
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ - name: "Create Secret"
+ run: |
+ mkdir -p ${{ github.workspace }}/.tmp/rsa
+ cd ${{ github.workspace }}/.tmp/rsa
+ openssl genrsa -out rsa_private.pem 1024
+ openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
+ echo "Current workflow run id: ${{ github.run_id }}"
+ echo "Start Print Rsa Public Key ---"
+ cat rsa_public.pem
+ echo "--- End Print Rsa Public Key"
+ # Start unit test
+ unit-test-jdk8:
+ needs: [check-license, build-source, unit-test-prepare]
+ name: "Unit Test On ubuntu-latest with JDK8"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 8
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ ${{ runner.os }}-maven-
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk8
+ path: "**/target/site/**/jacoco.xml"
+ unit-test-jdk11:
+ needs: [ check-license, build-source, unit-test-prepare ]
+ name: "Unit Test On ubuntu-latest with JDK11"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ env:
+ DISABLE_FILE_SYSTEM_TEST: true
+ CURRENT_ROLE: ${{ matrix.case-role }}
+ DUBBO_DEFAULT_SERIALIZATION: fastjson2
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: "Set up JDK ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 11
+ - uses: actions/cache@v3
+ name: "Cache local Maven repository"
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ ${{ runner.os }}-maven-
+ - uses: actions/cache@v3
+ name: "Cache zookeeper binary archive"
+ id: "cache-zookeeper"
+ with:
+ path: ${{ github.workspace }}/.tmp/zookeeper
+ key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
+ restore-keys: |
+ zookeeper-${{ runner.os }}-
+ - uses: actions/cache@v3
+ name: "Cache secret key"
+ id: "cache-secret-cert"
+ with:
+ path: ${{ github.workspace }}/.tmp/rsa
+ key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
+ # - name: "Get sonarcloud token"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # run: |
+ # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
+ # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
+ # - name: "Test with Maven with SonarCloud Scan"
+ # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
+ # timeout-minutes: 70
+ # env:
+ # # Needed to get some information about the pull request, if
any
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # run: |
+ # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
+ # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
+ - name: "Test with Maven without SonarCloud Scan"
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip=false
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ - name: "Upload coverage result"
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-result-jdk11
+ path: "**/target/site/**/jacoco.xml"
+
+# error-code-inspecting:
+# needs: [check-license, build-tools]
+# runs-on: ubuntu-latest
+# steps:
+# - uses: actions/checkout@v4
+# with:
+# path: "./dubbo-spi-extensions"
+# - uses: actions/checkout@v4
+# with:
+# repository: 'apache/dubbo-test-tools'
+# ref: main
+# path: "./dubbo-test-tools"
+# - name: "Set up JDK 21"
+# uses: actions/setup-java@v4
+# with:
+# distribution: 'zulu'
+# java-version: 21
+# - name: Restore Maven local repository cache
+# uses: actions/cache@v3
+# with:
+# path: ~/.m2/repository
+# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# restore-keys: |
+# ${{ runner.os }}-maven-
+# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+# - name: "Compile Dubbo-SPI-Extensions (Linux)"
+# run: |
+# cd ${{ github.workspace }}/dubbo-spi-extensions
+# ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
+# - name: "Run Error Code Inspecting"
+# env:
+# DUBBO_ECI_REPORT_AS_ERROR: true
+# run: |
+# cd ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector
+# ../mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast -T 2C package exec:java
-Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true
-Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace
}}/dubbo-spi-extensions
+# - name: "Upload error code inspection result"
+# # always() should not be used here, since we don't need to handle the
'canceled' situation.
+# if: ${{ success() || failure() }}
+# uses: actions/upload-artifact@v4
+# with:
+# name: "error-inspection-result"
+# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.licenserc.yaml b/.licenserc.yaml
new file mode 100644
index 0000000..87bad49
--- /dev/null
+++ b/.licenserc.yaml
@@ -0,0 +1,213 @@
+header:
+ license:
+ spdx-id: Apache-2.0
+ content: |
+ 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.
+
+ paths-ignore:
+ - '**/*.versionsBackup'
+ - '**/.idea/'
+ - '**/*.iml'
+ - '**/.settings/*'
+ - '**/.classpath'
+ - '**/.project'
+ - '**/target/**'
+ - '**/generated/**'
+ - '**/*.log'
+ - '**/codestyle/*'
+ - '**/resources/META-INF/**'
+ - '**/resources/mockito-extensions/**'
+ - '**/*.proto'
+ - '**/*.cache'
+ - '**/*.txt'
+ - '**/*.load'
+ - '**/*.flex'
+ - '**/*.fc'
+ - '**/*.javascript'
+ - '**/*.properties'
+ - '**/*.sh'
+ - '**/*.bat'
+ - '**/*.md'
+ - '**/*.svg'
+ - '**/*.png'
+ - '**/*.json'
+ - '**/*.conf'
+ - '**/*.ftl'
+ - '**/*.tpl'
+ - '**/*.factories'
+ - '**/*.handlers'
+ - '**/*.schemas'
+ - '**/*.nojekyll'
+ - '.git/'
+ - '.github/**'
+ - '**/.gitignore'
+ - '**/.helmignore'
+ - '.repository/'
+ - 'compiler/**'
+ - '.gitmodules'
+ - '.mvn'
+ - 'mvnw'
+ - 'mvnw.cmd'
+ - 'LICENSE'
+ - 'NOTICE'
+ - 'CNAME'
+ - 'Jenkinsfile'
+ - '**/vendor/**'
+ - '**/src/test/resources/certs/**'
+ - '**/src/test/resources/definition/**'
+ # Generate class
+ -
'dubbo-rpc-extensions/dubbo-rpc-native-thrift/src/test/java/org/apache/dubbo/rpc/protocol/nativethrift/DemoService.java'
+ -
'dubbo-rpc-extensions/dubbo-rpc-native-thrift/src/test/java/org/apache/dubbo/rpc/protocol/nativethrift/UserService.java'
+ # other license
+ -
'test/scenarios/scenarios-dubbo-serialization/dubbo-serialization-avro-test/src/main/java/org/apache/dubbo/test/serialization/avro/EmbeddedZooKeeper.java'
+ -
'test/scenarios/scenarios-dubbo-serialization/dubbo-serialization-fastjson-test/src/main/java/org/apache/dubbo/test/serialization/fastjson/EmbeddedZooKeeper.java'
+ -
'test/scenarios/scenarios-dubbo-serialization/dubbo-serialization-fst-test/src/main/java/org/apache/dubbo/test/serialization/fst/EmbeddedZooKeeper.java'
+ -
'test/scenarios/scenarios-dubbo-serialization/dubbo-serialization-gson-test/src/main/java/org/apache/dubbo/test/serialization/gson/EmbeddedZooKeeper.java'
+ -
'test/scenarios/scenarios-dubbo-serialization/dubbo-serialization-kryo-test/src/main/java/org/apache/dubbo/test/serialization/kryo/EmbeddedZooKeeper.java'
+ -
'test/scenarios/scenarios-dubbo-serialization/dubbo-serialization-protostuff-test/src/main/java/org/apache/dubbo/test/serialization/protostuff/EmbeddedZooKeeper.java'
+
+ comment: on-failure
+
+ license-location-threshold: 130
+
+dependency:
+ files:
+ - pom.xml
+ - dubbo-extensions-dependencies-bom/pom.xml
+ licenses:
+ - name: com.alibaba.spring:spring-context-support
+ license: Apache-2.0
+ - name: com.fasterxml.jackson.core:jackson-annotations
+ license: Apache-2.0
+ - name: com.fasterxml.jackson.core:jackson-core
+ license: Apache-2.0
+ - name: com.fasterxml.jackson.core:jackson-databind
+ license: Apache-2.0
+ - name: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
+ license: Apache-2.0
+ - name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
+ license: Apache-2.0
+ - name: com.google.code.gson:gson
+ license: Apache-2.0
+ - name: com.google.guava:listenablefuture
+ license: Apache-2.0
+ - name: com.salesforce.servicelibs:grpc-contrib
+ license: BSD 3-clause
+ - name: com.squareup.okhttp3:logging-interceptor
+ license: Apache-2.0
+ - name: com.squareup.okhttp3:okhttp
+ license: Apache-2.0
+ - name: com.squareup.okio:okio
+ license: Apache-2.0
+ - name: com.sun.xml.fastinfoset:FastInfoset
+ license: Apache-2.0
+ - name: io.envoyproxy.controlplane:api
+ license: Apache-2.0
+ - name: io.swagger:swagger-annotations
+ license: Apache-2.0
+ - name: io.swagger:swagger-models
+ license: Apache-2.0
+ - name: org.springframework.boot:spring-boot
+ license: Apache-2.0
+ - name: org.springframework.boot:spring-boot-actuator
+ license: Apache-2.0
+ - name: org.springframework.boot:spring-boot-autoconfigure
+ license: Apache-2.0
+ - name: org.springframework.boot:spring-boot-configuration-processor
+ license: Apache-2.0
+ - name: org.springframework.boot:spring-boot-starter
+ license: Apache-2.0
+ - name: org.springframework.boot:spring-boot-starter-actuator
+ license: Apache-2.0
+ - name: org.springframework.boot:spring-boot-starter-logging
+ license: Apache-2.0
+ - name: org.springframework.boot:spring-boot-starter-tomcat
+ license: Apache-2.0
+ - name: org.springframework.boot:spring-boot-starter-web
+ license: Apache-2.0
+ - name: org.slf4j:slf4j-api
+ license: MIT
+ - name: org.slf4j:slf4j-log4j12
+ license: MIT
+ - name: org.jboss.resteasy:resteasy-jaxrs
+ license: Apache-2.0
+ - name: org.jboss.resteasy:resteasy-client
+ license: Apache-2.0
+ - name: org.jboss.resteasy:resteasy-netty4
+ license: Apache-2.0
+ - name: org.jboss.resteasy:resteasy-jdk-http
+ license: Apache-2.0
+ - name: org.jboss.resteasy:resteasy-jackson-provider
+ license: Apache-2.0
+ - name: org.jboss.resteasy:resteasy-jaxb-provider
+ license: Apache-2.0
+ - name: net.jcip:jcip-annotations
+ license: Apache-2.0
+ - name: org.apache.zookeeper:zookeeper
+ license: Apache-2.0
+ - name: org.apache.zookeeper:zookeeper-jute
+ license: Apache-2.0
+ - name: net.bytebuddy:byte-buddy
+ license: Apache-2.0
+ - name: javax.enterprise:cdi-api
+ license: Apache-2.0
+ - name: org.codehaus.plexus:plexus-component-annotations
+ license: Apache-2.0
+ - name: org.slf4j:jcl-over-slf4j
+ license: Apache-2.0
+ - name: org.slf4j:jul-to-slf4j
+ license: Apache-2.0
+ - name: org.codehaus.plexus:plexus-interpolation
+ license: Apache-2.0
+ - name: org.sonatype.plexus:plexus-sec-dispatcher
+ license: Apache-2.0
+ - name: org.sonatype.plexus:plexus-cipher
+ license: Apache-2.0
+ - name: com.google.protobuf:protobuf-java
+ license: BSD 3-clause
+ - name: com.google.protobuf:protobuf-java-util
+ license: BSD 3-clause
+ # multi license
+ - name: org.javassist:javassist
+ license: Apache-2.0
+ - name: javax.annotation:javax.annotation-api
+ license: CDDL-1.0
+ - name: com.salesforce.servicelibs:jprotoc
+ license: CDDL-1.0
+ - name: org.checkerframework:checker-compat-qual
+ license: MIT
+ - name: ch.qos.logback:logback-classic
+ license: EPL-1.0
+ - name: ch.qos.logback:logback-core
+ license: EPL-1.0
+ - name: javax.servlet:javax.servlet-api
+ license: CDDL-1.1
+ - name: com.sun.activation:javax.activation
+ license: CDDL-1.1
+ - name: javax.activation:activation
+ license: CDDL-1.1
+ - name: jakarta.annotation:jakarta.annotation-api
+ license: EPL-2.0
+ - name: org.glassfish:jakarta.el
+ license: EPL-2.0
+ - name: org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec
+ license: CDDL-1.1
+ - name: org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec
+ license: EPL-2.0
+ - name: org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec
+ license: EPL-2.0
+ excludes:
+ - name: javax.xml.bind:jsr173_api
diff --git
a/dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma/src/test/java/org/apache/dubbo/rpc/cluster/loadbalance/LoadBalanceBaseTest.java
b/dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma/src/test/java/org/apache/dubbo/rpc/cluster/loadbalance/LoadBalanceBaseTest.java
index a7fcdac..bbfea6f 100644
---
a/dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma/src/test/java/org/apache/dubbo/rpc/cluster/loadbalance/LoadBalanceBaseTest.java
+++
b/dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma/src/test/java/org/apache/dubbo/rpc/cluster/loadbalance/LoadBalanceBaseTest.java
@@ -3,7 +3,7 @@
* 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 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
diff --git
a/dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma/src/test/java/org/apache/dubbo/rpc/cluster/loadbalance/PeakEwmaLoadBalanceTest.java
b/dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma/src/test/java/org/apache/dubbo/rpc/cluster/loadbalance/PeakEwmaLoadBalanceTest.java
index f461660..ae58f79 100644
---
a/dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma/src/test/java/org/apache/dubbo/rpc/cluster/loadbalance/PeakEwmaLoadBalanceTest.java
+++
b/dubbo-cluster-extensions/dubbo-cluster-loadbalance-peakewma/src/test/java/org/apache/dubbo/rpc/cluster/loadbalance/PeakEwmaLoadBalanceTest.java
@@ -3,7 +3,7 @@
* 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 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
diff --git
a/dubbo-remoting-extensions/dubbo-remoting-mina/src/test/resources/security/serialize.allowlist
b/dubbo-remoting-extensions/dubbo-remoting-mina/src/test/resources/security/serialize.allowlist
index 8f81635..cca5734 100644
---
a/dubbo-remoting-extensions/dubbo-remoting-mina/src/test/resources/security/serialize.allowlist
+++
b/dubbo-remoting-extensions/dubbo-remoting-mina/src/test/resources/security/serialize.allowlist
@@ -1,2 +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.
+#
+#
+
org.apache.remoting.transport.mina.World
org.apache.remoting.transport.mina.Hello