diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGenerator.java b/spring-beans/src/main/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGenerator.java index 4b1bc3a1aa93..fdbaea1459fa 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGenerator.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGenerator.java @@ -88,19 +88,16 @@ class BeanDefinitionPropertiesCodeGenerator { private final RuntimeHints hints; - private final Predicate attributeFilter; - private final BiFunction customValueCodeGenerator; private final BeanDefinitionPropertyValueCodeGenerator valueCodeGenerator; BeanDefinitionPropertiesCodeGenerator(RuntimeHints hints, - Predicate attributeFilter, MethodGenerator methodGenerator, + MethodGenerator methodGenerator, BiFunction customValueCodeGenerator) { this.hints = hints; - this.attributeFilter = attributeFilter; this.customValueCodeGenerator = customValueCodeGenerator; this.valueCodeGenerator = new BeanDefinitionPropertyValueCodeGenerator( methodGenerator); @@ -133,7 +130,6 @@ CodeBlock generateCode(BeanDefinition beanDefinition) { } addConstructorArgumentValues(builder, beanDefinition); addPropertyValues(builder, beanDefinition); - addAttributes(builder, beanDefinition); return builder.build(); } @@ -243,21 +239,6 @@ private Method findWriteMethod(BeanInfo beanInfo, String propertyName) { .filter(Objects::nonNull).findFirst().orElse(null); } - - private void addAttributes(CodeBlock.Builder builder, BeanDefinition beanDefinition) { - String[] attributeNames = beanDefinition.attributeNames(); - if (!ObjectUtils.isEmpty(attributeNames)) { - for (String attributeName : attributeNames) { - if (this.attributeFilter.test(attributeName)) { - CodeBlock value = this.valueCodeGenerator - .generateCode(beanDefinition.getAttribute(attributeName)); - builder.addStatement("$L.setAttribute($S, $L)", - BEAN_DEFINITION_VARIABLE, attributeName, value); - } - } - } - } - private boolean hasScope(String defaultValue, String actualValue) { return StringUtils.hasText(actualValue) && !ConfigurableBeanFactory.SCOPE_SINGLETON.equals(actualValue); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragments.java b/spring-beans/src/main/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragments.java index ecaa2393b233..ce400dadbfed 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragments.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/aot/DefaultBeanRegistrationCodeFragments.java @@ -104,7 +104,7 @@ public CodeBlock generateSetBeanDefinitionPropertiesCode( Predicate attributeFilter) { return new BeanDefinitionPropertiesCodeGenerator( - generationContext.getRuntimeHints(), attributeFilter, + generationContext.getRuntimeHints(), beanRegistrationCode.getMethodGenerator(), (name, value) -> generateValueCode(generationContext, name, value)) .generateCode(beanDefinition); 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 8c08e401f209..a64273ae15f4 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 @@ -167,41 +167,22 @@ void generateBeanDefinitionMethodWhenHasInstancePostProcessorGeneratesMethod() { } @Test - void generateBeanDefinitionMethodWhenHasAttributeFilterGeneratesMethod() { + void generateBeanDefinitionMethodWhenHasAttributes() { RootBeanDefinition beanDefinition = new RootBeanDefinition(TestBean.class); beanDefinition.setAttribute("a", "A"); beanDefinition.setAttribute("b", "B"); RegisteredBean registeredBean = registerBean(beanDefinition); - List fragmentCustomizers = Collections - .singletonList(this::customizeWithAttributeFilter); BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator( this.methodGeneratorFactory, registeredBean, null, - Collections.emptyList(), fragmentCustomizers); + Collections.emptyList(), Collections.emptyList()); MethodReference method = generator.generateBeanDefinitionMethod( this.generationContext, this.beanRegistrationsCode); testCompiledResult(method, (actual, compiled) -> { - assertThat(actual.getAttribute("a")).isEqualTo("A"); + assertThat(actual.getAttribute("a")).isNull(); assertThat(actual.getAttribute("b")).isNull(); }); } - private BeanRegistrationCodeFragments customizeWithAttributeFilter( - RegisteredBean registeredBean, BeanRegistrationCodeFragments codeFragments) { - return new BeanRegistrationCodeFragments(codeFragments) { - - @Override - public CodeBlock generateSetBeanDefinitionPropertiesCode( - GenerationContext generationContext, - BeanRegistrationCode beanRegistrationCode, - RootBeanDefinition beanDefinition, - Predicate attributeFilter) { - return super.generateSetBeanDefinitionPropertiesCode(generationContext, - beanRegistrationCode, beanDefinition, name -> "a".equals(name)); - } - - }; - } - @Test void generateBeanDefinitionMethodWhenInnerBeanGeneratesMethod() { RegisteredBean parent = registerBean(new RootBeanDefinition(TestBean.class)); diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGeneratorTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGeneratorTests.java index f234301fa7e9..3a85cfccbc6c 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGeneratorTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGeneratorTests.java @@ -65,7 +65,7 @@ class BeanDefinitionPropertiesCodeGeneratorTests { private final RuntimeHints hints = new RuntimeHints(); private BeanDefinitionPropertiesCodeGenerator generator = new BeanDefinitionPropertiesCodeGenerator( - this.hints, attribute -> true, this.generatedMethods, (name, value) -> null); + this.hints, this.generatedMethods, (name, value) -> null); @Test @@ -353,33 +353,6 @@ void propertyValuesWhenContainsManagedMap() { }); } - @Test - void attributesWhenAllFiltered() { - this.beanDefinition.setAttribute("a", "A"); - this.beanDefinition.setAttribute("b", "B"); - Predicate attributeFilter = attribute -> false; - this.generator = new BeanDefinitionPropertiesCodeGenerator(this.hints, - attributeFilter, this.generatedMethods, (name, value) -> null); - testCompiledResult((actual, compiled) -> { - assertThat(compiled.getSourceFile()).doesNotContain("setAttribute"); - assertThat(actual.getAttribute("a")).isNull(); - assertThat(actual.getAttribute("b")).isNull(); - }); - } - - @Test - void attributesWhenSomeFiltered() { - this.beanDefinition.setAttribute("a", "A"); - this.beanDefinition.setAttribute("b", "B"); - Predicate attributeFilter = attribute -> "a".equals(attribute); - this.generator = new BeanDefinitionPropertiesCodeGenerator(this.hints, - attributeFilter, this.generatedMethods, (name, value) -> null); - testCompiledResult(this.beanDefinition, (actual, compiled) -> { - assertThat(actual.getAttribute("a")).isEqualTo("A"); - assertThat(actual.getAttribute("b")).isNull(); - }); - } - @Test void multipleItems() { this.beanDefinition.setPrimary(true);