View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
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   * TODO
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  //        String ip = message.getOutboundProperty("ip");
36  //        if (ip == null)
37  //        {
38  //            throw new IllegalStateException("'ip' property should have been set on MuleMessage.");
39  //        }
40  
41          String from = message.getOutboundProperty("from.email.address");
42  
43          Sender sender = (Sender) message.getPayload();
44  //        sender.setIp(ip);
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  }