You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2007/05/15 14:29:40 UTC

svn commit: r538154 - in /webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail: Constants.java EMailSender.java SimpleMailListener.java

Author: deepal
Date: Tue May 15 05:29:39 2007
New Revision: 538154

URL: http://svn.apache.org/viewvc?view=rev&rev=538154
Log:
SMTP can work w.o addressing , modified SMTP to use transport level data to correlate request and the response

Modified:
    webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java
    webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java
    webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java

Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java?view=diff&rev=538154&r1=538153&r2=538154
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java Tue May 15 05:29:39 2007
@@ -80,4 +80,5 @@
     public static final String MAIL_SYNC = "_MAIL_SYNC_";
     public static final String IN_REPLY_TO = "In-Reply-To";
     public static final String MAILTO = "mailto";
+    public static final String MAPPING_TABLE = "mappingTable";
 }

Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java?view=diff&rev=538154&r1=538153&r2=538154
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java Tue May 15 05:29:39 2007
@@ -48,6 +48,7 @@
 import java.io.ByteArrayOutputStream;
 import java.io.OutputStream;
 import java.util.Properties;
+import java.util.Hashtable;
 
 public class EMailSender {
     private Properties properties;
@@ -229,15 +230,24 @@
     }
 
     private void sendReceive(MessageContext msgContext, String msgId) throws AxisFault {
+        storeMessageContext(msgContext,msgId);
         Object obj = msgContext.getProperty(Constants.MAIL_SYNC);
         if (obj == null) {
             return;
         }
-
         Options options = msgContext.getOptions();
 
         SynchronousMailListener listener =
                 new SynchronousMailListener(options.getTimeOutInMilliSeconds());
         listener.sendReceive(msgContext, msgId);
+    }
+
+    private void storeMessageContext(MessageContext msgContext, String msgId){
+        Hashtable mappingTable = (Hashtable) msgContext.getConfigurationContext().
+                getProperty(Constants.MAPPING_TABLE);
+        
+        if(mappingTable!=null){
+            mappingTable.put(msgId,msgContext.getMessageID());
+        }
     }
 }

Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java?view=diff&rev=538154&r1=538153&r2=538154
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java Tue May 15 05:29:39 2007
@@ -49,6 +49,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Properties;
+import java.util.Hashtable;
 
 /**
  * This is the implementation for Mail Listener in Axis2. It has the full capability
@@ -165,7 +166,9 @@
         receiver = new EmailReceiver();
         receiver.setPop3Properties(pop3Properties);
         receiver.setUrlName(urlName);
-
+        Hashtable mappingTable = new Hashtable();
+        configurationContext.setProperty(
+                org.apache.axis2.transport.mail.Constants.MAPPING_TABLE,mappingTable);
 
     }
 
@@ -345,8 +348,25 @@
             msgContext.setProperty(org.apache.axis2.Constants.OUT_TRANSPORT_INFO, transportInfo);
 
             buildSOAPEnvelope(msg, msgContext);
+            fillMessageContextFromAvaiableData(msgContext,inReplyTo);
         }
         return msgContext;
+    }
+
+    private void fillMessageContextFromAvaiableData(MessageContext msgContext , String messageID){
+        Hashtable mappingTable = (Hashtable) msgContext.getConfigurationContext().
+                getProperty(org.apache.axis2.transport.mail.Constants.MAPPING_TABLE);
+
+        if(mappingTable!=null&&messageID!=null){
+            String messageConetextId= (String) mappingTable.get(messageID);
+            if(messageConetextId!=null){
+                OperationContext opContext = configurationContext.getOperationContext(messageConetextId);
+                if(opContext!=null){
+                    msgContext.setOperationContext(opContext);
+                    msgContext.setServiceContext(opContext.getServiceContext());
+                }
+            }
+        }
     }
 
     private void buildSOAPEnvelope(MimeMessage msg, MessageContext msgContext)



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org