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}
+