diff --git a/spring-aop/src/test/java/org/springframework/aop/scope/ScopedProxyBeanRegistrationAotProcessorTests.java b/spring-aop/src/test/java/org/springframework/aop/scope/ScopedProxyBeanRegistrationAotProcessorTests.java index 5f25cf94fd..634d0a097a 100644 --- a/spring-aop/src/test/java/org/springframework/aop/scope/ScopedProxyBeanRegistrationAotProcessorTests.java +++ b/spring-aop/src/test/java/org/springframework/aop/scope/ScopedProxyBeanRegistrationAotProcessorTests.java @@ -17,8 +17,6 @@ package org.springframework.aop.scope; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; import java.util.Properties; import java.util.function.BiConsumer; @@ -27,16 +25,13 @@ import org.junit.jupiter.api.Test; import org.springframework.aop.framework.AopInfrastructureBean; import org.springframework.aot.generate.DefaultGenerationContext; -import org.springframework.aot.generate.GeneratedMethods; import org.springframework.aot.generate.InMemoryGeneratedFiles; -import org.springframework.aot.generate.MethodGenerator; import org.springframework.aot.generate.MethodReference; import org.springframework.aot.test.generator.compile.Compiled; import org.springframework.aot.test.generator.compile.TestCompiler; import org.springframework.beans.factory.BeanCreationException; import org.springframework.beans.factory.aot.AotFactoriesLoader; import org.springframework.beans.factory.aot.BeanFactoryInitializationAotContribution; -import org.springframework.beans.factory.aot.BeanFactoryInitializationCode; import org.springframework.beans.factory.aot.BeanRegistrationAotProcessor; import org.springframework.beans.factory.aot.TestBeanRegistrationsAotProcessor; import org.springframework.beans.factory.config.BeanDefinition; @@ -44,6 +39,7 @@ import org.springframework.beans.factory.config.PropertiesFactoryBean; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; +import org.springframework.beans.testfixture.beans.factory.aot.MockBeanFactoryInitializationCode; import org.springframework.beans.testfixture.beans.factory.generator.factory.NumberHolder; import org.springframework.core.ResolvableType; import org.springframework.util.ReflectionUtils; @@ -158,27 +154,4 @@ class ScopedProxyBeanRegistrationAotProcessorTests { }); } - - static class MockBeanFactoryInitializationCode implements BeanFactoryInitializationCode { - - private final GeneratedMethods generatedMethods = new GeneratedMethods(); - - private final List initializers = new ArrayList<>(); - - @Override - public MethodGenerator getMethodGenerator() { - return this.generatedMethods; - } - - @Override - public void addInitializer(MethodReference methodReference) { - this.initializers.add(methodReference); - } - - List getInitializers() { - return this.initializers; - } - - } - } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanRegistrationAotContributionTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanRegistrationAotContributionTests.java index 95348782cd..2c88fb2230 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanRegistrationAotContributionTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanRegistrationAotContributionTests.java @@ -16,8 +16,6 @@ package org.springframework.beans.factory.annotation; -import java.util.ArrayList; -import java.util.List; import java.util.function.BiConsumer; import java.util.function.BiFunction; @@ -29,7 +27,6 @@ import org.junit.jupiter.api.Test; import org.springframework.aot.generate.DefaultGenerationContext; import org.springframework.aot.generate.GenerationContext; import org.springframework.aot.generate.InMemoryGeneratedFiles; -import org.springframework.aot.generate.MethodGenerator; import org.springframework.aot.generate.MethodReference; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsPredicates; @@ -37,13 +34,12 @@ import org.springframework.aot.test.generator.compile.CompileWithTargetClassAcce import org.springframework.aot.test.generator.compile.Compiled; import org.springframework.aot.test.generator.compile.TestCompiler; import org.springframework.beans.factory.aot.BeanRegistrationAotContribution; -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.beans.testfixture.beans.factory.aot.MockBeanRegistrationCode; import org.springframework.core.env.Environment; import org.springframework.core.env.StandardEnvironment; -import org.springframework.javapoet.ClassName; import org.springframework.javapoet.CodeBlock; import org.springframework.javapoet.JavaFile; import org.springframework.javapoet.MethodSpec; @@ -180,7 +176,7 @@ class AutowiredAnnotationBeanRegistrationAotContributionTests { } private JavaFile createJavaFile(Class target) { - MethodReference methodReference = this.beanRegistrationCode.instancePostProcessors + MethodReference methodReference = this.beanRegistrationCode.getInstancePostProcessors() .get(0); TypeSpec.Builder builder = TypeSpec.classBuilder("TestPostProcessor"); builder.addModifiers(Modifier.PUBLIC); @@ -195,26 +191,4 @@ class AutowiredAnnotationBeanRegistrationAotContributionTests { return JavaFile.builder("__", builder.build()).build(); } - - private static class MockBeanRegistrationCode implements BeanRegistrationCode { - - private final List instancePostProcessors = new ArrayList<>(); - - @Override - public ClassName getClassName() { - return null; - } - - @Override - public MethodGenerator getMethodGenerator() { - return null; - } - - @Override - public void addInstancePostProcessor(MethodReference methodReference) { - this.instancePostProcessors.add(methodReference); - } - - } - } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGeneratorTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGeneratorTests.java index c1641d21ee..572b70ac2e 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGeneratorTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionMethodGeneratorTests.java @@ -47,6 +47,7 @@ import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.testfixture.beans.AnnotatedBean; import org.springframework.beans.testfixture.beans.GenericBean; import org.springframework.beans.testfixture.beans.TestBean; +import org.springframework.beans.testfixture.beans.factory.aot.MockBeanRegistrationsCode; import org.springframework.core.ResolvableType; import org.springframework.core.mock.MockSpringFactoriesLoader; import org.springframework.javapoet.ClassName; @@ -385,7 +386,7 @@ class BeanDefinitionMethodGeneratorTests { builder.addMethod(MethodSpec.methodBuilder("get").addModifiers(Modifier.PUBLIC) .returns(BeanDefinition.class) .addCode("return $L;", method.toInvokeCodeBlock()).build()); - this.beanRegistrationsCode.getGeneratedMethods() + this.beanRegistrationsCode.getMethodGenerator() .doWithMethodSpecs(builder::addMethod); return JavaFile.builder("__", builder.build()).build(); } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanRegistrationsAotContributionTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanRegistrationsAotContributionTests.java index c1e0a7a3e1..ae91b492a7 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanRegistrationsAotContributionTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanRegistrationsAotContributionTests.java @@ -30,10 +30,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.aot.generate.DefaultGenerationContext; -import org.springframework.aot.generate.GeneratedMethods; import org.springframework.aot.generate.GenerationContext; import org.springframework.aot.generate.InMemoryGeneratedFiles; -import org.springframework.aot.generate.MethodGenerator; import org.springframework.aot.generate.MethodReference; import org.springframework.aot.test.generator.compile.Compiled; import org.springframework.aot.test.generator.compile.TestCompiler; @@ -42,6 +40,7 @@ import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RegisteredBean; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.testfixture.beans.TestBean; +import org.springframework.beans.testfixture.beans.factory.aot.MockBeanFactoryInitializationCode; import org.springframework.core.mock.MockSpringFactoriesLoader; import org.springframework.javapoet.CodeBlock; import org.springframework.javapoet.JavaFile; @@ -164,7 +163,7 @@ class BeanRegistrationsAotContributionTests { } private JavaFile createJavaFile() { - MethodReference initializer = this.beanFactoryInitializationCode.initializers + MethodReference initializer = this.beanFactoryInitializationCode.getInitializers() .get(0); TypeSpec.Builder builder = TypeSpec.classBuilder("BeanFactoryConsumer"); builder.addModifiers(Modifier.PUBLIC); @@ -177,37 +176,4 @@ class BeanRegistrationsAotContributionTests { return JavaFile.builder("__", builder.build()).build(); } - class MockBeanFactoryInitializationCode implements BeanFactoryInitializationCode { - - private final GeneratedMethods generatedMethods = new GeneratedMethods(); - - private final List initializers = new ArrayList<>(); - - private final String name; - - MockBeanFactoryInitializationCode() { - this(""); - } - - MockBeanFactoryInitializationCode(String name) { - this.name = name; - } - - @Override - public String getName() { - return this.name; - } - - @Override - public MethodGenerator getMethodGenerator() { - return this.generatedMethods; - } - - @Override - public void addInitializer(MethodReference methodReference) { - this.initializers.add(methodReference); - } - - } - } diff --git a/spring-beans/src/testFixtures/java/org/springframework/beans/testfixture/beans/factory/aot/MockBeanFactoryInitializationCode.java b/spring-beans/src/testFixtures/java/org/springframework/beans/testfixture/beans/factory/aot/MockBeanFactoryInitializationCode.java new file mode 100644 index 0000000000..d1aee20458 --- /dev/null +++ b/spring-beans/src/testFixtures/java/org/springframework/beans/testfixture/beans/factory/aot/MockBeanFactoryInitializationCode.java @@ -0,0 +1,67 @@ +/* + * 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.beans.testfixture.beans.factory.aot; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.springframework.aot.generate.GeneratedMethods; +import org.springframework.aot.generate.MethodReference; +import org.springframework.beans.factory.aot.BeanFactoryInitializationCode; + +/** + * Mock {@link BeanFactoryInitializationCode} implementation. + * + * @author Stephane Nicoll + */ +public class MockBeanFactoryInitializationCode implements BeanFactoryInitializationCode { + + private final GeneratedMethods generatedMethods = new GeneratedMethods(); + + private final List initializers = new ArrayList<>(); + + private final String name; + + public MockBeanFactoryInitializationCode() { + this(""); + } + + public MockBeanFactoryInitializationCode(String name) { + this.name = name; + } + + @Override + public String getName() { + return this.name; + } + + @Override + public GeneratedMethods getMethodGenerator() { + return this.generatedMethods; + } + + @Override + public void addInitializer(MethodReference methodReference) { + this.initializers.add(methodReference); + } + + public List getInitializers() { + return Collections.unmodifiableList(this.initializers); + } + +} diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/aot/MockBeanRegistrationsCode.java b/spring-beans/src/testFixtures/java/org/springframework/beans/testfixture/beans/factory/aot/MockBeanRegistrationCode.java similarity index 52% rename from spring-beans/src/test/java/org/springframework/beans/factory/aot/MockBeanRegistrationsCode.java rename to spring-beans/src/testFixtures/java/org/springframework/beans/testfixture/beans/factory/aot/MockBeanRegistrationCode.java index 0a358fc115..253547b3d1 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/aot/MockBeanRegistrationsCode.java +++ b/spring-beans/src/testFixtures/java/org/springframework/beans/testfixture/beans/factory/aot/MockBeanRegistrationCode.java @@ -14,28 +14,38 @@ * limitations under the License. */ -package org.springframework.beans.factory.aot; +package org.springframework.beans.testfixture.beans.factory.aot; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import org.springframework.aot.generate.GeneratedMethods; -import org.springframework.aot.generate.MethodGenerator; +import org.springframework.aot.generate.MethodReference; +import org.springframework.beans.factory.aot.BeanRegistrationCode; import org.springframework.javapoet.ClassName; /** - * Mock {@link BeanRegistrationsCode} implementation. + * Mock {@link BeanRegistrationCode} implementation. * + * @author Stephane Nicoll * @author Phillip Webb */ -class MockBeanRegistrationsCode implements BeanRegistrationsCode { +public class MockBeanRegistrationCode implements BeanRegistrationCode { private final ClassName className; private final GeneratedMethods generatedMethods = new GeneratedMethods(); + private final List instancePostProcessors = new ArrayList<>(); - MockBeanRegistrationsCode(ClassName className) { + public MockBeanRegistrationCode(ClassName className) { this.className = className; } + public MockBeanRegistrationCode() { + this(ClassName.get("com.example", "Test")); + } @Override public ClassName getClassName() { @@ -43,12 +53,17 @@ class MockBeanRegistrationsCode implements BeanRegistrationsCode { } @Override - public MethodGenerator getMethodGenerator() { + public GeneratedMethods getMethodGenerator() { return this.generatedMethods; } - GeneratedMethods getGeneratedMethods() { - return this.generatedMethods; + @Override + public void addInstancePostProcessor(MethodReference methodReference) { + this.instancePostProcessors.add(methodReference); + } + + public List getInstancePostProcessors() { + return Collections.unmodifiableList(this.instancePostProcessors); } } diff --git a/spring-aop/src/test/java/org/springframework/aop/scope/MockBeanRegistrationsCode.java b/spring-beans/src/testFixtures/java/org/springframework/beans/testfixture/beans/factory/aot/MockBeanRegistrationsCode.java similarity index 76% rename from spring-aop/src/test/java/org/springframework/aop/scope/MockBeanRegistrationsCode.java rename to spring-beans/src/testFixtures/java/org/springframework/beans/testfixture/beans/factory/aot/MockBeanRegistrationsCode.java index 2d3ce3eb8d..1c12317616 100644 --- a/spring-aop/src/test/java/org/springframework/aop/scope/MockBeanRegistrationsCode.java +++ b/spring-beans/src/testFixtures/java/org/springframework/beans/testfixture/beans/factory/aot/MockBeanRegistrationsCode.java @@ -14,10 +14,9 @@ * limitations under the License. */ -package org.springframework.aop.scope; +package org.springframework.beans.testfixture.beans.factory.aot; import org.springframework.aot.generate.GeneratedMethods; -import org.springframework.aot.generate.MethodGenerator; import org.springframework.beans.factory.aot.BeanRegistrationsCode; import org.springframework.javapoet.ClassName; @@ -25,18 +24,21 @@ import org.springframework.javapoet.ClassName; * Mock {@link BeanRegistrationsCode} implementation. * * @author Phillip Webb + * @author Stephane Nicoll */ -class MockBeanRegistrationsCode implements BeanRegistrationsCode { +public class MockBeanRegistrationsCode implements BeanRegistrationsCode { private final ClassName className; private final GeneratedMethods generatedMethods = new GeneratedMethods(); - - MockBeanRegistrationsCode(ClassName className) { + public MockBeanRegistrationsCode(ClassName className) { this.className = className; } + public MockBeanRegistrationsCode() { + this(ClassName.get("com.example", "Test")); + } @Override public ClassName getClassName() { @@ -44,11 +46,7 @@ class MockBeanRegistrationsCode implements BeanRegistrationsCode { } @Override - public MethodGenerator getMethodGenerator() { - return this.generatedMethods; - } - - GeneratedMethods getGeneratedMethods() { + public GeneratedMethods getMethodGenerator() { return this.generatedMethods; } diff --git a/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassPostProcessorAotContributionTests.java b/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassPostProcessorAotContributionTests.java index 379645d047..46d7080c16 100644 --- a/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassPostProcessorAotContributionTests.java +++ b/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassPostProcessorAotContributionTests.java @@ -16,8 +16,6 @@ package org.springframework.context.annotation; -import java.util.ArrayList; -import java.util.List; import java.util.function.BiConsumer; import java.util.function.Consumer; @@ -27,17 +25,15 @@ import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.Test; import org.springframework.aot.generate.DefaultGenerationContext; -import org.springframework.aot.generate.GeneratedMethods; import org.springframework.aot.generate.InMemoryGeneratedFiles; -import org.springframework.aot.generate.MethodGenerator; import org.springframework.aot.generate.MethodReference; import org.springframework.aot.hint.ResourcePatternHint; import org.springframework.aot.test.generator.compile.Compiled; import org.springframework.aot.test.generator.compile.TestCompiler; import org.springframework.beans.factory.aot.BeanFactoryInitializationAotContribution; -import org.springframework.beans.factory.aot.BeanFactoryInitializationCode; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; +import org.springframework.beans.testfixture.beans.factory.aot.MockBeanFactoryInitializationCode; import org.springframework.beans.testfixture.beans.factory.generator.SimpleConfiguration; import org.springframework.context.testfixture.context.generator.annotation.ImportAwareConfiguration; import org.springframework.context.testfixture.context.generator.annotation.ImportConfiguration; @@ -121,7 +117,7 @@ class ConfigurationClassPostProcessorAotContributionTests { } private JavaFile createJavaFile() { - MethodReference methodReference = this.beanFactoryInitializationCode.initializers + MethodReference methodReference = this.beanFactoryInitializationCode.getInitializers() .get(0); TypeSpec.Builder builder = TypeSpec.classBuilder("TestConsumer"); builder.addModifiers(Modifier.PUBLIC); @@ -132,7 +128,7 @@ class ConfigurationClassPostProcessorAotContributionTests { .addStatement( methodReference.toInvokeCodeBlock(CodeBlock.of("beanFactory"))) .build()); - this.beanFactoryInitializationCode.generatedMethods + this.beanFactoryInitializationCode.getMethodGenerator() .doWithMethodSpecs(builder::addMethod); return JavaFile.builder("__", builder.build()).build(); } @@ -144,22 +140,4 @@ class ConfigurationClassPostProcessorAotContributionTests { .containsExactly(entry(key.getName(), value.getName())); } - class MockBeanFactoryInitializationCode implements BeanFactoryInitializationCode { - - private final GeneratedMethods generatedMethods = new GeneratedMethods(); - - private final List initializers = new ArrayList<>(); - - @Override - public MethodGenerator getMethodGenerator() { - return this.generatedMethods; - } - - @Override - public void addInitializer(MethodReference methodReference) { - this.initializers.add(methodReference); - } - - } - }