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 th...@apache.org on 2007/03/02 14:59:35 UTC

svn commit: r513768 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2: deployment/ transport/ transport/http/ transport/mail/

Author: thilina
Date: Fri Mar  2 05:59:35 2007
New Revision: 513768

URL: http://svn.apache.org/viewvc?view=rev&rev=513768
Log:
Adding message formatter support for mail transport
Making defualt builders overridable

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPTransportUtils.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/deployment/AxisConfigBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java?view=diff&rev=513768&r1=513767&r2=513768
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java Fri Mar  2 05:59:35 2007
@@ -158,6 +158,13 @@
                 clusterBuilder.buildCluster(clusterElement);
             }
             
+            /*
+             * Add Axis2 default builders if they are not overidden by the config
+             */
+            axisConfig.addMessageBuilder("multipart/related", new MIMEBuilder());
+            axisConfig.addMessageBuilder("application/soap+xml", new SOAPBuilder());
+            axisConfig.addMessageBuilder("text/xml", new SOAPBuilder());
+            axisConfig.addMessageBuilder("application/xop+xml", new MTOMBuilder());
             // process MessageBuilders
             OMElement messageBuildersElement = config_element.getFirstChildWithName(new QName(TAG_MESSAGE_BUILDERS));
             if (messageBuildersElement != null) {
@@ -168,13 +175,6 @@
                     axisConfig.addMessageBuilder(key, (Builder) builderSelector.get(key));
                 }
             }
-    		/*
-    		 * Add Axis2 default builders if they are not overidden by the config
-    		 */
-    			axisConfig.addMessageBuilder("multipart/related", new MIMEBuilder());
-    			axisConfig.addMessageBuilder("application/soap+xml", new SOAPBuilder());
-    			axisConfig.addMessageBuilder("text/xml", new SOAPBuilder());
-    			axisConfig.addMessageBuilder("application/xop+xml", new MTOMBuilder());
                 axisConfig.addMessageBuilder("application/xml", new ApplicationXMLBuilder());
                 axisConfig.addMessageBuilder("application/x-www-form-urlencoded", new XFormURLEncodedBuilder());
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java?view=diff&rev=513768&r1=513767&r2=513768
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java Fri Mar  2 05:59:35 2007
@@ -301,7 +301,28 @@
          
        }
 
-    
+   public static void processContentTypeForAction(String contentType, MessageContext msgContext) {
+       //Check for action header and set it in as soapAction in MessageContext
+       int index = contentType.indexOf("action");
+       if (index > -1) {
+           String transientString = contentType.substring(index, contentType.length());
+           int equal = transientString.indexOf("=");
+           int firstSemiColon = transientString.indexOf(";");
+           String soapAction; // This will contain "" in the string
+           if (firstSemiColon > -1) {
+               soapAction = transientString.substring(equal + 1, firstSemiColon);
+           } else {
+               soapAction = transientString.substring(equal + 1, transientString.length());
+           }
+           if ((soapAction != null) && soapAction.startsWith("\"")
+               && soapAction.endsWith("\"")) {
+               soapAction = soapAction
+                       .substring(1, soapAction.length() - 1);
+           }
+           msgContext.setSoapAction(soapAction);
+       }
+   }
+
     
     private static String getMessageFormatterProperty(MessageContext msgContext) {
         String messageFormatterProperty = null;

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?view=diff&rev=513768&r1=513767&r2=513768
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java Fri Mar  2 05:59:35 2007
@@ -273,7 +273,6 @@
         } else {
             messageFormatter.writeTo(msgContext, format, out, false);
         }
