diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java index 4b3cd9415c..25e4e9d3f3 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java @@ -25,9 +25,14 @@ import org.apache.commons.logging.LogFactory; import org.springframework.aop.framework.autoproxy.AbstractBeanFactoryAwareAdvisingPostProcessor; import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; +import org.springframework.aot.hint.RuntimeHints; +import org.springframework.aot.hint.RuntimeHintsRegistrar; +import org.springframework.aot.hint.support.RuntimeHintsUtils; import org.springframework.beans.factory.BeanFactory; +import org.springframework.context.annotation.ImportRuntimeHints; import org.springframework.core.task.TaskExecutor; import org.springframework.lang.Nullable; +import org.springframework.scheduling.annotation.AsyncAnnotationBeanPostProcessor.AsyncAnnotationRuntimeHints; import org.springframework.util.Assert; import org.springframework.util.function.SingletonSupplier; @@ -62,6 +67,7 @@ import org.springframework.util.function.SingletonSupplier; * @see ScheduledAnnotationBeanPostProcessor */ @SuppressWarnings("serial") +@ImportRuntimeHints(AsyncAnnotationRuntimeHints.class) public class AsyncAnnotationBeanPostProcessor extends AbstractBeanFactoryAwareAdvisingPostProcessor { /** @@ -154,4 +160,13 @@ public class AsyncAnnotationBeanPostProcessor extends AbstractBeanFactoryAwareAd this.advisor = advisor; } + static class AsyncAnnotationRuntimeHints implements RuntimeHintsRegistrar { + + @Override + public void registerHints(RuntimeHints hints, ClassLoader classLoader) { + RuntimeHintsUtils.registerAnnotation(hints, Async.class); + } + + } + } diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/SchedulingRuntimeHints.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/SchedulingRuntimeHints.java deleted file mode 100644 index 7603ea9ebf..0000000000 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/SchedulingRuntimeHints.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2002-2022 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.scheduling.annotation; - -import org.springframework.aot.hint.RuntimeHints; -import org.springframework.aot.hint.RuntimeHintsRegistrar; -import org.springframework.aot.hint.support.RuntimeHintsUtils; -import org.springframework.lang.Nullable; - -/** - * {@link RuntimeHintsRegistrar} for scheduling annotations. - * - * @author Stephane Nicoll - * @since 6.0 - */ -class SchedulingRuntimeHints implements RuntimeHintsRegistrar { - - @Override - public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { - RuntimeHintsUtils.registerAnnotation(hints, Async.class); - } - -} diff --git a/spring-context/src/main/resources/META-INF/spring/aot.factories b/spring-context/src/main/resources/META-INF/spring/aot.factories index ff2960e07d..cce5c2019c 100644 --- a/spring-context/src/main/resources/META-INF/spring/aot.factories +++ b/spring-context/src/main/resources/META-INF/spring/aot.factories @@ -1,5 +1,2 @@ -org.springframework.aot.hint.RuntimeHintsRegistrar= \ -org.springframework.scheduling.annotation.SchedulingRuntimeHints - org.springframework.beans.factory.aot.BeanRegistrationAotProcessor= \ org.springframework.context.aot.ReflectiveProcessorBeanRegistrationAotProcessor