Do not write BeanDefinition attributes by default

This commit flips the default strategy for BeanDefinition attributes so
that they are not generated in AOT-optimized contexts.

Closes gh-28516
This commit is contained in:
Stephane Nicoll
2022-07-27 14:59:06 +02:00
parent b38a5df563
commit f0f7f72de9
2 changed files with 19 additions and 2 deletions

View File

@@ -228,6 +228,23 @@ class BeanDefinitionMethodGeneratorTests {
};
}
@Test
void generateBeanDefinitionMethodDoesNotGenerateAttributesByDefault() {
RootBeanDefinition beanDefinition = new RootBeanDefinition(TestBean.class);
beanDefinition.setAttribute("a", "A");
beanDefinition.setAttribute("b", "B");
RegisteredBean registeredBean = registerBean(beanDefinition);
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(
this.methodGeneratorFactory, registeredBean, null,
Collections.emptyList());
MethodReference method = generator.generateBeanDefinitionMethod(
this.generationContext, this.beanRegistrationsCode);
compile(method, (actual, compiled) -> {
assertThat(actual.hasAttribute("a")).isFalse();
assertThat(actual.hasAttribute("b")).isFalse();
});
}
@Test
void generateBeanDefinitionMethodWhenHasAttributeFilterGeneratesMethod() {
RootBeanDefinition beanDefinition = new RootBeanDefinition(TestBean.class);