I've few basic questions regarding the splitter
element in SI.
I understand that to form a customized splitter logic, we need to extend AbstractMessageSplitter
and override the splitMessage
method.
This collection of split messages are then presented on the output-channel
of splitter
(assuming no reply channel was configured on incoming message).
The output-channel
of splitter
can then become input-channel
for another si component. Let's assume that component is a simple service-activator
.
The manual says that "each" message of the collection will be processed by the downstream configuration to which this collection was presented. So in our example, service-activator
will process "each" message.
1) My query is "who" exactly iterates the collection and presents "each" message from collection on the input-channel of service-activator ?
2) Let's assume that we have all direct channels involved here. Now if the output-channel
of service-activato
r is configured as a nullChannel
, will it still be presented the "next" message from collection once the first message has been processed successfully ?
3) Let's assume we have no aggregator
involved here. Also let's assume all the methods involved have non-void return.
What will be returned to the caller thread that present "collection" of messages to the splitter's output-channel
? Will it get back a collection of return types that the service-activator returns ? or will it get back just the return of last processed message from collection ?
I hope I made my queries elaborate enough to get them clarified.
Many thanks to respond.
Best Regards