You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ve...@apache.org on 2009/06/14 18:07:25 UTC

svn commit: r784579 - in /webservices/commons/trunk/modules/transport/modules: base/src/main/java/org/apache/axis2/transport/base/ base/src/main/java/org/apache/axis2/transport/base/datagram/ jms/src/main/java/org/apache/axis2/transport/jms/ mail/src/m...

Author: veithen
Date: Sun Jun 14 16:07:24 2009
New Revision: 784579

URL: http://svn.apache.org/viewvc?rev=784579&view=rev
Log:
Eliminated some duplicate code and solved WSCOMMONS-475 for all transports based on AbstractTransportListener(Ex).

Modified:
    webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/ProtocolEndpoint.java
    webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/ProcessPacketTask.java
    webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java
    webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java

Modified: webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/ProtocolEndpoint.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/ProtocolEndpoint.java?rev=784579&r1=784578&r2=784579&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/ProtocolEndpoint.java (original)
+++ webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/ProtocolEndpoint.java Sun Jun 14 16:07:24 2009
@@ -18,10 +18,16 @@
 */
 package org.apache.axis2.transport.base;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.ParameterInclude;
+import org.apache.axis2.description.WSDL2Constants;
 
 /**
  * Describes a protocol specific endpoint. This might be a TCP/UDP port, a mail account,
@@ -83,4 +89,28 @@
      * @see org.apache.axis2.transport.TransportListener#getEPRsForService(String, String)
      */
     public abstract EndpointReference[] getEndpointReferences(String ip) throws AxisFault;
+
+    public MessageContext createMessageContext() throws AxisFault {
+        MessageContext msgContext = listener.createMessageContext();
+        
+        if (service != null) {
+            msgContext.setAxisService(service);
+    
+            // find the operation for the message, or default to one
+            Parameter operationParam = service.getParameter(BaseConstants.OPERATION_PARAM);
+            QName operationQName = (
+                operationParam != null ?
+                    BaseUtils.getQNameFromString(operationParam.getValue()) :
+                    BaseConstants.DEFAULT_OPERATION);
+    
+            AxisOperation operation = service.getOperation(operationQName);
+            if (operation != null) {
+                msgContext.setAxisOperation(operation);
+                msgContext.setAxisMessage(
+                        operation.getMessage(WSDL2Constants.MESSAGE_LABEL_IN));
+                msgContext.setSoapAction("urn:" + operation.getName().getLocalPart());
+            }
+        }
+        return msgContext;
+    }
 }

