Author: hiranya
Date: Tue Jul 16 21:04:58 2013
New Revision: 1503887
URL: http://svn.apache.org/r1503887
Log:
SYNAPSE-777 Applying the patch from Dave to set a message ID on the message
context instances created by SynapseAxisServlet.
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseAxisServlet.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseAxisServlet.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseAxisServlet.java?rev=1503887&r1=1503886&r2=1503887&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseAxisServlet.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseAxisServlet.java
Tue Jul 16 21:04:58 2013
@@ -18,7 +18,9 @@
*/
package org.apache.synapse.core.axis2;
+import org.apache.axiom.util.UIDGenerator;
import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.MessageContext;
import org.apache.axis2.transport.http.AxisServlet;
import org.apache.axis2.transport.http.ListingAgent;
import org.apache.synapse.ServerManager;
@@ -27,6 +29,8 @@ import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
/**
* Extends axis2 servlet functionality so that avoid starting listeners again
@@ -59,4 +63,21 @@ public class SynapseAxisServlet extends
public void initContextRoot(HttpServletRequest req) {
this.configContext.setContextRoot("/");
}
+
+ /**
+ * The Axis servlet does not generate a messageId for a new
MessageContext. This is needed
+ * at least by the Clone and IterateMediator in order to generate
correlationIds that can be
+ * picked up by the AggregateMediator (when no correlation expression is
provided).
+ *
+ * @see
org.apache.axis2.transport.http.AxisServlet#createMessageContext(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse, boolean)
+ */
+ protected MessageContext createMessageContext(HttpServletRequest request,
+ HttpServletResponse response,
+ boolean invocationType)
throws IOException {
+ MessageContext msgCtx = super.createMessageContext(request, response,
invocationType);
+ // Set a message ID as Axis2 doesn't seem to set one.
+ // Message ID is required for certain Synapse mediators.
+ msgCtx.setMessageID(UIDGenerator.generateURNString());
+ return msgCtx;
+ }
}