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

oxsean pushed a commit to branch split-unit-test
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 06104e8354f9d92d2c24d5a6b3e41c07979c20f1
Author: Sean Yang <[email protected]>
AuthorDate: Sun Sep 8 15:15:37 2024 +0800

    Split unit test for 3.3
---
 .github/workflows/build-and-test-pr.yml            |  19 +-
 .github/workflows/build-and-test-scheduled-3.3.yml | 552 +++++++++++----------
 dubbo-test/scripts/split-modules.sh                |   2 +-
 mvnw                                               |   2 +-
 4 files changed, 291 insertions(+), 284 deletions(-)

diff --git a/.github/workflows/build-and-test-pr.yml 
b/.github/workflows/build-and-test-pr.yml
index 1ebb815797..819c780072 100644
--- a/.github/workflows/build-and-test-pr.yml
+++ b/.github/workflows/build-and-test-pr.yml
@@ -10,6 +10,7 @@ env:
   FAIL_FAST: 0
   SHOW_ERROR_DETAIL: 1
   VERSIONS_LIMIT: 4
+  ALL_REMOTE_VERSION: true
   JACOCO_ENABLE: true
   CANDIDATE_VERSIONS: >-
     spring.version:5.3.24;
@@ -130,7 +131,7 @@ jobs:
       - name: Build Dubbo with maven
         run: |
           cd ./dubbo
-          ./mvnw ${{ env.MAVEN_ARGS }} clean install 
-Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true 
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+          ./mvnw ${{ env.MAVEN_ARGS }} clean install 
-Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true
       - name: Save dubbo cache
         uses: actions/cache/save@v4
         with:
@@ -180,7 +181,7 @@ jobs:
       - name: Checkout code
         uses: actions/checkout@v4
       - name: Prepare test list
-        run: bash ./dubbo-test/scripts/split-modules.sh 3 '${{ 
github.workspace }}'
+        run: bash ./dubbo-test/scripts/split-modules.sh ${{ env.JOB_COUNT }} 
'${{ github.workspace }}'
       - name: Upload test list
         uses: actions/upload-artifact@v3
         with:
@@ -192,7 +193,7 @@ jobs:
         with:
           path: ${{ github.workspace }}/.tmp/zookeeper
           key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
-      - name: Download zookeeper binary archive in Linux OS
+      - name: Download zookeeper binary archive on ${{ matrix.os }}
         if: steps.cache-zookeeper.outputs.cache-hit != 'true'
         run: |
           mkdir -p ${{ github.workspace }}/.tmp/zookeeper
@@ -213,8 +214,8 @@ jobs:
   unit-test-job:
     name: Unit Test (Job-${{matrix.job_id}})
     needs: [ check-format, build-source, unit-test-prepare ]
-    runs-on: ubuntu-latest
-    timeout-minutes: 30
+    runs-on: ${{ matrix.os }}-latest
+    timeout-minutes: 60
     env:
       ZOOKEEPER_VERSION: 3.6.4
     strategy:
@@ -255,11 +256,11 @@ jobs:
           name: unit-test-list
           path: test/jobs/
       - name: Test with maven
-        timeout-minutes: 30
+        timeout-minutes: 60
         run: |
           set -o pipefail
           modules=$(cat test/jobs/test_modules_${{ matrix.job_id }}.txt)
-          ./mvnw ${{ env.MAVEN_ARGS }} clean test verify 
-Pjacoco,jdk15ge-simple,'!jdk15ge','!demo',skip-spotless,jacoco089 -pl 
"$modules" -DtrimStackTrace=false -Dmaven.test.skip=false 
-Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false 
-Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace 
}}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 1 -A 200 "FAILURE! -- in" > 
test_errors.log)
+          ./mvnw ${{ env.MAVEN_ARGS }} clean test verify 
-Pjdk15ge-simple,'!jdk15ge','!demo',skip-spotless,jacoco,jacoco089 -pl 
"$modules" -DtrimStackTrace=false -Dmaven.test.skip=false 
-Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false 
-Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace 
}}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 5 -A 200 "FAILURE! -- in" > 
test_errors.log)
       - name: Print test error log
         if: failure()
         run: cat test_errors.log
