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