This commit is contained in:
Stephane Nicoll 2022-07-27 15:10:09 +02:00
parent f0f7f72de9
commit 88e29689b6
13 changed files with 23 additions and 26 deletions

View File

@ -446,7 +446,7 @@ public final class BeanInstanceSupplier<T> extends AutowiredElementResolver impl
try {
Class<?>[] actualParameterTypes = (!ClassUtils.isInnerClass(beanClass))
? this.parameterTypes : ObjectUtils.addObjectToArray(
this.parameterTypes, beanClass.getEnclosingClass(), 0);
this.parameterTypes, beanClass.getEnclosingClass(), 0);
return beanClass.getDeclaredConstructor(actualParameterTypes);
}
catch (NoSuchMethodException ex) {

View File

@ -90,7 +90,7 @@ class BeanRegistrationCodeGenerator implements BeanRegistrationCode {
generationContext, this, this.constructorOrFactoryMethod,
this.instancePostProcessors.isEmpty());
builder.add(this.codeFragments.generateSetBeanInstanceSupplierCode(generationContext,
this, instanceSupplierCode, this.instancePostProcessors));
this, instanceSupplierCode, this.instancePostProcessors));
builder.add(this.codeFragments.generateReturnCode(generationContext, this));
return builder.build();
}

View File

@ -281,7 +281,8 @@ class ConstructorOrFactoryMethodResolver {
return true;
}
return switch (fallbackMode) {
case ASSIGNABLE_ELEMENT -> isAssignable(valueType).test(extractElementType(parameterType));
case ASSIGNABLE_ELEMENT ->
isAssignable(valueType).test(extractElementType(parameterType));
case TYPE_CONVERSION -> typeConversionFallback(valueType).test(parameterType);
default -> false;
};

View File

