1
2
3
4
5
6
7
8
9
10
11 package org.mule.routing;
12
13 import org.mule.impl.MuleEvent;
14 import org.mule.impl.RequestContext;
15 import org.mule.umo.UMOEvent;
16 import org.mule.umo.UMOException;
17 import org.mule.umo.UMOMessage;
18 import org.mule.umo.UMOSession;
19 import org.mule.umo.endpoint.UMOEndpoint;
20 import org.mule.umo.routing.ComponentRoutingException;
21 import org.mule.umo.routing.RoutingException;
22
23
24
25
26
27
28
29
30 public class ComponentCatchAllStrategy extends AbstractCatchAllStrategy
31 {
32 public void setEndpoint(UMOEndpoint endpoint)
33 {
34 throw new UnsupportedOperationException("The endpoint cannot be set on this catch all");
35 }
36
37 public UMOEndpoint getEndpoint()
38 {
39 return null;
40 }
41
42 public synchronized UMOMessage catchMessage(UMOMessage message, UMOSession session, boolean synchronous)
43 throws RoutingException
44 {
45 UMOEvent event = RequestContext.getEvent();
46 try
47 {
48 event = new MuleEvent(message, event.getEndpoint(), session.getComponent(), event);
49 if (synchronous)
50 {
51 statistics.incrementRoutedMessage(event.getEndpoint());
52 logger.info("Event being routed from catch all strategy for endpoint: "
53 + RequestContext.getEvent().getEndpoint());
54 return session.getComponent().sendEvent(event);
55 }
56 else
57 {
58 statistics.incrementRoutedMessage(event.getEndpoint());
59 session.getComponent().dispatchEvent(event);
60 return null;
61 }
62 }
63 catch (UMOException e)
64 {
65 throw new ComponentRoutingException(event.getMessage(), event.getEndpoint(),
66 session.getComponent(), e);
67 }
68 }
69 }