Add more Kotlin DSL for sub-flows (#3233)

* Add more Kotlin DSL for sub-flows

* Introduce `KotlinSplitterEndpointSpec`, `KotlinEnricherSpec` &
`KotlinFilterEndpointSpec` to avoid an explicit use of `IntegrationFlow` usage
from Kotlin DSL
* Fix `AbstractKotlinRouterSpec` to extend `ConsumerEndpointSpec` for access
to more endpoint options as it is with Java DSL for similar specs
* Introduce a `KotlinIntegrationFlowDefinition.publishSubscribe()`
for a `BroadcastCapableChannel` and `vararg` of `KotlinIntegrationFlowDefinition` builders.
This allows us to not introduce a `BroadcastPublishSubscribeSpec` wrapper for Kotlin
and let us to remove `publishSubscribeChannel()` DSL methods for `PublishSubscribeSpec`
since it is covered with the `publishSubscribe(PublishSubscribeChannel())` and
respective set of sub-flows in Kotlin DSL as subscribers
* Use new Kotlin specs in the `KotlinIntegrationFlowDefinition` instead of their
Java variants

* * Mention `kotlin-dsl.adoc` in the ToC
This commit is contained in:
Artem Bilan
2020-04-01 11:06:54 -04:00
committed by GitHub
parent 6d5690fd58
commit 7433e41036
8 changed files with 276 additions and 48 deletions

View File

@@ -23,6 +23,8 @@ include::./messaging-endpoints.adoc[]
include::./dsl.adoc[]
include::./kotlin-dsl.adoc[]
include::./system-management.adoc[]
include::./endpoint-summary.adoc[]

View File

@@ -2,8 +2,8 @@
include::./index-header.adoc[]
Welcome to the Spring Integration reference documentation! This documentation is also available
as single searchable link:index-single.html[html] and link:../pdf/spring-integration-reference.pdf[pdf] documents.
Welcome to the Spring Integration reference documentation!
This documentation is also available as single searchable link:index-single.html[html] and link:../pdf/spring-integration-reference.pdf[pdf] documents.
[horizontal]
<<./preface.adoc#preface,Preface>> ::
@@ -15,6 +15,7 @@ as single searchable link:index-single.html[html] and link:../pdf/spring-integra
<<./message-transformation.adoc#messaging-transformation-chapter,Message Transformation>> ::
<<./messaging-endpoints.adoc#messaging-endpoints-chapter,Messaging Endpoints>> ::
<<./dsl.adoc#java-dsl,Java DSL>> ::
<<./kotlin-dsl.adoc#kotlin-dsl,Kotlin DSL>> ::
<<./system-management.adoc#system-management-chapter,System Management>> ::
<<./reactive-streams.adoc#reactive-streams,Reactive Streams Support>> ::