@ -174,7 +174,7 @@ class InstanceSupplierCodeGenerator {
boolean hasArguments = constructor.getParameterCount() > 0;
CodeBlock arguments = hasArguments
? new AutowiredArgumentsCodeGenerator(declaringClass, constructor)
.generateCode(constructor.getParameterTypes(), parameterOffset)
.generateCode(constructor.getParameterTypes(), parameterOffset)
: NO_ARGS;
CodeBlock newInstance = generateNewInstanceCodeForConstructor(dependsOnBean,
declaringClass, arguments);
@ -267,7 +267,7 @@ class InstanceSupplierCodeGenerator {
boolean hasArguments = factoryMethod.getParameterCount() > 0;
CodeBlock arguments = hasArguments
? new AutowiredArgumentsCodeGenerator(declaringClass, factoryMethod)
.generateCode(factoryMethod.getParameterTypes())
.generateCode(factoryMethod.getParameterTypes())
: NO_ARGS;
CodeBlock newInstance = generateNewInstanceCodeForMethod(dependsOnBean,
declaringClass, factoryMethodName, arguments);

View File

@ -52,7 +52,7 @@ class AutowiredArgumentsCodeGeneratorTests {
}
@Test
void generateCodeWhenMulitpleArguments() {
void generateCodeWhenMultipleArguments() {
Method method = ReflectionUtils.findMethod(UnambiguousMethods.class, "three",
String.class, Integer.class, Boolean.class);
AutowiredArgumentsCodeGenerator generator = new AutowiredArgumentsCodeGenerator(
@ -62,7 +62,7 @@ class AutowiredArgumentsCodeGeneratorTests {
}
@Test
void generateCodeWhenMulitpleArgumentsWithOffset() {
void generateCodeWhenMultipleArgumentsWithOffset() {
Constructor<?> constructor = Outer.Nested.class.getDeclaredConstructors()[0];
AutowiredArgumentsCodeGenerator generator = new AutowiredArgumentsCodeGenerator(
Outer.Nested.class, constructor);

View File

@ -62,8 +62,8 @@ class AutowiredFieldValueResolverTests {
@Test
void resolveWhenRegisteredBeanIsNullThrowsException() {
assertThatIllegalArgumentException().isThrownBy(
() -> AutowiredFieldValueResolver.forField("string").resolve(null))
assertThatIllegalArgumentException().isThrownBy(() ->
AutowiredFieldValueResolver.forField("string").resolve(null))
.withMessage("'registeredBean' must not be null");
}

View File

@ -115,7 +115,7 @@ class AutowiredMethodArgumentsResolverTests {
}
@Test
void resolveRequiredWithMultipleDependencesReturnsValue() {
void resolveRequiredWithMultipleDependenciesReturnsValue() {
Environment environment = mock(Environment.class);
this.beanFactory.registerSingleton("test", "testValue");
this.beanFactory.registerSingleton("environment", environment);

View File

@ -111,7 +111,7 @@ class BeanDefinitionMethodGeneratorFactoryTests {
}
@Test
void getBeanDefinitionMethodGeneratorWhenRegisteredBeanIsAotProcessorFilteresBean() {
void getBeanDefinitionMethodGeneratorWhenRegisteredBeanIsAotProcessorFiltersBean() {
MockSpringFactoriesLoader springFactoriesLoader = new MockSpringFactoriesLoader();
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
beanFactory.registerBeanDefinition("test1", BeanDefinitionBuilder
@ -127,7 +127,7 @@ class BeanDefinitionMethodGeneratorFactoryTests {
}
@Test
void getBeanDefinitionMethodGeneratorWhenRegisteredBeanIsAotProcessorAndFilteresBeanBeanRegistrationExcludeFilterDoesNotFilterBean() {
void getBeanDefinitionMethodGeneratorWhenRegisteredBeanIsAotProcessorAndFiltersBeanBeanRegistrationExcludeFilterDoesNotFilterBean() {
MockSpringFactoriesLoader springFactoriesLoader = new MockSpringFactoriesLoader();
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
beanFactory.registerBeanDefinition("test", BeanDefinitionBuilder
@ -179,7 +179,7 @@ class BeanDefinitionMethodGeneratorFactoryTests {
}
static class TestBeanFactoryInitializationAotProcessorBean implements BeanFactoryInitializationAotProcessor{
static class TestBeanFactoryInitializationAotProcessorBean implements BeanFactoryInitializationAotProcessor {
@Override
public BeanFactoryInitializationAotContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory) {

View File

@ -55,23 +55,21 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
class BeanRegistrationsAotContributionTests {
private final MockSpringFactoriesLoader springFactoriesLoader;
private DefaultListableBeanFactory beanFactory;
private TestGenerationContext generationContext;
private final DefaultListableBeanFactory beanFactory;
private final BeanDefinitionMethodGeneratorFactory methodGeneratorFactory;
private TestGenerationContext generationContext;
private MockBeanFactoryInitializationCode beanFactoryInitializationCode;
BeanRegistrationsAotContributionTests() {
this.springFactoriesLoader = new MockSpringFactoriesLoader();
MockSpringFactoriesLoader springFactoriesLoader = new MockSpringFactoriesLoader();
this.beanFactory = new DefaultListableBeanFactory();
this.generationContext = new TestGenerationContext();
this.methodGeneratorFactory = new BeanDefinitionMethodGeneratorFactory(
new AotFactoriesLoader(this.beanFactory, this.springFactoriesLoader));
new AotFactoriesLoader(this.beanFactory, springFactoriesLoader));
this.generationContext = new TestGenerationContext();
this.beanFactoryInitializationCode = new MockBeanFactoryInitializationCode(this.generationContext);
}

View File

@ -305,7 +305,7 @@ class ConstructorOrFactoryMethodResolverTests {
void beanDefinitionWithClassArrayFactoryMethodArgAndAnotherMatchingConstructor() {
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
BeanDefinition beanDefinition = BeanDefinitionBuilder.rootBeanDefinition(
ClassArrayFactoryMethodSampleWithAnotherFactoryMethod.class.getName())
ClassArrayFactoryMethodSampleWithAnotherFactoryMethod.class.getName())
.setFactoryMethod("of").addConstructorArgValue("test1")
.getBeanDefinition();
Executable executable = resolve(beanFactory, beanDefinition);

View File

@ -86,7 +86,7 @@ class DefaultBeanRegistrationCodeFragmentsTests {
RegisteredBean registeredBean = registerTestBean(SimpleBean.class);
assertThat(createInstance(registeredBean).getTarget(registeredBean,
PrivilegedTestBeanFactoryBean.class.getDeclaredConstructors()[0])).isEqualTo(
PrivilegedTestBeanFactoryBean.class);
PrivilegedTestBeanFactoryBean.class);
}
@Test

View File

@ -32,7 +32,6 @@ public enum EnumWithClassBody {
* With class body.
*/
TWO {
@Override
public String toString() {
return "2";

View File

@ -147,8 +147,7 @@ class InstanceSupplierCodeGeneratorTests {
compile(beanFactory, beanDefinition, (instanceSupplier, compiled) -> {
NumberHolder<?> bean = getBean(beanFactory, beanDefinition, instanceSupplier);
assertThat(bean).isInstanceOf(NumberHolder.class);
assertThat(bean).extracting("number").isNull(); // No property
// actually set
assertThat(bean).extracting("number").isNull(); // No property actually set
assertThat(compiled.getSourceFile()).contains("NumberHolderFactoryBean::new");
});
assertThat(getReflectionHints().getTypeHint(NumberHolderFactoryBean.class))