-
     }
 
     private void writeMessageWithCommons(MessageContext messageContext,

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPTransportUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPTransportUtils.java?view=diff&rev=513768&r1=513767&r2=513768
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPTransportUtils.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPTransportUtils.java Fri Mar  2 05:59:35 2007
@@ -239,7 +239,7 @@
             if (contentType != null) {
 				if (contentType.indexOf(SOAP12Constants.SOAP_12_CONTENT_TYPE) > -1) {
 					soapVersion = VERSION_SOAP12;
-					processContentTypeForAction(contentType, msgContext);
+					TransportUtils.processContentTypeForAction(contentType, msgContext);
 				} else if (contentType
 						.indexOf(SOAP11Constants.SOAP_11_CONTENT_TYPE) > -1) {
 					soapVersion = VERSION_SOAP11;
@@ -307,28 +307,6 @@
             }
         }
         return in;
-    }
-
-    private static void processContentTypeForAction(String contentType, MessageContext msgContext) {
-        //Check for action header and set it in as soapAction in MessageContext
-        int index = contentType.indexOf("action");
-        if (index > -1) {
-            String transientString = contentType.substring(index, contentType.length());
-            int equal = transientString.indexOf("=");
-            int firstSemiColon = transientString.indexOf(";");
-            String soapAction; // This will contain "" in the string
-            if (firstSemiColon > -1) {
-                soapAction = transientString.substring(equal + 1, firstSemiColon);
-            } else {
-                soapAction = transientString.substring(equal + 1, transientString.length());
-            }
-            if ((soapAction != null) && soapAction.startsWith("\"")
-                && soapAction.endsWith("\"")) {
-                soapAction = soapAction
-                        .substring(1, soapAction.length() - 1);
-            }
-            msgContext.setSoapAction(soapAction);
-        }
     }
 
     public static boolean isDoingREST(MessageContext msgContext) {

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=513768&r1=513767&r2=513768
==============================================================================
--- 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 Fri Mar  2 05:59:35 2007
@@ -29,7 +29,9 @@
 import org.apache.axis2.description.TransportOutDescription;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.i18n.Messages;
+import org.apache.axis2.transport.MessageFormatter;
 import org.apache.axis2.transport.TransportSender;
+import org.apache.axis2.transport.TransportUtils;
 import org.apache.axis2.transport.http.HTTPTransportUtils;
 import org.apache.axis2.transport.http.HttpTransportProperties;
 import org.apache.axis2.util.Utils;
@@ -248,27 +250,17 @@
     }
 
     public void writeMimeMessage(MessageContext msgContext, OutputStream out) throws AxisFault {
-        SOAPEnvelope envelope = msgContext.getEnvelope();
-        OMElement outputMessage = envelope;
-
-        if ((envelope != null) && msgContext.isDoingREST()) {
-            outputMessage = envelope.getBody().getFirstElement();
-        }
-
-        if (outputMessage != null) {
-            try {
-                OMOutputFormat format = new OMOutputFormat();
-
-                format.setDoOptimize(msgContext.isDoingMTOM());
-                format.setCharSetEncoding(
-                        null); //Set to null so that the code will not fail on 7bit.
-                outputMessage.serializeAndConsume(out, format);
-                out.flush();
-            } catch (Exception e) {
-                throw new AxisFault(e);
-            }
-        } else {
-            throw new AxisFault(Messages.getMessage("outMessageNull"));
+        try {
+            OMOutputFormat format = new OMOutputFormat();
+            MessageFormatter messageFormatter = TransportUtils
+                .getMessageFormatter(msgContext);
+            format.setDoOptimize(msgContext.isDoingMTOM());
+            //Set to null so that the code will not fail on 7bit.
+            format.setCharSetEncoding(null);
+            messageFormatter.writeTo(msgContext, format, out, false);
+            out.flush();
+        } catch (Exception e) {
+            throw new AxisFault(e);
         }
     }
 

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=513768&r1=513767&r2=513768
==============================================================================
--- 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 Fri Mar  2 05:59:35 2007
@@ -52,6 +52,7 @@
 import org.apache.axis2.description.TransportOutDescription;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.transport.TransportListener;
+import org.apache.axis2.transport.TransportUtils;
 import org.apache.axis2.util.Utils;
 import org.apache.axis2.util.threadpool.DefaultThreadFactory;
 import org.apache.commons.logging.Log;
@@ -325,43 +326,11 @@
                             msgContext.setTo(new EndpointReference(contentDescription));
                         }
 
-                        if (part.getContentType().indexOf(SOAP12Constants.SOAP_12_CONTENT_TYPE)
-                            > -1) {
-                            soapNamespaceURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-                            // set the soapAction if available
-                            int index = part.getContentType().indexOf("action");
-                            if (index > -1) {
-                                String transientString =
-                                        part.getContentType()
-                                                .substring(index, part.getContentType().length());
-                                int equal = transientString.indexOf("=");
-                                int firstSemiColon = transientString.indexOf(";");
-                                if (firstSemiColon > -1) {
-                                    soapAction =
-                                            transientString.substring(equal + 1, firstSemiColon);
-                                } else {
-                                    soapAction = transientString
-                                            .substring(equal + 1, transientString.length());
-                                }
-                                if ((soapAction != null) && soapAction.startsWith("\"")
-                                    && soapAction.endsWith("\"")) {
-                                    soapAction = soapAction
-                                            .substring(1, soapAction.length() - 1);
-                                }
-                                msgContext.setSoapAction(soapAction);
-
-                            }
-                        } else if (part.getContentType().indexOf(
-                                SOAP11Constants.SOAP_11_CONTENT_TYPE) > -1) {
-                            soapNamespaceURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-                        } else {
-                            log.warn(
-                                    "MailWorker found a message other than text/xml or application/soap+xml");
+                        if (part.getContentType().indexOf(SOAP12Constants.SOAP_12_CONTENT_TYPE)> -1) {
+                            TransportUtils.processContentTypeForAction(part.getContentType(),msgContext);
                         }
-
                         InputStream inputStream = part.getInputStream();
-                        StAXBuilder builder = BuilderUtil.getSOAPBuilder(inputStream, soapNamespaceURI);
-                        SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
+                        SOAPEnvelope envelope  = TransportUtils.createSOAPMessage(msgContext,inputStream, part.getContentType());
                         msgContext.setEnvelope(envelope);
                     }
                 }



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