@@ -292,7 +293,7 @@ jobs:
     name: Samples Test (Job-${{matrix.job_id}})
     needs: [ check-format, build-source, samples-test-prepare ]
     runs-on: ubuntu-latest
-    timeout-minutes: 30
+    timeout-minutes: 60
     env:
       JAVA_VER: 8
       TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
@@ -391,7 +392,7 @@ jobs:
     name: Integration Test (Job-${{matrix.job_id}})
     needs: [ check-format, build-source, integration-test-prepare ]
     runs-on: ubuntu-latest
-    timeout-minutes: 30
+    timeout-minutes: 60
     env:
       JAVA_VER: 8
       TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
diff --git a/.github/workflows/build-and-test-scheduled-3.3.yml 
b/.github/workflows/build-and-test-scheduled-3.3.yml
index 3240efb8f8..8bee601a33 100644
--- a/.github/workflows/build-and-test-scheduled-3.3.yml
+++ b/.github/workflows/build-and-test-scheduled-3.3.yml
@@ -2,503 +2,509 @@ name: Build and Test Scheduled On 3.3
 
 on:
   schedule:
-    - cron: '0 0/6 * * *'
+    - cron: 0 0/6 * * *
   workflow_dispatch:
 
 permissions:
   contents: read
 
 env:
+  DUBBO_BRANCH: 3.3
   FORK_COUNT: 2
   FAIL_FAST: 0
   SHOW_ERROR_DETAIL: 1
-  #multi-version size limit
   VERSIONS_LIMIT: 4
   ALL_REMOTE_VERSION: true
-  CANDIDATE_VERSIONS: '
+  JACOCO_ENABLE: false
+  CANDIDATE_VERSIONS: >-
     spring.version:5.3.24;
     spring-boot.version:2.7.6;
-    '
+  MAVEN_OPTS: >-
+    -XX:+UseG1GC
+    -XX:InitiatingHeapOccupancyPercent=45
+    -XX:+UseStringDeduplication
+    -XX:-TieredCompilation
+    -XX:TieredStopAtLevel=1
+    -Dmaven.javadoc.skip=true
+    -Dmaven.wagon.http.retryHandler.count=5
+    -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
+  MAVEN_ARGS: >-
+    -e
+    --batch-mode
+    --no-snapshot-updates
+    --no-transfer-progress
+    --fail-fast
 
 jobs:
-  license:
+  check-license:
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout code
+        uses: actions/checkout@v4
         with:
-          ref: "3.3"
+          ref: ${{ env.DUBBO_BRANCH }}
       - name: Check License
         uses: apache/skywalking-eyes@main
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
   build-source:
-    runs-on: ubuntu-latest
+    name: Build Dubbo on ${{ matrix.os }}
+    runs-on: ${{ matrix.os }}-latest
+    strategy:
+      matrix:
+        os: [ ubuntu, windows ]
     outputs:
       version: ${{ steps.dubbo-version.outputs.version }}
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout code
+        uses: actions/checkout@v4
         with:
-          ref: "3.3"
           path: dubbo
-      - uses: actions/setup-java@v3
+      - name: Set up JDK
+        uses: actions/setup-java@v4
         with:
-          distribution: 'zulu'
+          distribution: zulu
           java-version: 21
-      - uses: actions/cache@v3
-        name: "Cache local Maven repository"
+      - name: Restore local maven repository cache
+        uses: actions/cache/restore@v4
+        id: cache-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: "Dubbo cache"
-        uses: actions/cache@v3
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+      - name: Restore common local maven repository cache
+        uses: actions/cache/restore@v4
+        if: steps.cache-maven-repository.outputs.cache-hit != 'true'
         with:
