diff --git a/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_ClassFinder.java b/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_ClassFinder.java deleted file mode 100644 index c4b5a6b3f2e..00000000000 --- a/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_ClassFinder.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2002-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.aot.nativex.substitution; - -import com.oracle.svm.core.annotate.Alias; -import com.oracle.svm.core.annotate.TargetClass; - -/** - * Allow to reference {@code com.sun.beans.finder.ClassFinder} from - * {@link Target_Introspector}. - * - * TODO Remove once Spring Framework requires GraalVM 23.0+, see graal#5224. - * - * @author Sebastien Deleuze - * @since 6.0 - */ -@TargetClass(className = "com.sun.beans.finder.ClassFinder") -final class Target_ClassFinder { - - @Alias - public static Class findClass(String name, ClassLoader loader) throws ClassNotFoundException { - return null; - } -} diff --git a/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_Introspector.java b/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_Introspector.java deleted file mode 100644 index 571b52e1557..00000000000 --- a/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_Introspector.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2002-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.aot.nativex.substitution; - -import java.beans.Customizer; - -import com.oracle.svm.core.annotate.Substitute; -import com.oracle.svm.core.annotate.TargetClass; - -/** - * {@link java.beans.Introspector} substitution with a refined {@code findCustomizerClass} implementation - * designed to avoid thousands of AWT classes to be included in the native image. - * - * TODO Remove once Spring Framework requires GraalVM 23.0+, see graal#5224. - * - * @author Sebastien Deleuze - * @since 6.0 - */ -@TargetClass(className = "java.beans.Introspector") -final class Target_Introspector { - - @Substitute - private static Class findCustomizerClass(Class type) { - String name = type.getName() + "Customizer"; - try { - type = Target_ClassFinder.findClass(name, type.getClassLoader()); - if (Customizer.class.isAssignableFrom(type)) { - Class c = type; - do { - c = c.getSuperclass(); - if (c.getName().equals("java.awt.Component")) { - return type; - } - } while (!c.getName().equals("java.lang.Object")); - } - } - catch (Exception ignored) { - } - return null; - } - -} diff --git a/spring-core/src/main/java/org/springframework/aot/nativex/substitution/package-info.java b/spring-core/src/main/java/org/springframework/aot/nativex/substitution/package-info.java deleted file mode 100644 index c17694d5642..00000000000 --- a/spring-core/src/main/java/org/springframework/aot/nativex/substitution/package-info.java +++ /dev/null @@ -1,7 +0,0 @@ -/** - * GraalVM native image substitutions, not part of Spring Framework public API. - */ -@NullUnmarked -package org.springframework.aot.nativex.substitution; - -import org.jspecify.annotations.NullUnmarked;