View Javadoc

1   /*
2    * $Id: Storage.java 19191 2010-08-25 21:05:23Z tcarlson $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.example.geomail.components;
12  
13  import org.mule.DefaultMuleMessage;
14  import org.mule.api.MuleEventContext;
15  import org.mule.api.MuleMessage;
16  import org.mule.api.lifecycle.Callable;
17  import org.mule.example.geomail.dao.Sender;
18  import org.mule.example.geomail.dao.SenderDao;
19  
20  import org.apache.log4j.Logger;
21  
22  /**
23   * TODO
24   */
25  public class Storage implements Callable
26  {
27      private static final Logger log = Logger.getLogger(Storage.class.getName());
28  
29      private SenderDao senderDao;
30  
31      public Object onCall(MuleEventContext context) throws Exception
32      {
33          MuleMessage message = context.getMessage();
34  
35          log.info("GroupSize: " + message.getCorrelationGroupSize());
36          log.info("Correlation ID: " + message.getCorrelationId());
37          log.info("Sequence Number: " + message.getCorrelationSequence());
38          
39  //        String ip = message.getOutboundProperty("ip");
40  //        if (ip == null)
41  //        {
42  //            throw new IllegalStateException("'ip' property should have been set on MuleMessage.");
43  //        }
44  
45          String from = message.getOutboundProperty("from.email.address");
46  
47          Sender sender = (Sender) message.getPayload();
48  //        sender.setIp(ip);
49          sender.setEmail(from);
50  
51          if (getSenderDao().getSender(sender.getIp()) != null)
52          {
53              log.warn("Sender '" + sender + "' should not be in the Database.");
54          }
55          else
56          {
57              getSenderDao().addSender(sender);
58              log.warn("Sender '" + sender + "' successfully added to the Database.");
59          }
60  
61          MuleMessage resultMessage = new DefaultMuleMessage(sender, context.getMuleContext());
62          resultMessage.setCorrelationGroupSize(message.getCorrelationGroupSize());
63          resultMessage.setCorrelationId(message.getCorrelationId());
64          resultMessage.setCorrelationSequence(message.getCorrelationSequence());
65  
66          return resultMessage;
67      }
68  
69      public SenderDao getSenderDao()
70      {
71          return senderDao;
72      }
73  
74      public void setSenderDao(SenderDao senderDao)
75      {
76          this.senderDao = senderDao;
77      }
78  }