diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
new file mode 100644
index 000000000..02e54e52e
--- /dev/null
+++ b/.github/workflows/test.yaml
@@ -0,0 +1,43 @@
+name: JavaCI
+
+on: [push]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java: [7, 8, 9, 10, 11 ]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup java
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.java }}
+ - name: Build with Maven
+ run: mvn clean package -P full
+
+ build_jdk_ge_12:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java: [12, 13, 14 ]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 1.8
+ uses: actions/setup-java@v1
+ with:
+ java-version: 8
+ - name: save java8 home
+ run: |
+ export JAVA8_HOME=$JAVA_HOME && echo $JAVA8_HOME
+ echo "export JAVA8_HOME=$JAVA_HOME" > ~/.testenv
+
+ - name: Setup java
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.java }}
+ - name: Build with Maven
+ run: |
+ source ~/.testenv
+ mvn -Dmaven.compiler.fork=true -Dmaven.compiler.executable=$JAVA8_HOME/bin/javac -DJAVA8_HOME=$JAVA8_HOME clean package -P full
\ No newline at end of file
diff --git a/common/src/main/java/com/taobao/arthas/common/JavaVersionUtils.java b/common/src/main/java/com/taobao/arthas/common/JavaVersionUtils.java
index 6f25861de..603b18994 100644
--- a/common/src/main/java/com/taobao/arthas/common/JavaVersionUtils.java
+++ b/common/src/main/java/com/taobao/arthas/common/JavaVersionUtils.java
@@ -54,4 +54,8 @@ public class JavaVersionUtils {
public static boolean isGreaterThanJava8() {
return JAVA_VERSION > 1.8f;
}
+
+ public static boolean isGreaterThanJava11() {
+ return JAVA_VERSION > 11.0f;
+ }
}
diff --git a/core/src/test/java/com/taobao/arthas/core/util/TypeRenderUtilsTest.java b/core/src/test/java/com/taobao/arthas/core/util/TypeRenderUtilsTest.java
index f90f93e6e..2baa2e295 100644
--- a/core/src/test/java/com/taobao/arthas/core/util/TypeRenderUtilsTest.java
+++ b/core/src/test/java/com/taobao/arthas/core/util/TypeRenderUtilsTest.java
@@ -1,7 +1,10 @@
package com.taobao.arthas.core.util;
+import org.assertj.core.api.Assertions;
import org.junit.Test;
+import com.taobao.arthas.common.JavaVersionUtils;
+
import java.io.Serializable;
import static org.hamcrest.CoreMatchers.equalTo;
@@ -26,7 +29,14 @@ public class TypeRenderUtilsTest {
@Test
public void testDrawInterface() {
- assertThat(TypeRenderUtils.drawInterface(String.class), is(equalTo("java.io.Serializable,java.lang.Comparable,java.lang.CharSequence")));
+ if (JavaVersionUtils.isGreaterThanJava11()) {
+ Assertions.assertThat(TypeRenderUtils.drawInterface(String.class)).isEqualTo(
+ "java.io.Serializable,java.lang.Comparable,java.lang.CharSequence,java.lang.constant.Constable,java.lang.constant.ConstantDesc");
+ } else {
+ Assertions.assertThat(TypeRenderUtils.drawInterface(String.class))
+ .isEqualTo("java.io.Serializable,java.lang.Comparable,java.lang.CharSequence");
+ }
+
assertThat(TypeRenderUtils.drawInterface(TestClass.class), is(equalTo("java.io.Serializable")));
assertThat(TypeRenderUtils.drawInterface(Serializable.class), is(equalTo("")));
}
diff --git a/pom.xml b/pom.xml
index bd0e4610c..cf4bb7d51 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,6 +121,26 @@
+
+
+ jdk12
+
+ [12,)
+
+ JAVA8_HOME
+
+
+
+
+ com.sun
+ tools
+ 1.6.0
+ system
+ ${JAVA8_HOME}/lib/tools.jar
+
+
+
+
full
@@ -462,7 +482,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.2
+ 0.8.5
jacoco-initialize