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.store.ObjectStoreException;
18 import org.mule.api.transformer.TransformerException;
19 import org.mule.routing.AbstractAggregator;
20 import org.mule.routing.AggregationException;
21 import org.mule.routing.EventGroup;
22 import org.mule.routing.correlation.CollectionCorrelatorCallback;
23 import org.mule.routing.correlation.EventCorrelatorCallback;
24 import org.mule.util.concurrent.ThreadNameHelper;
25
26 import java.util.Iterator;
27
28 public class TestAggregator extends AbstractAggregator
29 {
30 @Override
31 protected EventCorrelatorCallback getCorrelatorCallback(MuleContext muleContext)
32 {
33 return new CollectionCorrelatorCallback(muleContext,false,storePrefix)
34 {
35 @Override
36 public MuleEvent aggregateEvents(EventGroup events) throws AggregationException
37 {
38 StringBuffer buffer = new StringBuffer(128);
39
40 try
41 {
42 for (Iterator<MuleEvent> iterator = events.iterator(); iterator.hasNext();)
43 {
44 MuleEvent event = iterator.next();
45 try
46 {
47 buffer.append(event.transformMessageToString());
48 }
49 catch (TransformerException e)
50 {
51 throw new AggregationException(events, null, e);
52 }
53 }
54 }
55 catch (ObjectStoreException e)
56 {
57 throw new AggregationException(events,null,e);
58 }
59
60 logger.debug("event payload is: " + buffer.toString());
61 return new DefaultMuleEvent(new DefaultMuleMessage(buffer.toString(), muleContext), events.getMessageCollectionEvent());
62 }
63 };
64 }
65 }