diff --git a/spring-integration-reference/src/chain.xml b/spring-integration-reference/src/chain.xml new file mode 100644 index 0000000000..cfedced970 --- /dev/null +++ b/spring-integration-reference/src/chain.xml @@ -0,0 +1,50 @@ + + + + Message Handler Chain + +
+ Introduction + + The MessageHandlerChain is an implementation of + MessageHandler that can be configured as a single Message Endpoint while + actually delegating to a chain of other handlers, such as Filters, Transformers, Splitters, and so on. + This can lead to a much simpler configuration when several handlers need to be connected in a fixed, linear + progression. For example, it is fairly common to provide a Transformer before other components. Similarly, when + providing a Filter before some other component in a chain, you are essentially creating a + Selective Consumer. In either case, the + chain only requires a single input-channel and a single output-channel as opposed to the configuration of + channels for each individual component. + + Spring Integration's Filter provides a boolean property 'throwExceptionOnRejection'. When + providing multiple Selective Consumers on the same point-to-point channel with different acceptance criteria, + this value should be set to 'true' (the default is false) so that the dispatcher will know that the Message was + rejected and as a result will attempt to pass the Message on to other subscribers. If the Exception were not + thrown, then it would appear to the dispatcher as if the Message had been passed on successfully even though + the Filter had dropped the Message to prevent further processing. + + + + The handler chain simplifies configuration while internally maintaining the same degree of loose coupling between + components, and it is trivial to modify the configuration if at some point a non-linear arrangement is required. + +
+ +
+ The <chain> Element + + The <chain> element provides an 'input-channel' attribute, and if the last element in the chain is capable + of producing reply messages, it may optionally provide an 'output-channel' attribute. The sub-elements are then + filters, transformers, splitters, and service-activators. The last element may be a router. + + + +
+ + + ]]> + +
+ +
\ No newline at end of file diff --git a/spring-integration-reference/src/spring-integration-reference.xml b/spring-integration-reference/src/spring-integration-reference.xml index b63dfeca44..4cc70b2267 100644 --- a/spring-integration-reference/src/spring-integration-reference.xml +++ b/spring-integration-reference/src/spring-integration-reference.xml @@ -52,6 +52,7 @@ +