From 6b38b6a31482ec9857970967f2ad13268dac1d0a Mon Sep 17 00:00:00 2001
From: hengyunabc <hengyunabc@gmail.com>
Date: Mon, 15 May 2023 19:38:17 +0800
Subject: [PATCH] polish #2524

---
 .github/workflows/test.yaml                   | 24 +++++++++----------
 arthas-spring-boot-starter/pom.xml            | 20 +++++++++++++++-
 .../pom.xml                                   |  8 +++----
 ...SpringBoot3StarterExampleApplication.java} |  6 ++---
 ...gBoot3StarterExampleApplicationTests.java} |  4 ++--
 ...ot.autoconfigure.AutoConfiguration.imports |  2 --
 ...ot.autoconfigure.AutoConfiguration.imports |  2 ++
 7 files changed, 42 insertions(+), 24 deletions(-)
 rename arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/main/java/com/example/{arthasspringbootstarterexample/ArthasSpringBootStarterExampleApplication.java => arthasspringboot3starterexample/ArthasSpringBoot3StarterExampleApplication.java} (64%)
 rename arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/test/java/com/example/{arthasspringbootstarterexample/ArthasSpringBootStarterExampleApplicationTests.java => arthasspringboot3starterexample/ArthasSpringBoot3StarterExampleApplicationTests.java} (58%)
 delete mode 100644 arthas-spring-boot-starter/src/main/resources/META-INF/org.springframework.boot.autoconfigure.AutoConfiguration.imports
 create mode 100644 arthas-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index ea890cc54..d25cbfb91 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -13,11 +13,11 @@ jobs:
       - name: Setup java
         uses: actions/setup-java@v3
         with:
-          java-version: ${{ matrix.java }} 
-          distribution: 'zulu'
-          cache: 'maven'
+          java-version: ${{ matrix.java }}
+          distribution: "zulu"
+          cache: "maven"
       - name: Build with Maven
-        run: mvn clean package -P full
+        run: mvn clean install -P full
 
   windows_build:
     runs-on: windows-2019
@@ -29,11 +29,11 @@ jobs:
       - name: Setup java
         uses: actions/setup-java@v3
         with:
-          java-version: ${{ matrix.java }} 
-          distribution: 'zulu'
-          cache: 'maven'
+          java-version: ${{ matrix.java }}
+          distribution: "zulu"
+          cache: "maven"
       - name: Build with Maven
-        run: mvn clean package -P full
+        run: mvn clean install -P full
 
   macos_build:
     runs-on: macos-latest
@@ -45,8 +45,8 @@ jobs:
       - name: Setup java
         uses: actions/setup-java@v3
         with:
-          java-version: ${{ matrix.java }} 
-          distribution: 'zulu'
-          cache: 'maven'
+          java-version: ${{ matrix.java }}
+          distribution: "zulu"
+          cache: "maven"
       - name: Build with Maven
-        run: mvn clean package -P full
+        run: mvn clean install -P full
diff --git a/arthas-spring-boot-starter/pom.xml b/arthas-spring-boot-starter/pom.xml
index 32f7906dc..49a21ad9f 100644
--- a/arthas-spring-boot-starter/pom.xml
+++ b/arthas-spring-boot-starter/pom.xml
@@ -15,6 +15,10 @@
     <name>${project.artifactId}</name>
     <url>https://github.com/alibaba/arthas</url>
 
+    <properties>
+        <it.pom.includes>*/pom.xml</it.pom.includes>
+    </properties>
+
     <dependencyManagement>
         <dependencies>
             <dependency>
@@ -64,6 +68,19 @@
         </dependency>
     </dependencies>
 
+    <profiles>
+        <profile>
+            <id>jdk-lt-17</id>
+            <activation>
+                <jdk>[1.8,17)</jdk>
+            </activation>
+            <properties>
+                <!-- spring boot3 测试只支持 jdk 17 及之后版本 -->
+                <it.pom.includes>arthas-spring-boot-starter-example/pom.xml</it.pom.includes>
+            </properties>
+        </profile>
+    </profiles>
+
     <build>
         <plugins>
             <plugin>
@@ -79,12 +96,13 @@
                     <streamLogs>true</streamLogs>
                     <preBuildHookScript>setup</preBuildHookScript>
                     <postBuildHookScript>verify</postBuildHookScript>
+                    <pomIncludes><pomInclude>${it.pom.includes}</pomInclude></pomIncludes>
                 </configuration>
                 <executions>
                     <execution>
                         <id>integration-test</id>
-                        <phase>test</phase>
                         <goals>
+                            <goal>install</goal>
                             <goal>run</goal>
                         </goals>
                     </execution>
