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