Skip to content

Commit daf2d94

Browse files
committed
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 spring-projectsgh-28980
1 parent ebf6de8 commit daf2d94

File tree

6 files changed

+1
-235
lines changed

6 files changed

+1
-235
lines changed

spring-context/src/main/java/org/springframework/cache/annotation/CachingBeanRegistrationAotProcessor.java

Lines changed: 0 additions & 93 deletions
This file was deleted.

spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,14 @@
2323
import org.aopalliance.aop.Advice;
2424

2525
import org.springframework.aop.Pointcut;
26-
import org.springframework.aop.framework.AopProxyUtils;
2726
import org.springframework.aop.framework.autoproxy.AbstractBeanFactoryAwareAdvisingPostProcessor;
2827
import org.springframework.aop.support.DefaultPointcutAdvisor;
2928
import org.springframework.aop.support.annotation.AnnotationMatchingPointcut;
30-
import org.springframework.aot.hint.RuntimeHints;
31-
import org.springframework.aot.hint.RuntimeHintsRegistrar;
3229
import org.springframework.beans.factory.InitializingBean;
3330
import org.springframework.beans.factory.config.BeanPostProcessor;
34-
import org.springframework.context.annotation.ImportRuntimeHints;
3531
import org.springframework.lang.Nullable;
3632
import org.springframework.util.Assert;
3733
import org.springframework.validation.annotation.Validated;
38-
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor.MethodValidationRuntimeHints;
3934

4035
/**
4136
* A convenient {@link BeanPostProcessor} implementation that delegates to a
@@ -62,7 +57,6 @@
6257
* @see jakarta.validation.executable.ExecutableValidator
6358
*/
6459
@SuppressWarnings("serial")
65-
@ImportRuntimeHints(MethodValidationRuntimeHints.class)
6660
public class MethodValidationPostProcessor extends AbstractBeanFactoryAwareAdvisingPostProcessor
6761
implements InitializingBean {
6862

@@ -131,14 +125,4 @@ protected Advice createMethodValidationAdvice(@Nullable Validator validator) {
131125
return (validator != null ? new MethodValidationInterceptor(validator) : new MethodValidationInterceptor());
132126
}
133127

134-
135-
static class MethodValidationRuntimeHints implements RuntimeHintsRegistrar {
136-
137-
@Override
138-
public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) {
139-
hints.proxies().registerJdkProxy(AopProxyUtils.completeJdkProxyInterfaces(Validator.class));
140-
}
141-
142-
}
143-
144128
}
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor= \
22
org.springframework.context.aot.ReflectiveProcessorBeanFactoryInitializationAotProcessor
33

4-
org.springframework.beans.factory.aot.BeanRegistrationAotProcessor= \
5-
org.springframework.cache.annotation.CachingBeanRegistrationAotProcessor

spring-context/src/test/java/org/springframework/cache/annotation/CachingBeanRegistrationAotProcessorTests.java

Lines changed: 0 additions & 111 deletions
This file was deleted.

spring-tx/src/main/java/org/springframework/transaction/annotation/TransactionBeanRegistrationAotProcessor.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.util.LinkedHashSet;
2121
import java.util.Set;
2222

