INT-4487: Allow reconfiguring ARPMH.adviceChain
JIRA: https://jira.spring.io/browse/INT-4487 Currently the `AbstractReplyProducingMessageHandler` applies advices only in the `afterPropertiesSet()` phase. When we use bean references for `MessageHandler`s in Java DSL, the `.advice()` provided in the flow definition is not applied to the `AbstractReplyProducingMessageHandler`. * For consistency with the endpoint configured by the DSL definition, override and reconfigure advices in the `AbstractReplyProducingMessageHandler` bean reference during DSL parsing and processing. Fix `TwitterSearchOutboundGatewayParserTests` for the proper assert
This commit is contained in:
committed by
Gary Russell
parent
0735ddb0ed
commit
e6a35c4a60
@@ -236,6 +236,28 @@ public IntegrationFlow flow2() {
|
||||
|
||||
In addition the `EndpointSpec` provides an `id()` method to allow you to 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());
|
||||
}
|
||||
----
|
||||
|
||||
i.e. they are not merged, only the `testAdvice()` bean is used in this case.
|
||||
|
||||
[[java-dsl-transformers]]
|
||||
=== Transformers
|
||||
|
||||
|
||||
Reference in New Issue
Block a user