-          path: ~/.m2/repository/org/apache/dubbo
-          key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ 
github.run_id }}
-      - name: "Build Dubbo with Maven"
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-
+      - name: Clean dubbo cache
+        shell: bash
+        run: rm -rf ~/.m2/repository/org/apache/dubbo
+      - name: Build Dubbo with maven
+        shell: bash
         run: |
           cd ./dubbo
-          ./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 checkstyle file if failure"
+          ./mvnw ${{ env.MAVEN_ARGS }} clean install 
-Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true 
-Dcheckstyle_unix.skip=true
+      - name: Save dubbo cache
+        uses: actions/cache/save@v4
+        with:
+          path: ~/.m2/repository/org/apache/dubbo
+          key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ 
github.run_id }}
+      - name: Clean dubbo cache
+        shell: bash
+        run: rm -rf ~/.m2/repository/org/apache/dubbo
+      - name: Save local maven repository cache
+        uses: actions/cache/save@v4
+        if: steps.cache-maven-repository.outputs.cache-hit != 'true'
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+      - 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()
+      - name: Upload checkstyle file if failure
         uses: actions/upload-artifact@v3
+        if: failure()
         with:
-          name: "checkstyle-file"
+          name: checkstyle-file
           path: ${{ github.workspace }}/checkstyle.zip
-      - name: "Calculate Dubbo Version"
+      - name: Calculate Dubbo Version
         id: dubbo-version
+        shell: bash
         run: |
           REVISION=`awk 
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print 
$1;exit;}' ./dubbo/pom.xml`
           echo "version=$REVISION" >> $GITHUB_OUTPUT
           echo "dubbo version: $REVISION"
 
   unit-test-prepare:
-    name: " Preparation for Unit Test On ${{ matrix.os }}"
-    runs-on: ${{ matrix.os }}
+    name: Preparation for Unit Test on ${{ matrix.os }}
+    runs-on: ${{ matrix.os }}-latest
+    env:
+      JOB_COUNT: 2
+      ZOOKEEPER_VERSION: 3.6.4
     strategy:
-      fail-fast: false
       matrix:
-        os: [ ubuntu-latest, windows-latest ]
-    env:
-      ZOOKEEPER_VERSION: 3.6.3
+        os: [ ubuntu, windows ]
     steps:
-      - uses: actions/cache@v3
-        name: "Cache zookeeper binary archive"
-        id: "cache-zookeeper"
+      - name: Checkout code
+        uses: actions/checkout@v4
+      - name: Prepare test list
+        run: bash ./dubbo-test/scripts/split-modules.sh ${{ env.JOB_COUNT }} 
'${{ github.workspace }}'
+      - name: Upload test list
+        uses: actions/upload-artifact@v3
+        with:
+          name: unit-test-list
+          path: test/jobs
+      - name: Restore local zookeeper cache
+        uses: actions/cache/restore@v4
+        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"
-        if: ${{ startsWith( matrix.os, 'ubuntu') && 
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
-        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
-      - name: "Download zookeeper binary archive in Windows OS"
-        if: ${{ startsWith( matrix.os, 'windows') && 
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
-        shell: msys2 {0}
+      - name: Download zookeeper binary archive on ${{ matrix.os }}
+        if: steps.cache-zookeeper.outputs.cache-hit != 'true'
+        shell: bash
         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
+          set -x
+          cd '${{ github.workspace }}'
+          mkdir -p .tmp/zookeeper
+          command -v wget > /dev/null || wget() { curl -L -C - "$2" -o "$4"; }
+          wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O .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 .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 .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 .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 .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 .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
-
-  unit-test:
-    needs: [build-source, unit-test-prepare]
-    name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }})"
-    runs-on: ${{ matrix.os }}
-    strategy:
-      fail-fast: false
-      matrix:
-        os: [ ubuntu-latest, windows-latest ]
-        jdk: [ 8, 11, 17, 21 ]
-    env:
-      DISABLE_FILE_SYSTEM_TEST: true
-    steps:
-      - uses: actions/checkout@v3
-        with:
-          ref: "3.3"
-      - name: "Set up JDK ${{ matrix.jdk }}"
-        uses: actions/setup-java@v1
-        with:
-          java-version: ${{ matrix.jdk }}
-      - 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"
+          ls -al .tmp/zookeeper/apache-zookeeper-bin.tar.gz
+      - name: Save local zookeeper cache
+        uses: actions/cache/save@v4
+        if: steps.cache-zookeeper.outputs.cache-hit != 'true'
         with:
           path: ${{ github.workspace }}/.tmp/zookeeper
           key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
-          restore-keys: |
-            zookeeper-${{ runner.os }}-
-      - name: "Test with Maven with Integration Tests"
-        timeout-minutes: 70
-        if: ${{ startsWith( matrix.os, 'ubuntu') }}
-        run: ./mvnw --batch-mode --no-snapshot-updates -e 
--no-transfer-progress --fail-fast 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 
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
-      - name: "Test with Maven without Integration Tests"
-        timeout-minutes: 90
-        if: ${{ startsWith( matrix.os, 'windows') }}
-        run: ./mvnw --batch-mode --no-snapshot-updates -e 
--no-transfer-progress --fail-fast 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" 
-D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
-
-  unit-test-fastjson2:
-    needs: [build-source, unit-test-prepare]
-    name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }}, 
Serialization: fastjson2)"
-    runs-on: ${{ matrix.os }}
+  unit-test-job:
+    name: Unit Test (Job-${{matrix.job_id}}, Os-${{ matrix.os }}, Jdk-${{ 
matrix.jdk }}, Ser-${{ matrix.ser }})
+    needs: [ build-source, unit-test-prepare ]
+    runs-on: ${{ matrix.os }}-latest
+    timeout-minutes: 60
+    env:
+      ZOOKEEPER_VERSION: 3.6.4
+      DISABLE_FILE_SYSTEM_TEST: true
+      MAVEN_SUREFIRE_ADD_OPENS: true
+      DUBBO_DEFAULT_SERIALIZATION: ${{ matrix.ser }}
     strategy:
       fail-fast: false
       matrix:
-        os: [ ubuntu-latest, windows-latest ]
+        os: [ ubuntu, windows ]
         jdk: [ 8, 11, 17, 21 ]
-    env:
-      DISABLE_FILE_SYSTEM_TEST: true
-      DUBBO_DEFAULT_SERIALIZATION: fastjson2
-      MAVEN_SUREFIRE_ADD_OPENS: true
+        ser: [ hessian2, fastjson2 ]
+        job_id: [ 1, 2 ]
     steps:
-      - uses: actions/checkout@v3
-      - name: "Set up JDK ${{ matrix.jdk }}"
-        uses: actions/setup-java@v3
+      - name: Checkout code
+        uses: actions/checkout@v4
         with:
-          distribution: 'zulu'
+          ref: ${{ env.DUBBO_BRANCH }}
+      - name: Set up JDK
+        uses: actions/setup-java@v4
+        with:
+          distribution: zulu
           java-version: ${{ matrix.jdk }}
-      - uses: actions/cache@v3
-        name: "Cache local Maven repository"
+      - name: Restore local maven repository
+        uses: actions/cache/restore@v4
         with:
           path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ 
github.run_id }}
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
           restore-keys: |
-            ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
             ${{ runner.os }}-maven-
-      - uses: actions/cache@v3
-        name: "Cache zookeeper binary archive"
-        id: "cache-zookeeper"
+      - name: Restore Dubbo cache
+        uses: actions/cache/restore@v4
+        with:
+          path: ~/.m2/repository/org/apache/dubbo
+          key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ 
github.run_id }}
+      - name: Cache zookeeper binary archive
+        uses: actions/cache@v4
+        id: cache-zookeeper
         with:
           path: ${{ github.workspace }}/.tmp/zookeeper
           key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
           restore-keys: |
             zookeeper-${{ runner.os }}-