diff --git a/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/pom.xml b/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/pom.xml
index b2f9d5366..f199da81b 100644
--- a/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/pom.xml
+++ b/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/pom.xml
@@ -5,17 +5,17 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>@spring-boot.version@</version>
+        <version>@spring-boot3.version@</version>
         <relativePath /> <!-- lookup parent from repository -->
     </parent>
     <groupId>com.example</groupId>
-    <artifactId>arthas-spring-boot-starter-example</artifactId>
+    <artifactId>arthas-spring-boot3-starter-example</artifactId>
     <version>0.0.1-SNAPSHOT</version>
-    <name>arthas-spring-boot-starter-example</name>
+    <name>arthas-spring-boot3-starter-example</name>
     <description>Demo project for Spring Boot</description>
 
     <properties>
-        <java.version>1.8</java.version>
+        <java.version>17</java.version>
     </properties>
 
     <dependencies>
diff --git a/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/main/java/com/example/arthasspringbootstarterexample/ArthasSpringBootStarterExampleApplication.java b/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/main/java/com/example/arthasspringboot3starterexample/ArthasSpringBoot3StarterExampleApplication.java
similarity index 64%
rename from arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/main/java/com/example/arthasspringbootstarterexample/ArthasSpringBootStarterExampleApplication.java
rename to arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/main/java/com/example/arthasspringboot3starterexample/ArthasSpringBoot3StarterExampleApplication.java
index ff37c8aec..1371bbfb7 100644
--- a/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/main/java/com/example/arthasspringbootstarterexample/ArthasSpringBootStarterExampleApplication.java
+++ b/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/main/java/com/example/arthasspringboot3starterexample/ArthasSpringBoot3StarterExampleApplication.java
@@ -1,4 +1,4 @@
-package com.example.arthasspringbootstarterexample;
+package com.example.arthasspringboot3starterexample;
 
 import java.util.concurrent.TimeUnit;
 
@@ -6,10 +6,10 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
-public class ArthasSpringBootStarterExampleApplication {
+public class ArthasSpringBoot3StarterExampleApplication {
 
 	public static void main(String[] args) throws InterruptedException {
-		SpringApplication.run(ArthasSpringBootStarterExampleApplication.class, args);
+		SpringApplication.run(ArthasSpringBoot3StarterExampleApplication.class, args);
 		System.out.println("xxxxxxxxxxxxxxxxxx");
 		TimeUnit.SECONDS.sleep(3);
 		System.exit(0);
diff --git a/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/test/java/com/example/arthasspringbootstarterexample/ArthasSpringBootStarterExampleApplicationTests.java b/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/test/java/com/example/arthasspringboot3starterexample/ArthasSpringBoot3StarterExampleApplicationTests.java
similarity index 58%
rename from arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/test/java/com/example/arthasspringbootstarterexample/ArthasSpringBootStarterExampleApplicationTests.java
rename to arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/test/java/com/example/arthasspringboot3starterexample/ArthasSpringBoot3StarterExampleApplicationTests.java
index 4468ab7a6..ca29a339a 100644
--- a/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/test/java/com/example/arthasspringbootstarterexample/ArthasSpringBootStarterExampleApplicationTests.java
+++ b/arthas-spring-boot-starter/src/it/arthas-spring-boot3-starter-example/src/test/java/com/example/arthasspringboot3starterexample/ArthasSpringBoot3StarterExampleApplicationTests.java
@@ -1,10 +1,10 @@
-package com.example.arthasspringbootstarterexample;
+package com.example.arthasspringbootstarterexample3;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
 @SpringBootTest
-class ArthasSpringBootStarterExampleApplicationTests {
+class ArthasSpringBoot3StarterExampleApplicationTests {
 
 	@Test
 	void contextLoads() {
diff --git a/arthas-spring-boot-starter/src/main/resources/META-INF/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/arthas-spring-boot-starter/src/main/resources/META-INF/org.springframework.boot.autoconfigure.AutoConfiguration.imports
deleted file mode 100644
index b9db5dbfc..000000000
--- a/arthas-spring-boot-starter/src/main/resources/META-INF/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ /dev/null
@@ -1,2 +0,0 @@
-  com.alibaba.arthas.spring.ArthasConfiguration
-  com.alibaba.arthas.spring.endpoints.ArthasEndPointAutoConfiguration
\ No newline at end of file
diff --git a/arthas-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/arthas-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..9fde570a5
--- /dev/null
+++ b/arthas-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,2 @@
+com.alibaba.arthas.spring.ArthasConfiguration
+com.alibaba.arthas.spring.endpoints.ArthasEndPointAutoConfiguration
\ No newline at end of file