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());