Skip to content

Commit f5f1c11

Browse files
committed
[575] Updated to graalvm-23.0.2.
1 parent 6ae4d4f commit f5f1c11

File tree

1 file changed

+10
-29
lines changed

1 file changed

+10
-29
lines changed

common/junit-platform-native/src/main/java/org/graalvm/junit/platform/JUnitPlatformFeature.java

+10-29
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)