diff --git a/testable-agent/pom.xml b/testable-agent/pom.xml index e2954b8..44df731 100755 --- a/testable-agent/pom.xml +++ b/testable-agent/pom.xml @@ -17,6 +17,7 @@ 5.6.2 0.2.2-SNAPSHOT 3.8.1 + 3.0.0-M5 3.2.0 3.2.4 @@ -90,6 +91,11 @@ + + org.apache.maven.plugins + maven-surefire-plugin + ${plugin.surefire.version} + diff --git a/testable-agent/src/main/java/com/alibaba/testable/agent/util/ClassUtil.java b/testable-agent/src/main/java/com/alibaba/testable/agent/util/ClassUtil.java index dd66d1d..f8e311f 100644 --- a/testable-agent/src/main/java/com/alibaba/testable/agent/util/ClassUtil.java +++ b/testable-agent/src/main/java/com/alibaba/testable/agent/util/ClassUtil.java @@ -41,6 +41,8 @@ public class ClassUtil { private static final String CLASS_BOOLEAN = "java/lang/Boolean"; private static final String METHOD_VALUE_OF = "valueOf"; + private final static String JOINER = "::"; + private static final Map TYPE_MAPPING = new HashMap(); private static final Map, Boolean> loadedClass = new WeakHashMap, Boolean>(); @@ -62,7 +64,8 @@ public class ClassUtil { * @param annotationName annotation to look for */ public static boolean anyMethodHasAnnotation(String className, String annotationName) { - Boolean found = loadedClass.get(new ComparableWeakRef(className)); + String cacheKey = className + JOINER + annotationName; + Boolean found = loadedClass.get(new ComparableWeakRef(cacheKey)); if (found != null) { return found; } @@ -73,7 +76,7 @@ public class ClassUtil { if (mn.visibleAnnotations != null) { for (AnnotationNode an : mn.visibleAnnotations) { if (toDotSeparateFullClassName(an.desc).equals(annotationName)) { - loadedClass.put(new ComparableWeakRef(className), true); + loadedClass.put(new ComparableWeakRef(cacheKey), true); return true; } } @@ -82,7 +85,7 @@ public class ClassUtil { } catch (Exception e) { // ignore } - loadedClass.put(new ComparableWeakRef(className), false); + loadedClass.put(new ComparableWeakRef(cacheKey), false); return false; } diff --git a/testable-agent/src/test/java/com/alibaba/testable/agent/util/ClassUtilTest.java b/testable-agent/src/test/java/com/alibaba/testable/agent/util/ClassUtilTest.java index c561c0a..ecb860f 100644 --- a/testable-agent/src/test/java/com/alibaba/testable/agent/util/ClassUtilTest.java +++ b/testable-agent/src/test/java/com/alibaba/testable/agent/util/ClassUtilTest.java @@ -12,9 +12,9 @@ class ClassUtilTest { @Test void should_able_to_get_annotation() { - assertEquals(false, ClassUtil.anyMethodHasAnnotation("class.not.exist", "")); - assertEquals(false, ClassUtil.anyMethodHasAnnotation("org.junit.jupiter.api.Assertions", "annotation.not.exist")); - assertEquals(true, ClassUtil.anyMethodHasAnnotation("org.junit.jupiter.api.Assertions", "org.apiguardian.api.API")); + assertFalse(ClassUtil.anyMethodHasAnnotation("class.not.exist", "")); + assertFalse(ClassUtil.anyMethodHasAnnotation("com.alibaba.testable.agent.util.ClassUtilTest", "annotation.not.exist")); + assertTrue(ClassUtil.anyMethodHasAnnotation("com.alibaba.testable.agent.util.ClassUtilTest", "org.junit.jupiter.api.Test")); } @Test diff --git a/testable-core/pom.xml b/testable-core/pom.xml index 3ab1024..d3db143 100644 --- a/testable-core/pom.xml +++ b/testable-core/pom.xml @@ -15,6 +15,7 @@ 1.6 UTF-8 3.8.1 + 3.0.0-M5 5.6.2 @@ -39,6 +40,11 @@ ${project.build.sourceEncoding} + + org.apache.maven.plugins + maven-surefire-plugin + ${plugin.surefire.version} + diff --git a/testable-processor/pom.xml b/testable-processor/pom.xml index 0d23725..4358546 100644 --- a/testable-processor/pom.xml +++ b/testable-processor/pom.xml @@ -15,6 +15,7 @@ 1.6 UTF-8 3.8.1 + 3.0.0-M5 5.6.2 0.2.2-SNAPSHOT @@ -53,6 +54,11 @@ -proc:none + + org.apache.maven.plugins + maven-surefire-plugin + ${plugin.surefire.version} +