diff --git a/spring-integration-core/src/main/java/org/springframework/integration/dsl/HeaderEnricherSpec.java b/spring-integration-core/src/main/java/org/springframework/integration/dsl/HeaderEnricherSpec.java index 55a7846546..b336052465 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/dsl/HeaderEnricherSpec.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/dsl/HeaderEnricherSpec.java @@ -258,7 +258,9 @@ public class HeaderEnricherSpec extends ConsumerEndpointSpec configurer, Boolean overwrite) { + public HeaderEnricherSpec headerExpressions(Consumer configurer, + @Nullable Boolean overwrite) { + Assert.notNull(configurer, "'configurer' must not be null"); StringStringMapBuilder builder = new StringStringMapBuilder(); configurer.accept(builder); diff --git a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/AbstractKotlinRouterSpec.kt b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/AbstractKotlinRouterSpec.kt index ba95249be2..69987c6df6 100644 --- a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/AbstractKotlinRouterSpec.kt +++ b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/AbstractKotlinRouterSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2020 the original author or authors. + * Copyright 2020-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,11 @@ abstract class AbstractKotlinRouterSpec, R : Abstra } fun defaultSubFlowMapping(subFlow: KotlinIntegrationFlowDefinition.() -> Unit) { - this.delegate.defaultSubFlowMapping { subFlow(KotlinIntegrationFlowDefinition(it)) } + defaultSubFlowMapping {definition -> subFlow(KotlinIntegrationFlowDefinition(definition)) } + } + + fun defaultSubFlowMapping(subFlow: IntegrationFlow) { + this.delegate.defaultSubFlowMapping(subFlow) } fun defaultOutputToParentFlow() { diff --git a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinEnricherSpec.kt b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinEnricherSpec.kt index 2bf51a3b4a..7c3b83899f 100644 --- a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinEnricherSpec.kt +++ b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinEnricherSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2020 the original author or authors. + * Copyright 2020-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -74,7 +74,11 @@ class KotlinEnricherSpec(val delegate: EnricherSpec) } fun requestSubFlow(subFlow: KotlinIntegrationFlowDefinition.() -> Unit) { - this.delegate.requestSubFlow { subFlow(KotlinIntegrationFlowDefinition(it)) } + requestSubFlow {definition -> subFlow(KotlinIntegrationFlowDefinition(definition)) } + } + + fun requestSubFlow(subFlow: IntegrationFlow) { + this.delegate.requestSubFlow(subFlow) } fun shouldClonePayload(shouldClonePayload: Boolean) { diff --git a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinFilterEndpointSpec.kt b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinFilterEndpointSpec.kt index be16b8efab..228defe1c7 100644 --- a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinFilterEndpointSpec.kt +++ b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinFilterEndpointSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2020 the original author or authors. + * Copyright 2020-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,7 +48,11 @@ class KotlinFilterEndpointSpec(val delegate: FilterEndpointSpec) } fun discardFlow(subFlow: KotlinIntegrationFlowDefinition.() -> Unit) { - this.delegate.discardFlow { subFlow(KotlinIntegrationFlowDefinition(it)) } + discardFlow {definition -> subFlow(KotlinIntegrationFlowDefinition(definition)) } + } + + fun discardFlow(subFlow: IntegrationFlow) { + this.delegate.discardFlow(subFlow) } } diff --git a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinIntegrationFlowDefinition.kt b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinIntegrationFlowDefinition.kt index 53568f4ff6..9fba9de61d 100644 --- a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinIntegrationFlowDefinition.kt +++ b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinIntegrationFlowDefinition.kt @@ -836,7 +836,7 @@ class KotlinIntegrationFlowDefinition(@PublishedApi internal val delegate: Integ routerConfigurer: KotlinRouterSpec.() -> Unit = {} ) { - this.delegate.route(expression) { routerConfigurer(KotlinRouterSpec(it)) } + this.delegate.route(expression) { routerConfigurer(KotlinRouterSpec(it)) } } /** diff --git a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinRecipientListRouterSpec.kt b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinRecipientListRouterSpec.kt index 308a0c0cf8..034e78c0c8 100644 --- a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinRecipientListRouterSpec.kt +++ b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinRecipientListRouterSpec.kt @@ -17,8 +17,6 @@ package org.springframework.integration.dsl import org.springframework.expression.Expression -import org.springframework.integration.core.GenericSelector -import org.springframework.integration.core.MessageSelector import org.springframework.integration.router.RecipientListRouter import org.springframework.messaging.Message import org.springframework.messaging.MessageChannel @@ -77,15 +75,27 @@ class KotlinRecipientListRouterSpec(override val delegate: RecipientListRouterSp } fun recipientFlow(subFlow: KotlinIntegrationFlowDefinition.() -> Unit) { - this.delegate.recipientFlow { subFlow(KotlinIntegrationFlowDefinition(it)) } + recipientFlow { definition -> subFlow(KotlinIntegrationFlowDefinition(definition)) } } fun recipientFlow(expression: String, subFlow: KotlinIntegrationFlowDefinition.() -> Unit) { - this.delegate.recipientFlow(expression) { subFlow(KotlinIntegrationFlowDefinition(it)) } + recipientFlow(expression) { definition -> subFlow(KotlinIntegrationFlowDefinition(definition)) } } fun recipientFlow(expression: Expression, subFlow: KotlinIntegrationFlowDefinition.() -> Unit) { - this.delegate.recipientFlow(expression) { subFlow(KotlinIntegrationFlowDefinition(it)) } + recipientFlow(expression) { definition -> subFlow(KotlinIntegrationFlowDefinition(definition)) } + } + + fun recipientFlow(subFlow: IntegrationFlow) { + this.delegate.recipientFlow(subFlow) + } + + fun recipientFlow(expression: String, subFlow: IntegrationFlow) { + this.delegate.recipientFlow(expression, subFlow) + } + + fun recipientFlow(expression: Expression, subFlow: IntegrationFlow) { + this.delegate.recipientFlow(expression, subFlow) } } diff --git a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinRouterSpec.kt b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinRouterSpec.kt index 6909d5b230..37b0149fd5 100644 --- a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinRouterSpec.kt +++ b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinRouterSpec.kt @@ -60,7 +60,11 @@ class KotlinRouterSpec(override val delegat } fun subFlowMapping(key: K, subFlow: KotlinIntegrationFlowDefinition.() -> Unit) { - this.delegate.subFlowMapping(key) { subFlow(KotlinIntegrationFlowDefinition(it)) } + subFlowMapping(key) { definition -> subFlow(KotlinIntegrationFlowDefinition(definition)) } + } + + fun subFlowMapping(key: K, subFlow: IntegrationFlow) { + this.delegate.subFlowMapping(key, subFlow) } } diff --git a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinSplitterEndpointSpec.kt b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinSplitterEndpointSpec.kt index 9f565f29f0..b860f410a2 100644 --- a/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinSplitterEndpointSpec.kt +++ b/spring-integration-core/src/main/kotlin/org/springframework/integration/dsl/KotlinSplitterEndpointSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2020 the original author or authors. + * Copyright 2020-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,7 +48,11 @@ class KotlinSplitterEndpointSpec(val delegate: Spli } fun discardFlow(discardFlow: KotlinIntegrationFlowDefinition.() -> Unit) { - this.delegate.discardFlow { discardFlow(KotlinIntegrationFlowDefinition(it)) } + discardFlow {definition -> discardFlow(KotlinIntegrationFlowDefinition(definition)) } + } + + fun discardFlow(discardFlow: IntegrationFlow) { + this.delegate.discardFlow(discardFlow) } }