1
2
3
4
5
6
7 package org.mule.test.integration.routing;
8
9 import org.mule.DefaultMuleEvent;
10 import org.mule.DefaultMuleMessage;
11 import org.mule.api.MuleContext;
12 import org.mule.api.MuleEvent;
13 import org.mule.api.transformer.TransformerException;
14 import org.mule.routing.AbstractAggregator;
15 import org.mule.routing.AggregationException;
16 import org.mule.routing.EventGroup;
17 import org.mule.routing.correlation.CollectionCorrelatorCallback;
18 import org.mule.routing.correlation.EventCorrelatorCallback;
19
20 import java.util.Iterator;
21
22 public class TestAggregator extends AbstractAggregator
23 {
24 @Override
25 protected EventCorrelatorCallback getCorrelatorCallback(MuleContext muleContext)
26 {
27 return new CollectionCorrelatorCallback(muleContext)
28 {
29 @Override
30 public MuleEvent aggregateEvents(EventGroup events) throws AggregationException
31 {
32 StringBuffer buffer = new StringBuffer(128);
33
34 for (Iterator<MuleEvent> iterator = events.iterator(); iterator.hasNext();)
35 {
36 MuleEvent event = iterator.next();
37 try
38 {
39 buffer.append(event.transformMessageToString());
40 }
41 catch (TransformerException e)
42 {
43 throw new AggregationException(events, null, e);
44 }
45 }
46
47 logger.debug("event payload is: " + buffer.toString());
48 return new DefaultMuleEvent(new DefaultMuleMessage(buffer.toString(), muleContext), events.getMessageCollectionEvent());
49 }
50 };
51 }
52 }