-      - name: "Test with Maven with Integration Tests on JDK 8"
-        timeout-minutes: 70
-        if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }}
-        run: ./mvnw --batch-mode --no-snapshot-updates -e 
--no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' 
-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 
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
-      - name: "Test with Maven without Integration Tests on JDK 8"
-        timeout-minutes: 90
-        if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }}
-        run: ./mvnw --batch-mode --no-snapshot-updates -e 
--no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" 
-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" 
-D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
-      - name: "Test with Maven with Integration Tests"
-        timeout-minutes: 70
-        if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }}
-        run: ./mvnw --batch-mode --no-snapshot-updates -e 
--no-transfer-progress --fail-fast clean test verify 
-Pjacoco,jdk15ge-simple,'!jdk15ge' 
-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 
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
-      - name: "Test with Maven without Integration Tests"
-        timeout-minutes: 90
-        if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk != '8' }}
-        run: ./mvnw --batch-mode --no-snapshot-updates -e 
--no-transfer-progress --fail-fast clean test verify 
-P"jacoco,jdk15ge-simple,'!jdk15ge'" -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" 
-D"embeddedZookeeperPath=${{ github.workspa [...]
+      - name: Download test list
+        uses: actions/download-artifact@v3
+        with:
+          name: unit-test-list
+          path: test/jobs/
+      - name: Test with maven on ${{ matrix.os }}
+        timeout-minutes: 60
+        run: |
+          set -o pipefail
+          modules=$(cat test/jobs/test_modules_${{ matrix.job_id }}.txt)
+          ./mvnw ${{ env.MAVEN_ARGS }} clean test verify 
-Pjdk15ge-simple,'!jdk15ge','!demo',skip-spotless -pl "$modules" 
-DtrimStackTrace=false -Dmaven.test.skip=false -Dcheckstyle.skip=false 
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dflatten.skip=true 
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper 2>&1 | tee 
>(grep -n -B 5 -A 200 "FAILURE! -- in" > test_errors.log)
+      - name: Print test error log
+        if: failure()
+        run: cat test_errors.log
 
   samples-test-prepare:
+    name: Preparation for Sample Test
     runs-on: ubuntu-latest
     env:
-      JOB_COUNT: 5
+      JOB_COUNT: 3
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout code
+        uses: actions/checkout@v4
         with:
-          repository: 'apache/dubbo-samples'
+          repository: oxsean/dubbo-samples
           ref: master
-      - name: "Prepare test list"
-        run: |
-          bash ./test/scripts/prepare-test.sh
-      - name: "Upload test list"
+      - name: Prepare test list
+        run: bash ./test/scripts/prepare-test.sh
+      - name: Upload test list
         uses: actions/upload-artifact@v3
         with:
           name: samples-test-list
           path: test/jobs
   samples-test-job:
-    needs: [build-source, samples-test-prepare]
-    name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: 
${{matrix.jdk}})"
+    name: Samples Test (Job-${{matrix.job_id}}, Java-${{ matrix.jdk }})
+    needs: [ build-source, samples-test-prepare ]
     runs-on: ubuntu-latest
-    timeout-minutes: 90
+    timeout-minutes: 60
     env:
-      JAVA_VER: ${{matrix.jdk}}
-      TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+      JAVA_VER: ${{ matrix.jdk }}
+      TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
     strategy:
       fail-fast: false
       matrix:
         jdk: [ 8, 11, 17, 21 ]
-        job_id: [1, 2, 3, 4, 5]
+        job_id: [ 1, 2, 3 ]
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout code
+        uses: actions/checkout@v4
         with:
-          repository: 'apache/dubbo-samples'
+          repository: oxsean/dubbo-samples
           ref: master
-      - name: "Cache local Maven repository"
-        uses: actions/cache@v3
+      - name: Restore local maven repository cache
+        uses: actions/cache/restore@v4
         with:
           path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ 
github.run_id }}
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
           restore-keys: |
