Hi,
I am writing a Test Splitter which just sends the splitted message to the aggregator.The sequence no,correlation id and sequence size are set.
I pass the list of the aggregated messages to the sequencer.But it is not getting sequenced.
Here is my Splitter code:
Code:public class MessageSplitter { public List<Message<String>> splitMessage(Message<Map<String, List<String>>> message) { List<Message<String>> result = new LinkedList<Message<String>>(); System.out.println("message is in splitter " + message.getPayload()); Message<String> firstMessage = MessageBuilder.withPayload("\"are you...\"}").setCorrelationId("ABC").setSequenceSize(2) .setSequenceNumber(2).build(); Message<String> secondMessage = MessageBuilder.withPayload("{\"message\":\"Hello how ").setCorrelationId("ABC").setSequenceSize(2) .setSequenceNumber(1).build(); result.add(firstMessage); result.add(secondMessage); return result; } }
This is my config file:
Code:<int-http:inbound-channel-adapter id="smsInboundAdapter" channel="smsChannel" name="/smsInboundAdapter.htm" supported-methods="GET" /> <int:channel id="smsChannel" /> <int:channel id="aggregationChannel" /> <int:channel id="errorChannel" /> <int:channel id="sequencerChannel" /> <int:splitter id ="messageSplitter" input-channel="smsChannel" output-channel="sequencerChannel"> <bean class="sms.communication.MessageSplitter" /> </int:splitter> <int:resequencer input-channel="sequencerChannel" output-channel="aggregationChannel" /> <int:aggregator method="add" input-channel="aggregationChannel" output-channel="completeMessageChannel" discard-channel="errorChannel" send-timeout="1" send-partial-result-on-expiry="false"> <bean class="sms.communication.MessageAggragator" /> </int:aggregator> <int:channel id="completeMessageChannel" /> <int:service-activator id="gateway" input-channel="errorChannel" ref="errorUnWrapper" /> <int:outbound-channel-adapter ref="messageProcessor" channel="completeMessageChannel" /> <bean id="messageProcessor" class="sms.communication.MessageProcessor" /> <bean id="errorUnWrapper" class="sms.communication.ErrorUnWrapper" />
The output is :
Code:message is in splitter {longcode=[9892457458], body=[{Hello how are you......}], msidn=[9833804]} MessageAggragator : ["are you..."}, {"message":"Hello how ] MessageProcessor : "are you..."}{"message":"Hello how -------------------------------------------
Please help....


Reply With Quote
