You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/05/03 18:25:03 UTC
svn commit: r653093 - in
/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport:
base/BaseUtils.java vfs/VFSTransportSender.java
Author: veithen
Date: Sat May 3 09:25:02 2008
New Revision: 653093
URL: http://svn.apache.org/viewvc?rev=653093&view=rev
Log:
SYNAPSE-261: Moved MessageFormatter selection logic to a new method in BaseUtils so that it can be reused.
Modified:
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportSender.java
Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java?rev=653093&r1=653092&r2=653093&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java Sat May 3 09:25:02 2008
@@ -25,7 +25,11 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.builder.BuilderUtil;
+import org.apache.axis2.transport.MessageFormatter;
+import org.apache.axis2.transport.TransportUtils;
import org.apache.axis2.transport.http.HTTPTransportUtils;
+import org.apache.synapse.format.BinaryFormatter;
+import org.apache.synapse.format.PlainTextFormatter;
import org.apache.synapse.transport.vfs.PollTableEntry;
import org.apache.axis2.context.MessageContext;
import org.apache.commons.lang.StringUtils;
@@ -140,6 +144,33 @@
}
return format;
}
+
+ /**
+ * Get the MessageFormatter for the given message.
+ * @param msgContext the axis message context
+ * @return the MessageFormatter to be used
+ */
+ public static MessageFormatter getMessageFormatter(MessageContext msgContext) {
+ // check the first element of the SOAP body, do we have content wrapped using the
+ // default wrapper elements for binary (BaseConstants.DEFAULT_BINARY_WRAPPER) or
+ // text (BaseConstants.DEFAULT_TEXT_WRAPPER) ? If so, select the appropriate
+ // message formatter directly ...
+ OMElement firstChild = msgContext.getEnvelope().getBody().getFirstElement();
+ if (firstChild != null) {
+ if (BaseConstants.DEFAULT_BINARY_WRAPPER.equals(firstChild.getQName())) {
+ return new BinaryFormatter();
+ } else if (BaseConstants.DEFAULT_TEXT_WRAPPER.equals(firstChild.getQName())) {
+ return new PlainTextFormatter();
+ }
+ }
+
+ // ... otherwise, let Axis choose the right message formatter:
+ try {
+ return TransportUtils.getMessageFormatter(msgContext);
+ } catch (AxisFault axisFault) {
+ throw new BaseTransportException("Unable to get the message formatter to use");
+ }
+ }
public static long getMinPollTime(List pollTable) {
Iterator iter = pollTable.iterator();
Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportSender.java?rev=653093&r1=653092&r2=653093&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportSender.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportSender.java Sat May 3 09:25:02 2008
@@ -18,12 +18,9 @@
*/
package org.apache.synapse.transport.vfs;
-import org.apache.synapse.format.BinaryFormatter;
-import org.apache.synapse.format.PlainTextFormatter;
import org.apache.synapse.transport.base.*;
import org.apache.axis2.transport.OutTransportInfo;
import org.apache.axis2.transport.MessageFormatter;
-import org.apache.axis2.transport.TransportUtils;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.AxisFault;
@@ -33,7 +30,6 @@
import org.apache.commons.io.output.CountingOutputStream;
import org.apache.commons.logging.LogFactory;
import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.OMElement;
import java.io.IOException;
@@ -166,32 +162,7 @@
}
private void populateResponseFile(FileObject responseFile, MessageContext msgContext) throws AxisFault {
- MessageFormatter messageFormatter = null;
-
- // check the first element of the SOAP body, do we have content wrapped using the
- // default wrapper elements for binary (BaseConstants.DEFAULT_BINARY_WRAPPER) or
- // text (BaseConstants.DEFAULT_TEXT_WRAPPER) ? If so, select the appropriate
- // message formatter directly ...
- OMElement firstChild = msgContext.getEnvelope().getBody().getFirstElement();
- if (firstChild != null) {
- if (BaseConstants.DEFAULT_BINARY_WRAPPER.equals(firstChild.getQName())) {
- messageFormatter = new BinaryFormatter();
- } else if (BaseConstants.DEFAULT_TEXT_WRAPPER.equals(firstChild.getQName())) {
- messageFormatter = new PlainTextFormatter();
- }
- }
-
- // ... otherwise, let Axis choose the right message formatter:
- if (messageFormatter == null) {
- try {
- messageFormatter = TransportUtils.getMessageFormatter(msgContext);
- } catch (AxisFault axisFault) {
- metrics.incrementFaultsSending();
- throw new BaseTransportException("Unable to get the message formatter to use");
- }
- }
-
- // Write the message to the file using the selected message formatter
+ MessageFormatter messageFormatter = BaseUtils.getMessageFormatter(msgContext);
OMOutputFormat format = BaseUtils.getOMOutputFormat(msgContext);
try {
CountingOutputStream os = new CountingOutputStream(responseFile.getContent().getOutputStream());