-            ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
             ${{ runner.os }}-maven-
-      - name: "Restore Dubbo cache"
-        uses: actions/cache@v3
+      - name: Restore Dubbo cache
+        uses: actions/cache/restore@v4
         with:
           path: ~/.m2/repository/org/apache/dubbo
           key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ 
github.run_id }}
-          restore-keys: |
-            ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
-            ${{ runner.os }}-dubbo-snapshot-
-      - name: "Download test list"
+      - name: Download test list
         uses: actions/download-artifact@v3
         with:
           name: samples-test-list
           path: test/jobs/
-      - name: "Set up JDK ${{matrix.jdk}}"
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ matrix.jdk }}
+        uses: actions/setup-java@v4
         with:
-          java-version: ${{matrix.jdk}}
-      - name: "Init Candidate Versions"
+          distribution: zulu
+          java-version: ${{ matrix.jdk }}
+      - name: Init Candidate Versions
         run: |
-          DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+          DUBBO_VERSION="${{ needs.build-source.outputs.version }}"
           
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
           echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
-      - name: "Build test image"
-        run: |
-          cd test && bash ./build-test-image.sh
-      - name: "Run tests"
+      - name: Build test image
+        run: cd test && bash ./build-test-image.sh
+      - name: Run tests
         run: cd test && bash ./run-tests.sh
-      - name: "Upload test result"
-        if: always()
+      - name: Upload test result
         uses: actions/upload-artifact@v3
         with:
