1
2
3
4
5
6
7
8
9
10 package org.mule.routing;
11
12 import org.mule.api.MuleContext;
13 import org.mule.api.MuleMessage;
14 import org.mule.api.context.MuleContextAware;
15 import org.mule.api.routing.MessageInfoMapping;
16
17
18
19
20 public class ExpressionMessageInfoMapping implements MessageInfoMapping, MuleContextAware
21 {
22 private String correlationIdExpression;
23 private String messageIdExpression;
24 private MuleContext muleContext;
25
26 public void setMuleContext(MuleContext context)
27 {
28 this.muleContext = context;
29 }
30
31 public String getMessageId(MuleMessage message)
32 {
33 return (String) muleContext.getExpressionManager().evaluate(getMessageIdExpression(), message, true);
34 }
35
36 public String getCorrelationId(MuleMessage message)
37 {
38 String id = (String) muleContext.getExpressionManager().evaluate(getCorrelationIdExpression(), message, false);
39 if (id == null)
40 {
41 id = getMessageId(message);
42 }
43 return id;
44 }
45
46 public String getCorrelationIdExpression()
47 {
48 return correlationIdExpression;
49 }
50
51 public void setCorrelationIdExpression(String correlationIdExpression)
52 {
53 this.correlationIdExpression = correlationIdExpression;
54 }
55
56 public String getMessageIdExpression()
57 {
58 return messageIdExpression;
59 }
60
61 public void setMessageIdExpression(String messageIdExpression)
62 {
63 this.messageIdExpression = messageIdExpression;
64 }
65 }