From d219362eb1d125bf104d14a0dd4be045557da6af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 23 Jul 2024 11:30:37 +0200 Subject: [PATCH] Keep fallback flag in AOT-generated code Closes gh-33261 --- .../BeanDefinitionPropertiesCodeGenerator.java | 2 ++ ...eanDefinitionPropertiesCodeGeneratorTests.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+) 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 f183d2b05e1..91cd2a14b98 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 @@ -115,6 +115,8 @@ class BeanDefinitionPropertiesCodeGenerator { CodeBlock.Builder code = CodeBlock.builder(); addStatementForValue(code, beanDefinition, BeanDefinition::isPrimary, "$L.setPrimary($L)"); + addStatementForValue(code, beanDefinition, BeanDefinition::isFallback, + "$L.setFallback($L)"); addStatementForValue(code, beanDefinition, BeanDefinition::getScope, this::hasScope, "$L.setScope($S)"); addStatementForValue(code, beanDefinition, BeanDefinition::getDependsOn, 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 816a886dd72..7a9f52e0e59 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 @@ -92,6 +92,21 @@ class BeanDefinitionPropertiesCodeGeneratorTests { compile((actual, compiled) -> assertThat(actual.isPrimary()).isTrue()); } + @Test + void setFallbackWhenFalse() { + this.beanDefinition.setFallback(false); + compile((actual, compiled) -> { + assertThat(compiled.getSourceFile()).doesNotContain("setFallback"); + assertThat(actual.isFallback()).isFalse(); + }); + } + + @Test + void setFallbackWhenTrue() { + this.beanDefinition.setFallback(true); + compile((actual, compiled) -> assertThat(actual.isFallback()).isTrue()); + } + @Test void setScopeWhenEmptyString() { this.beanDefinition.setScope("");