1
2
3
4
5
6
7
8
9
10
11 package org.mule.endpoint.outbound;
12
13 import org.mule.api.MuleEvent;
14 import org.mule.api.endpoint.OutboundEndpoint;
15 import org.mule.context.notification.EndpointMessageNotification;
16 import org.mule.processor.AbstractMessageObserver;
17 import org.mule.transport.AbstractConnector;
18
19
20
21
22
23
24 public class OutboundNotificationMessageProcessor extends AbstractMessageObserver
25 {
26
27 private OutboundEndpoint endpoint;
28
29 public OutboundNotificationMessageProcessor(OutboundEndpoint endpoint)
30 {
31 this.endpoint = endpoint;
32 }
33
34 @Override
35 public void observe(MuleEvent event)
36 {
37 AbstractConnector connector = (AbstractConnector) endpoint.getConnector();
38 if (connector.isEnableMessageEvents())
39 {
40 String component = null;
41 if (event.getFlowConstruct() != null)
42 {
43 component = event.getFlowConstruct().getName();
44 }
45
46 int notificationAction;
47 if (event.getEndpoint().getExchangePattern().hasResponse())
48 {
49 notificationAction = EndpointMessageNotification.MESSAGE_SENT;
50 }
51 else
52 {
53 notificationAction = EndpointMessageNotification.MESSAGE_DISPATCHED;
54 }
55 connector.fireNotification(new EndpointMessageNotification(event.getMessage(),
56 event.getEndpoint(), component, notificationAction));
57 }
58 }
59 }