* Use `providers.provider` for `modifiedFiles`.
This defers the looking up of `modifiedFiles` until it is used. It
also allows other tasks to be ran from the non-primary work tree.
Working in another work tree is essential for Antora which will clone
each branch/tag into a new work tree to process it.
* Migrate Structure
* Insert explicit ids for headers
* Fix image::image
* Copy default antora files
* Fix indentation for all pages
* Split files
* Generate a default navigation
* Remove includes
* Fix cross references
* Enable Section Summary TOC for small pages
* Polish nav.adoc
* Fix duplicate ids
* Escape {firstname} and {lastname}
* Remove links to htmlsingle and pdf Formats
* Fix broken links
* Disable attributes for ${debezium-version}
* Migrate to Asciidoctor Tabs
* Move to src/reference/antora
* Remove Asciidoctor Build
* deploy-docs only spring-projects
47 lines
1.8 KiB
Plaintext
47 lines
1.8 KiB
Plaintext
[[java-dsl-endpoints]]
|
|
= DSL and Endpoint Configuration
|
|
|
|
All `IntegrationFlowBuilder` EIP methods have a variant that applies the lambda parameter to provide options for `AbstractEndpoint` instances: `SmartLifecycle`, `PollerMetadata`, `request-handler-advice-chain`, and others.
|
|
Each of them has generic arguments, so it lets you configure an endpoint and even its `MessageHandler` in the context, as the following example shows:
|
|
|
|
[source,java]
|
|
----
|
|
@Bean
|
|
public IntegrationFlow flow2() {
|
|
return IntegrationFlow.from(this.inputChannel)
|
|
.transformWith(t -> t
|
|
.transformer(new PayloadSerializingTransformer())
|
|
.autoStartup(false)
|
|
.id("payloadSerializingTransformer"))
|
|
.transformWith(t -> t
|
|
.transformer((Integer p) -> p * 2)
|
|
.advice(expressionAdvice()))
|
|
.get();
|
|
}
|
|
----
|
|
|
|
In addition, the `EndpointSpec` provides an `id()` method to let you register an endpoint bean with a given bean name, rather than a generated one.
|
|
|
|
If the `MessageHandler` is referenced as a bean, then any existing `adviceChain` configuration will be overridden if the `.advice()` method is present in the DSL definition:
|
|
|
|
[source,java]
|
|
----
|
|
@Bean
|
|
public TcpOutboundGateway tcpOut() {
|
|
TcpOutboundGateway gateway = new TcpOutboundGateway();
|
|
gateway.setConnectionFactory(cf());
|
|
gateway.setAdviceChain(Collections.singletonList(fooAdvice()));
|
|
return gateway;
|
|
}
|
|
|
|
@Bean
|
|
public IntegrationFlow clientTcpFlow() {
|
|
return f -> f
|
|
.handle(tcpOut(), e -> e.advice(testAdvice()))
|
|
.transform(Transformers.objectToString());
|
|
}
|
|
----
|
|
|
|
They are not merged, only the `testAdvice()` bean is used in this case.
|
|
|