From be416ef9c4f63298891c0d667c03c283607680d8 Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Tue, 29 May 2018 09:33:29 +0200 Subject: [PATCH] Polish BeanDefinitionDsl Issue: SPR-16412 --- .../context/support/BeanDefinitionDsl.kt | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt b/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt index 71f140d2fa0..4b8eb08aaff 100644 --- a/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt +++ b/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt @@ -61,11 +61,7 @@ import java.util.function.Supplier * @see BeanDefinitionDsl * @since 5.0 */ -fun beans(init: BeanDefinitionDsl.() -> Unit): BeanDefinitionDsl { - val beans = BeanDefinitionDsl() - beans.init = init - return beans -} +fun beans(init: BeanDefinitionDsl.() -> Unit) = BeanDefinitionDsl(init) /** * Class implementing functional bean definition Kotlin DSL. @@ -76,14 +72,13 @@ fun beans(init: BeanDefinitionDsl.() -> Unit): BeanDefinitionDsl { * @author Sebastien Deleuze * @since 5.0 */ -open class BeanDefinitionDsl(private val condition: (ConfigurableEnvironment) -> Boolean = { true }) +open class BeanDefinitionDsl(private val init: BeanDefinitionDsl.() -> Unit, + private val condition: (ConfigurableEnvironment) -> Boolean = { true }) : ApplicationContextInitializer { @PublishedApi internal val children = arrayListOf() - internal lateinit var init: BeanDefinitionDsl.() -> Unit - /** * Access to the context for advanced use-cases. * @since 5.1 @@ -238,8 +233,7 @@ open class BeanDefinitionDsl(private val condition: (ConfigurableEnvironment) -> * specified profile is active. */ fun profile(profile: String, init: BeanDefinitionDsl.() -> Unit) { - val beans = BeanDefinitionDsl({ it.activeProfiles.contains(profile) }) - beans.init = init + val beans = BeanDefinitionDsl(init, { it.activeProfiles.contains(profile) }) children.add(beans) } @@ -251,8 +245,7 @@ open class BeanDefinitionDsl(private val condition: (ConfigurableEnvironment) -> */ fun environment(condition: ConfigurableEnvironment.() -> Boolean, init: BeanDefinitionDsl.() -> Unit) { - val beans = BeanDefinitionDsl(condition::invoke) - beans.init = init + val beans = BeanDefinitionDsl(init, condition::invoke) children.add(beans) }