23-
import org.springframework.aop.framework.AopProxyUtils;
2423
import org.springframework.aot.generate.GenerationContext;
2524
import org.springframework.aot.hint.MemberCategory;
2625
import org.springframework.aot.hint.RuntimeHints;
@@ -35,7 +34,7 @@
3534
/**
3635
* AOT {@code BeanRegistrationAotProcessor} that detects the presence of
3736
* {@link Transactional @Transactional} on annotated elements and creates
38-
* the required proxy and reflection hints.
37+
* the required reflection hints.
3938
*
4039
* @author Sebastien Deleuze
4140
* @since 6.0
@@ -89,7 +88,6 @@ public void applyTo(GenerationContext generationContext, BeanRegistrationCode be
8988
runtimeHints.reflection().registerType(proxyInterface,
9089
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_METHODS));
9190
}
92-
runtimeHints.proxies().registerJdkProxy(AopProxyUtils.completeJdkProxyInterfaces(proxyInterfaces));
9391
}
9492
}
9593

spring-tx/src/test/java/org/springframework/transaction/annotation/TransactionBeanRegistrationAotProcessorTests.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818

1919
import org.junit.jupiter.api.Test;
2020

21-
import org.springframework.aop.SpringProxy;
22-
import org.springframework.aop.framework.Advised;
2321
import org.springframework.aot.generate.GenerationContext;
2422
import org.springframework.aot.hint.MemberCategory;
2523
import org.springframework.aot.hint.predicate.RuntimeHintsPredicates;
@@ -28,7 +26,6 @@
2826
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
2927
import org.springframework.beans.factory.support.RegisteredBean;
3028
import org.springframework.beans.factory.support.RootBeanDefinition;
31-
import org.springframework.core.DecoratingProxy;
3229
import org.springframework.core.testfixture.aot.generate.TestGenerationContext;
3330
import org.springframework.lang.Nullable;
3431

@@ -50,54 +47,47 @@ public class TransactionBeanRegistrationAotProcessorTests {
5047
void shouldSkipNonAnnotatedType() {
5148
process(NonAnnotatedBean.class);
5249
assertThat(this.generationContext.getRuntimeHints().reflection().typeHints()).isEmpty();
53-
assertThat(this.generationContext.getRuntimeHints().proxies().jdkProxies()).isEmpty();
5450
}
5551

5652
@Test
5753
void shouldSkipAnnotatedTypeWithNoInterface() {
5854
process(NoInterfaceBean.class);
5955
assertThat(this.generationContext.getRuntimeHints().reflection().typeHints()).isEmpty();
60-
assertThat(this.generationContext.getRuntimeHints().proxies().jdkProxies()).isEmpty();
6156
}
6257

6358
@Test
6459
void shouldProcessTransactionalOnClass() {
6560
process(TransactionalOnTypeBean.class);
6661
assertThat(RuntimeHintsPredicates.reflection().onType(NonAnnotatedTransactionalInterface.class)
6762
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
68-
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(NonAnnotatedTransactionalInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
6963
}
7064

7165
@Test
7266
void shouldProcessJakartaTransactionalOnClass() {
7367
process(JakartaTransactionalOnTypeBean.class);
7468
assertThat(RuntimeHintsPredicates.reflection().onType(NonAnnotatedTransactionalInterface.class)
7569
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
76-
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(NonAnnotatedTransactionalInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
7770
}
7871

7972
@Test
8073
void shouldProcessTransactionalOnInterface() {
8174
process(TransactionalOnTypeInterface.class);
8275
assertThat(RuntimeHintsPredicates.reflection().onType(TransactionalOnTypeInterface.class)
8376
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
84-
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(TransactionalOnTypeInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
8577
}
8678

8779
@Test
8880
void shouldProcessTransactionalOnClassMethod() {
8981
process(TransactionalOnClassMethodBean.class);
9082
assertThat(RuntimeHintsPredicates.reflection().onType(NonAnnotatedTransactionalInterface.class)
9183
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
92-
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(NonAnnotatedTransactionalInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
9384
}
9485

9586
@Test
9687
void shouldProcessTransactionalOnInterfaceMethod() {
9788
process(TransactionalOnInterfaceMethodBean.class);
9889
assertThat(RuntimeHintsPredicates.reflection().onType(TransactionalOnMethodInterface.class)
9990
.withMemberCategory(MemberCategory.INVOKE_DECLARED_METHODS)).accepts(this.generationContext.getRuntimeHints());
100-
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(TransactionalOnMethodInterface.class, SpringProxy.class, Advised.class, DecoratingProxy.class)).accepts(this.generationContext.getRuntimeHints());
10191
}
10292

10393
private void process(Class<?> beanClass) {

0 commit comments

Comments
 (0)