Modified: webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/ProcessPacketTask.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/ProcessPacketTask.java?rev=784579&r1=784578&r2=784579&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/ProcessPacketTask.java (original)
+++ webservices/commons/trunk/modules/transport/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/ProcessPacketTask.java Sun Jun 14 16:07:24 2009
@@ -51,8 +51,7 @@
         MetricsCollector metrics = endpoint.getMetrics();
         try {
             InputStream inputStream = new ByteArrayInputStream(data, 0, length);
-            MessageContext msgContext = endpoint.getListener().createMessageContext();
-            msgContext.setAxisService(endpoint.getService());
+            MessageContext msgContext = endpoint.createMessageContext();
             SOAPEnvelope envelope = TransportUtils.createSOAPMessage(msgContext, inputStream, endpoint.getContentType());
             msgContext.setEnvelope(envelope);
             AxisEngine.receive(msgContext);

Modified: webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java?rev=784579&r1=784578&r2=784579&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java (original)
+++ webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java Sun Jun 14 16:07:24 2009
@@ -17,19 +17,16 @@
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
-import org.apache.axis2.transport.base.BaseUtils;
 import org.apache.axis2.transport.base.BaseConstants;
 import org.apache.axis2.transport.base.MetricsCollector;
 import org.apache.axis2.transport.jms.ctype.ContentTypeInfo;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.context.MessageContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import javax.jms.*;
-import javax.xml.namespace.QName;
 import javax.transaction.UserTransaction;
 
 /**
@@ -155,7 +152,7 @@
     private boolean processThoughEngine(Message message, UserTransaction ut)
         throws JMSException, AxisFault {
 
-        MessageContext msgContext = jmsListener.createMessageContext();
+        MessageContext msgContext = endpoint.createMessageContext();
 
         // set the JMS Message ID as the Message ID of the MessageContext
         try {
@@ -166,20 +163,6 @@
         String soapAction = JMSUtils.getProperty(message, BaseConstants.SOAPACTION);
 
         AxisService service = endpoint.getService();
-        msgContext.setAxisService(service);
-
-        // find the operation for the message, or default to one
-        Parameter operationParam = service.getParameter(BaseConstants.OPERATION_PARAM);
-        QName operationQName = (
-            operationParam != null ?
-                BaseUtils.getQNameFromString(operationParam.getValue()) :
-                BaseConstants.DEFAULT_OPERATION);
-
-        AxisOperation operation = service.getOperation(operationQName);
-        if (operation != null) {
-            msgContext.setAxisOperation(operation);
-            msgContext.setSoapAction("urn:" + operation.getName().getLocalPart());
-        }
 
         ContentTypeInfo contentTypeInfo =
             endpoint.getContentTypeRuleSet().getContentTypeInfo(message);

Modified: webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java?rev=784579&r1=784578&r2=784579&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java (original)
+++ webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java Sun Jun 14 16:07:24 2009
@@ -24,31 +24,23 @@
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.AxisOperation;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.description.ParameterInclude;
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.transport.TransportUtils;
 import org.apache.axis2.transport.RequestResponseTransport;
 import org.apache.axis2.transport.base.AbstractPollingTransportListener;
 import org.apache.axis2.transport.base.BaseConstants;
-import org.apache.axis2.transport.base.BaseUtils;
 import org.apache.axis2.transport.base.ManagementSupport;
-import org.apache.axis2.transport.base.ParamUtils;
 import org.apache.axis2.transport.base.event.TransportErrorListener;
 import org.apache.axis2.transport.base.event.TransportErrorSource;
 import org.apache.axis2.transport.base.event.TransportErrorSourceSupport;
 
 import javax.mail.*;
-import javax.mail.internet.AddressException;
 import javax.mail.internet.ContentType;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.ParseException;
-import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 
 import java.io.IOException;
@@ -483,7 +475,7 @@
             log.debug("Processing message as Content-Type : " + contentType);
         }
 
-        MessageContext msgContext = createMessageContext(entry);
+        MessageContext msgContext = entry.createMessageContext();
 
         // Extract the charset encoding from the configured content type and
         // set the CHARACTER_SET_ENCODING property as e.g. SOAPBuilder relies on this.
@@ -623,30 +615,6 @@
         }
     }
 
-    // TODO: the same code is used by other transports; the method should be moved to Abstract(Polling)TransportListener
-    private MessageContext createMessageContext(PollTableEntry entry) throws AxisFault {
-        MessageContext msgContext = createMessageContext();
-        
-        AxisService service = entry.getService();
-        if (service != null) {
-            msgContext.setAxisService(service);
-    
-            // find the operation for the message, or default to one
-            Parameter operationParam = service.getParameter(BaseConstants.OPERATION_PARAM);
-            QName operationQName = (
-                operationParam != null ?
-                    BaseUtils.getQNameFromString(operationParam.getValue()) :
-                    BaseConstants.DEFAULT_OPERATION);
-    
-            AxisOperation operation = service.getOperation(operationQName);
-            if (operation != null) {
-                msgContext.setAxisOperation(operation);
-                msgContext.setSoapAction("urn:" + operation.getName().getLocalPart());
-            }
-        }
-        return msgContext;
-    }
-
     private MailOutTransportInfo buildOutTransportInfo(Message message,
             PollTableEntry entry) throws MessagingException {
         MailOutTransportInfo outInfo = new MailOutTransportInfo(entry.getEmailAddress());