From 9dd7f5412aa72efdeb1ba15b2cd86c6391540b61 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Sun, 31 Jul 2022 14:57:48 +0300 Subject: [PATCH] Support TestNG with @CompileWithTargetClassAccess --- .../compile/CompileWithTargetClassAccessClassLoader.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spring-core-test/src/main/java/org/springframework/aot/test/generator/compile/CompileWithTargetClassAccessClassLoader.java b/spring-core-test/src/main/java/org/springframework/aot/test/generator/compile/CompileWithTargetClassAccessClassLoader.java index 141ba2f4e1..849c57f5d5 100644 --- a/spring-core-test/src/main/java/org/springframework/aot/test/generator/compile/CompileWithTargetClassAccessClassLoader.java +++ b/spring-core-test/src/main/java/org/springframework/aot/test/generator/compile/CompileWithTargetClassAccessClassLoader.java @@ -20,16 +20,21 @@ import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Enumeration; +import java.util.Set; /** * {@link ClassLoader} implementation to support * {@link CompileWithTargetClassAccess @CompileWithTargetClassAccess}. * * @author Phillip Webb + * @author Sam Brannen * @since 6.0 */ final class CompileWithTargetClassAccessClassLoader extends ClassLoader { + private static final Set passthroughPackages = + Set.of("org.junit", "org.testng", "org.hamcrest"); + private final ClassLoader testClassLoader; @@ -41,7 +46,7 @@ final class CompileWithTargetClassAccessClassLoader extends ClassLoader { @Override public Class loadClass(String name) throws ClassNotFoundException { - if (name.startsWith("org.junit") || name.startsWith("org.hamcrest")) { + if (passthroughPackages.stream().anyMatch(pkg -> name.startsWith(pkg))) { return Class.forName(name, false, this.testClassLoader); } return super.loadClass(name);