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 di...@apache.org on 2007/03/16 02:56:17 UTC

svn commit: r518834 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail: EMailSender.java MailBasedOutTransportInfo.java MailTransportSender.java SimpleMailListener.java

Author: dims
Date: Thu Mar 15 18:56:15 2007
New Revision: 518834

URL: http://svn.apache.org/viewvc?view=rev&rev=518834
Log:
Fix for AXIS2-2315 - Mail transport handling of MIME Message-Id / In-Reply-To

Added:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailBasedOutTransportInfo.java
Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailTransportSender.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java?view=diff&rev=518834&r1=518833&r2=518834
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java Thu Mar 15 18:56:15 2007
@@ -50,6 +50,7 @@
     private MessageContext messageContext;
     private PasswordAuthentication passwordAuthentication;
     private OutputStream outputStream;
+    private String inReplyTo;
 
     static {
         //Initializing the proper mime types
@@ -106,6 +107,10 @@
                 msg.setHeader("X-Service-Path", "\"" + mailToInfo.getContentDescription() + "\"");
             }
 
+            if( inReplyTo != null ) {
+                msg.setHeader("In-Reply-To", inReplyTo);
+            }
+
             createMailMimeMessage(msg, mailToInfo, format);
             Transport.send(msg);
         } catch (AddressException e) {
@@ -165,4 +170,7 @@
     }
 
 
+    public void setInReplyTo(String inReplyTo) {
+        this.inReplyTo = inReplyTo;
+    }
 }

Added: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailBasedOutTransportInfo.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailBasedOutTransportInfo.java?view=auto&rev=518834
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailBasedOutTransportInfo.java (added)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailBasedOutTransportInfo.java Thu Mar 15 18:56:15 2007
@@ -0,0 +1,37 @@
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+package org.apache.axis2.transport.mail;
+
+import org.apache.axis2.transport.OutTransportInfo;
+
+public class MailBasedOutTransportInfo implements OutTransportInfo {
+    protected String contentType;
+    protected String inReplyTo;
+
+    public void setContentType(String contentType) {
+        this.contentType = contentType;
+    }
+
+    public void setInReplyTo(String messageId) {
+        this.inReplyTo = messageId;
+    }
+    
+    public String getInReplyTo() {
+        return this.inReplyTo;
+    }
+}

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailTransportSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailTransportSender.java?view=diff&rev=518834&r1=518833&r2=518834
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailTransportSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/MailTransportSender.java Thu Mar 15 18:56:15 2007
@@ -28,6 +28,7 @@
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.transport.MessageFormatter;
+import org.apache.axis2.transport.OutTransportInfo;
 import org.apache.axis2.transport.TransportSender;
 import org.apache.axis2.transport.TransportUtils;
 import org.apache.axis2.transport.http.HTTPTransportUtils;
@@ -203,6 +204,15 @@
             format.setCharSetEncoding(charSet);
 
             parseMailToAddress(msgContext.getTo());
+            
+            // Check if msg is 'In-Reply-To' received message
+            OutTransportInfo transportInfo = (OutTransportInfo) msgContext.getProperty(org.apache.axis2.Constants.OUT_TRANSPORT_INFO);
+            
+            if (transportInfo != null && transportInfo instanceof MailBasedOutTransportInfo) {
+                MailBasedOutTransportInfo mailTransportInfo = (MailBasedOutTransportInfo) transportInfo;
+
+                sender.setInReplyTo( mailTransportInfo.getInReplyTo() );
+            }
 
             sender.send(mailToInfo, format);
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java?view=diff&rev=518834&r1=518833&r2=518834
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java Thu Mar 15 18:56:15 2007
@@ -282,6 +282,14 @@
                 msgContext.setFrom(new EndpointReference((msg.getFrom()[0]).toString()));
             }
 
+            // Save Message-Id to set as In-Reply-To on reply
+            String smtpMessageId = msg.getMessageID();
+            if( smtpMessageId != null ) {
+                MailBasedOutTransportInfo transportInfo = new MailBasedOutTransportInfo();
+                transportInfo.setInReplyTo( smtpMessageId );
+                msgContext.setProperty( org.apache.axis2.Constants.OUT_TRANSPORT_INFO, transportInfo ) ;
+            }
+
             buildSOAPEnvelope(msg, msgContext);
         }
         return msgContext;



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