GH-3615: Make log() as non-terminal in DSL
Fixes https://github.com/spring-projects/spring-integration/issues/3615 The `log()` operator for Java DSL in the end of flow causes a confusion for its different behavior and, therefore, inconsistency with expectations * Populate a `bridge()` in the end of flow instead of `nullChannel` when the current component is `WireTapSpec` (relevant to `wireTap()` and `log()`) * Deprecate a `logAndReply()` operator since its behavior is now included into the `log()` in the end if flow * Fix tests to use just `log()` in the end from now on * Fix `dsl.adoc` for the new `log()` behaviour in the end of flow
This commit is contained in:
committed by
Gary Russell
parent
802d217a9a
commit
10ea577549
@@ -656,9 +656,9 @@ The following example shows how to use `LoggingHandler`:
|
||||
|
||||
In the preceding example, an `id` header is logged at the `ERROR` level onto `test.category` only for messages that passed the filter and before routing.
|
||||
|
||||
When this operator is used at the end of a flow, it is a one-way handler and the flow ends.
|
||||
To make it as a reply-producing flow, you can either use a simple `bridge()` after the `log()` or, starting with version 5.1, you can use a `logAndReply()` operator instead.
|
||||
`logAndReply` can only be used at the end of a flow.
|
||||
Starting with version 6.0, the behavior of this operator in the end of flow is aligned with its usage in the middle.
|
||||
In other words the behavior of the flow remains the same even if the `log()` operator is removed.
|
||||
So, if a reply is not expected to be produced in the end of the flow, the `nullChannel()` is recommended to be used after the last `log()`.
|
||||
|
||||
[[java-dsl-intercept]]
|
||||
=== Operator intercept()
|
||||
|
||||
Reference in New Issue
Block a user