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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user