1
2
3
4
5
6
7 package org.mule.example.geomail.components;
8
9 import org.mule.DefaultMuleMessage;
10 import org.mule.api.MuleEventContext;
11 import org.mule.api.MuleMessage;
12 import org.mule.api.lifecycle.Callable;
13 import org.mule.example.geomail.dao.Sender;
14 import org.mule.example.geomail.dao.SenderDao;
15
16 import org.apache.log4j.Logger;
17
18
19
20
21 public class Storage implements Callable
22 {
23 private static final Logger log = Logger.getLogger(Storage.class.getName());
24
25 private SenderDao senderDao;
26
27 public Object onCall(MuleEventContext context) throws Exception
28 {
29 MuleMessage message = context.getMessage();
30
31 log.info("GroupSize: " + message.getCorrelationGroupSize());
32 log.info("Correlation ID: " + message.getCorrelationId());
33 log.info("Sequence Number: " + message.getCorrelationSequence());
34
35
36
37
38
39
40
41 String from = message.getOutboundProperty("from.email.address");
42
43 Sender sender = (Sender) message.getPayload();
44
45 sender.setEmail(from);
46
47 if (getSenderDao().getSender(sender.getIp()) != null)
48 {
49 log.warn("Sender '" + sender + "' should not be in the Database.");
50 }
51 else
52 {
53 getSenderDao().addSender(sender);
54 log.warn("Sender '" + sender + "' successfully added to the Database.");
55 }
56
57 MuleMessage resultMessage = new DefaultMuleMessage(sender, context.getMuleContext());
58 resultMessage.setCorrelationGroupSize(message.getCorrelationGroupSize());
59 resultMessage.setCorrelationId(message.getCorrelationId());
60 resultMessage.setCorrelationSequence(message.getCorrelationSequence());
61
62 return resultMessage;
63 }
64
65 public SenderDao getSenderDao()
66 {
67 return senderDao;
68 }
69
70 public void setSenderDao(SenderDao senderDao)
71 {
72 this.senderDao = senderDao;
73 }
74 }