Remove specific JDK dynamic proxy configuration

Further refinements will be required for
MethodValidationPostProcessor since @Lazy
used by Spring Boot is not supported yet
for that use case.

See gh-28980
This commit is contained in:
Sébastien Deleuze
2022-08-19 17:46:01 +02:00
parent ebf6de8f5d
commit daf2d940e4
6 changed files with 1 additions and 235 deletions

View File

@@ -18,8 +18,6 @@ package org.springframework.transaction.annotation;
import org.junit.jupiter.api.Test;
import org.springframework.aop.SpringProxy;
import org.springframework.aop.framework.Advised;
import org.springframework.aot.generate.GenerationContext;
import org.springframework.aot.hint.MemberCategory;
import org.springframework.aot.hint.predicate.RuntimeHintsPredicates;
@@ -28,7 +26,6 @@ import org.springframework.beans.factory.aot.BeanRegistrationCode;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.RegisteredBean;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.core.DecoratingProxy;
import org.springframework.core.testfixture.aot.generate.TestGenerationContext;
import org.springframework.lang.Nullable;
@@ -50,14 +47,12 @@ public class TransactionBeanRegistrationAotProcessorTests {
void shouldSkipNonAnnotatedType() {
process(NonAnnotatedBean.class);
assertThat(this.generationContext.getRuntimeHints().reflection().typeHints()).isEmpty();
assertThat(this.generationContext.getRuntimeHints().proxies().jdkProxies()).isEmpty();
}
@Test
void shouldSkipAnnotatedTypeWithNoInterface() {
process(NoInterfaceBean.class);
assertThat(this.generationContext.getRuntimeHints().reflection().typeHints()).isEmpty();
assertThat(this.generationContext.getRuntimeHints().proxies().jdkProxies()).isEmpty();
}
@Test
@@ -65,7 +60,6 @@ public class TransactionBeanRegistrationAotProcessorTests {
process(TransactionalOnTypeBean.class);
assertThat(RuntimeHintsPredicates.reflection().onType(NonAnnotatedTransactionalInterface.class)
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(NonAnnotatedTransactionalInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
}
@Test
@@ -73,7 +67,6 @@ public class TransactionBeanRegistrationAotProcessorTests {
process(JakartaTransactionalOnTypeBean.class);
assertThat(RuntimeHintsPredicates.reflection().onType(NonAnnotatedTransactionalInterface.class)
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(NonAnnotatedTransactionalInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
}
@Test
@@ -81,7 +74,6 @@ public class TransactionBeanRegistrationAotProcessorTests {
process(TransactionalOnTypeInterface.class);
assertThat(RuntimeHintsPredicates.reflection().onType(TransactionalOnTypeInterface.class)
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(TransactionalOnTypeInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
}
@Test
@@ -89,7 +81,6 @@ public class TransactionBeanRegistrationAotProcessorTests {
process(TransactionalOnClassMethodBean.class);
assertThat(RuntimeHintsPredicates.reflection().onType(NonAnnotatedTransactionalInterface.class)
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(NonAnnotatedTransactionalInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
}
@Test
@@ -97,7 +88,6 @@ public class TransactionBeanRegistrationAotProcessorTests {
process(TransactionalOnInterfaceMethodBean.class);
assertThat(RuntimeHintsPredicates.reflection().onType(TransactionalOnMethodInterface.class)
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(TransactionalOnMethodInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
}
private void process(Class<?> beanClass) {