-          name: samples-test-result-${{matrix.jdk}}
+          name: samples-test-result-${{ matrix.jdk }}
           path: test/jobs/*-result*
   samples-test-result:
-    needs: [samples-test-job]
-    if: always()
+    needs: [ samples-test-job ]
     runs-on: ubuntu-latest
     env:
-      JAVA_VER: ${{matrix.jdk}}
+      JAVA_VER: ${{ matrix.jdk }}
     strategy:
       matrix:
         jdk: [ 8, 11, 17, 21 ]
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout samples code
+        uses: actions/checkout@v4
         with:
-          repository: 'apache/dubbo-samples'
+          repository: oxsean/dubbo-samples
           ref: master
-      - name: "Download test result"
+      - name: Download test result
         uses: actions/download-artifact@v3
         with:
-          name: samples-test-result-${{matrix.jdk}}
+          name: samples-test-result-${{ matrix.jdk }}
           path: test/jobs/
-      - name: "Merge test result"
+      - name: Merge test result
         run: ./test/scripts/merge-test-results.sh
 
   integration-test-prepare:
+    name: Preparation for Integration Test
     runs-on: ubuntu-latest
     env:
-      JOB_COUNT: 5
+      JOB_COUNT: 3
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout integration code
+        uses: actions/checkout@v4
         with:
-          repository: 'apache/dubbo-integration-cases'
+          repository: oxsean/dubbo-integration-cases
           ref: main
-      - name: "Prepare test list"
-        run: |
-          bash ./test/scripts/prepare-test.sh
-      - name: "Upload test list"
+      - name: Prepare test list
+        run: bash ./test/scripts/prepare-test.sh
+      - name: Upload test list
         uses: actions/upload-artifact@v3
         with:
           name: integration-test-list
           path: test/jobs
   integration-test-job:
-    needs: [build-source, integration-test-prepare]
-    name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} 
JavaVer: ${{matrix.jdk}})"
+    name: Integration Test (Job-${{ matrix.job_id }}, Java-${{ matrix.jdk }})
+    needs: [ build-source, integration-test-prepare ]
     runs-on: ubuntu-latest
-    timeout-minutes: 90
+    timeout-minutes: 60
     env:
-      JAVA_VER: ${{matrix.jdk}}
-      TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+      JAVA_VER: ${{ matrix.jdk }}
+      TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
     strategy:
       fail-fast: false
       matrix:
         jdk: [ 8, 11, 17, 21 ]
-        job_id: [1, 2, 3, 4, 5]
+        job_id: [ 1, 2, 3, 4, 5 ]
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout integration code
+        uses: actions/checkout@v4
         with:
-          repository: 'apache/dubbo-integration-cases'
+          repository: oxsean/dubbo-integration-cases
           ref: main
-      - name: "Cache local Maven repository"
-        uses: actions/cache@v3
+      - name: Restore local maven repository cache
+        uses: actions/cache/restore@v4
         with:
           path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ 
github.run_id }}
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
           restore-keys: |
-            ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
             ${{ runner.os }}-maven-
-      - name: "Restore Dubbo cache"
-        uses: actions/cache@v3
+      - name: Restore Dubbo cache
+        uses: actions/cache/restore@v4
         with:
           path: ~/.m2/repository/org/apache/dubbo
           key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ 
github.run_id }}
-          restore-keys: |
-            ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
-            ${{ runner.os }}-dubbo-snapshot-
-      - name: "Download test list"
+      - name: Download test list
         uses: actions/download-artifact@v3
         with:
           name: integration-test-list
           path: test/jobs/
-      - name: "Set up JDK ${{matrix.jdk}}"
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ matrix.jdk }}
+        uses: actions/setup-java@v4
         with:
-          java-version: ${{matrix.jdk}}
-      - name: "Init Candidate Versions"
+          distribution: zulu
+          java-version: ${{ matrix.jdk }}
+      - name: Init Candidate Versions
         run: |
-          DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+          DUBBO_VERSION="${{ needs.build-source.outputs.version }}"
           
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
           echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
-      - name: "Build test image"
-        run: |
-          cd test && bash ./build-test-image.sh
-      - name: "Run tests"
+      - name: Build test image
+        run: cd test && bash ./build-test-image.sh
+      - name: Run tests
         run: cd test && bash ./run-tests.sh
-      - name: "Upload test result"
-        if: always()
+      - name: Upload test result
         uses: actions/upload-artifact@v3
         with:
-          name: integration-test-result-${{matrix.jdk}}
+          name: integration-test-result-${{ matrix.jdk }}
           path: test/jobs/*-result*
   integration-test-result:
-    needs: [integration-test-job]
-    if: always()
+    needs: [ integration-test-job ]
     runs-on: ubuntu-latest
     env:
-      JAVA_VER: ${{matrix.jdk}}
+      JAVA_VER: ${{ matrix.jdk }}
     strategy:
       matrix:
         jdk: [ 8, 11, 17, 21 ]
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout integration code
+        uses: actions/checkout@v4
         with:
-          repository: 'apache/dubbo-integration-cases'
+          repository: oxsean/dubbo-integration-cases
           ref: main
-      - name: "Download test result"
+      - name: Download test result
         uses: actions/download-artifact@v3
         with:
-          name: integration-test-result-${{matrix.jdk}}
+          name: integration-test-result-${{ matrix.jdk }}
           path: test/jobs/
-      - name: "Merge test result"
+      - name: Merge test result
         run: ./test/scripts/merge-test-results.sh
 
   error-code-inspecting:
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout code
+        uses: actions/checkout@v4
         with:
-          ref: "3.3"
-          path: "./dubbo"
-
-      - uses: actions/checkout@v3
+          ref: ${{ env.DUBBO_BRANCH }}
+          path: ./dubbo
+      - name: Checkout code
+        uses: actions/checkout@v4
         with:
-          repository: 'apache/dubbo-test-tools'
+          repository: apache/dubbo-test-tools
           ref: main
-          path: "./dubbo-test-tools"
-
-      - name: "Set up JDK 21"
-        uses: actions/setup-java@v3
+          path: ./dubbo-test-tools
+      - name: Set up JDK 21
+        uses: actions/setup-java@v4
         with:
-          distribution: 'zulu'
+          distribution: zulu
           java-version: 21
-
-      - name: "Compile Dubbo (Linux)"
+      - name: Restore local maven repository cache
+        uses: actions/cache/restore@v4
+        id: cache-maven-repository
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: |
+            ${{ runner.os }}-maven-
+      - name: Compile Dubbo (Linux)
         run: |
           cd ${{ github.workspace }}/dubbo
-          ./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"
+          ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P 
'!demo',skip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true 
-Dcheckstyle_unix.skip=true -Drat.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
-
-      - name: "Upload error code inspection result"
+          ../mvnw ${{ env.MAVEN_ARGS }} -T 2C package exec:java 
-Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true 
-Ddubbo.eci.path=${{ github.workspace }}/dubbo
+      - 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@v3
         with:
-          name: "error-inspection-result"
+          name: error-inspection-result
           path: ${{ github.workspace 
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
 
   native-image-inspecting:
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v3
+      - name: Checkout code
+        uses: actions/checkout@v4
         with:
-          ref: "3.3"
-          path: "./dubbo"
-
-      - name: "Setup GraalVM environment"
+          ref: ${{ env.DUBBO_BRANCH }}
+          path: ./dubbo
+      - name: Setup GraalVM environment
         uses: graalvm/setup-graalvm@v1
         with:
-          version: '22.3.0'
-          java-version: '17'
-          components: 'native-image'
+          version: 22.3.0
+          java-version: 17
+          components: native-image
           github-token: ${{ secrets.GITHUB_TOKEN }}
-          native-image-job-reports: 'true'
-
-      - name: "Setup Zookeeper environment"
+          native-image-job-reports: true
+      - name: Setup Zookeeper environment
         run: |
           wget 
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
           tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
           mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg 
apache-zookeeper-3.8.4-bin/conf/zoo.cfg
           apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
-
-      - name: "Check environment"
+      - name: Check environment
         run: |
           java --version
           native-image --version
-
-      - name: "Compile Dubbo (Linux)"
+      - name: Restore local maven repository cache
+        uses: actions/cache/restore@v4
+        with:
+          path: ~/.m2/repository
+          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: |
+            ${{ runner.os }}-maven-
+      - name: Compile Dubbo (Linux)
         run: |
           cd ${{ github.workspace }}/dubbo
           ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P 
'!demo',skip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true 
-Dcheckstyle_unix.skip=true -Drat.skip=true
-
-      - name: "Compile and run Dubbo demo for native (Linux)"
+      - name: Compile and run Dubbo demo for native (Linux)
         run: |
           cd ${{ github.workspace 
}}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-interface
           MVNW="${{ github.workspace }}/dubbo/mvnw ${{ env.MAVEN_ARGS }} -T 2C 
-Dmaven.test.skip=true"
           $MVNW clean install
           cd ../dubbo-demo-native-provider
-          $MVNW clean package -P native  native:compile
+          $MVNW clean package -P native native:compile
           nohup ./target/dubbo-demo-native-provider &
           cd ../dubbo-demo-native-consumer
           $MVNW clean package -P native native:compile
diff --git a/dubbo-test/scripts/split-modules.sh 
b/dubbo-test/scripts/split-modules.sh
index 1bc1fe47de..4de770a05b 100644
--- a/dubbo-test/scripts/split-modules.sh
+++ b/dubbo-test/scripts/split-modules.sh
@@ -18,7 +18,7 @@
 
 readarray -t modules < <(find . -name "pom.xml" | while read -r pom; do
     module_dir=$(dirname "$pom")
-    if [ -d "$module_dir/src/test" ]; then
+    if [ -d "$module_dir/src/test" ] && [[ "$module_dir" != *"plugin-loom" ]]; 
then
         echo "${module_dir#./}"
     fi
 done)
diff --git a/mvnw b/mvnw
index b7f064624f..0e79b70d51 100755
--- a/mvnw
+++ b/mvnw
@@ -191,7 +191,7 @@ else
     else
       
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar";
     fi
-    while IFS="=" read key value; do
+    while IFS='=\r' read key value; do
       case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;;
       esac
     done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"


Reply via email to