From 2c92d7da8f8feace44fcbef1578e80b341109b41 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 12 Jul 2022 18:26:10 +0200 Subject: [PATCH] Harmonize RuntimeHintsRegistrar implementations Closes gh-28801 --- ...va => JakartaAnnotationsRuntimeHints.java} | 2 +- .../resources/META-INF/spring/aot.factories | 3 +- ... JakartaAnnotationsRuntimeHintsTests.java} | 5 ++- ...ava => JavaMailMimeTypesRuntimeHints.java} | 3 +- .../resources/META-INF/spring/aot.factories | 2 +- .../ScheduledAnnotationBeanPostProcessor.java | 16 +++++++- ...eduledAnnotationRuntimeHintsRegistrar.java | 37 ----------------- .../MethodValidationPostProcessor.java | 16 +++++++- ...MethodValidationRuntimeHintsRegistrar.java | 40 ------------------- ....java => CoreAnnotationsRuntimeHints.java} | 2 +- ...=> SpringFactoriesLoaderRuntimeHints.java} | 4 +- .../resources/META-INF/spring/aot.factories | 4 +- ... => CoreAnnotationsRuntimeHintsTests.java} | 6 +-- ...ringFactoriesLoaderRuntimeHintsTests.java} | 4 +- ... => MessagingAnnotationsRuntimeHints.java} | 2 +- ....java => SimpAnnotationsRuntimeHints.java} | 2 +- .../AbstractMessageBrokerConfiguration.java | 6 +-- ...oxyTransactionManagementConfiguration.java | 2 +- ...ansactionBeanRegistrationAotProcessor.java | 6 +-- ...trar.java => TransactionRuntimeHints.java} | 18 ++++----- ...ar.java => HttpMimeTypesRuntimeHints.java} | 2 +- ....java => CodecConfigurerRuntimeHints.java} | 2 +- ...r.java => JacksonModulesRuntimeHints.java} | 3 +- .../resources/META-INF/spring/aot.factories | 6 +-- ...java => HandshakeHandlerRuntimeHints.java} | 2 +- .../resources/META-INF/spring/aot.factories | 2 +- 26 files changed, 76 insertions(+), 121 deletions(-) rename spring-beans/src/main/java/org/springframework/beans/factory/annotation/{JakartaAnnotationsRuntimeHintsRegistrar.java => JakartaAnnotationsRuntimeHints.java} (94%) rename spring-beans/src/test/java/org/springframework/beans/factory/annotation/{JakartaAnnotationsRuntimeHintsRegistrarTests.java => JakartaAnnotationsRuntimeHintsTests.java} (94%) rename spring-context-support/src/main/java/org/springframework/mail/javamail/{MimeTypeResourceHintsRegistrar.java => JavaMailMimeTypesRuntimeHints.java} (94%) delete mode 100644 spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationRuntimeHintsRegistrar.java delete mode 100644 spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationRuntimeHintsRegistrar.java rename spring-core/src/main/java/org/springframework/aot/hint/support/{CoreAnnotationsRuntimeHintsRegistrar.java => CoreAnnotationsRuntimeHints.java} (94%) rename spring-core/src/main/java/org/springframework/aot/hint/support/{SpringFactoriesLoaderRuntimeHintsRegistrar.java => SpringFactoriesLoaderRuntimeHints.java} (97%) rename spring-core/src/test/java/org/springframework/aot/hint/support/{CoreAnnotationsRuntimeHintsRegistrarTests.java => CoreAnnotationsRuntimeHintsTests.java} (92%) rename spring-core/src/test/java/org/springframework/aot/hint/support/{SpringFactoriesLoaderRuntimeHintsRegistrarTests.java => SpringFactoriesLoaderRuntimeHintsTests.java} (94%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/{MessagingAnnotationsRuntimeHintsRegistrar.java => MessagingAnnotationsRuntimeHints.java} (94%) rename spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/{SimpAnnotationsRuntimeHintsRegistrar.java => SimpAnnotationsRuntimeHints.java} (93%) rename spring-tx/src/main/java/org/springframework/transaction/annotation/{TransactionRuntimeHintsRegistrar.java => TransactionRuntimeHints.java} (72%) rename spring-web/src/main/java/org/springframework/http/{MediaTypeResourceHintsRegistrar.java => HttpMimeTypesRuntimeHints.java} (94%) rename spring-web/src/main/java/org/springframework/http/codec/{CodecConfigurerHintsRegistrar.java => CodecConfigurerRuntimeHints.java} (95%) rename spring-web/src/main/java/org/springframework/http/converter/json/{JacksonBuilderRuntimeHintsRegistrar.java => JacksonModulesRuntimeHints.java} (95%) rename spring-websocket/src/main/java/org/springframework/web/socket/server/support/{HandshakeHandlerRuntimeHintsRegistrar.java => HandshakeHandlerRuntimeHints.java} (97%) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHintsRegistrar.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHints.java similarity index 94% rename from spring-beans/src/main/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHintsRegistrar.java rename to spring-beans/src/main/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHints.java index 9988f50c499..7fffb381819 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHintsRegistrar.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHints.java @@ -29,7 +29,7 @@ import org.springframework.util.ClassUtils; * * @author Brian Clozel */ -class JakartaAnnotationsRuntimeHintsRegistrar implements RuntimeHintsRegistrar { +class JakartaAnnotationsRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, ClassLoader classLoader) { diff --git a/spring-beans/src/main/resources/META-INF/spring/aot.factories b/spring-beans/src/main/resources/META-INF/spring/aot.factories index cb5cd83550e..11530ced5cd 100644 --- a/spring-beans/src/main/resources/META-INF/spring/aot.factories +++ b/spring-beans/src/main/resources/META-INF/spring/aot.factories @@ -1,4 +1,5 @@ org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor=\ org.springframework.beans.factory.aot.BeanRegistrationsAotProcessor + org.springframework.aot.hint.RuntimeHintsRegistrar=\ -org.springframework.beans.factory.annotation.JakartaAnnotationsRuntimeHintsRegistrar \ No newline at end of file +org.springframework.beans.factory.annotation.JakartaAnnotationsRuntimeHints \ No newline at end of file diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHintsRegistrarTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHintsTests.java similarity index 94% rename from spring-beans/src/test/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHintsRegistrarTests.java rename to spring-beans/src/test/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHintsTests.java index a76e4d27346..f8e604fa1bf 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHintsRegistrarTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHintsTests.java @@ -33,10 +33,11 @@ import org.springframework.util.ClassUtils; import static org.assertj.core.api.Assertions.assertThat; /** - * Tests for {@link JakartaAnnotationsRuntimeHintsRegistrar}. + * Tests for {@link JakartaAnnotationsRuntimeHints}. + * * @author Brian Clozel */ -class JakartaAnnotationsRuntimeHintsRegistrarTests { +class JakartaAnnotationsRuntimeHintsTests { private final RuntimeHints hints = new RuntimeHints(); diff --git a/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeTypeResourceHintsRegistrar.java b/spring-context-support/src/main/java/org/springframework/mail/javamail/JavaMailMimeTypesRuntimeHints.java similarity index 94% rename from spring-context-support/src/main/java/org/springframework/mail/javamail/MimeTypeResourceHintsRegistrar.java rename to spring-context-support/src/main/java/org/springframework/mail/javamail/JavaMailMimeTypesRuntimeHints.java index 904b1e56c26..16500985608 100644 --- a/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeTypeResourceHintsRegistrar.java +++ b/spring-context-support/src/main/java/org/springframework/mail/javamail/JavaMailMimeTypesRuntimeHints.java @@ -27,10 +27,11 @@ import org.springframework.lang.Nullable; * @author Sebastien Deleuze * @since 6.0 */ -class MimeTypeResourceHintsRegistrar implements RuntimeHintsRegistrar { +class JavaMailMimeTypesRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { hints.resources().registerPattern("org/springframework/mail/javamail/mime.types"); } + } diff --git a/spring-context-support/src/main/resources/META-INF/spring/aot.factories b/spring-context-support/src/main/resources/META-INF/spring/aot.factories index 581396c5c58..bc5928dbef4 100644 --- a/spring-context-support/src/main/resources/META-INF/spring/aot.factories +++ b/spring-context-support/src/main/resources/META-INF/spring/aot.factories @@ -1,2 +1,2 @@ org.springframework.aot.hint.RuntimeHintsRegistrar= \ -org.springframework.mail.javamail.MimeTypeResourceHintsRegistrar \ No newline at end of file +org.springframework.mail.javamail.JavaMailMimeTypesRuntimeHints \ No newline at end of file diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java index f11feca1585..cb842bbf7f8 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java @@ -37,6 +37,9 @@ import org.apache.commons.logging.LogFactory; import org.springframework.aop.framework.AopInfrastructureBean; import org.springframework.aop.framework.AopProxyUtils; import org.springframework.aop.support.AopUtils; +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.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.BeanNameAware; @@ -65,6 +68,7 @@ import org.springframework.core.annotation.AnnotationUtils; import org.springframework.lang.Nullable; import org.springframework.scheduling.TaskScheduler; import org.springframework.scheduling.Trigger; +import org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor.ScheduledAnnotationsRuntimeHints; import org.springframework.scheduling.config.CronTask; import org.springframework.scheduling.config.FixedDelayTask; import org.springframework.scheduling.config.FixedRateTask; @@ -107,7 +111,7 @@ import org.springframework.util.StringValueResolver; * @see org.springframework.scheduling.config.ScheduledTaskRegistrar * @see AsyncAnnotationBeanPostProcessor */ -@ImportRuntimeHints(ScheduledAnnotationRuntimeHintsRegistrar.class) +@ImportRuntimeHints(ScheduledAnnotationsRuntimeHints.class) public class ScheduledAnnotationBeanPostProcessor implements ScheduledTaskHolder, MergedBeanDefinitionPostProcessor, DestructionAwareBeanPostProcessor, Ordered, EmbeddedValueResolverAware, BeanNameAware, BeanFactoryAware, ApplicationContextAware, @@ -607,4 +611,14 @@ public class ScheduledAnnotationBeanPostProcessor this.registrar.destroy(); } + static class ScheduledAnnotationsRuntimeHints implements RuntimeHintsRegistrar { + + @Override + public void registerHints(RuntimeHints hints, ClassLoader classLoader) { + RuntimeHintsUtils.registerAnnotation(hints, Scheduled.class); + RuntimeHintsUtils.registerAnnotation(hints, Schedules.class); + } + + } + } diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationRuntimeHintsRegistrar.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationRuntimeHintsRegistrar.java deleted file mode 100644 index c92f9b90421..00000000000 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationRuntimeHintsRegistrar.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; - -/** - * {@link RuntimeHintsRegistrar} implementation that registers runtime hints for - * {@link Scheduled} annotation. - * - * @author Sebastien Deleuze - * @since 6.0 - */ -public class ScheduledAnnotationRuntimeHintsRegistrar implements RuntimeHintsRegistrar { - - @Override - public void registerHints(RuntimeHints hints, ClassLoader classLoader) { - RuntimeHintsUtils.registerAnnotation(hints, Scheduled.class); - RuntimeHintsUtils.registerAnnotation(hints, Schedules.class); - } -} diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java index f7eb540b37d..43bff733d9f 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java @@ -23,15 +23,19 @@ import jakarta.validation.ValidatorFactory; import org.aopalliance.aop.Advice; import org.springframework.aop.Pointcut; +import org.springframework.aop.framework.AopProxyUtils; import org.springframework.aop.framework.autoproxy.AbstractBeanFactoryAwareAdvisingPostProcessor; import org.springframework.aop.support.DefaultPointcutAdvisor; import org.springframework.aop.support.annotation.AnnotationMatchingPointcut; +import org.springframework.aot.hint.RuntimeHints; +import org.springframework.aot.hint.RuntimeHintsRegistrar; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.ImportRuntimeHints; import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.validation.annotation.Validated; +import org.springframework.validation.beanvalidation.MethodValidationPostProcessor.MethodValidationRuntimeHints; /** * A convenient {@link BeanPostProcessor} implementation that delegates to a @@ -58,7 +62,7 @@ import org.springframework.validation.annotation.Validated; * @see jakarta.validation.executable.ExecutableValidator */ @SuppressWarnings("serial") -@ImportRuntimeHints(MethodValidationRuntimeHintsRegistrar.class) +@ImportRuntimeHints(MethodValidationRuntimeHints.class) public class MethodValidationPostProcessor extends AbstractBeanFactoryAwareAdvisingPostProcessor implements InitializingBean { @@ -127,4 +131,14 @@ public class MethodValidationPostProcessor extends AbstractBeanFactoryAwareAdvis return (validator != null ? new MethodValidationInterceptor(validator) : new MethodValidationInterceptor()); } + + static class MethodValidationRuntimeHints implements RuntimeHintsRegistrar { + + @Override + public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { + hints.proxies().registerJdkProxy(AopProxyUtils.completeJdkProxyInterfaces(Validator.class)); + } + + } + } diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationRuntimeHintsRegistrar.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationRuntimeHintsRegistrar.java deleted file mode 100644 index 9e3717e4868..00000000000 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationRuntimeHintsRegistrar.java +++ /dev/null @@ -1,40 +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.validation.beanvalidation; - -import jakarta.validation.Validator; - -import org.springframework.aop.framework.AopProxyUtils; -import org.springframework.aot.hint.RuntimeHints; -import org.springframework.aot.hint.RuntimeHintsRegistrar; -import org.springframework.lang.Nullable; - -/** - * {@link RuntimeHintsRegistrar} implementation that registers proxy entries - * for {@link MethodValidationPostProcessor}. - * - * @author Sebastien Deleuze - * @since 6.0 - */ -public class MethodValidationRuntimeHintsRegistrar implements RuntimeHintsRegistrar { - - @Override - public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { - hints.proxies().registerJdkProxy(AopProxyUtils.completeJdkProxyInterfaces(Validator.class)); - } - -} diff --git a/spring-core/src/main/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHintsRegistrar.java b/spring-core/src/main/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHints.java similarity index 94% rename from spring-core/src/main/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHintsRegistrar.java rename to spring-core/src/main/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHints.java index a8ad865e823..6b452a6706e 100644 --- a/spring-core/src/main/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHintsRegistrar.java +++ b/spring-core/src/main/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHints.java @@ -30,7 +30,7 @@ import org.springframework.lang.Nullable; * @author Phillip Webb * @since 6.0 */ -class CoreAnnotationsRuntimeHintsRegistrar implements RuntimeHintsRegistrar { +class CoreAnnotationsRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { diff --git a/spring-core/src/main/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHintsRegistrar.java b/spring-core/src/main/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHints.java similarity index 97% rename from spring-core/src/main/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHintsRegistrar.java rename to spring-core/src/main/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHints.java index 16f602a15d8..de9339ee3ad 100644 --- a/spring-core/src/main/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHintsRegistrar.java +++ b/spring-core/src/main/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHints.java @@ -40,7 +40,7 @@ import org.springframework.util.ClassUtils; * @since 6.0 * @see SpringFactoriesLoader */ -class SpringFactoriesLoaderRuntimeHintsRegistrar implements RuntimeHintsRegistrar { +class SpringFactoriesLoaderRuntimeHints implements RuntimeHintsRegistrar { private static final List RESOURCE_LOCATIONS = List.of(SpringFactoriesLoader.FACTORIES_RESOURCE_LOCATION); @@ -48,7 +48,7 @@ class SpringFactoriesLoaderRuntimeHintsRegistrar implements RuntimeHintsRegistra private static final Consumer HINT = builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS); - private static final Log logger = LogFactory.getLog(SpringFactoriesLoaderRuntimeHintsRegistrar.class); + private static final Log logger = LogFactory.getLog(SpringFactoriesLoaderRuntimeHints.class); @Override diff --git a/spring-core/src/main/resources/META-INF/spring/aot.factories b/spring-core/src/main/resources/META-INF/spring/aot.factories index 17f6fbd0d03..5a4fe9170cc 100644 --- a/spring-core/src/main/resources/META-INF/spring/aot.factories +++ b/spring-core/src/main/resources/META-INF/spring/aot.factories @@ -1,3 +1,3 @@ org.springframework.aot.hint.RuntimeHintsRegistrar=\ -org.springframework.aot.hint.support.CoreAnnotationsRuntimeHintsRegistrar,\ -org.springframework.aot.hint.support.SpringFactoriesLoaderRuntimeHintsRegistrar +org.springframework.aot.hint.support.CoreAnnotationsRuntimeHints,\ +org.springframework.aot.hint.support.SpringFactoriesLoaderRuntimeHints diff --git a/spring-core/src/test/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHintsRegistrarTests.java b/spring-core/src/test/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHintsTests.java similarity index 92% rename from spring-core/src/test/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHintsRegistrarTests.java rename to spring-core/src/test/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHintsTests.java index 8df2ed55f88..704465d1c74 100644 --- a/spring-core/src/test/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHintsRegistrarTests.java +++ b/spring-core/src/test/java/org/springframework/aot/hint/support/CoreAnnotationsRuntimeHintsTests.java @@ -31,13 +31,13 @@ import org.springframework.util.ClassUtils; import static org.assertj.core.api.Assertions.assertThat; /** - * Tests for {@link CoreAnnotationsRuntimeHintsRegistrar}. + * Tests for {@link CoreAnnotationsRuntimeHints}. * * @author Phillip Webb */ -class CoreAnnotationsRuntimeHintsRegistrarTests { +class CoreAnnotationsRuntimeHintsTests { - private RuntimeHints hints = new RuntimeHints(); + private final RuntimeHints hints = new RuntimeHints(); @BeforeEach void setup() { diff --git a/spring-core/src/test/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHintsRegistrarTests.java b/spring-core/src/test/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHintsTests.java similarity index 94% rename from spring-core/src/test/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHintsRegistrarTests.java rename to spring-core/src/test/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHintsTests.java index 9a7f5bbc9e9..067015ed4f2 100644 --- a/spring-core/src/test/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHintsRegistrarTests.java +++ b/spring-core/src/test/java/org/springframework/aot/hint/support/SpringFactoriesLoaderRuntimeHintsTests.java @@ -31,11 +31,11 @@ import org.springframework.util.ClassUtils; import static org.assertj.core.api.Assertions.assertThat; /** - * Tests for {@link SpringFactoriesLoaderRuntimeHintsRegistrar}. + * Tests for {@link SpringFactoriesLoaderRuntimeHints}. * * @author Phillip Webb */ -class SpringFactoriesLoaderRuntimeHintsRegistrarTests { +class SpringFactoriesLoaderRuntimeHintsTests { private RuntimeHints hints; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessagingAnnotationsRuntimeHintsRegistrar.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessagingAnnotationsRuntimeHints.java similarity index 94% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessagingAnnotationsRuntimeHintsRegistrar.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessagingAnnotationsRuntimeHints.java index 80727fff682..28ba86cfa0a 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessagingAnnotationsRuntimeHintsRegistrar.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessagingAnnotationsRuntimeHints.java @@ -31,7 +31,7 @@ import org.springframework.stereotype.Controller; * @author Sebastien Deleuze * @since 6.0 */ -public class MessagingAnnotationsRuntimeHintsRegistrar implements RuntimeHintsRegistrar { +public class MessagingAnnotationsRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/SimpAnnotationsRuntimeHintsRegistrar.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/SimpAnnotationsRuntimeHints.java similarity index 93% rename from spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/SimpAnnotationsRuntimeHintsRegistrar.java rename to spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/SimpAnnotationsRuntimeHints.java index b971af9b810..f5d262cf6c2 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/SimpAnnotationsRuntimeHintsRegistrar.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/SimpAnnotationsRuntimeHints.java @@ -29,7 +29,7 @@ import org.springframework.aot.hint.support.RuntimeHintsUtils; * @author Sebastien Deleuze * @since 6.0 */ -public class SimpAnnotationsRuntimeHintsRegistrar implements RuntimeHintsRegistrar { +public class SimpAnnotationsRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, ClassLoader classLoader) { diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration.java index 1a59485adec..e136ffd2889 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration.java @@ -42,12 +42,12 @@ import org.springframework.messaging.converter.KotlinSerializationJsonMessageCon import org.springframework.messaging.converter.MappingJackson2MessageConverter; import org.springframework.messaging.converter.MessageConverter; import org.springframework.messaging.converter.StringMessageConverter; -import org.springframework.messaging.handler.annotation.MessagingAnnotationsRuntimeHintsRegistrar; +import org.springframework.messaging.handler.annotation.MessagingAnnotationsRuntimeHints; import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver; import org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler; import org.springframework.messaging.simp.SimpLogging; import org.springframework.messaging.simp.SimpMessagingTemplate; -import org.springframework.messaging.simp.annotation.SimpAnnotationsRuntimeHintsRegistrar; +import org.springframework.messaging.simp.annotation.SimpAnnotationsRuntimeHints; import org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler; import org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler; import org.springframework.messaging.simp.broker.SimpleBrokerMessageHandler; @@ -98,7 +98,7 @@ import org.springframework.validation.Validator; * @author Sebastien Deleuze * @since 4.0 */ -@ImportRuntimeHints({ MessagingAnnotationsRuntimeHintsRegistrar.class, SimpAnnotationsRuntimeHintsRegistrar.class }) +@ImportRuntimeHints({ MessagingAnnotationsRuntimeHints.class, SimpAnnotationsRuntimeHints.class }) public abstract class AbstractMessageBrokerConfiguration implements ApplicationContextAware { private static final String MVC_VALIDATOR_NAME = "mvcValidator"; diff --git a/spring-tx/src/main/java/org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.java index c3352a30d46..f2128f3acaf 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.java +++ b/spring-tx/src/main/java/org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.java @@ -38,7 +38,7 @@ import org.springframework.transaction.interceptor.TransactionInterceptor; */ @Configuration(proxyBeanMethods = false) @Role(BeanDefinition.ROLE_INFRASTRUCTURE) -@ImportRuntimeHints(TransactionRuntimeHintsRegistrar.class) +@ImportRuntimeHints(TransactionRuntimeHints.class) public class ProxyTransactionManagementConfiguration extends AbstractTransactionManagementConfiguration { @Bean(name = TransactionManagementConfigUtils.TRANSACTION_ADVISOR_BEAN_NAME) diff --git a/spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionBeanRegistrationAotProcessor.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionBeanRegistrationAotProcessor.java index 2b2efcf5066..6a79565d0a2 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionBeanRegistrationAotProcessor.java +++ b/spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionBeanRegistrationAotProcessor.java @@ -39,9 +39,9 @@ import org.springframework.util.ReflectionUtils; * * @author Sebastien Deleuze * @since 6.0 - * @see TransactionRuntimeHintsRegistrar + * @see TransactionRuntimeHints */ -public class TransactionBeanRegistrationAotProcessor implements BeanRegistrationAotProcessor { +class TransactionBeanRegistrationAotProcessor implements BeanRegistrationAotProcessor { private final static String JAKARTA_TRANSACTIONAL_CLASS_NAME = "jakarta.transaction.Transactional"; @@ -70,7 +70,7 @@ public class TransactionBeanRegistrationAotProcessor implements BeanRegistration private static class TransactionBeanRegistrationAotContribution implements BeanRegistrationAotContribution { - private Class beanClass; + private final Class beanClass; public TransactionBeanRegistrationAotContribution(Class beanClass) { this.beanClass = beanClass; diff --git a/spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionRuntimeHintsRegistrar.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionRuntimeHints.java similarity index 72% rename from spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionRuntimeHintsRegistrar.java rename to spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionRuntimeHints.java index 477fbf82c4c..2bad3f7585e 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionRuntimeHintsRegistrar.java +++ b/spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionRuntimeHints.java @@ -16,13 +16,14 @@ package org.springframework.transaction.annotation; +import java.util.List; + import org.springframework.aot.hint.MemberCategory; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsRegistrar; import org.springframework.aot.hint.TypeReference; import org.springframework.aot.hint.support.RuntimeHintsUtils; - -import static java.util.Arrays.asList; +import org.springframework.transaction.TransactionDefinition; /** * {@link RuntimeHintsRegistrar} implementation that registers runtime hints for @@ -32,17 +33,16 @@ import static java.util.Arrays.asList; * @since 6.0 * @see TransactionBeanRegistrationAotProcessor */ -public class TransactionRuntimeHintsRegistrar implements RuntimeHintsRegistrar { +class TransactionRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, ClassLoader classLoader) { - RuntimeHintsUtils.registerAnnotation(hints, org.springframework.transaction.annotation.Transactional.class); - + RuntimeHintsUtils.registerAnnotation(hints, Transactional.class); hints.reflection() - .registerTypes(asList( - TypeReference.of(org.springframework.transaction.annotation.Isolation.class), - TypeReference.of(org.springframework.transaction.annotation.Propagation.class), - TypeReference.of(org.springframework.transaction.TransactionDefinition.class)), + .registerTypes(List.of( + TypeReference.of(Isolation.class), + TypeReference.of(Propagation.class), + TypeReference.of(TransactionDefinition.class)), builder -> builder.withMembers(MemberCategory.DECLARED_FIELDS)); } } diff --git a/spring-web/src/main/java/org/springframework/http/MediaTypeResourceHintsRegistrar.java b/spring-web/src/main/java/org/springframework/http/HttpMimeTypesRuntimeHints.java similarity index 94% rename from spring-web/src/main/java/org/springframework/http/MediaTypeResourceHintsRegistrar.java rename to spring-web/src/main/java/org/springframework/http/HttpMimeTypesRuntimeHints.java index 5214f8a8314..d44cc646eec 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaTypeResourceHintsRegistrar.java +++ b/spring-web/src/main/java/org/springframework/http/HttpMimeTypesRuntimeHints.java @@ -27,7 +27,7 @@ import org.springframework.lang.Nullable; * @author Stephane Nicoll * @since 6.0 */ -class MediaTypeResourceHintsRegistrar implements RuntimeHintsRegistrar { +class HttpMimeTypesRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { diff --git a/spring-web/src/main/java/org/springframework/http/codec/CodecConfigurerHintsRegistrar.java b/spring-web/src/main/java/org/springframework/http/codec/CodecConfigurerRuntimeHints.java similarity index 95% rename from spring-web/src/main/java/org/springframework/http/codec/CodecConfigurerHintsRegistrar.java rename to spring-web/src/main/java/org/springframework/http/codec/CodecConfigurerRuntimeHints.java index 34d50a2f01e..aefcea7340b 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/CodecConfigurerHintsRegistrar.java +++ b/spring-web/src/main/java/org/springframework/http/codec/CodecConfigurerRuntimeHints.java @@ -31,7 +31,7 @@ import org.springframework.lang.Nullable; * @author Sebastien Deleuze * @since 6.0 */ -public class CodecConfigurerHintsRegistrar implements RuntimeHintsRegistrar { +class CodecConfigurerRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/JacksonBuilderRuntimeHintsRegistrar.java b/spring-web/src/main/java/org/springframework/http/converter/json/JacksonModulesRuntimeHints.java similarity index 95% rename from spring-web/src/main/java/org/springframework/http/converter/json/JacksonBuilderRuntimeHintsRegistrar.java rename to spring-web/src/main/java/org/springframework/http/converter/json/JacksonModulesRuntimeHints.java index 36910925c7a..04ec265069b 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/JacksonBuilderRuntimeHintsRegistrar.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/JacksonModulesRuntimeHints.java @@ -29,7 +29,8 @@ import org.springframework.aot.hint.TypeReference; * @author Sebastien Deleuze * @since 6.0 */ -public class JacksonBuilderRuntimeHintsRegistrar implements RuntimeHintsRegistrar { +class JacksonModulesRuntimeHints implements RuntimeHintsRegistrar { + @Override public void registerHints(RuntimeHints hints, ClassLoader classLoader) { ReflectionHints reflectionHints = hints.reflection(); diff --git a/spring-web/src/main/resources/META-INF/spring/aot.factories b/spring-web/src/main/resources/META-INF/spring/aot.factories index 8273f70000b..cc0469cfe30 100644 --- a/spring-web/src/main/resources/META-INF/spring/aot.factories +++ b/spring-web/src/main/resources/META-INF/spring/aot.factories @@ -1,4 +1,4 @@ org.springframework.aot.hint.RuntimeHintsRegistrar= \ -org.springframework.http.MediaTypeResourceHintsRegistrar,\ -org.springframework.http.codec.CodecConfigurerHintsRegistrar,\ -org.springframework.http.converter.json.JacksonBuilderRuntimeHintsRegistrar \ No newline at end of file +org.springframework.http.HttpMimeTypesRuntimeHints,\ +org.springframework.http.codec.CodecConfigurerRuntimeHints,\ +org.springframework.http.converter.json.JacksonModulesRuntimeHints \ No newline at end of file diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/HandshakeHandlerRuntimeHintsRegistrar.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/HandshakeHandlerRuntimeHints.java similarity index 97% rename from spring-websocket/src/main/java/org/springframework/web/socket/server/support/HandshakeHandlerRuntimeHintsRegistrar.java rename to spring-websocket/src/main/java/org/springframework/web/socket/server/support/HandshakeHandlerRuntimeHints.java index be19710a59e..fb00ca8f838 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/HandshakeHandlerRuntimeHintsRegistrar.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/HandshakeHandlerRuntimeHints.java @@ -30,7 +30,7 @@ import org.springframework.util.ClassUtils; * @author Sebastien Deleuze * @since 6.0 */ -public class HandshakeHandlerRuntimeHintsRegistrar implements RuntimeHintsRegistrar { +class HandshakeHandlerRuntimeHints implements RuntimeHintsRegistrar { private static final boolean tomcatWsPresent; diff --git a/spring-websocket/src/main/resources/META-INF/spring/aot.factories b/spring-websocket/src/main/resources/META-INF/spring/aot.factories index f2324d46fc6..e33a7e934f1 100644 --- a/spring-websocket/src/main/resources/META-INF/spring/aot.factories +++ b/spring-websocket/src/main/resources/META-INF/spring/aot.factories @@ -1,2 +1,2 @@ org.springframework.aot.hint.RuntimeHintsRegistrar= \ -org.springframework.web.socket.server.support.HandshakeHandlerRuntimeHintsRegistrar \ No newline at end of file +org.springframework.web.socket.server.support.HandshakeHandlerRuntimeHints \ No newline at end of file