|
|
|
|
@ -26,6 +26,10 @@ import java.util.List;
@@ -26,6 +26,10 @@ import java.util.List;
|
|
|
|
|
import java.util.SortedSet; |
|
|
|
|
import java.util.concurrent.Future; |
|
|
|
|
|
|
|
|
|
import org.jspecify.annotations.Nullable; |
|
|
|
|
|
|
|
|
|
import org.springframework.aot.hint.RuntimeHints; |
|
|
|
|
import org.springframework.aot.hint.RuntimeHintsRegistrar; |
|
|
|
|
import org.springframework.util.ClassUtils; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -96,8 +100,11 @@ public enum JavaVersion {
@@ -96,8 +100,11 @@ public enum JavaVersion {
|
|
|
|
|
|
|
|
|
|
private final boolean available; |
|
|
|
|
|
|
|
|
|
private final Class<?> versionSpecificClass; |
|
|
|
|
|
|
|
|
|
JavaVersion(String name, Class<?> versionSpecificClass, String versionSpecificMethod, Class<?>... paramTypes) { |
|
|
|
|
this.name = name; |
|
|
|
|
this.versionSpecificClass = versionSpecificClass; |
|
|
|
|
this.available = ClassUtils.hasMethod(versionSpecificClass, versionSpecificMethod, paramTypes); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -139,4 +146,15 @@ public enum JavaVersion {
@@ -139,4 +146,15 @@ public enum JavaVersion {
|
|
|
|
|
return compareTo(version) < 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static class Hints implements RuntimeHintsRegistrar { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { |
|
|
|
|
for (JavaVersion javaVersion : JavaVersion.values()) { |
|
|
|
|
hints.reflection().registerType(javaVersion.versionSpecificClass); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|