@@ -97,28 +97,17 @@ public void beforeAnalysis(BeforeAnalysisAccess access) {
9797 TestPlan testplan = discoverTestsAndRegisterTestClassesForReflection (launcher , selectors );
9898 ImageSingletons .add (NativeImageJUnitLauncher .class , new NativeImageJUnitLauncher (launcher , testplan ));
9999
100- Method registerAllDeclaredMethods = findMethodOrNull (RuntimeReflection .class , "registerAllDeclaredMethods" , Class .class );
101- if (registerAllDeclaredMethods != null ) {
102- // graalvm-23.0+ with `RuntimeReflection#registerAllDeclaredMethods` method.
103- ClassLoader applicationLoader = access .getApplicationClassLoader ();
104- Class <?> typeSafeMatcher = findClassOrNull (applicationLoader , "org.hamcrest.TypeSafeMatcher" );
105- Class <?> typeSafeDiagnosingMatcher = findClassOrNull (applicationLoader , "org.hamcrest.TypeSafeDiagnosingMatcher" );
106- if (typeSafeMatcher != null || typeSafeDiagnosingMatcher != null ) {
107- BiConsumer <DuringAnalysisAccess , Class <?>> registerMatcherForReflection = (a , c ) -> {
108- try {
109- registerAllDeclaredMethods .invoke (null , c );
110- } catch (ReflectiveOperationException e ) {
111- throw new RuntimeException (e );
112- }
113- };
114- if (typeSafeMatcher != null ) {
115- access .registerSubtypeReachabilityHandler (registerMatcherForReflection , typeSafeMatcher );
116- }
117- if (typeSafeDiagnosingMatcher != null ) {
118- access .registerSubtypeReachabilityHandler (registerMatcherForReflection , typeSafeDiagnosingMatcher );
119- }
100+ ClassLoader applicationLoader = access .getApplicationClassLoader ();
101+ Class <?> typeSafeMatcher = findClassOrNull (applicationLoader , "org.hamcrest.TypeSafeMatcher" );
102+ Class <?> typeSafeDiagnosingMatcher = findClassOrNull (applicationLoader , "org.hamcrest.TypeSafeDiagnosingMatcher" );
103+ if (typeSafeMatcher != null || typeSafeDiagnosingMatcher != null ) {
104+ BiConsumer <DuringAnalysisAccess , Class <?>> registerMatcherForReflection = (a , c ) -> RuntimeReflection .registerAllDeclaredMethods (c );
105+ if (typeSafeMatcher != null ) {
106+ access .registerSubtypeReachabilityHandler (registerMatcherForReflection , typeSafeMatcher );
107+ }
108+ if (typeSafeDiagnosingMatcher != null ) {
109+ access .registerSubtypeReachabilityHandler (registerMatcherForReflection , typeSafeDiagnosingMatcher );
120110 }
121-
122111 }
123112 }
124113
@@ -130,14 +119,6 @@ private static Class<?> findClassOrNull(ClassLoader loader, String className) {
130119 }
131120 }
132121
133- private static Method findMethodOrNull (Class <?> clazz , String methodName , Class <?>... parameterTypes ) {
134- try {
135- return clazz .getDeclaredMethod (methodName , parameterTypes );
136- } catch (NoSuchMethodException e ) {
137- return null ;
138- }
139- }
140-
141122 private List <? extends DiscoverySelector > getSelectors (List <Path > classpathRoots ) {
142123 try {
143124 Path outputDir = Paths .get (System .getProperty (UniqueIdTrackingListener .OUTPUT_DIR_PROPERTY_NAME ));
0 commit comments