You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ch...@apache.org on 2007/02/13 17:58:15 UTC

svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Author: chamikara
Date: Tue Feb 13 08:58:14 2007
New Revision: 507097

URL: http://svn.apache.org/viewvc?view=rev&rev=507097
Log:
changed AckRequest, LastMessage and TerminateSequence ActionMappings to the RMInOutOperation. Having them as InOnly caused 
the response to come with 202 in the Servlet case.

Changed the places where we create contexts to use the ContextFactory.

Modified:
    webservices/sandesha/trunk/java/config/client_axis2.xml
    webservices/sandesha/trunk/java/config/module.xml
    webservices/sandesha/trunk/java/config/server_axis2.xml
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java

Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml?view=diff&rev=507097&r1=507096&r2=507097
==============================================================================
--- webservices/sandesha/trunk/java/config/client_axis2.xml (original)
+++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb 13 08:58:14 2007
@@ -96,6 +96,7 @@
                      class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
         <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+        <!-- <parameter name="OmitSOAP12Action" locked="false">true</parameter> -->
     </transportSender>
     <transportSender name="https"
                      class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

Modified: webservices/sandesha/trunk/java/config/module.xml
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/config/module.xml?view=diff&rev=507097&r1=507096&r2=507097
==============================================================================
--- webservices/sandesha/trunk/java/config/module.xml (original)
+++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13 08:58:14 2007
@@ -40,14 +40,10 @@
         <messageReceiver class="org.apache.sandesha2.msgreceivers.RMMessageReceiver"/>
         
         <!-- namespaces for the 2005-02 spec -->
-        <actionMapping>http://schemas.xmlsoap.org/ws/2005/02/rm/TerminateSequence</actionMapping>
         <actionMapping>http://schemas.xmlsoap.org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
-        <actionMapping>http://schemas.xmlsoap.org/ws/2005/02/rm/AckRequested</actionMapping>
-        <actionMapping>http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage</actionMapping>
 
         <!-- namespaces for the 2006-08 spec -->
         <actionMapping>http://docs.oasis-open.org/ws-rx/wsrm/200608/SequenceAcknowledgement</actionMapping>
-        <actionMapping>http://docs.oasis-open.org/ws-rx/wsrm/200608/AckRequested</actionMapping>
      </operation>
  
      <operation name="RMInOutOperation" mep="http://www.w3.org/2006/01/wsdl/in-out">
@@ -55,7 +51,17 @@
         
         <!-- namespaces for the 2005-02 spec -->
         <actionMapping>http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence</actionMapping>
-
+        <actionMapping>http://schemas.xmlsoap.org/ws/2005/02/rm/AckRequested</actionMapping>
+        
+        <!--  For interoparability perposes. Some WSRM implementations tend to send this as the LastMessage, 
+        	  replied with an ack -->
+        <actionMapping>http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage</actionMapping>
+        <actionMapping>http://docs.oasis-open.org/ws-rx/wsrm/200608/AckRequested</actionMapping>
+        
+        <!--  TerminateSequence works as a InOut in RM 1.0 anonymous scenario -->
+        <actionMapping>http://schemas.xmlsoap.org/ws/2005/02/rm/TerminateSequence</actionMapping>
+        
+        
         <!-- namespaces for the 2006-08 spec -->
         <actionMapping>http://docs.oasis-open.org/ws-rx/wsrm/200608/CreateSequence</actionMapping>
         <actionMapping>http://docs.oasis-open.org/ws-rx/wsrm/200608/CloseSequence</actionMapping>

Modified: webservices/sandesha/trunk/java/config/server_axis2.xml
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml?view=diff&rev=507097&r1=507096&r2=507097
==============================================================================
--- webservices/sandesha/trunk/java/config/server_axis2.xml (original)
+++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb 13 08:58:14 2007
@@ -97,6 +97,7 @@
                      class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
         <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+        <!-- <parameter name="OmitSOAP12Action" locked="false">true</parameter> -->
     </transportSender>
     <transportSender name="https"
                      class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java?view=diff&rev=507097&r1=507096&r2=507097
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java Tue Feb 13 08:58:14 2007
@@ -30,6 +30,7 @@
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ContextFactory;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
 import org.apache.axis2.context.ServiceContext;
@@ -184,8 +185,10 @@
 			if (rmMsgCtx.getMessageContext().getOperationContext() == null) {
 				// operation context will be null when doing in a GLOBAL
 				// handler.
+				
 				ServiceContext serviceCtx = msgContext.getServiceContext();
-				OperationContext opCtx = new OperationContext(ackOperation, serviceCtx);
+				OperationContext opCtx =  ContextFactory.createOperationContext(ackOperation, serviceCtx);
+
 				rmMsgCtx.getMessageContext().setOperationContext(opCtx);
 			}
 
@@ -292,8 +295,11 @@
 				getRMVersion(),
 				getMsgContext().getAxisService());
 		getMsgContext().setAxisOperation(ackOperation);
+
 		ServiceContext serviceCtx = getMsgContext().getServiceContext();
-		OperationContext opcontext = new OperationContext(ackOperation, serviceCtx);
+		OperationContext opcontext = ContextFactory.createOperationContext(ackOperation, serviceCtx);
+		opcontext.setParent(getMsgContext().getServiceContext());
+
 		getConfigurationContext().registerOperationContext(ackRequestRMMsg.getMessageId(), opcontext);
 		getMsgContext().setOperationContext(opcontext);
 		

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java?view=diff&rev=507097&r1=507096&r2=507097
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java Tue Feb 13 08:58:14 2007
@@ -24,6 +24,7 @@
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ContextFactory;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
 import org.apache.axis2.description.AxisOperation;
@@ -172,7 +173,10 @@
 				rmMsgCtx.getMessageContext().getAxisService());
 		getMsgContext().setAxisOperation(closeOperation);
 
-		OperationContext opcontext = new OperationContext(closeOperation, getMsgContext().getServiceContext());
+
+		OperationContext opcontext = ContextFactory.createOperationContext(closeOperation, getMsgContext().getServiceContext());
+		opcontext.setParent(getMsgContext().getServiceContext());
+
 		getConfigurationContext().registerOperationContext(rmMsgCtx.getMessageId(),opcontext);
 		getMsgContext().setOperationContext(opcontext);
 		

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java?view=diff&rev=507097&r1=507096&r2=507097
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java Tue Feb 13 08:58:14 2007
@@ -7,8 +7,10 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ContextFactory;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.context.OperationContextFactory;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.TransportOutDescription;
 import org.apache.commons.logging.Log;
@@ -144,7 +146,9 @@
 		OperationContext context = pollMessage.getMessageContext().getOperationContext();
 		if(context == null) {
 			AxisOperation oldOperation = returnMessage.getAxisOperation();
-			context = new OperationContext(oldOperation, returnMessage.getServiceContext());
+
+			context = ContextFactory.createOperationContext(oldOperation, returnMessage.getServiceContext()); //new OperationContext(oldOperation);
+
 			context.addMessageContext(pollMessage.getMessageContext());
 			pollMessage.getMessageContext().setOperationContext(context);
 		}

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java?view=diff&rev=507097&r1=507096&r2=507097
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java Tue Feb 13 08:58:14 2007
@@ -23,6 +23,7 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ContextFactory;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
 import org.apache.axis2.context.OperationContextFactory;
@@ -366,9 +367,10 @@
 				Sandesha2Constants.MessageTypes.TERMINATE_SEQ,
 				rmMsgCtx.getRMSpecVersion(),
 				getMsgContext().getAxisService());
-		OperationContext opcontext = OperationContextFactory
-				.createOperationContext(
-						WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp, getMsgContext().getServiceContext());
+	
+		OperationContext opcontext = ContextFactory.createOperationContext(terminateOp, getMsgContext().getServiceContext());
+		opcontext.setParent(getMsgContext().getServiceContext());
+
 		getConfigurationContext().registerOperationContext(rmMsgCtx.getMessageId(),	opcontext);
 
 		getMsgContext().setOperationContext(opcontext);

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java?view=diff&rev=507097&r1=507096&r2=507097
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java Tue Feb 13 08:58:14 2007
@@ -31,6 +31,7 @@
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ContextFactory;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
 import org.apache.axis2.context.ServiceContext;
@@ -354,8 +355,9 @@
 			// operation context will be null when doing in a GLOBAL
 			// handler.
 			AxisOperation op = ackMsgContext.getAxisOperation();
+
 			ServiceContext serviceCtx = ackMsgContext.getServiceContext();
-			OperationContext opCtx = new OperationContext(op, serviceCtx);
+			OperationContext opCtx = ContextFactory.createOperationContext(op, ackRMMsgContext.getMessageContext().getServiceContext());
 			ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
 		}
 

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java?view=diff&rev=507097&r1=507096&r2=507097
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java Tue Feb 13 08:58:14 2007
@@ -11,6 +11,7 @@
 import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ContextFactory;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
 import org.apache.axis2.context.ServiceContext;
@@ -522,9 +523,11 @@
 					OperationContext responseMsgOpCtx = requestMsgOpCtx;
 					if (requestMsgOpCtx.getAxisOperation().getMessageReceiver() == null) {
 						// Generate a new RM In Only operation
+
 						ServiceContext serviceCtx = responseMessageContext.getServiceContext();
 						AxisOperation op = msgCtx.getAxisService().getOperation(new QName("RMInOnlyOperation"));
-						responseMsgOpCtx = new OperationContext(op, serviceCtx);					
+						responseMsgOpCtx = ContextFactory.createOperationContext (op, serviceCtx);					
+
 					}
 					
 					responseMessageContext.setOperationContext(responseMsgOpCtx);



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: [Axis2] Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Nicholas L Gallardo <nl...@us.ibm.com>.
+1 based on the comments in the JIRA.

Regards,

Nicholas Gallardo
WebSphere  -  WebServices Development
nlgallar@us.ibm.com
Phone: 512-838-1182
Building: 901 / 5G-016



Matthew Lovett <ML...@uk.ibm.com> 
02/15/2007 09:16 AM
Please respond to
axis-dev@ws.apache.org


To
sandesha-dev@ws.apache.org, axis-dev@ws.apache.org
cc

Subject
[Axis2] Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: 
config/ src/org/apache/sandesha2/msgprocessors/ 
src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/






Hi all,

Chamikara and I have been discussing a Sandesha issue on sandesha-dev, and 

he's proposed a solution that needs a new Axis2 constant. I think that's 
probably the way to go, so I've opened a Jira:
https://issues.apache.org/jira/browse/AXIS2-2191

Please let me know if you have any comments, I hope to get a patch 
together soon.

Matt

"Chamikara Jayalath" <ch...@gmail.com> wrote on 15/02/2007 12:44:21:

> Hi Matt,
> 
> One way may be to introduce an property which if set causes the 
> optimization to be skipped. We can set this at the GlobalInHandler.
> 
> Chamikara
> 
> 

> On 2/15/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
> Hi Chamikara,
> 
> I see what you are trying to avoid, but as you agreed - there are cases
> where this doesn't work. 2 examples:
> An in-only MEP with an anonymous acksTo (where we need to keep the
> backchannel) 
> An in-out MEP with a non-anonymous replyTo, but an anonymous acksTo
> (again, we need the backchannel)
> 
> I think perhaps the code in the DispatchPhase is jumping the gun a bit. 
I
> think that the RM Phase (e.g . our SandeshaInHandler) needs to decide if 

it 
> needs the transport, before this optimization can run. Perhaps the right
> thing to do is to move this block of logic into some point a little 
later
> on?
> 
> As for moving the RM ack logic earlier, e.g. up to the GlobalInHandler, 
> I'm not sure if we can do that. I recently moved some of the logic from
> the global handler down into the in handler becase it needed the 
operation
> to have been resolved. If we did store the inbound message here (and 
send 
> the ack) then I think that we'd need to modify the code so that it 
always
> uses an invoker, and do most of the processing downstream from there.
> Perhaps worth thinking about.
> 
> Thanks
> 
> Matt
> 
> "Chamikara Jayalath" <ch...@gmail.com> wrote on 14/02/2007 
23:36:53:
> 
> > Hi Matt, 
> 
> > On 2/14/07, Matthew Lovett < MLOVETT@uk.ibm.com> wrote:
> > Hi Chamikara,
> >
> > Can you explain the changes to the module.xml a bit for me? I'm afraid
> > that I don't quite follow your reasoning. Here's why:
> > 
> > If we are trying to change the server-side behaviour,
> >
> > Yes. Its the sever side that I'm trying to fix.
> >
> > that implies that
> > the server-side-servlet serving the request is confused by the "1-way" 


> ops
> > that produce a response. If that is the case then we haven't solved 
the
> > whole issue, as a user's 1-way op could result in an ackMessage that
> needs
> > to flow on the backchannel, and presumably the servlet would be just 
as 
> > confused by this! I think the only place to fix that would be in the
> > servlet itself, and that means that we could leave the module.xml 
alone
> -
> > with definitions that follow the spec.
> >
> >
> > The reason for this fix was the lines 71-91 of the DiapatchPhase
> > class. For InOnly messages the  transport headers get written (For
> > e.g. HTTP 202) before the messages reach our handler. Because of 
> > this whatever the response we write goes with the HTTP 202 response
> > code and that get ignored by the Axis2 client side.
> > The RequestResponseTransport.acknowledgeMessage() method hs been
> > fully implemented only for the Servlet case. So this is not visible 
> > in test cases (i.e. with SAS).
> >
> > Didn't get what u meant by 'definitions that follow the spec'.
> > AckRequested is actually an InOut message and it is correct to move
> > it there. Yes TerminateSequence is a problem, but we hv a scenario 
> > where it works as InOut.
> > As for the LastMessage, the latest interops with Msft showed that it
> > comes without a MessageID, so I guessed that it hs to be moved back
> > to the InOnly group.
> > 
> > Yes, the problem is still there for InOnly messages that needs an
> > Ack. May be we should do early acking at the GlobalInHandler. Or is
> > there a better way ?
> >
> > Chamikara
> >
> > 
> > If it isn't the service side, but actually the client side that we are
> > trying to fix, then the module.xml is not as relevant as the code in
> > SpecSpecificConstants::getWSRMOperationType. However, you didn't 
change 
> > that, so I'm assuming that it is server side that we need to worry
> about.
> >
> > Do you actually have a test case that is impacted by the module.xml
> change
> > you put in?
> >
> > Thanks 
> >
> > Matt
> >
> > chamikara@apache.org wrote on 13/02/2007 16:58:15:
> >
> > > Author: chamikara 
> > > Date: Tue Feb 13 08:58:14 2007
> > > New Revision: 507097 
> > >
> > > URL: http://svn.apache.org/viewvc?view=rev&rev=507097 
> > > Log:
> > > changed AckRequest, LastMessage and TerminateSequence ActionMappings 


> > > to the RMInOutOperation. Having them as InOnly caused
> > > the response to come with 202 in the Servlet case.
> > >
> > > Changed the places where we create contexts to use the 
ContextFactory. 
> > >
> > > Modified:
> > >     webservices/sandesha/trunk/java/config/client_axis2.xml
> > >     webservices/sandesha/trunk/java/config/module.xml
> > >     webservices/sandesha/trunk/java/config/server_axis2.xml 
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > >
> > > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml? 
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/client_axis2.xml 
(original) 
> 
> > > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > > 13 08:58:14 2007
> > > @@ -96,6 +96,7 @@
> > >                       class="org.apache.axis2.transport.http .
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL"
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding" 
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action"
> > > locked="false">true</parameter> -->
> > >      </transportSender> 
> > >      <transportSender name="https"
> > >                       class="org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified: webservices/sandesha/trunk/java/config/module.xml 
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097 
> > > 
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13 
> > 08:58:14 2007
> > > @@ -40,14 +40,10 @@
> > >          <messageReceiver class=" org.apache.sandesha2.msgreceivers.
> > > RMMessageReceiver"/>
> > >
> > >          <!-- namespaces for the 2005-02 spec --> 
> > > -        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping> 
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/AckRequested</actionMapping> 
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/LastMessage</actionMapping> 
> > >
> > >          <!-- namespaces for the 2006-08 spec --> 
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/SequenceAcknowledgement</actionMapping> 
> > > -        <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping>
> > >       </operation> 
> > >
> > >       <operation name="RMInOutOperation" mep=" http://www.w3.
> > > org/2006/01/wsdl/in-out">
> > > @@ -55,7 +51,17 @@
> > >
> > >          <!-- namespaces for the 2005-02 spec --> 
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/CreateSequence</actionMapping>
> > > -
> > > +        <actionMapping> http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/AckRequested</actionMapping>
> > > +
> > > +        <!--  For interoparability perposes. Some WSRM
> > > implementations tend to send this as the LastMessage, 
> > +
> > > replied with an ack -->
> > > +        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/LastMessage</actionMapping>
> > > +        <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping> 
> > > +
> > > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > > anonymous scenario -->
> > > +        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > > +
> > > +
> > >          <!-- namespaces for the 2006-08 spec -->
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CreateSequence</actionMapping> 
> > >          <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CloseSequence</actionMapping> 
> > >
> > > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml 
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml? 
> > > view=diff&rev=507097&r1=507096&r2=507097
> > > 
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/server_axis2.xml 
(original)
> > > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb 
> > > 13 08:58:14 2007
> > > @@ -97,6 +97,7 @@
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL" 
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding"
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action" 
> > > locked="false">true</parameter> -->
> > >      </transportSender>
> > >      <transportSender name="https"
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097 
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -30,6 +30,7 @@ 
> > >  import org.apache.axis2.Constants ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -184,8 +185,10 @@ 
> > >           if (rmMsgCtx.getMessageContext().getOperationContext() ==
> > null) {
> > >              // operation context will be null when doing in a 
GLOBAL
> > >              // handler.
> > > +
> > >              ServiceContext serviceCtx =
> msgContext.getServiceContext();
> > > -            OperationContext opCtx = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +            OperationContext opCtx =  ContextFactory. 
> > > createOperationContext(ackOperation, serviceCtx);
> > > +
> > >              rmMsgCtx.getMessageContext 
().setOperationContext(opCtx);
> > >           }
> > >
> > > @@ -292,8 +295,11 @@ 
> > >              getRMVersion(),
> > >              getMsgContext().getAxisService());
> > >        getMsgContext().setAxisOperation(ackOperation);
> > > +
> > >        ServiceContext serviceCtx = 
> getMsgContext().getServiceContext();
> > > -      OperationContext opcontext = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(ackOperation, serviceCtx); 
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().
> > > registerOperationContext(ackRequestRMMsg.getMessageId (), 
opcontext); 
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -24,6 +24,7 @@ 
> > >  import org.apache.axiom.soap.SOAPFactory ;
> > >  import org.apache.axis2.AxisFault;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.description.AxisOperation;
> > > @@ -172,7 +173,10 @@ 
> > >              rmMsgCtx.getMessageContext().getAxisService());
> > >        getMsgContext().setAxisOperation(closeOperation);
> > >
> > > -      OperationContext opcontext = new
> > > OperationContext(closeOperation, 
getMsgContext().getServiceContext()); 
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(closeOperation,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext()); 
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),opcontext);
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > > URL: http://svn.apache .
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > > 
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -7,8 +7,10 @@ 
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > > +import org.apache.axis2.context.OperationContextFactory;
> > >  import org.apache.axis2.description.AxisOperation;
> > >  import org.apache.axis2.description.TransportOutDescription ;
> > >  import org.apache.commons.logging.Log;
> > > @@ -144,7 +146,9 @@
> > >        OperationContext context = pollMessage.getMessageContext().
> > > getOperationContext();
> > >        if(context == null) {
> > >           AxisOperation oldOperation =
> returnMessage.getAxisOperation();
> > > -         context = new OperationContext(oldOperation, 
> > > returnMessage.getServiceContext());
> > > +
> > > +         context = ContextFactory.
> > > createOperationContext(oldOperation, returnMessage.
> > > getServiceContext()); //new OperationContext(oldOperation); 
> > > +
> > > context.addMessageContext(pollMessage.getMessageContext());
> > > pollMessage.getMessageContext().setOperationContext(context);
> > >        }
> > >
> > > Modified: 
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > > URL: http://svn.apache.
> > > 
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -23,6 +23,7 @@
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.OperationContextFactory ;
> > > @@ -366,9 +367,10 @@
> > >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ ,
> > >              rmMsgCtx.getRMSpecVersion(),
> > >              getMsgContext().getAxisService()); 
> > > -      OperationContext opcontext = OperationContextFactory
> > > -            .createOperationContext(
> > > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > > getMsgContext().getServiceContext()); 
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(terminateOp,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext()); 
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),   opcontext);
> > >
> > >        getMsgContext().setOperationContext(opcontext); 
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > > URL: http://svn.apache .
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java (original) 
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -31,6 +31,7 @@
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -354,8 +355,9 @@ 
> > >           // operation context will be null when doing in a GLOBAL
> > >           // handler.
> > >           AxisOperation op = ackMsgContext.getAxisOperation();
> > > +
> > >           ServiceContext serviceCtx = 
> ackMsgContext.getServiceContext();
> > > -         OperationContext opCtx = new OperationContext(op,
> serviceCtx);
> > > +         OperationContext opCtx = ContextFactory.
> > > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > > getServiceContext());
> > > ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
> > >        }
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -11,6 +11,7 @@ 
> > >  import org.apache.axis2.addressing.AddressingConstants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext ;
> > > @@ -522,9 +523,11 @@
> > >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> > >                 if (requestMsgOpCtx.getAxisOperation().
> > > getMessageReceiver() == null) { 
> > >                    // Generate a new RM In Only operation
> > > +
> > >                    ServiceContext serviceCtx =
> > > responseMessageContext.getServiceContext();
> > >                    AxisOperation op = msgCtx.getAxisService().
> > > getOperation(new QName("RMInOnlyOperation"));
> > > -                  responseMsgOpCtx = new OperationContext(op,
> > > serviceCtx);
> > > +                  responseMsgOpCtx = ContextFactory. 
> > > createOperationContext (op, serviceCtx);
> > > +
> > >                 }
> > >
> > > responseMessageContext.setOperationContext(responseMsgOpCtx);
> > >
> > >
> > > 
> > > 
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> > >
> >
> >
> >
> >
> >
> >
> > Unless stated otherwise above: 
> > IBM United Kingdom Limited - Registered in England and Wales with 
number
> > 741598.
> > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
> 3AU
> >
> >
> >
> >
> > 
> 
> 
> 
> 
> 
> 
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
3AU 
> 
> 
> 

> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org



[Axis2] Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Matthew Lovett <ML...@uk.ibm.com>.
Hi all,

Chamikara and I have been discussing a Sandesha issue on sandesha-dev, and 
he's proposed a solution that needs a new Axis2 constant. I think that's 
probably the way to go, so I've opened a Jira:
https://issues.apache.org/jira/browse/AXIS2-2191

Please let me know if you have any comments, I hope to get a patch 
together soon.

Matt

"Chamikara Jayalath" <ch...@gmail.com> wrote on 15/02/2007 12:44:21:

> Hi Matt,
> 
> One way may be to introduce an property which if set causes the 
> optimization to be skipped. We can set this at the GlobalInHandler.
> 
> Chamikara
> 
> 

> On 2/15/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
> Hi Chamikara,
> 
> I see what you are trying to avoid, but as you agreed - there are cases
> where this doesn't work. 2 examples:
> An in-only MEP with an anonymous acksTo (where we need to keep the
> backchannel) 
> An in-out MEP with a non-anonymous replyTo, but an anonymous acksTo
> (again, we need the backchannel)
> 
> I think perhaps the code in the DispatchPhase is jumping the gun a bit. 
I
> think that the RM Phase (e.g . our SandeshaInHandler) needs to decide if 
it 
> needs the transport, before this optimization can run. Perhaps the right
> thing to do is to move this block of logic into some point a little 
later
> on?
> 
> As for moving the RM ack logic earlier, e.g. up to the GlobalInHandler, 
> I'm not sure if we can do that. I recently moved some of the logic from
> the global handler down into the in handler becase it needed the 
operation
> to have been resolved. If we did store the inbound message here (and 
send 
> the ack) then I think that we'd need to modify the code so that it 
always
> uses an invoker, and do most of the processing downstream from there.
> Perhaps worth thinking about.
> 
> Thanks
> 
> Matt
> 
> "Chamikara Jayalath" <ch...@gmail.com> wrote on 14/02/2007 
23:36:53:
> 
> > Hi Matt, 
> 
> > On 2/14/07, Matthew Lovett < MLOVETT@uk.ibm.com> wrote:
> > Hi Chamikara,
> >
> > Can you explain the changes to the module.xml a bit for me? I'm afraid
> > that I don't quite follow your reasoning. Here's why:
> > 
> > If we are trying to change the server-side behaviour,
> >
> > Yes. Its the sever side that I'm trying to fix.
> >
> > that implies that
> > the server-side-servlet serving the request is confused by the "1-way" 

> ops
> > that produce a response. If that is the case then we haven't solved 
the
> > whole issue, as a user's 1-way op could result in an ackMessage that
> needs
> > to flow on the backchannel, and presumably the servlet would be just 
as 
> > confused by this! I think the only place to fix that would be in the
> > servlet itself, and that means that we could leave the module.xml 
alone
> -
> > with definitions that follow the spec.
> >
> >
> > The reason for this fix was the lines 71-91 of the DiapatchPhase
> > class. For InOnly messages the  transport headers get written (For
> > e.g. HTTP 202) before the messages reach our handler. Because of 
> > this whatever the response we write goes with the HTTP 202 response
> > code and that get ignored by the Axis2 client side.
> > The RequestResponseTransport.acknowledgeMessage() method hs been
> > fully implemented only for the Servlet case. So this is not visible 
> > in test cases (i.e. with SAS).
> >
> > Didn't get what u meant by 'definitions that follow the spec'.
> > AckRequested is actually an InOut message and it is correct to move
> > it there. Yes TerminateSequence is a problem, but we hv a scenario 
> > where it works as InOut.
> > As for the LastMessage, the latest interops with Msft showed that it
> > comes without a MessageID, so I guessed that it hs to be moved back
> > to the InOnly group.
> > 
> > Yes, the problem is still there for InOnly messages that needs an
> > Ack. May be we should do early acking at the GlobalInHandler. Or is
> > there a better way ?
> >
> > Chamikara
> >
> > 
> > If it isn't the service side, but actually the client side that we are
> > trying to fix, then the module.xml is not as relevant as the code in
> > SpecSpecificConstants::getWSRMOperationType. However, you didn't 
change 
> > that, so I'm assuming that it is server side that we need to worry
> about.
> >
> > Do you actually have a test case that is impacted by the module.xml
> change
> > you put in?
> >
> > Thanks 
> >
> > Matt
> >
> > chamikara@apache.org wrote on 13/02/2007 16:58:15:
> >
> > > Author: chamikara 
> > > Date: Tue Feb 13 08:58:14 2007
> > > New Revision: 507097 
> > >
> > > URL: http://svn.apache.org/viewvc?view=rev&rev=507097 
> > > Log:
> > > changed AckRequest, LastMessage and TerminateSequence ActionMappings 

> > > to the RMInOutOperation. Having them as InOnly caused
> > > the response to come with 202 in the Servlet case.
> > >
> > > Changed the places where we create contexts to use the 
ContextFactory. 
> > >
> > > Modified:
> > >     webservices/sandesha/trunk/java/config/client_axis2.xml
> > >     webservices/sandesha/trunk/java/config/module.xml
> > >     webservices/sandesha/trunk/java/config/server_axis2.xml 
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > >
> > > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml? 
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/client_axis2.xml 
(original) 
> 
> > > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > > 13 08:58:14 2007
> > > @@ -96,6 +96,7 @@
> > >                       class="org.apache.axis2.transport.http .
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL"
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding" 
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action"
> > > locked="false">true</parameter> -->
> > >      </transportSender> 
> > >      <transportSender name="https"
> > >                       class="org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified: webservices/sandesha/trunk/java/config/module.xml 
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097 
> > > 
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13 
> > 08:58:14 2007
> > > @@ -40,14 +40,10 @@
> > >          <messageReceiver class=" org.apache.sandesha2.msgreceivers.
> > > RMMessageReceiver"/>
> > >
> > >          <!-- namespaces for the 2005-02 spec --> 
> > > -        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping> 
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/AckRequested</actionMapping> 
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/LastMessage</actionMapping> 
> > >
> > >          <!-- namespaces for the 2006-08 spec --> 
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/SequenceAcknowledgement</actionMapping> 
> > > -        <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping>
> > >       </operation> 
> > >
> > >       <operation name="RMInOutOperation" mep=" http://www.w3.
> > > org/2006/01/wsdl/in-out">
> > > @@ -55,7 +51,17 @@
> > >
> > >          <!-- namespaces for the 2005-02 spec --> 
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/CreateSequence</actionMapping>
> > > -
> > > +        <actionMapping> http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/AckRequested</actionMapping>
> > > +
> > > +        <!--  For interoparability perposes. Some WSRM
> > > implementations tend to send this as the LastMessage, 
> > +
> > > replied with an ack -->
> > > +        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/LastMessage</actionMapping>
> > > +        <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping> 
> > > +
> > > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > > anonymous scenario -->
> > > +        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > > +
> > > +
> > >          <!-- namespaces for the 2006-08 spec -->
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CreateSequence</actionMapping> 
> > >          <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CloseSequence</actionMapping> 
> > >
> > > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml 
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml? 
> > > view=diff&rev=507097&r1=507096&r2=507097
> > > 
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/server_axis2.xml 
(original)
> > > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb 
> > > 13 08:58:14 2007
> > > @@ -97,6 +97,7 @@
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL" 
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding"
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action" 
> > > locked="false">true</parameter> -->
> > >      </transportSender>
> > >      <transportSender name="https"
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097 
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -30,6 +30,7 @@ 
> > >  import org.apache.axis2.Constants ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -184,8 +185,10 @@ 
> > >           if (rmMsgCtx.getMessageContext().getOperationContext() ==
> > null) {
> > >              // operation context will be null when doing in a 
GLOBAL
> > >              // handler.
> > > +
> > >              ServiceContext serviceCtx =
> msgContext.getServiceContext();
> > > -            OperationContext opCtx = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +            OperationContext opCtx =  ContextFactory. 
> > > createOperationContext(ackOperation, serviceCtx);
> > > +
> > >              rmMsgCtx.getMessageContext 
().setOperationContext(opCtx);
> > >           }
> > >
> > > @@ -292,8 +295,11 @@ 
> > >              getRMVersion(),
> > >              getMsgContext().getAxisService());
> > >        getMsgContext().setAxisOperation(ackOperation);
> > > +
> > >        ServiceContext serviceCtx = 
> getMsgContext().getServiceContext();
> > > -      OperationContext opcontext = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(ackOperation, serviceCtx); 
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().
> > > registerOperationContext(ackRequestRMMsg.getMessageId (), 
opcontext); 
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -24,6 +24,7 @@ 
> > >  import org.apache.axiom.soap.SOAPFactory ;
> > >  import org.apache.axis2.AxisFault;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.description.AxisOperation;
> > > @@ -172,7 +173,10 @@ 
> > >              rmMsgCtx.getMessageContext().getAxisService());
> > >        getMsgContext().setAxisOperation(closeOperation);
> > >
> > > -      OperationContext opcontext = new
> > > OperationContext(closeOperation, 
getMsgContext().getServiceContext()); 
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(closeOperation,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext()); 
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),opcontext);
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > > URL: http://svn.apache .
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > > 
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -7,8 +7,10 @@ 
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > > +import org.apache.axis2.context.OperationContextFactory;
> > >  import org.apache.axis2.description.AxisOperation;
> > >  import org.apache.axis2.description.TransportOutDescription ;
> > >  import org.apache.commons.logging.Log;
> > > @@ -144,7 +146,9 @@
> > >        OperationContext context = pollMessage.getMessageContext().
> > > getOperationContext();
> > >        if(context == null) {
> > >           AxisOperation oldOperation =
> returnMessage.getAxisOperation();
> > > -         context = new OperationContext(oldOperation, 
> > > returnMessage.getServiceContext());
> > > +
> > > +         context = ContextFactory.
> > > createOperationContext(oldOperation, returnMessage.
> > > getServiceContext()); //new OperationContext(oldOperation); 
> > > +
> > > context.addMessageContext(pollMessage.getMessageContext());
> > > pollMessage.getMessageContext().setOperationContext(context);
> > >        }
> > >
> > > Modified: 
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > > URL: http://svn.apache.
> > > 
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -23,6 +23,7 @@
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.OperationContextFactory ;
> > > @@ -366,9 +367,10 @@
> > >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ ,
> > >              rmMsgCtx.getRMSpecVersion(),
> > >              getMsgContext().getAxisService()); 
> > > -      OperationContext opcontext = OperationContextFactory
> > > -            .createOperationContext(
> > > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > > getMsgContext().getServiceContext()); 
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(terminateOp,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext()); 
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),   opcontext);
> > >
> > >        getMsgContext().setOperationContext(opcontext); 
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > > URL: http://svn.apache .
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java (original) 
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -31,6 +31,7 @@
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -354,8 +355,9 @@ 
> > >           // operation context will be null when doing in a GLOBAL
> > >           // handler.
> > >           AxisOperation op = ackMsgContext.getAxisOperation();
> > > +
> > >           ServiceContext serviceCtx = 
> ackMsgContext.getServiceContext();
> > > -         OperationContext opCtx = new OperationContext(op,
> serviceCtx);
> > > +         OperationContext opCtx = ContextFactory.
> > > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > > getServiceContext());
> > > ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
> > >        }
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -11,6 +11,7 @@ 
> > >  import org.apache.axis2.addressing.AddressingConstants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext ;
> > > @@ -522,9 +523,11 @@
> > >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> > >                 if (requestMsgOpCtx.getAxisOperation().
> > > getMessageReceiver() == null) { 
> > >                    // Generate a new RM In Only operation
> > > +
> > >                    ServiceContext serviceCtx =
> > > responseMessageContext.getServiceContext();
> > >                    AxisOperation op = msgCtx.getAxisService().
> > > getOperation(new QName("RMInOnlyOperation"));
> > > -                  responseMsgOpCtx = new OperationContext(op,
> > > serviceCtx);
> > > +                  responseMsgOpCtx = ContextFactory. 
> > > createOperationContext (op, serviceCtx);
> > > +
> > >                 }
> > >
> > > responseMessageContext.setOperationContext(responseMsgOpCtx);
> > >
> > >
> > > 
> > > 
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> > >
> >
> >
> >
> >
> >
> >
> > Unless stated otherwise above: 
> > IBM United Kingdom Limited - Registered in England and Wales with 
number
> > 741598.
> > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
> 3AU
> >
> >
> >
> >
> > 
> 
> 
> 
> 
> 
> 
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
3AU 
> 
> 
> 

> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


[Axis2] Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Matthew Lovett <ML...@uk.ibm.com>.
Hi all,

Chamikara and I have been discussing a Sandesha issue on sandesha-dev, and 
he's proposed a solution that needs a new Axis2 constant. I think that's 
probably the way to go, so I've opened a Jira:
https://issues.apache.org/jira/browse/AXIS2-2191

Please let me know if you have any comments, I hope to get a patch 
together soon.

Matt

"Chamikara Jayalath" <ch...@gmail.com> wrote on 15/02/2007 12:44:21:

> Hi Matt,
> 
> One way may be to introduce an property which if set causes the 
> optimization to be skipped. We can set this at the GlobalInHandler.
> 
> Chamikara
> 
> 

> On 2/15/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
> Hi Chamikara,
> 
> I see what you are trying to avoid, but as you agreed - there are cases
> where this doesn't work. 2 examples:
> An in-only MEP with an anonymous acksTo (where we need to keep the
> backchannel) 
> An in-out MEP with a non-anonymous replyTo, but an anonymous acksTo
> (again, we need the backchannel)
> 
> I think perhaps the code in the DispatchPhase is jumping the gun a bit. 
I
> think that the RM Phase (e.g . our SandeshaInHandler) needs to decide if 
it 
> needs the transport, before this optimization can run. Perhaps the right
> thing to do is to move this block of logic into some point a little 
later
> on?
> 
> As for moving the RM ack logic earlier, e.g. up to the GlobalInHandler, 
> I'm not sure if we can do that. I recently moved some of the logic from
> the global handler down into the in handler becase it needed the 
operation
> to have been resolved. If we did store the inbound message here (and 
send 
> the ack) then I think that we'd need to modify the code so that it 
always
> uses an invoker, and do most of the processing downstream from there.
> Perhaps worth thinking about.
> 
> Thanks
> 
> Matt
> 
> "Chamikara Jayalath" <ch...@gmail.com> wrote on 14/02/2007 
23:36:53:
> 
> > Hi Matt, 
> 
> > On 2/14/07, Matthew Lovett < MLOVETT@uk.ibm.com> wrote:
> > Hi Chamikara,
> >
> > Can you explain the changes to the module.xml a bit for me? I'm afraid
> > that I don't quite follow your reasoning. Here's why:
> > 
> > If we are trying to change the server-side behaviour,
> >
> > Yes. Its the sever side that I'm trying to fix.
> >
> > that implies that
> > the server-side-servlet serving the request is confused by the "1-way" 

> ops
> > that produce a response. If that is the case then we haven't solved 
the
> > whole issue, as a user's 1-way op could result in an ackMessage that
> needs
> > to flow on the backchannel, and presumably the servlet would be just 
as 
> > confused by this! I think the only place to fix that would be in the
> > servlet itself, and that means that we could leave the module.xml 
alone
> -
> > with definitions that follow the spec.
> >
> >
> > The reason for this fix was the lines 71-91 of the DiapatchPhase
> > class. For InOnly messages the  transport headers get written (For
> > e.g. HTTP 202) before the messages reach our handler. Because of 
> > this whatever the response we write goes with the HTTP 202 response
> > code and that get ignored by the Axis2 client side.
> > The RequestResponseTransport.acknowledgeMessage() method hs been
> > fully implemented only for the Servlet case. So this is not visible 
> > in test cases (i.e. with SAS).
> >
> > Didn't get what u meant by 'definitions that follow the spec'.
> > AckRequested is actually an InOut message and it is correct to move
> > it there. Yes TerminateSequence is a problem, but we hv a scenario 
> > where it works as InOut.
> > As for the LastMessage, the latest interops with Msft showed that it
> > comes without a MessageID, so I guessed that it hs to be moved back
> > to the InOnly group.
> > 
> > Yes, the problem is still there for InOnly messages that needs an
> > Ack. May be we should do early acking at the GlobalInHandler. Or is
> > there a better way ?
> >
> > Chamikara
> >
> > 
> > If it isn't the service side, but actually the client side that we are
> > trying to fix, then the module.xml is not as relevant as the code in
> > SpecSpecificConstants::getWSRMOperationType. However, you didn't 
change 
> > that, so I'm assuming that it is server side that we need to worry
> about.
> >
> > Do you actually have a test case that is impacted by the module.xml
> change
> > you put in?
> >
> > Thanks 
> >
> > Matt
> >
> > chamikara@apache.org wrote on 13/02/2007 16:58:15:
> >
> > > Author: chamikara 
> > > Date: Tue Feb 13 08:58:14 2007
> > > New Revision: 507097 
> > >
> > > URL: http://svn.apache.org/viewvc?view=rev&rev=507097 
> > > Log:
> > > changed AckRequest, LastMessage and TerminateSequence ActionMappings 

> > > to the RMInOutOperation. Having them as InOnly caused
> > > the response to come with 202 in the Servlet case.
> > >
> > > Changed the places where we create contexts to use the 
ContextFactory. 
> > >
> > > Modified:
> > >     webservices/sandesha/trunk/java/config/client_axis2.xml
> > >     webservices/sandesha/trunk/java/config/module.xml
> > >     webservices/sandesha/trunk/java/config/server_axis2.xml 
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > >
> > > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml? 
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/client_axis2.xml 
(original) 
> 
> > > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > > 13 08:58:14 2007
> > > @@ -96,6 +96,7 @@
> > >                       class="org.apache.axis2.transport.http .
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL"
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding" 
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action"
> > > locked="false">true</parameter> -->
> > >      </transportSender> 
> > >      <transportSender name="https"
> > >                       class="org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified: webservices/sandesha/trunk/java/config/module.xml 
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097 
> > > 
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13 
> > 08:58:14 2007
> > > @@ -40,14 +40,10 @@
> > >          <messageReceiver class=" org.apache.sandesha2.msgreceivers.
> > > RMMessageReceiver"/>
> > >
> > >          <!-- namespaces for the 2005-02 spec --> 
> > > -        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping> 
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/AckRequested</actionMapping> 
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/LastMessage</actionMapping> 
> > >
> > >          <!-- namespaces for the 2006-08 spec --> 
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/SequenceAcknowledgement</actionMapping> 
> > > -        <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping>
> > >       </operation> 
> > >
> > >       <operation name="RMInOutOperation" mep=" http://www.w3.
> > > org/2006/01/wsdl/in-out">
> > > @@ -55,7 +51,17 @@
> > >
> > >          <!-- namespaces for the 2005-02 spec --> 
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/CreateSequence</actionMapping>
> > > -
> > > +        <actionMapping> http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/AckRequested</actionMapping>
> > > +
> > > +        <!--  For interoparability perposes. Some WSRM
> > > implementations tend to send this as the LastMessage, 
> > +
> > > replied with an ack -->
> > > +        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/LastMessage</actionMapping>
> > > +        <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping> 
> > > +
> > > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > > anonymous scenario -->
> > > +        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > > +
> > > +
> > >          <!-- namespaces for the 2006-08 spec -->
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CreateSequence</actionMapping> 
> > >          <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CloseSequence</actionMapping> 
> > >
> > > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml 
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml? 
> > > view=diff&rev=507097&r1=507096&r2=507097
> > > 
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/server_axis2.xml 
(original)
> > > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb 
> > > 13 08:58:14 2007
> > > @@ -97,6 +97,7 @@
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL" 
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding"
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action" 
> > > locked="false">true</parameter> -->
> > >      </transportSender>
> > >      <transportSender name="https"
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097 
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -30,6 +30,7 @@ 
> > >  import org.apache.axis2.Constants ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -184,8 +185,10 @@ 
> > >           if (rmMsgCtx.getMessageContext().getOperationContext() ==
> > null) {
> > >              // operation context will be null when doing in a 
GLOBAL
> > >              // handler.
> > > +
> > >              ServiceContext serviceCtx =
> msgContext.getServiceContext();
> > > -            OperationContext opCtx = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +            OperationContext opCtx =  ContextFactory. 
> > > createOperationContext(ackOperation, serviceCtx);
> > > +
> > >              rmMsgCtx.getMessageContext 
().setOperationContext(opCtx);
> > >           }
> > >
> > > @@ -292,8 +295,11 @@ 
> > >              getRMVersion(),
> > >              getMsgContext().getAxisService());
> > >        getMsgContext().setAxisOperation(ackOperation);
> > > +
> > >        ServiceContext serviceCtx = 
> getMsgContext().getServiceContext();
> > > -      OperationContext opcontext = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(ackOperation, serviceCtx); 
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().
> > > registerOperationContext(ackRequestRMMsg.getMessageId (), 
opcontext); 
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -24,6 +24,7 @@ 
> > >  import org.apache.axiom.soap.SOAPFactory ;
> > >  import org.apache.axis2.AxisFault;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.description.AxisOperation;
> > > @@ -172,7 +173,10 @@ 
> > >              rmMsgCtx.getMessageContext().getAxisService());
> > >        getMsgContext().setAxisOperation(closeOperation);
> > >
> > > -      OperationContext opcontext = new
> > > OperationContext(closeOperation, 
getMsgContext().getServiceContext()); 
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(closeOperation,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext()); 
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),opcontext);
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > > URL: http://svn.apache .
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > > 
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -7,8 +7,10 @@ 
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > > +import org.apache.axis2.context.OperationContextFactory;
> > >  import org.apache.axis2.description.AxisOperation;
> > >  import org.apache.axis2.description.TransportOutDescription ;
> > >  import org.apache.commons.logging.Log;
> > > @@ -144,7 +146,9 @@
> > >        OperationContext context = pollMessage.getMessageContext().
> > > getOperationContext();
> > >        if(context == null) {
> > >           AxisOperation oldOperation =
> returnMessage.getAxisOperation();
> > > -         context = new OperationContext(oldOperation, 
> > > returnMessage.getServiceContext());
> > > +
> > > +         context = ContextFactory.
> > > createOperationContext(oldOperation, returnMessage.
> > > getServiceContext()); //new OperationContext(oldOperation); 
> > > +
> > > context.addMessageContext(pollMessage.getMessageContext());
> > > pollMessage.getMessageContext().setOperationContext(context);
> > >        }
> > >
> > > Modified: 
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > > URL: http://svn.apache.
> > > 
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -23,6 +23,7 @@
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.OperationContextFactory ;
> > > @@ -366,9 +367,10 @@
> > >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ ,
> > >              rmMsgCtx.getRMSpecVersion(),
> > >              getMsgContext().getAxisService()); 
> > > -      OperationContext opcontext = OperationContextFactory
> > > -            .createOperationContext(
> > > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > > getMsgContext().getServiceContext()); 
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(terminateOp,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext()); 
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),   opcontext);
> > >
> > >        getMsgContext().setOperationContext(opcontext); 
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > > URL: http://svn.apache .
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java (original) 
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -31,6 +31,7 @@
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -354,8 +355,9 @@ 
> > >           // operation context will be null when doing in a GLOBAL
> > >           // handler.
> > >           AxisOperation op = ackMsgContext.getAxisOperation();
> > > +
> > >           ServiceContext serviceCtx = 
> ackMsgContext.getServiceContext();
> > > -         OperationContext opCtx = new OperationContext(op,
> serviceCtx);
> > > +         OperationContext opCtx = ContextFactory.
> > > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > > getServiceContext());
> > > ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
> > >        }
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -11,6 +11,7 @@ 
> > >  import org.apache.axis2.addressing.AddressingConstants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext ;
> > > @@ -522,9 +523,11 @@
> > >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> > >                 if (requestMsgOpCtx.getAxisOperation().
> > > getMessageReceiver() == null) { 
> > >                    // Generate a new RM In Only operation
> > > +
> > >                    ServiceContext serviceCtx =
> > > responseMessageContext.getServiceContext();
> > >                    AxisOperation op = msgCtx.getAxisService().
> > > getOperation(new QName("RMInOnlyOperation"));
> > > -                  responseMsgOpCtx = new OperationContext(op,
> > > serviceCtx);
> > > +                  responseMsgOpCtx = ContextFactory. 
> > > createOperationContext (op, serviceCtx);
> > > +
> > >                 }
> > >
> > > responseMessageContext.setOperationContext(responseMsgOpCtx);
> > >
> > >
> > > 
> > > 
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> > >
> >
> >
> >
> >
> >
> >
> > Unless stated otherwise above: 
> > IBM United Kingdom Limited - Registered in England and Wales with 
number
> > 741598.
> > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
> 3AU
> >
> >
> >
> >
> > 
> 
> 
> 
> 
> 
> 
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
3AU 
> 
> 
> 

> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[Axis2] Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Matthew Lovett <ML...@uk.ibm.com>.
Hi all,

Chamikara and I have been discussing a Sandesha issue on sandesha-dev, and 
he's proposed a solution that needs a new Axis2 constant. I think that's 
probably the way to go, so I've opened a Jira:
https://issues.apache.org/jira/browse/AXIS2-2191

Please let me know if you have any comments, I hope to get a patch 
together soon.

Matt

"Chamikara Jayalath" <ch...@gmail.com> wrote on 15/02/2007 12:44:21:

> Hi Matt,
> 
> One way may be to introduce an property which if set causes the 
> optimization to be skipped. We can set this at the GlobalInHandler.
> 
> Chamikara
> 
> 

> On 2/15/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
> Hi Chamikara,
> 
> I see what you are trying to avoid, but as you agreed - there are cases
> where this doesn't work. 2 examples:
> An in-only MEP with an anonymous acksTo (where we need to keep the
> backchannel) 
> An in-out MEP with a non-anonymous replyTo, but an anonymous acksTo
> (again, we need the backchannel)
> 
> I think perhaps the code in the DispatchPhase is jumping the gun a bit. 
I
> think that the RM Phase (e.g . our SandeshaInHandler) needs to decide if 
it 
> needs the transport, before this optimization can run. Perhaps the right
> thing to do is to move this block of logic into some point a little 
later
> on?
> 
> As for moving the RM ack logic earlier, e.g. up to the GlobalInHandler, 
> I'm not sure if we can do that. I recently moved some of the logic from
> the global handler down into the in handler becase it needed the 
operation
> to have been resolved. If we did store the inbound message here (and 
send 
> the ack) then I think that we'd need to modify the code so that it 
always
> uses an invoker, and do most of the processing downstream from there.
> Perhaps worth thinking about.
> 
> Thanks
> 
> Matt
> 
> "Chamikara Jayalath" <ch...@gmail.com> wrote on 14/02/2007 
23:36:53:
> 
> > Hi Matt, 
> 
> > On 2/14/07, Matthew Lovett < MLOVETT@uk.ibm.com> wrote:
> > Hi Chamikara,
> >
> > Can you explain the changes to the module.xml a bit for me? I'm afraid
> > that I don't quite follow your reasoning. Here's why:
> > 
> > If we are trying to change the server-side behaviour,
> >
> > Yes. Its the sever side that I'm trying to fix.
> >
> > that implies that
> > the server-side-servlet serving the request is confused by the "1-way" 

> ops
> > that produce a response. If that is the case then we haven't solved 
the
> > whole issue, as a user's 1-way op could result in an ackMessage that
> needs
> > to flow on the backchannel, and presumably the servlet would be just 
as 
> > confused by this! I think the only place to fix that would be in the
> > servlet itself, and that means that we could leave the module.xml 
alone
> -
> > with definitions that follow the spec.
> >
> >
> > The reason for this fix was the lines 71-91 of the DiapatchPhase
> > class. For InOnly messages the  transport headers get written (For
> > e.g. HTTP 202) before the messages reach our handler. Because of 
> > this whatever the response we write goes with the HTTP 202 response
> > code and that get ignored by the Axis2 client side.
> > The RequestResponseTransport.acknowledgeMessage() method hs been
> > fully implemented only for the Servlet case. So this is not visible 
> > in test cases (i.e. with SAS).
> >
> > Didn't get what u meant by 'definitions that follow the spec'.
> > AckRequested is actually an InOut message and it is correct to move
> > it there. Yes TerminateSequence is a problem, but we hv a scenario 
> > where it works as InOut.
> > As for the LastMessage, the latest interops with Msft showed that it
> > comes without a MessageID, so I guessed that it hs to be moved back
> > to the InOnly group.
> > 
> > Yes, the problem is still there for InOnly messages that needs an
> > Ack. May be we should do early acking at the GlobalInHandler. Or is
> > there a better way ?
> >
> > Chamikara
> >
> > 
> > If it isn't the service side, but actually the client side that we are
> > trying to fix, then the module.xml is not as relevant as the code in
> > SpecSpecificConstants::getWSRMOperationType. However, you didn't 
change 
> > that, so I'm assuming that it is server side that we need to worry
> about.
> >
> > Do you actually have a test case that is impacted by the module.xml
> change
> > you put in?
> >
> > Thanks 
> >
> > Matt
> >
> > chamikara@apache.org wrote on 13/02/2007 16:58:15:
> >
> > > Author: chamikara 
> > > Date: Tue Feb 13 08:58:14 2007
> > > New Revision: 507097 
> > >
> > > URL: http://svn.apache.org/viewvc?view=rev&rev=507097 
> > > Log:
> > > changed AckRequest, LastMessage and TerminateSequence ActionMappings 

> > > to the RMInOutOperation. Having them as InOnly caused
> > > the response to come with 202 in the Servlet case.
> > >
> > > Changed the places where we create contexts to use the 
ContextFactory. 
> > >
> > > Modified:
> > >     webservices/sandesha/trunk/java/config/client_axis2.xml
> > >     webservices/sandesha/trunk/java/config/module.xml
> > >     webservices/sandesha/trunk/java/config/server_axis2.xml 
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > >
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > >
> > > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml? 
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/client_axis2.xml 
(original) 
> 
> > > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > > 13 08:58:14 2007
> > > @@ -96,6 +96,7 @@
> > >                       class="org.apache.axis2.transport.http .
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL"
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding" 
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action"
> > > locked="false">true</parameter> -->
> > >      </transportSender> 
> > >      <transportSender name="https"
> > >                       class="org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified: webservices/sandesha/trunk/java/config/module.xml 
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097 
> > > 
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13 
> > 08:58:14 2007
> > > @@ -40,14 +40,10 @@
> > >          <messageReceiver class=" org.apache.sandesha2.msgreceivers.
> > > RMMessageReceiver"/>
> > >
> > >          <!-- namespaces for the 2005-02 spec --> 
> > > -        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping> 
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/AckRequested</actionMapping> 
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/LastMessage</actionMapping> 
> > >
> > >          <!-- namespaces for the 2006-08 spec --> 
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/SequenceAcknowledgement</actionMapping> 
> > > -        <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping>
> > >       </operation> 
> > >
> > >       <operation name="RMInOutOperation" mep=" http://www.w3.
> > > org/2006/01/wsdl/in-out">
> > > @@ -55,7 +51,17 @@
> > >
> > >          <!-- namespaces for the 2005-02 spec --> 
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/CreateSequence</actionMapping>
> > > -
> > > +        <actionMapping> http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/AckRequested</actionMapping>
> > > +
> > > +        <!--  For interoparability perposes. Some WSRM
> > > implementations tend to send this as the LastMessage, 
> > +
> > > replied with an ack -->
> > > +        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/LastMessage</actionMapping>
> > > +        <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping> 
> > > +
> > > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > > anonymous scenario -->
> > > +        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > > +
> > > +
> > >          <!-- namespaces for the 2006-08 spec -->
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CreateSequence</actionMapping> 
> > >          <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CloseSequence</actionMapping> 
> > >
> > > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml 
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml? 
> > > view=diff&rev=507097&r1=507096&r2=507097
> > > 
> >
> 
==============================================================================
> > > --- webservices/sandesha/trunk/java/config/server_axis2.xml 
(original)
> > > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb 
> > > 13 08:58:14 2007
> > > @@ -97,6 +97,7 @@
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL" 
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding"
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action" 
> > > locked="false">true</parameter> -->
> > >      </transportSender>
> > >      <transportSender name="https"
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097 
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -30,6 +30,7 @@ 
> > >  import org.apache.axis2.Constants ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -184,8 +185,10 @@ 
> > >           if (rmMsgCtx.getMessageContext().getOperationContext() ==
> > null) {
> > >              // operation context will be null when doing in a 
GLOBAL
> > >              // handler.
> > > +
> > >              ServiceContext serviceCtx =
> msgContext.getServiceContext();
> > > -            OperationContext opCtx = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +            OperationContext opCtx =  ContextFactory. 
> > > createOperationContext(ackOperation, serviceCtx);
> > > +
> > >              rmMsgCtx.getMessageContext 
().setOperationContext(opCtx);
> > >           }
> > >
> > > @@ -292,8 +295,11 @@ 
> > >              getRMVersion(),
> > >              getMsgContext().getAxisService());
> > >        getMsgContext().setAxisOperation(ackOperation);
> > > +
> > >        ServiceContext serviceCtx = 
> getMsgContext().getServiceContext();
> > > -      OperationContext opcontext = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(ackOperation, serviceCtx); 
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().
> > > registerOperationContext(ackRequestRMMsg.getMessageId (), 
opcontext); 
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -24,6 +24,7 @@ 
> > >  import org.apache.axiom.soap.SOAPFactory ;
> > >  import org.apache.axis2.AxisFault;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.description.AxisOperation;
> > > @@ -172,7 +173,10 @@ 
> > >              rmMsgCtx.getMessageContext().getAxisService());
> > >        getMsgContext().setAxisOperation(closeOperation);
> > >
> > > -      OperationContext opcontext = new
> > > OperationContext(closeOperation, 
getMsgContext().getServiceContext()); 
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(closeOperation,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext()); 
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),opcontext);
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > > URL: http://svn.apache .
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > > 
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -7,8 +7,10 @@ 
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > > +import org.apache.axis2.context.OperationContextFactory;
> > >  import org.apache.axis2.description.AxisOperation;
> > >  import org.apache.axis2.description.TransportOutDescription ;
> > >  import org.apache.commons.logging.Log;
> > > @@ -144,7 +146,9 @@
> > >        OperationContext context = pollMessage.getMessageContext().
> > > getOperationContext();
> > >        if(context == null) {
> > >           AxisOperation oldOperation =
> returnMessage.getAxisOperation();
> > > -         context = new OperationContext(oldOperation, 
> > > returnMessage.getServiceContext());
> > > +
> > > +         context = ContextFactory.
> > > createOperationContext(oldOperation, returnMessage.
> > > getServiceContext()); //new OperationContext(oldOperation); 
> > > +
> > > context.addMessageContext(pollMessage.getMessageContext());
> > > pollMessage.getMessageContext().setOperationContext(context);
> > >        }
> > >
> > > Modified: 
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > > URL: http://svn.apache.
> > > 
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -23,6 +23,7 @@
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.OperationContextFactory ;
> > > @@ -366,9 +367,10 @@
> > >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ ,
> > >              rmMsgCtx.getRMSpecVersion(),
> > >              getMsgContext().getAxisService()); 
> > > -      OperationContext opcontext = OperationContextFactory
> > > -            .createOperationContext(
> > > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > > getMsgContext().getServiceContext()); 
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(terminateOp,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext()); 
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),   opcontext);
> > >
> > >        getMsgContext().setOperationContext(opcontext); 
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > > URL: http://svn.apache .
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java (original) 
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -31,6 +31,7 @@
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -354,8 +355,9 @@ 
> > >           // operation context will be null when doing in a GLOBAL
> > >           // handler.
> > >           AxisOperation op = ackMsgContext.getAxisOperation();
> > > +
> > >           ServiceContext serviceCtx = 
> ackMsgContext.getServiceContext();
> > > -         OperationContext opCtx = new OperationContext(op,
> serviceCtx);
> > > +         OperationContext opCtx = ContextFactory.
> > > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > > getServiceContext());
> > > ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
> > >        }
> > >
> > >
> > > Modified:
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> 
==============================================================================
> > > ---
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java (original)
> > > +++
> > >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -11,6 +11,7 @@ 
> > >  import org.apache.axis2.addressing.AddressingConstants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext ;
> > > @@ -522,9 +523,11 @@
> > >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> > >                 if (requestMsgOpCtx.getAxisOperation().
> > > getMessageReceiver() == null) { 
> > >                    // Generate a new RM In Only operation
> > > +
> > >                    ServiceContext serviceCtx =
> > > responseMessageContext.getServiceContext();
> > >                    AxisOperation op = msgCtx.getAxisService().
> > > getOperation(new QName("RMInOnlyOperation"));
> > > -                  responseMsgOpCtx = new OperationContext(op,
> > > serviceCtx);
> > > +                  responseMsgOpCtx = ContextFactory. 
> > > createOperationContext (op, serviceCtx);
> > > +
> > >                 }
> > >
> > > responseMessageContext.setOperationContext(responseMsgOpCtx);
> > >
> > >
> > > 
> > > 
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> > >
> >
> >
> >
> >
> >
> >
> > Unless stated otherwise above: 
> > IBM United Kingdom Limited - Registered in England and Wales with 
number
> > 741598.
> > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
> 3AU
> >
> >
> >
> >
> > 
> 
> 
> 
> 
> 
> 
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
3AU 
> 
> 
> 

> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Chamikara Jayalath <ch...@gmail.com>.
Hi Matt,

One way may be to introduce an property which if set causes the optimization
to be skipped. We can set this at the GlobalInHandler.

Chamikara



On 2/15/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
>
> Hi Chamikara,
>
> I see what you are trying to avoid, but as you agreed - there are cases
> where this doesn't work. 2 examples:
> An in-only MEP with an anonymous acksTo (where we need to keep the
> backchannel)
> An in-out MEP with a non-anonymous replyTo, but an anonymous acksTo
> (again, we need the backchannel)
>
> I think perhaps the code in the DispatchPhase is jumping the gun a bit. I
> think that the RM Phase (e.g. our SandeshaInHandler) needs to decide if it
>
> needs the transport, before this optimization can run. Perhaps the right
> thing to do is to move this block of logic into some point a little later
> on?
>
> As for moving the RM ack logic earlier, e.g. up to the GlobalInHandler,
> I'm not sure if we can do that. I recently moved some of the logic from
> the global handler down into the in handler becase it needed the operation
> to have been resolved. If we did store the inbound message here (and send
> the ack) then I think that we'd need to modify the code so that it always
> uses an invoker, and do most of the processing downstream from there.
> Perhaps worth thinking about.
>
> Thanks
>
> Matt
>
> "Chamikara Jayalath" <ch...@gmail.com> wrote on 14/02/2007 23:36:53:
>
> > Hi Matt,
>
> > On 2/14/07, Matthew Lovett < MLOVETT@uk.ibm.com> wrote:
> > Hi Chamikara,
> >
> > Can you explain the changes to the module.xml a bit for me? I'm afraid
> > that I don't quite follow your reasoning. Here's why:
> >
> > If we are trying to change the server-side behaviour,
> >
> > Yes. Its the sever side that I'm trying to fix.
> >
> > that implies that
> > the server-side-servlet serving the request is confused by the "1-way"
> ops
> > that produce a response. If that is the case then we haven't solved the
> > whole issue, as a user's 1-way op could result in an ackMessage that
> needs
> > to flow on the backchannel, and presumably the servlet would be just as
> > confused by this! I think the only place to fix that would be in the
> > servlet itself, and that means that we could leave the module.xml alone
> -
> > with definitions that follow the spec.
> >
> >
> > The reason for this fix was the lines 71-91 of the DiapatchPhase
> > class. For InOnly messages the  transport headers get written (For
> > e.g. HTTP 202) before the messages reach our handler. Because of
> > this whatever the response we write goes with the HTTP 202 response
> > code and that get ignored by the Axis2 client side.
> > The RequestResponseTransport.acknowledgeMessage() method hs been
> > fully implemented only for the Servlet case. So this is not visible
> > in test cases (i.e. with SAS).
> >
> > Didn't get what u meant by 'definitions that follow the spec'.
> > AckRequested is actually an InOut message and it is correct to move
> > it there. Yes TerminateSequence is a problem, but we hv a scenario
> > where it works as InOut.
> > As for the LastMessage, the latest interops with Msft showed that it
> > comes without a MessageID, so I guessed that it hs to be moved back
> > to the InOnly group.
> >
> > Yes, the problem is still there for InOnly messages that needs an
> > Ack. May be we should do early acking at the GlobalInHandler. Or is
> > there a better way ?
> >
> > Chamikara
> >
> >
> > If it isn't the service side, but actually the client side that we are
> > trying to fix, then the module.xml is not as relevant as the code in
> > SpecSpecificConstants::getWSRMOperationType. However, you didn't change
> > that, so I'm assuming that it is server side that we need to worry
> about.
> >
> > Do you actually have a test case that is impacted by the module.xml
> change
> > you put in?
> >
> > Thanks
> >
> > Matt
> >
> > chamikara@apache.org wrote on 13/02/2007 16:58:15:
> >
> > > Author: chamikara
> > > Date: Tue Feb 13 08:58:14 2007
> > > New Revision: 507097
> > >
> > > URL: http://svn.apache.org/viewvc?view=rev&rev=507097
> > > Log:
> > > changed AckRequest, LastMessage and TerminateSequence ActionMappings
> > > to the RMInOutOperation. Having them as InOnly caused
> > > the response to come with 202 in the Servlet case.
> > >
> > > Changed the places where we create contexts to use the ContextFactory.
>
> > >
> > > Modified:
> > >     webservices/sandesha/trunk/java/config/client_axis2.xml
> > >     webservices/sandesha/trunk/java/config/module.xml
> > >     webservices/sandesha/trunk/java/config/server_axis2.xml
> > >
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > >
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
>
> > > java
> > >
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > >
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
>
> > > java
> > >
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > >
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
>
> > > java
> > >
> > > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > --- webservices/sandesha/trunk/java/config/client_axis2.xml (original)
>
>
> > > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > > 13 08:58:14 2007
> > > @@ -96,6 +96,7 @@
> > >                       class="org.apache.axis2.transport.http .
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL"
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding"
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action"
> > > locked="false">true</parameter> -->
> > >      </transportSender>
> > >      <transportSender name="https"
> > >                       class="org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified: webservices/sandesha/trunk/java/config/module.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13
> > 08:58:14 2007
> > > @@ -40,14 +40,10 @@
> > >          <messageReceiver class=" org.apache.sandesha2.msgreceivers.
> > > RMMessageReceiver"/>
> > >
> > >          <!-- namespaces for the 2005-02 spec -->
> > > -        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> > > -        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/AckRequested</actionMapping>
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/LastMessage</actionMapping>
> > >
> > >          <!-- namespaces for the 2006-08 spec -->
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/SequenceAcknowledgement</actionMapping>
> > > -        <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping>
> > >       </operation>
> > >
> > >       <operation name="RMInOutOperation" mep=" http://www.w3.
> > > org/2006/01/wsdl/in-out">
> > > @@ -55,7 +51,17 @@
> > >
> > >          <!-- namespaces for the 2005-02 spec -->
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/CreateSequence</actionMapping>
> > > -
> > > +        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/AckRequested</actionMapping>
> > > +
> > > +        <!--  For interoparability perposes. Some WSRM
> > > implementations tend to send this as the LastMessage,
> > +
> > > replied with an ack -->
> > > +        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/LastMessage</actionMapping>
> > > +        <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping>
> > > +
> > > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > > anonymous scenario -->
> > > +        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > > +
> > > +
> > >          <!-- namespaces for the 2006-08 spec -->
> > >          <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CreateSequence</actionMapping>
> > >          <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CloseSequence</actionMapping>
> > >
> > > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > --- webservices/sandesha/trunk/java/config/server_axis2.xml (original)
> > > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb
> > > 13 08:58:14 2007
> > > @@ -97,6 +97,7 @@
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL"
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding"
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action"
> > > locked="false">true</parameter> -->
> > >      </transportSender>
> > >      <transportSender name="https"
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified:
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
>
> > > java
> > > URL: http://svn.apache.
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
>
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -30,6 +30,7 @@
> > >  import org.apache.axis2.Constants ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -184,8 +185,10 @@
> > >           if (rmMsgCtx.getMessageContext().getOperationContext() ==
> > null) {
> > >              // operation context will be null when doing in a GLOBAL
> > >              // handler.
> > > +
> > >              ServiceContext serviceCtx =
> msgContext.getServiceContext();
> > > -            OperationContext opCtx = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +            OperationContext opCtx =  ContextFactory.
> > > createOperationContext(ackOperation, serviceCtx);
> > > +
> > >              rmMsgCtx.getMessageContext ().setOperationContext(opCtx);
> > >           }
> > >
> > > @@ -292,8 +295,11 @@
> > >              getRMVersion(),
> > >              getMsgContext().getAxisService());
> > >        getMsgContext().setAxisOperation(ackOperation);
> > > +
> > >        ServiceContext serviceCtx =
> getMsgContext().getServiceContext();
> > > -      OperationContext opcontext = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(ackOperation, serviceCtx);
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().
> > > registerOperationContext(ackRequestRMMsg.getMessageId (), opcontext);
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
>
> > > java
> > > URL: http://svn.apache.
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
>
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -24,6 +24,7 @@
> > >  import org.apache.axiom.soap.SOAPFactory ;
> > >  import org.apache.axis2.AxisFault;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.description.AxisOperation;
> > > @@ -172,7 +173,10 @@
> > >              rmMsgCtx.getMessageContext().getAxisService());
> > >        getMsgContext().setAxisOperation(closeOperation);
> > >
> > > -      OperationContext opcontext = new
> > > OperationContext(closeOperation, getMsgContext().getServiceContext());
>
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(closeOperation,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),opcontext);
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > > URL: http://svn.apache .
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
>
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -7,8 +7,10 @@
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > > +import org.apache.axis2.context.OperationContextFactory;
> > >  import org.apache.axis2.description.AxisOperation;
> > >  import org.apache.axis2.description.TransportOutDescription ;
> > >  import org.apache.commons.logging.Log;
> > > @@ -144,7 +146,9 @@
> > >        OperationContext context = pollMessage.getMessageContext().
> > > getOperationContext();
> > >        if(context == null) {
> > >           AxisOperation oldOperation =
> returnMessage.getAxisOperation();
> > > -         context = new OperationContext(oldOperation,
> > > returnMessage.getServiceContext());
> > > +
> > > +         context = ContextFactory.
> > > createOperationContext(oldOperation, returnMessage.
> > > getServiceContext()); //new OperationContext(oldOperation);
> > > +
> > >           context.addMessageContext(pollMessage.getMessageContext());
> > > pollMessage.getMessageContext().setOperationContext(context);
> > >        }
> > >
> > > Modified:
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> ==============================================================================
>
> > > ---
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java (original)
> > > +++
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
>
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -23,6 +23,7 @@
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.OperationContextFactory ;
> > > @@ -366,9 +367,10 @@
> > >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ ,
> > >              rmMsgCtx.getRMSpecVersion(),
> > >              getMsgContext().getAxisService());
> > > -      OperationContext opcontext = OperationContextFactory
> > > -            .createOperationContext(
> > > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > > getMsgContext().getServiceContext());
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(terminateOp,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),   opcontext);
> > >
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > > Modified:
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > > URL: http://svn.apache .
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -31,6 +31,7 @@
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -354,8 +355,9 @@
> > >           // operation context will be null when doing in a GLOBAL
> > >           // handler.
> > >           AxisOperation op = ackMsgContext.getAxisOperation();
> > > +
> > >           ServiceContext serviceCtx =
> ackMsgContext.getServiceContext();
> > > -         OperationContext opCtx = new OperationContext(op,
> serviceCtx);
> > > +         OperationContext opCtx = ContextFactory.
> > > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > > getServiceContext());
> > > ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
> > >        }
> > >
> > >
> > > Modified:
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
>
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
>
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -11,6 +11,7 @@
> > >  import org.apache.axis2.addressing.AddressingConstants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext ;
> > > @@ -522,9 +523,11 @@
> > >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> > >                 if (requestMsgOpCtx.getAxisOperation().
> > > getMessageReceiver() == null) {
> > >                    // Generate a new RM In Only operation
> > > +
> > >                    ServiceContext serviceCtx =
> > > responseMessageContext.getServiceContext();
> > >                    AxisOperation op = msgCtx.getAxisService().
> > > getOperation(new QName("RMInOnlyOperation"));
> > > -                  responseMsgOpCtx = new OperationContext(op,
> > > serviceCtx);
> > > +                  responseMsgOpCtx = ContextFactory.
> > > createOperationContext (op, serviceCtx);
> > > +
> > >                 }
> > >
> > > responseMessageContext.setOperationContext(responseMsgOpCtx);
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> > >
> >
> >
> >
> >
> >
> >
> > Unless stated otherwise above:
> > IBM United Kingdom Limited - Registered in England and Wales with number
> > 741598.
> > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
> 3AU
> >
> >
> >
> >
> >
>
>
>
>
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>
>
>
>
>
>
>
>

Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Chamikara Jayalath <ch...@gmail.com>.
Hi Matt,

One way may be to introduce an property which if set causes the optimization
to be skipped. We can set this at the GlobalInHandler.

Chamikara



On 2/15/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
>
> Hi Chamikara,
>
> I see what you are trying to avoid, but as you agreed - there are cases
> where this doesn't work. 2 examples:
> An in-only MEP with an anonymous acksTo (where we need to keep the
> backchannel)
> An in-out MEP with a non-anonymous replyTo, but an anonymous acksTo
> (again, we need the backchannel)
>
> I think perhaps the code in the DispatchPhase is jumping the gun a bit. I
> think that the RM Phase (e.g. our SandeshaInHandler) needs to decide if it
>
> needs the transport, before this optimization can run. Perhaps the right
> thing to do is to move this block of logic into some point a little later
> on?
>
> As for moving the RM ack logic earlier, e.g. up to the GlobalInHandler,
> I'm not sure if we can do that. I recently moved some of the logic from
> the global handler down into the in handler becase it needed the operation
> to have been resolved. If we did store the inbound message here (and send
> the ack) then I think that we'd need to modify the code so that it always
> uses an invoker, and do most of the processing downstream from there.
> Perhaps worth thinking about.
>
> Thanks
>
> Matt
>
> "Chamikara Jayalath" <ch...@gmail.com> wrote on 14/02/2007 23:36:53:
>
> > Hi Matt,
>
> > On 2/14/07, Matthew Lovett < MLOVETT@uk.ibm.com> wrote:
> > Hi Chamikara,
> >
> > Can you explain the changes to the module.xml a bit for me? I'm afraid
> > that I don't quite follow your reasoning. Here's why:
> >
> > If we are trying to change the server-side behaviour,
> >
> > Yes. Its the sever side that I'm trying to fix.
> >
> > that implies that
> > the server-side-servlet serving the request is confused by the "1-way"
> ops
> > that produce a response. If that is the case then we haven't solved the
> > whole issue, as a user's 1-way op could result in an ackMessage that
> needs
> > to flow on the backchannel, and presumably the servlet would be just as
> > confused by this! I think the only place to fix that would be in the
> > servlet itself, and that means that we could leave the module.xml alone
> -
> > with definitions that follow the spec.
> >
> >
> > The reason for this fix was the lines 71-91 of the DiapatchPhase
> > class. For InOnly messages the  transport headers get written (For
> > e.g. HTTP 202) before the messages reach our handler. Because of
> > this whatever the response we write goes with the HTTP 202 response
> > code and that get ignored by the Axis2 client side.
> > The RequestResponseTransport.acknowledgeMessage() method hs been
> > fully implemented only for the Servlet case. So this is not visible
> > in test cases (i.e. with SAS).
> >
> > Didn't get what u meant by 'definitions that follow the spec'.
> > AckRequested is actually an InOut message and it is correct to move
> > it there. Yes TerminateSequence is a problem, but we hv a scenario
> > where it works as InOut.
> > As for the LastMessage, the latest interops with Msft showed that it
> > comes without a MessageID, so I guessed that it hs to be moved back
> > to the InOnly group.
> >
> > Yes, the problem is still there for InOnly messages that needs an
> > Ack. May be we should do early acking at the GlobalInHandler. Or is
> > there a better way ?
> >
> > Chamikara
> >
> >
> > If it isn't the service side, but actually the client side that we are
> > trying to fix, then the module.xml is not as relevant as the code in
> > SpecSpecificConstants::getWSRMOperationType. However, you didn't change
> > that, so I'm assuming that it is server side that we need to worry
> about.
> >
> > Do you actually have a test case that is impacted by the module.xml
> change
> > you put in?
> >
> > Thanks
> >
> > Matt
> >
> > chamikara@apache.org wrote on 13/02/2007 16:58:15:
> >
> > > Author: chamikara
> > > Date: Tue Feb 13 08:58:14 2007
> > > New Revision: 507097
> > >
> > > URL: http://svn.apache.org/viewvc?view=rev&rev=507097
> > > Log:
> > > changed AckRequest, LastMessage and TerminateSequence ActionMappings
> > > to the RMInOutOperation. Having them as InOnly caused
> > > the response to come with 202 in the Servlet case.
> > >
> > > Changed the places where we create contexts to use the ContextFactory.
>
> > >
> > > Modified:
> > >     webservices/sandesha/trunk/java/config/client_axis2.xml
> > >     webservices/sandesha/trunk/java/config/module.xml
> > >     webservices/sandesha/trunk/java/config/server_axis2.xml
> > >
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java
> > >
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
>
> > > java
> > >
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > >
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
>
> > > java
> > >
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > >
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
>
> > > java
> > >
> > > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > --- webservices/sandesha/trunk/java/config/client_axis2.xml (original)
>
>
> > > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > > 13 08:58:14 2007
> > > @@ -96,6 +96,7 @@
> > >                       class="org.apache.axis2.transport.http .
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL"
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding"
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action"
> > > locked="false">true</parameter> -->
> > >      </transportSender>
> > >      <transportSender name="https"
> > >                       class="org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified: webservices/sandesha/trunk/java/config/module.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13
> > 08:58:14 2007
> > > @@ -40,14 +40,10 @@
> > >          <messageReceiver class=" org.apache.sandesha2.msgreceivers.
> > > RMMessageReceiver"/>
> > >
> > >          <!-- namespaces for the 2005-02 spec -->
> > > -        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> > > -        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/AckRequested</actionMapping>
> > > -        <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/LastMessage</actionMapping>
> > >
> > >          <!-- namespaces for the 2006-08 spec -->
> > >          <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/SequenceAcknowledgement</actionMapping>
> > > -        <actionMapping> http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping>
> > >       </operation>
> > >
> > >       <operation name="RMInOutOperation" mep=" http://www.w3.
> > > org/2006/01/wsdl/in-out">
> > > @@ -55,7 +51,17 @@
> > >
> > >          <!-- namespaces for the 2005-02 spec -->
> > >          <actionMapping> http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/CreateSequence</actionMapping>
> > > -
> > > +        <actionMapping>http://schemas.xmlsoap .
> > > org/ws/2005/02/rm/AckRequested</actionMapping>
> > > +
> > > +        <!--  For interoparability perposes. Some WSRM
> > > implementations tend to send this as the LastMessage,
> > +
> > > replied with an ack -->
> > > +        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/LastMessage</actionMapping>
> > > +        <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/AckRequested</actionMapping>
> > > +
> > > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > > anonymous scenario -->
> > > +        <actionMapping>http://schemas.xmlsoap.
> > > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > > +
> > > +
> > >          <!-- namespaces for the 2006-08 spec -->
> > >          <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CreateSequence</actionMapping>
> > >          <actionMapping>http://docs.oasis-open.org/ws-
> > > rx/wsrm/200608/CloseSequence</actionMapping>
> > >
> > > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml
> > > URL: http://svn.apache.
> > > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml?
> > > view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > --- webservices/sandesha/trunk/java/config/server_axis2.xml (original)
> > > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb
> > > 13 08:58:14 2007
> > > @@ -97,6 +97,7 @@
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >          <parameter name="PROTOCOL"
> locked="false">HTTP/1.1</parameter>
> > >          <parameter name="Transfer-Encoding"
> > > locked="false">chunked</parameter>
> > > +        <!-- <parameter name="OmitSOAP12Action"
> > > locked="false">true</parameter> -->
> > >      </transportSender>
> > >      <transportSender name="https"
> > >                       class=" org.apache.axis2.transport.http.
> > > CommonsHTTPTransportSender">
> > >
> > > Modified:
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
>
> > > java
> > > URL: http://svn.apache.
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
>
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -30,6 +30,7 @@
> > >  import org.apache.axis2.Constants ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -184,8 +185,10 @@
> > >           if (rmMsgCtx.getMessageContext().getOperationContext() ==
> > null) {
> > >              // operation context will be null when doing in a GLOBAL
> > >              // handler.
> > > +
> > >              ServiceContext serviceCtx =
> msgContext.getServiceContext();
> > > -            OperationContext opCtx = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +            OperationContext opCtx =  ContextFactory.
> > > createOperationContext(ackOperation, serviceCtx);
> > > +
> > >              rmMsgCtx.getMessageContext ().setOperationContext(opCtx);
> > >           }
> > >
> > > @@ -292,8 +295,11 @@
> > >              getRMVersion(),
> > >              getMsgContext().getAxisService());
> > >        getMsgContext().setAxisOperation(ackOperation);
> > > +
> > >        ServiceContext serviceCtx =
> getMsgContext().getServiceContext();
> > > -      OperationContext opcontext = new
> > > OperationContext(ackOperation, serviceCtx);
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(ackOperation, serviceCtx);
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().
> > > registerOperationContext(ackRequestRMMsg.getMessageId (), opcontext);
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
>
> > > java
> > > URL: http://svn.apache.
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
>
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -24,6 +24,7 @@
> > >  import org.apache.axiom.soap.SOAPFactory ;
> > >  import org.apache.axis2.AxisFault;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.description.AxisOperation;
> > > @@ -172,7 +173,10 @@
> > >              rmMsgCtx.getMessageContext().getAxisService());
> > >        getMsgContext().setAxisOperation(closeOperation);
> > >
> > > -      OperationContext opcontext = new
> > > OperationContext(closeOperation, getMsgContext().getServiceContext());
>
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(closeOperation,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),opcontext);
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > >
> > > Modified:
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java
> > > URL: http://svn.apache .
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
>
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -7,8 +7,10 @@
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > > +import org.apache.axis2.context.OperationContextFactory;
> > >  import org.apache.axis2.description.AxisOperation;
> > >  import org.apache.axis2.description.TransportOutDescription ;
> > >  import org.apache.commons.logging.Log;
> > > @@ -144,7 +146,9 @@
> > >        OperationContext context = pollMessage.getMessageContext().
> > > getOperationContext();
> > >        if(context == null) {
> > >           AxisOperation oldOperation =
> returnMessage.getAxisOperation();
> > > -         context = new OperationContext(oldOperation,
> > > returnMessage.getServiceContext());
> > > +
> > > +         context = ContextFactory.
> > > createOperationContext(oldOperation, returnMessage.
> > > getServiceContext()); //new OperationContext(oldOperation);
> > > +
> > >           context.addMessageContext(pollMessage.getMessageContext());
> > > pollMessage.getMessageContext().setOperationContext(context);
> > >        }
> > >
> > > Modified:
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java
> > > URL: http://svn.apache.
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
> ==============================================================================
>
> > > ---
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > > java (original)
> > > +++
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
>
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -23,6 +23,7 @@
> > >  import org.apache.axis2.AxisFault ;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.OperationContextFactory ;
> > > @@ -366,9 +367,10 @@
> > >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ ,
> > >              rmMsgCtx.getRMSpecVersion(),
> > >              getMsgContext().getAxisService());
> > > -      OperationContext opcontext = OperationContextFactory
> > > -            .createOperationContext(
> > > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > > getMsgContext().getServiceContext());
> > > +
> > > +      OperationContext opcontext = ContextFactory.
> > > createOperationContext(terminateOp,
> > getMsgContext().getServiceContext());
> > > +      opcontext.setParent(getMsgContext().getServiceContext());
> > > +
> > >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > > getMessageId(),   opcontext);
> > >
> > >        getMsgContext().setOperationContext(opcontext);
> > >
> > > Modified:
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java
> > > URL: http://svn.apache .
> > >
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -31,6 +31,7 @@
> > >  import org.apache.axis2.Constants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext;
> > > +import org.apache.axis2.context.ContextFactory ;
> > >  import org.apache.axis2.context.MessageContext ;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext;
> > > @@ -354,8 +355,9 @@
> > >           // operation context will be null when doing in a GLOBAL
> > >           // handler.
> > >           AxisOperation op = ackMsgContext.getAxisOperation();
> > > +
> > >           ServiceContext serviceCtx =
> ackMsgContext.getServiceContext();
> > > -         OperationContext opCtx = new OperationContext(op,
> serviceCtx);
> > > +         OperationContext opCtx = ContextFactory.
> > > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > > getServiceContext());
> > > ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
> > >        }
> > >
> > >
> > > Modified:
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java
> > > URL: http://svn.apache.
> > >
> >
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
>
> > > java?view=diff&rev=507097&r1=507096&r2=507097
> > >
> >
>
> ==============================================================================
> > > ---
> > >
> >
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
>
> > > java (original)
> > > +++
> > >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > > java Tue Feb 13 08:58:14 2007
> > > @@ -11,6 +11,7 @@
> > >  import org.apache.axis2.addressing.AddressingConstants;
> > >  import org.apache.axis2.addressing.EndpointReference;
> > >  import org.apache.axis2.context.ConfigurationContext ;
> > > +import org.apache.axis2.context.ContextFactory;
> > >  import org.apache.axis2.context.MessageContext;
> > >  import org.apache.axis2.context.OperationContext;
> > >  import org.apache.axis2.context.ServiceContext ;
> > > @@ -522,9 +523,11 @@
> > >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> > >                 if (requestMsgOpCtx.getAxisOperation().
> > > getMessageReceiver() == null) {
> > >                    // Generate a new RM In Only operation
> > > +
> > >                    ServiceContext serviceCtx =
> > > responseMessageContext.getServiceContext();
> > >                    AxisOperation op = msgCtx.getAxisService().
> > > getOperation(new QName("RMInOnlyOperation"));
> > > -                  responseMsgOpCtx = new OperationContext(op,
> > > serviceCtx);
> > > +                  responseMsgOpCtx = ContextFactory.
> > > createOperationContext (op, serviceCtx);
> > > +
> > >                 }
> > >
> > > responseMessageContext.setOperationContext(responseMsgOpCtx);
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> > >
> >
> >
> >
> >
> >
> >
> > Unless stated otherwise above:
> > IBM United Kingdom Limited - Registered in England and Wales with number
> > 741598.
> > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
> 3AU
> >
> >
> >
> >
> >
>
>
>
>
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>
>
>
>
>
>
>
>

Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Matthew Lovett <ML...@uk.ibm.com>.
Hi Chamikara,

I see what you are trying to avoid, but as you agreed - there are cases 
where this doesn't work. 2 examples:
An in-only MEP with an anonymous acksTo (where we need to keep the 
backchannel)
An in-out MEP with a non-anonymous replyTo, but an anonymous acksTo 
(again, we need the backchannel)

I think perhaps the code in the DispatchPhase is jumping the gun a bit. I 
think that the RM Phase (e.g. our SandeshaInHandler) needs to decide if it 
needs the transport, before this optimization can run. Perhaps the right 
thing to do is to move this block of logic into some point a little later 
on?

As for moving the RM ack logic earlier, e.g. up to the GlobalInHandler, 
I'm not sure if we can do that. I recently moved some of the logic from 
the global handler down into the in handler becase it needed the operation 
to have been resolved. If we did store the inbound message here (and send 
the ack) then I think that we'd need to modify the code so that it always 
uses an invoker, and do most of the processing downstream from there. 
Perhaps worth thinking about.

Thanks

Matt

"Chamikara Jayalath" <ch...@gmail.com> wrote on 14/02/2007 23:36:53:

> Hi Matt,

> On 2/14/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
> Hi Chamikara,
> 
> Can you explain the changes to the module.xml a bit for me? I'm afraid
> that I don't quite follow your reasoning. Here's why:
> 
> If we are trying to change the server-side behaviour, 
> 
> Yes. Its the sever side that I'm trying to fix. 
> 
> that implies that 
> the server-side-servlet serving the request is confused by the "1-way" 
ops
> that produce a response. If that is the case then we haven't solved the
> whole issue, as a user's 1-way op could result in an ackMessage that 
needs 
> to flow on the backchannel, and presumably the servlet would be just as
> confused by this! I think the only place to fix that would be in the
> servlet itself, and that means that we could leave the module.xml alone 
- 
> with definitions that follow the spec.
> 
> 
> The reason for this fix was the lines 71-91 of the DiapatchPhase 
> class. For InOnly messages the  transport headers get written (For 
> e.g. HTTP 202) before the messages reach our handler. Because of 
> this whatever the response we write goes with the HTTP 202 response 
> code and that get ignored by the Axis2 client side. 
> The RequestResponseTransport.acknowledgeMessage() method hs been 
> fully implemented only for the Servlet case. So this is not visible 
> in test cases (i.e. with SAS).
> 
> Didn't get what u meant by 'definitions that follow the spec'. 
> AckRequested is actually an InOut message and it is correct to move 
> it there. Yes TerminateSequence is a problem, but we hv a scenario 
> where it works as InOut. 
> As for the LastMessage, the latest interops with Msft showed that it
> comes without a MessageID, so I guessed that it hs to be moved back 
> to the InOnly group.
> 
> Yes, the problem is still there for InOnly messages that needs an 
> Ack. May be we should do early acking at the GlobalInHandler. Or is 
> there a better way ? 
> 
> Chamikara
> 
> 
> If it isn't the service side, but actually the client side that we are 
> trying to fix, then the module.xml is not as relevant as the code in
> SpecSpecificConstants::getWSRMOperationType. However, you didn't change
> that, so I'm assuming that it is server side that we need to worry 
about. 
> 
> Do you actually have a test case that is impacted by the module.xml 
change
> you put in?
> 
> Thanks
> 
> Matt
> 
> chamikara@apache.org wrote on 13/02/2007 16:58:15: 
> 
> > Author: chamikara
> > Date: Tue Feb 13 08:58:14 2007
> > New Revision: 507097
> >
> > URL: http://svn.apache.org/viewvc?view=rev&rev=507097 
> > Log:
> > changed AckRequest, LastMessage and TerminateSequence ActionMappings
> > to the RMInOutOperation. Having them as InOnly caused
> > the response to come with 202 in the Servlet case.
> > 
> > Changed the places where we create contexts to use the ContextFactory.
> >
> > Modified:
> >     webservices/sandesha/trunk/java/config/client_axis2.xml
> >     webservices/sandesha/trunk/java/config/module.xml 
> >     webservices/sandesha/trunk/java/config/server_axis2.xml
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java
> >
> > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml? 
> > view=diff&rev=507097&r1=507096&r2=507097
> >
> 
==============================================================================
> > --- webservices/sandesha/trunk/java/config/client_axis2.xml (original) 

> > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > 13 08:58:14 2007
> > @@ -96,6 +96,7 @@
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender"> 
> >          <parameter name="PROTOCOL" 
locked="false">HTTP/1.1</parameter>
> >          <parameter name="Transfer-Encoding"
> > locked="false">chunked</parameter> 
> > +        <!-- <parameter name="OmitSOAP12Action"
> > locked="false">true</parameter> -->
> >      </transportSender>
> >      <transportSender name="https" 
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >
> > Modified: webservices/sandesha/trunk/java/config/module.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
> 
==============================================================================
> > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13
> 08:58:14 2007
> > @@ -40,14 +40,10 @@
> >          <messageReceiver class=" org.apache.sandesha2.msgreceivers.
> > RMMessageReceiver"/>
> >
> >          <!-- namespaces for the 2005-02 spec -->
> > -        <actionMapping>http://schemas.xmlsoap .
> > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> >          <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping> 
> > -        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/AckRequested</actionMapping>
> > -        <actionMapping> http://schemas.xmlsoap.
> > org/ws/2005/02/rm/LastMessage</actionMapping>
> >
> >          <!-- namespaces for the 2006-08 spec -->
> >          <actionMapping> http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/SequenceAcknowledgement</actionMapping>
> > -        <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/AckRequested</actionMapping>
> >       </operation>
> >
> >       <operation name="RMInOutOperation" mep="http://www.w3.
> > org/2006/01/wsdl/in-out"> 
> > @@ -55,7 +51,17 @@
> >
> >          <!-- namespaces for the 2005-02 spec -->
> >          <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/CreateSequence</actionMapping> 
> > -
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/AckRequested</actionMapping>
> > +
> > +        <!--  For interoparability perposes. Some WSRM 
> > implementations tend to send this as the LastMessage,
> +
> > replied with an ack -->
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/LastMessage</actionMapping> 
> > +        <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/AckRequested</actionMapping>
> > +
> > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > anonymous scenario -->
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > +
> > + 
> >          <!-- namespaces for the 2006-08 spec -->
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/CreateSequence</actionMapping> 
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/CloseSequence</actionMapping>
> >
> > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml 
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
> 
==============================================================================
> > --- webservices/sandesha/trunk/java/config/server_axis2.xml (original)
> > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb
> > 13 08:58:14 2007
> > @@ -97,6 +97,7 @@
> >                       class=" org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >          <parameter name="PROTOCOL" 
locked="false">HTTP/1.1</parameter>
> >          <parameter name="Transfer-Encoding" 
> > locked="false">chunked</parameter>
> > +        <!-- <parameter name="OmitSOAP12Action"
> > locked="false">true</parameter> -->
> >      </transportSender> 
> >      <transportSender name="https"
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -30,6 +30,7 @@
> >  import org.apache.axis2.Constants ;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -184,8 +185,10 @@
> >           if (rmMsgCtx.getMessageContext().getOperationContext() == 
> null) {
> >              // operation context will be null when doing in a GLOBAL
> >              // handler.
> > +
> >              ServiceContext serviceCtx = 
msgContext.getServiceContext();
> > -            OperationContext opCtx = new 
> > OperationContext(ackOperation, serviceCtx);
> > +            OperationContext opCtx =  ContextFactory.
> > createOperationContext(ackOperation, serviceCtx);
> > +
> >              rmMsgCtx.getMessageContext ().setOperationContext(opCtx);
> >           }
> >
> > @@ -292,8 +295,11 @@
> >              getRMVersion(),
> >              getMsgContext().getAxisService());
> >        getMsgContext().setAxisOperation(ackOperation); 
> > +
> >        ServiceContext serviceCtx = 
getMsgContext().getServiceContext();
> > -      OperationContext opcontext = new
> > OperationContext(ackOperation, serviceCtx);
> > +      OperationContext opcontext = ContextFactory. 
> > createOperationContext(ackOperation, serviceCtx);
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().
> > registerOperationContext(ackRequestRMMsg.getMessageId (), opcontext);
> >        getMsgContext().setOperationContext(opcontext);
> >
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -24,6 +24,7 @@
> >  import org.apache.axiom.soap.SOAPFactory ;
> >  import org.apache.axis2.AxisFault;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.description.AxisOperation;
> > @@ -172,7 +173,10 @@
> >              rmMsgCtx.getMessageContext().getAxisService());
> >        getMsgContext().setAxisOperation(closeOperation);
> >
> > -      OperationContext opcontext = new
> > OperationContext(closeOperation, getMsgContext().getServiceContext());
> > +
> > +      OperationContext opcontext = ContextFactory. 
> > createOperationContext(closeOperation,
> getMsgContext().getServiceContext());
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().registerOperationContext(rmMsgCtx. 
> > getMessageId(),opcontext);
> >        getMsgContext().setOperationContext(opcontext);
> >
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -7,8 +7,10 @@
> >  import org.apache.axis2.AxisFault ;
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> > +import org.apache.axis2.context.OperationContextFactory;
> >  import org.apache.axis2.description.AxisOperation;
> >  import org.apache.axis2.description.TransportOutDescription ;
> >  import org.apache.commons.logging.Log;
> > @@ -144,7 +146,9 @@
> >        OperationContext context = pollMessage.getMessageContext().
> > getOperationContext();
> >        if(context == null) {
> >           AxisOperation oldOperation = 
returnMessage.getAxisOperation();
> > -         context = new OperationContext(oldOperation,
> > returnMessage.getServiceContext());
> > +
> > +         context = ContextFactory. 
> > createOperationContext(oldOperation, returnMessage.
> > getServiceContext()); //new OperationContext(oldOperation);
> > +
> >           context.addMessageContext(pollMessage.getMessageContext());
> > pollMessage.getMessageContext().setOperationContext(context);
> >        }
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java 
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -23,6 +23,7 @@
> >  import org.apache.axis2.AxisFault ;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.OperationContextFactory;
> > @@ -366,9 +367,10 @@
> >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ ,
> >              rmMsgCtx.getRMSpecVersion(),
> >              getMsgContext().getAxisService());
> > -      OperationContext opcontext = OperationContextFactory
> > -            .createOperationContext( 
> > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > getMsgContext().getServiceContext());
> > +
> > +      OperationContext opcontext = ContextFactory.
> > createOperationContext(terminateOp, 
> getMsgContext().getServiceContext());
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > getMessageId(),   opcontext); 
> >
> >        getMsgContext().setOperationContext(opcontext);
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java Tue Feb 13 08:58:14 2007
> > @@ -31,6 +31,7 @@
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -354,8 +355,9 @@
> >           // operation context will be null when doing in a GLOBAL
> >           // handler.
> >           AxisOperation op = ackMsgContext.getAxisOperation();
> > +
> >           ServiceContext serviceCtx = 
ackMsgContext.getServiceContext();
> > -         OperationContext opCtx = new OperationContext(op, 
serviceCtx); 
> > +         OperationContext opCtx = ContextFactory.
> > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > getServiceContext());
> > ackRMMsgContext.getMessageContext().setOperationContext(opCtx); 
> >        }
> >
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java (original)
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java Tue Feb 13 08:58:14 2007
> > @@ -11,6 +11,7 @@
> >  import org.apache.axis2.addressing.AddressingConstants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext ;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext ;
> > @@ -522,9 +523,11 @@
> >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> >                 if (requestMsgOpCtx.getAxisOperation().
> > getMessageReceiver() == null) {
> >                    // Generate a new RM In Only operation 
> > +
> >                    ServiceContext serviceCtx =
> > responseMessageContext.getServiceContext();
> >                    AxisOperation op = msgCtx.getAxisService().
> > getOperation(new QName("RMInOnlyOperation")); 
> > -                  responseMsgOpCtx = new OperationContext(op,
> > serviceCtx);
> > +                  responseMsgOpCtx = ContextFactory.
> > createOperationContext (op, serviceCtx);
> > +
> >                 } 
> >
> > responseMessageContext.setOperationContext(responseMsgOpCtx);
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> >
> 
> 
> 
> 
> 
> 
> Unless stated otherwise above: 
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
3AU
> 
> 
> 
> 
> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Matthew Lovett <ML...@uk.ibm.com>.
Hi Chamikara,

I see what you are trying to avoid, but as you agreed - there are cases 
where this doesn't work. 2 examples:
An in-only MEP with an anonymous acksTo (where we need to keep the 
backchannel)
An in-out MEP with a non-anonymous replyTo, but an anonymous acksTo 
(again, we need the backchannel)

I think perhaps the code in the DispatchPhase is jumping the gun a bit. I 
think that the RM Phase (e.g. our SandeshaInHandler) needs to decide if it 
needs the transport, before this optimization can run. Perhaps the right 
thing to do is to move this block of logic into some point a little later 
on?

As for moving the RM ack logic earlier, e.g. up to the GlobalInHandler, 
I'm not sure if we can do that. I recently moved some of the logic from 
the global handler down into the in handler becase it needed the operation 
to have been resolved. If we did store the inbound message here (and send 
the ack) then I think that we'd need to modify the code so that it always 
uses an invoker, and do most of the processing downstream from there. 
Perhaps worth thinking about.

Thanks

Matt

"Chamikara Jayalath" <ch...@gmail.com> wrote on 14/02/2007 23:36:53:

> Hi Matt,

> On 2/14/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
> Hi Chamikara,
> 
> Can you explain the changes to the module.xml a bit for me? I'm afraid
> that I don't quite follow your reasoning. Here's why:
> 
> If we are trying to change the server-side behaviour, 
> 
> Yes. Its the sever side that I'm trying to fix. 
> 
> that implies that 
> the server-side-servlet serving the request is confused by the "1-way" 
ops
> that produce a response. If that is the case then we haven't solved the
> whole issue, as a user's 1-way op could result in an ackMessage that 
needs 
> to flow on the backchannel, and presumably the servlet would be just as
> confused by this! I think the only place to fix that would be in the
> servlet itself, and that means that we could leave the module.xml alone 
- 
> with definitions that follow the spec.
> 
> 
> The reason for this fix was the lines 71-91 of the DiapatchPhase 
> class. For InOnly messages the  transport headers get written (For 
> e.g. HTTP 202) before the messages reach our handler. Because of 
> this whatever the response we write goes with the HTTP 202 response 
> code and that get ignored by the Axis2 client side. 
> The RequestResponseTransport.acknowledgeMessage() method hs been 
> fully implemented only for the Servlet case. So this is not visible 
> in test cases (i.e. with SAS).
> 
> Didn't get what u meant by 'definitions that follow the spec'. 
> AckRequested is actually an InOut message and it is correct to move 
> it there. Yes TerminateSequence is a problem, but we hv a scenario 
> where it works as InOut. 
> As for the LastMessage, the latest interops with Msft showed that it
> comes without a MessageID, so I guessed that it hs to be moved back 
> to the InOnly group.
> 
> Yes, the problem is still there for InOnly messages that needs an 
> Ack. May be we should do early acking at the GlobalInHandler. Or is 
> there a better way ? 
> 
> Chamikara
> 
> 
> If it isn't the service side, but actually the client side that we are 
> trying to fix, then the module.xml is not as relevant as the code in
> SpecSpecificConstants::getWSRMOperationType. However, you didn't change
> that, so I'm assuming that it is server side that we need to worry 
about. 
> 
> Do you actually have a test case that is impacted by the module.xml 
change
> you put in?
> 
> Thanks
> 
> Matt
> 
> chamikara@apache.org wrote on 13/02/2007 16:58:15: 
> 
> > Author: chamikara
> > Date: Tue Feb 13 08:58:14 2007
> > New Revision: 507097
> >
> > URL: http://svn.apache.org/viewvc?view=rev&rev=507097 
> > Log:
> > changed AckRequest, LastMessage and TerminateSequence ActionMappings
> > to the RMInOutOperation. Having them as InOnly caused
> > the response to come with 202 in the Servlet case.
> > 
> > Changed the places where we create contexts to use the ContextFactory.
> >
> > Modified:
> >     webservices/sandesha/trunk/java/config/client_axis2.xml
> >     webservices/sandesha/trunk/java/config/module.xml 
> >     webservices/sandesha/trunk/java/config/server_axis2.xml
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java
> >
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java
> >
> > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml? 
> > view=diff&rev=507097&r1=507096&r2=507097
> >
> 
==============================================================================
> > --- webservices/sandesha/trunk/java/config/client_axis2.xml (original) 

> > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > 13 08:58:14 2007
> > @@ -96,6 +96,7 @@
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender"> 
> >          <parameter name="PROTOCOL" 
locked="false">HTTP/1.1</parameter>
> >          <parameter name="Transfer-Encoding"
> > locked="false">chunked</parameter> 
> > +        <!-- <parameter name="OmitSOAP12Action"
> > locked="false">true</parameter> -->
> >      </transportSender>
> >      <transportSender name="https" 
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >
> > Modified: webservices/sandesha/trunk/java/config/module.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
> 
==============================================================================
> > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13
> 08:58:14 2007
> > @@ -40,14 +40,10 @@
> >          <messageReceiver class=" org.apache.sandesha2.msgreceivers.
> > RMMessageReceiver"/>
> >
> >          <!-- namespaces for the 2005-02 spec -->
> > -        <actionMapping>http://schemas.xmlsoap .
> > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> >          <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping> 
> > -        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/AckRequested</actionMapping>
> > -        <actionMapping> http://schemas.xmlsoap.
> > org/ws/2005/02/rm/LastMessage</actionMapping>
> >
> >          <!-- namespaces for the 2006-08 spec -->
> >          <actionMapping> http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/SequenceAcknowledgement</actionMapping>
> > -        <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/AckRequested</actionMapping>
> >       </operation>
> >
> >       <operation name="RMInOutOperation" mep="http://www.w3.
> > org/2006/01/wsdl/in-out"> 
> > @@ -55,7 +51,17 @@
> >
> >          <!-- namespaces for the 2005-02 spec -->
> >          <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/CreateSequence</actionMapping> 
> > -
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/AckRequested</actionMapping>
> > +
> > +        <!--  For interoparability perposes. Some WSRM 
> > implementations tend to send this as the LastMessage,
> +
> > replied with an ack -->
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/LastMessage</actionMapping> 
> > +        <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/AckRequested</actionMapping>
> > +
> > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > anonymous scenario -->
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > +
> > + 
> >          <!-- namespaces for the 2006-08 spec -->
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/CreateSequence</actionMapping> 
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/CloseSequence</actionMapping>
> >
> > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml 
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
> 
==============================================================================
> > --- webservices/sandesha/trunk/java/config/server_axis2.xml (original)
> > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb
> > 13 08:58:14 2007
> > @@ -97,6 +97,7 @@
> >                       class=" org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >          <parameter name="PROTOCOL" 
locked="false">HTTP/1.1</parameter>
> >          <parameter name="Transfer-Encoding" 
> > locked="false">chunked</parameter>
> > +        <!-- <parameter name="OmitSOAP12Action"
> > locked="false">true</parameter> -->
> >      </transportSender> 
> >      <transportSender name="https"
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -30,6 +30,7 @@
> >  import org.apache.axis2.Constants ;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -184,8 +185,10 @@
> >           if (rmMsgCtx.getMessageContext().getOperationContext() == 
> null) {
> >              // operation context will be null when doing in a GLOBAL
> >              // handler.
> > +
> >              ServiceContext serviceCtx = 
msgContext.getServiceContext();
> > -            OperationContext opCtx = new 
> > OperationContext(ackOperation, serviceCtx);
> > +            OperationContext opCtx =  ContextFactory.
> > createOperationContext(ackOperation, serviceCtx);
> > +
> >              rmMsgCtx.getMessageContext ().setOperationContext(opCtx);
> >           }
> >
> > @@ -292,8 +295,11 @@
> >              getRMVersion(),
> >              getMsgContext().getAxisService());
> >        getMsgContext().setAxisOperation(ackOperation); 
> > +
> >        ServiceContext serviceCtx = 
getMsgContext().getServiceContext();
> > -      OperationContext opcontext = new
> > OperationContext(ackOperation, serviceCtx);
> > +      OperationContext opcontext = ContextFactory. 
> > createOperationContext(ackOperation, serviceCtx);
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().
> > registerOperationContext(ackRequestRMMsg.getMessageId (), opcontext);
> >        getMsgContext().setOperationContext(opcontext);
> >
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -24,6 +24,7 @@
> >  import org.apache.axiom.soap.SOAPFactory ;
> >  import org.apache.axis2.AxisFault;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.description.AxisOperation;
> > @@ -172,7 +173,10 @@
> >              rmMsgCtx.getMessageContext().getAxisService());
> >        getMsgContext().setAxisOperation(closeOperation);
> >
> > -      OperationContext opcontext = new
> > OperationContext(closeOperation, getMsgContext().getServiceContext());
> > +
> > +      OperationContext opcontext = ContextFactory. 
> > createOperationContext(closeOperation,
> getMsgContext().getServiceContext());
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().registerOperationContext(rmMsgCtx. 
> > getMessageId(),opcontext);
> >        getMsgContext().setOperationContext(opcontext);
> >
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -7,8 +7,10 @@
> >  import org.apache.axis2.AxisFault ;
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> > +import org.apache.axis2.context.OperationContextFactory;
> >  import org.apache.axis2.description.AxisOperation;
> >  import org.apache.axis2.description.TransportOutDescription ;
> >  import org.apache.commons.logging.Log;
> > @@ -144,7 +146,9 @@
> >        OperationContext context = pollMessage.getMessageContext().
> > getOperationContext();
> >        if(context == null) {
> >           AxisOperation oldOperation = 
returnMessage.getAxisOperation();
> > -         context = new OperationContext(oldOperation,
> > returnMessage.getServiceContext());
> > +
> > +         context = ContextFactory. 
> > createOperationContext(oldOperation, returnMessage.
> > getServiceContext()); //new OperationContext(oldOperation);
> > +
> >           context.addMessageContext(pollMessage.getMessageContext());
> > pollMessage.getMessageContext().setOperationContext(context);
> >        }
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java 
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -23,6 +23,7 @@
> >  import org.apache.axis2.AxisFault ;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.OperationContextFactory;
> > @@ -366,9 +367,10 @@
> >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ ,
> >              rmMsgCtx.getRMSpecVersion(),
> >              getMsgContext().getAxisService());
> > -      OperationContext opcontext = OperationContextFactory
> > -            .createOperationContext( 
> > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > getMsgContext().getServiceContext());
> > +
> > +      OperationContext opcontext = ContextFactory.
> > createOperationContext(terminateOp, 
> getMsgContext().getServiceContext());
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > getMessageId(),   opcontext); 
> >
> >        getMsgContext().setOperationContext(opcontext);
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java?view=diff&rev=507097&r1=507096&r2=507097 
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java (original) 
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java Tue Feb 13 08:58:14 2007
> > @@ -31,6 +31,7 @@
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext ;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -354,8 +355,9 @@
> >           // operation context will be null when doing in a GLOBAL
> >           // handler.
> >           AxisOperation op = ackMsgContext.getAxisOperation();
> > +
> >           ServiceContext serviceCtx = 
ackMsgContext.getServiceContext();
> > -         OperationContext opCtx = new OperationContext(op, 
serviceCtx); 
> > +         OperationContext opCtx = ContextFactory.
> > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > getServiceContext());
> > ackRMMsgContext.getMessageContext().setOperationContext(opCtx); 
> >        }
> >
> >
> > Modified:
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java
> > URL: http://svn.apache.
> >
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
> 
==============================================================================
> > ---
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java (original)
> > +++
> >
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java Tue Feb 13 08:58:14 2007
> > @@ -11,6 +11,7 @@
> >  import org.apache.axis2.addressing.AddressingConstants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext ;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext ;
> > @@ -522,9 +523,11 @@
> >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> >                 if (requestMsgOpCtx.getAxisOperation().
> > getMessageReceiver() == null) {
> >                    // Generate a new RM In Only operation 
> > +
> >                    ServiceContext serviceCtx =
> > responseMessageContext.getServiceContext();
> >                    AxisOperation op = msgCtx.getAxisService().
> > getOperation(new QName("RMInOnlyOperation")); 
> > -                  responseMsgOpCtx = new OperationContext(op,
> > serviceCtx);
> > +                  responseMsgOpCtx = ContextFactory.
> > createOperationContext (op, serviceCtx);
> > +
> >                 } 
> >
> > responseMessageContext.setOperationContext(responseMsgOpCtx);
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> >
> 
> 
> 
> 
> 
> 
> Unless stated otherwise above: 
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
3AU
> 
> 
> 
> 
> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Chamikara Jayalath <ch...@gmail.com>.
Hi Matt,

On 2/14/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
>
> Hi Chamikara,
>
> Can you explain the changes to the module.xml a bit for me? I'm afraid
> that I don't quite follow your reasoning. Here's why:
>
> If we are trying to change the server-side behaviour,


Yes. Its the sever side that I'm trying to fix.

that implies that
> the server-side-servlet serving the request is confused by the "1-way" ops
> that produce a response. If that is the case then we haven't solved the
> whole issue, as a user's 1-way op could result in an ackMessage that needs
> to flow on the backchannel, and presumably the servlet would be just as
> confused by this! I think the only place to fix that would be in the
> servlet itself, and that means that we could leave the module.xml alone -
> with definitions that follow the spec.



The reason for this fix was the lines 71-91 of the DiapatchPhase class. For
InOnly messages the  transport headers get written (For e.g. HTTP 202)
before the messages reach our handler. Because of this whatever the response
we write goes with the HTTP 202 response code and that get ignored by the
Axis2 client side.
The RequestResponseTransport.acknowledgeMessage() method hs been fully
implemented only for the Servlet case. So this is not visible in test cases
(i.e. with SAS).

Didn't get what u meant by 'definitions that follow the spec'. AckRequested
is actually an InOut message and it is correct to move it there. Yes
TerminateSequence is a problem, but we hv a scenario where it works as
InOut.
As for the LastMessage, the latest interops with Msft showed that it comes
without a MessageID, so I guessed that it hs to be moved back to the InOnly
group.

Yes, the problem is still there for InOnly messages that needs an Ack. May
be we should do early acking at the GlobalInHandler. Or is there a better
way ?

Chamikara


If it isn't the service side, but actually the client side that we are
> trying to fix, then the module.xml is not as relevant as the code in
> SpecSpecificConstants::getWSRMOperationType. However, you didn't change
> that, so I'm assuming that it is server side that we need to worry about.
>
> Do you actually have a test case that is impacted by the module.xml change
> you put in?
>
> Thanks
>
> Matt
>
> chamikara@apache.org wrote on 13/02/2007 16:58:15:
>
> > Author: chamikara
> > Date: Tue Feb 13 08:58:14 2007
> > New Revision: 507097
> >
> > URL: http://svn.apache.org/viewvc?view=rev&rev=507097
> > Log:
> > changed AckRequest, LastMessage and TerminateSequence ActionMappings
> > to the RMInOutOperation. Having them as InOnly caused
> > the response to come with 202 in the Servlet case.
> >
> > Changed the places where we create contexts to use the ContextFactory.
> >
> > Modified:
> >     webservices/sandesha/trunk/java/config/client_axis2.xml
> >     webservices/sandesha/trunk/java/config/module.xml
> >     webservices/sandesha/trunk/java/config/server_axis2.xml
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java
> >
> > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > --- webservices/sandesha/trunk/java/config/client_axis2.xml (original)
> > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > 13 08:58:14 2007
> > @@ -96,6 +96,7 @@
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >          <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
> >          <parameter name="Transfer-Encoding"
> > locked="false">chunked</parameter>
> > +        <!-- <parameter name="OmitSOAP12Action"
> > locked="false">true</parameter> -->
> >      </transportSender>
> >      <transportSender name="https"
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >
> > Modified: webservices/sandesha/trunk/java/config/module.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13
> 08:58:14 2007
> > @@ -40,14 +40,10 @@
> >          <messageReceiver class="org.apache.sandesha2.msgreceivers.
> > RMMessageReceiver"/>
> >
> >          <!-- namespaces for the 2005-02 spec -->
> > -        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> >          <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> > -        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/AckRequested</actionMapping>
> > -        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/LastMessage</actionMapping>
> >
> >          <!-- namespaces for the 2006-08 spec -->
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/SequenceAcknowledgement</actionMapping>
> > -        <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/AckRequested</actionMapping>
> >       </operation>
> >
> >       <operation name="RMInOutOperation" mep="http://www.w3.
> > org/2006/01/wsdl/in-out">
> > @@ -55,7 +51,17 @@
> >
> >          <!-- namespaces for the 2005-02 spec -->
> >          <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/CreateSequence</actionMapping>
> > -
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/AckRequested</actionMapping>
> > +
> > +        <!--  For interoparability perposes. Some WSRM
> > implementations tend to send this as the LastMessage,
> +
> > replied with an ack -->
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/LastMessage</actionMapping>
> > +        <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/AckRequested</actionMapping>
> > +
> > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > anonymous scenario -->
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > +
> > +
> >          <!-- namespaces for the 2006-08 spec -->
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/CreateSequence</actionMapping>
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/CloseSequence</actionMapping>
> >
> > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > --- webservices/sandesha/trunk/java/config/server_axis2.xml (original)
> > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb
> > 13 08:58:14 2007
> > @@ -97,6 +97,7 @@
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >          <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
> >          <parameter name="Transfer-Encoding"
> > locked="false">chunked</parameter>
> > +        <!-- <parameter name="OmitSOAP12Action"
> > locked="false">true</parameter> -->
> >      </transportSender>
> >      <transportSender name="https"
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -30,6 +30,7 @@
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -184,8 +185,10 @@
> >           if (rmMsgCtx.getMessageContext().getOperationContext() ==
> null) {
> >              // operation context will be null when doing in a GLOBAL
> >              // handler.
> > +
> >              ServiceContext serviceCtx = msgContext.getServiceContext();
> > -            OperationContext opCtx = new
> > OperationContext(ackOperation, serviceCtx);
> > +            OperationContext opCtx =  ContextFactory.
> > createOperationContext(ackOperation, serviceCtx);
> > +
> >              rmMsgCtx.getMessageContext().setOperationContext(opCtx);
> >           }
> >
> > @@ -292,8 +295,11 @@
> >              getRMVersion(),
> >              getMsgContext().getAxisService());
> >        getMsgContext().setAxisOperation(ackOperation);
> > +
> >        ServiceContext serviceCtx = getMsgContext().getServiceContext();
> > -      OperationContext opcontext = new
> > OperationContext(ackOperation, serviceCtx);
> > +      OperationContext opcontext = ContextFactory.
> > createOperationContext(ackOperation, serviceCtx);
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().
> > registerOperationContext(ackRequestRMMsg.getMessageId(), opcontext);
> >        getMsgContext().setOperationContext(opcontext);
> >
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -24,6 +24,7 @@
> >  import org.apache.axiom.soap.SOAPFactory;
> >  import org.apache.axis2.AxisFault;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.description.AxisOperation;
> > @@ -172,7 +173,10 @@
> >              rmMsgCtx.getMessageContext().getAxisService());
> >        getMsgContext().setAxisOperation(closeOperation);
> >
> > -      OperationContext opcontext = new
> > OperationContext(closeOperation, getMsgContext().getServiceContext());
> > +
> > +      OperationContext opcontext = ContextFactory.
> > createOperationContext(closeOperation,
> getMsgContext().getServiceContext());
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > getMessageId(),opcontext);
> >        getMsgContext().setOperationContext(opcontext);
> >
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -7,8 +7,10 @@
> >  import org.apache.axis2.AxisFault;
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> > +import org.apache.axis2.context.OperationContextFactory;
> >  import org.apache.axis2.description.AxisOperation;
> >  import org.apache.axis2.description.TransportOutDescription;
> >  import org.apache.commons.logging.Log;
> > @@ -144,7 +146,9 @@
> >        OperationContext context = pollMessage.getMessageContext().
> > getOperationContext();
> >        if(context == null) {
> >           AxisOperation oldOperation = returnMessage.getAxisOperation();
> > -         context = new OperationContext(oldOperation,
> > returnMessage.getServiceContext());
> > +
> > +         context = ContextFactory.
> > createOperationContext(oldOperation, returnMessage.
> > getServiceContext()); //new OperationContext(oldOperation);
> > +
> >           context.addMessageContext(pollMessage.getMessageContext());
> >           pollMessage.getMessageContext().setOperationContext(context);
> >        }
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -23,6 +23,7 @@
> >  import org.apache.axis2.AxisFault;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.OperationContextFactory;
> > @@ -366,9 +367,10 @@
> >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ,
> >              rmMsgCtx.getRMSpecVersion(),
> >              getMsgContext().getAxisService());
> > -      OperationContext opcontext = OperationContextFactory
> > -            .createOperationContext(
> > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > getMsgContext().getServiceContext());
> > +
> > +      OperationContext opcontext = ContextFactory.
> > createOperationContext(terminateOp,
> getMsgContext().getServiceContext());
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > getMessageId(),   opcontext);
> >
> >        getMsgContext().setOperationContext(opcontext);
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java Tue Feb 13 08:58:14 2007
> > @@ -31,6 +31,7 @@
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -354,8 +355,9 @@
> >           // operation context will be null when doing in a GLOBAL
> >           // handler.
> >           AxisOperation op = ackMsgContext.getAxisOperation();
> > +
> >           ServiceContext serviceCtx = ackMsgContext.getServiceContext();
> > -         OperationContext opCtx = new OperationContext(op, serviceCtx);
> > +         OperationContext opCtx = ContextFactory.
> > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > getServiceContext());
> > ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
> >        }
> >
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java Tue Feb 13 08:58:14 2007
> > @@ -11,6 +11,7 @@
> >  import org.apache.axis2.addressing.AddressingConstants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -522,9 +523,11 @@
> >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> >                 if (requestMsgOpCtx.getAxisOperation().
> > getMessageReceiver() == null) {
> >                    // Generate a new RM In Only operation
> > +
> >                    ServiceContext serviceCtx =
> > responseMessageContext.getServiceContext();
> >                    AxisOperation op = msgCtx.getAxisService().
> > getOperation(new QName("RMInOnlyOperation"));
> > -                  responseMsgOpCtx = new OperationContext(op,
> > serviceCtx);
> > +                  responseMsgOpCtx = ContextFactory.
> > createOperationContext (op, serviceCtx);
> > +
> >                 }
> >
> > responseMessageContext.setOperationContext(responseMsgOpCtx);
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> >
>
>
>
>
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>
>
>
>
>
>
>

Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Chamikara Jayalath <ch...@gmail.com>.
Hi Matt,

On 2/14/07, Matthew Lovett <ML...@uk.ibm.com> wrote:
>
> Hi Chamikara,
>
> Can you explain the changes to the module.xml a bit for me? I'm afraid
> that I don't quite follow your reasoning. Here's why:
>
> If we are trying to change the server-side behaviour,


Yes. Its the sever side that I'm trying to fix.

that implies that
> the server-side-servlet serving the request is confused by the "1-way" ops
> that produce a response. If that is the case then we haven't solved the
> whole issue, as a user's 1-way op could result in an ackMessage that needs
> to flow on the backchannel, and presumably the servlet would be just as
> confused by this! I think the only place to fix that would be in the
> servlet itself, and that means that we could leave the module.xml alone -
> with definitions that follow the spec.



The reason for this fix was the lines 71-91 of the DiapatchPhase class. For
InOnly messages the  transport headers get written (For e.g. HTTP 202)
before the messages reach our handler. Because of this whatever the response
we write goes with the HTTP 202 response code and that get ignored by the
Axis2 client side.
The RequestResponseTransport.acknowledgeMessage() method hs been fully
implemented only for the Servlet case. So this is not visible in test cases
(i.e. with SAS).

Didn't get what u meant by 'definitions that follow the spec'. AckRequested
is actually an InOut message and it is correct to move it there. Yes
TerminateSequence is a problem, but we hv a scenario where it works as
InOut.
As for the LastMessage, the latest interops with Msft showed that it comes
without a MessageID, so I guessed that it hs to be moved back to the InOnly
group.

Yes, the problem is still there for InOnly messages that needs an Ack. May
be we should do early acking at the GlobalInHandler. Or is there a better
way ?

Chamikara


If it isn't the service side, but actually the client side that we are
> trying to fix, then the module.xml is not as relevant as the code in
> SpecSpecificConstants::getWSRMOperationType. However, you didn't change
> that, so I'm assuming that it is server side that we need to worry about.
>
> Do you actually have a test case that is impacted by the module.xml change
> you put in?
>
> Thanks
>
> Matt
>
> chamikara@apache.org wrote on 13/02/2007 16:58:15:
>
> > Author: chamikara
> > Date: Tue Feb 13 08:58:14 2007
> > New Revision: 507097
> >
> > URL: http://svn.apache.org/viewvc?view=rev&rev=507097
> > Log:
> > changed AckRequest, LastMessage and TerminateSequence ActionMappings
> > to the RMInOutOperation. Having them as InOnly caused
> > the response to come with 202 in the Servlet case.
> >
> > Changed the places where we create contexts to use the ContextFactory.
> >
> > Modified:
> >     webservices/sandesha/trunk/java/config/client_axis2.xml
> >     webservices/sandesha/trunk/java/config/module.xml
> >     webservices/sandesha/trunk/java/config/server_axis2.xml
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java
> >
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java
> >
> > Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > --- webservices/sandesha/trunk/java/config/client_axis2.xml (original)
> > +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb
> > 13 08:58:14 2007
> > @@ -96,6 +96,7 @@
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >          <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
> >          <parameter name="Transfer-Encoding"
> > locked="false">chunked</parameter>
> > +        <!-- <parameter name="OmitSOAP12Action"
> > locked="false">true</parameter> -->
> >      </transportSender>
> >      <transportSender name="https"
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >
> > Modified: webservices/sandesha/trunk/java/config/module.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > --- webservices/sandesha/trunk/java/config/module.xml (original)
> > +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13
> 08:58:14 2007
> > @@ -40,14 +40,10 @@
> >          <messageReceiver class="org.apache.sandesha2.msgreceivers.
> > RMMessageReceiver"/>
> >
> >          <!-- namespaces for the 2005-02 spec -->
> > -        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> >          <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> > -        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/AckRequested</actionMapping>
> > -        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/LastMessage</actionMapping>
> >
> >          <!-- namespaces for the 2006-08 spec -->
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/SequenceAcknowledgement</actionMapping>
> > -        <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/AckRequested</actionMapping>
> >       </operation>
> >
> >       <operation name="RMInOutOperation" mep="http://www.w3.
> > org/2006/01/wsdl/in-out">
> > @@ -55,7 +51,17 @@
> >
> >          <!-- namespaces for the 2005-02 spec -->
> >          <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/CreateSequence</actionMapping>
> > -
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/AckRequested</actionMapping>
> > +
> > +        <!--  For interoparability perposes. Some WSRM
> > implementations tend to send this as the LastMessage,
> +
> > replied with an ack -->
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/LastMessage</actionMapping>
> > +        <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/AckRequested</actionMapping>
> > +
> > +        <!--  TerminateSequence works as a InOut in RM 1.0
> > anonymous scenario -->
> > +        <actionMapping>http://schemas.xmlsoap.
> > org/ws/2005/02/rm/TerminateSequence</actionMapping>
> > +
> > +
> >          <!-- namespaces for the 2006-08 spec -->
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/CreateSequence</actionMapping>
> >          <actionMapping>http://docs.oasis-open.org/ws-
> > rx/wsrm/200608/CloseSequence</actionMapping>
> >
> > Modified: webservices/sandesha/trunk/java/config/server_axis2.xml
> > URL: http://svn.apache.
> > org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml?
> > view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > --- webservices/sandesha/trunk/java/config/server_axis2.xml (original)
> > +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb
> > 13 08:58:14 2007
> > @@ -97,6 +97,7 @@
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >          <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
> >          <parameter name="Transfer-Encoding"
> > locked="false">chunked</parameter>
> > +        <!-- <parameter name="OmitSOAP12Action"
> > locked="false">true</parameter> -->
> >      </transportSender>
> >      <transportSender name="https"
> >                       class="org.apache.axis2.transport.http.
> > CommonsHTTPTransportSender">
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -30,6 +30,7 @@
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -184,8 +185,10 @@
> >           if (rmMsgCtx.getMessageContext().getOperationContext() ==
> null) {
> >              // operation context will be null when doing in a GLOBAL
> >              // handler.
> > +
> >              ServiceContext serviceCtx = msgContext.getServiceContext();
> > -            OperationContext opCtx = new
> > OperationContext(ackOperation, serviceCtx);
> > +            OperationContext opCtx =  ContextFactory.
> > createOperationContext(ackOperation, serviceCtx);
> > +
> >              rmMsgCtx.getMessageContext().setOperationContext(opCtx);
> >           }
> >
> > @@ -292,8 +295,11 @@
> >              getRMVersion(),
> >              getMsgContext().getAxisService());
> >        getMsgContext().setAxisOperation(ackOperation);
> > +
> >        ServiceContext serviceCtx = getMsgContext().getServiceContext();
> > -      OperationContext opcontext = new
> > OperationContext(ackOperation, serviceCtx);
> > +      OperationContext opcontext = ContextFactory.
> > createOperationContext(ackOperation, serviceCtx);
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().
> > registerOperationContext(ackRequestRMMsg.getMessageId(), opcontext);
> >        getMsgContext().setOperationContext(opcontext);
> >
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -24,6 +24,7 @@
> >  import org.apache.axiom.soap.SOAPFactory;
> >  import org.apache.axis2.AxisFault;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.description.AxisOperation;
> > @@ -172,7 +173,10 @@
> >              rmMsgCtx.getMessageContext().getAxisService());
> >        getMsgContext().setAxisOperation(closeOperation);
> >
> > -      OperationContext opcontext = new
> > OperationContext(closeOperation, getMsgContext().getServiceContext());
> > +
> > +      OperationContext opcontext = ContextFactory.
> > createOperationContext(closeOperation,
> getMsgContext().getServiceContext());
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > getMessageId(),opcontext);
> >        getMsgContext().setOperationContext(opcontext);
> >
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -7,8 +7,10 @@
> >  import org.apache.axis2.AxisFault;
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> > +import org.apache.axis2.context.OperationContextFactory;
> >  import org.apache.axis2.description.AxisOperation;
> >  import org.apache.axis2.description.TransportOutDescription;
> >  import org.apache.commons.logging.Log;
> > @@ -144,7 +146,9 @@
> >        OperationContext context = pollMessage.getMessageContext().
> > getOperationContext();
> >        if(context == null) {
> >           AxisOperation oldOperation = returnMessage.getAxisOperation();
> > -         context = new OperationContext(oldOperation,
> > returnMessage.getServiceContext());
> > +
> > +         context = ContextFactory.
> > createOperationContext(oldOperation, returnMessage.
> > getServiceContext()); //new OperationContext(oldOperation);
> > +
> >           context.addMessageContext(pollMessage.getMessageContext());
> >           pollMessage.getMessageContext().setOperationContext(context);
> >        }
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> > java Tue Feb 13 08:58:14 2007
> > @@ -23,6 +23,7 @@
> >  import org.apache.axis2.AxisFault;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.OperationContextFactory;
> > @@ -366,9 +367,10 @@
> >              Sandesha2Constants.MessageTypes.TERMINATE_SEQ,
> >              rmMsgCtx.getRMSpecVersion(),
> >              getMsgContext().getAxisService());
> > -      OperationContext opcontext = OperationContextFactory
> > -            .createOperationContext(
> > -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp,
> > getMsgContext().getServiceContext());
> > +
> > +      OperationContext opcontext = ContextFactory.
> > createOperationContext(terminateOp,
> getMsgContext().getServiceContext());
> > +      opcontext.setParent(getMsgContext().getServiceContext());
> > +
> >        getConfigurationContext().registerOperationContext(rmMsgCtx.
> > getMessageId(),   opcontext);
> >
> >        getMsgContext().setOperationContext(opcontext);
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> > java Tue Feb 13 08:58:14 2007
> > @@ -31,6 +31,7 @@
> >  import org.apache.axis2.Constants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -354,8 +355,9 @@
> >           // operation context will be null when doing in a GLOBAL
> >           // handler.
> >           AxisOperation op = ackMsgContext.getAxisOperation();
> > +
> >           ServiceContext serviceCtx = ackMsgContext.getServiceContext();
> > -         OperationContext opCtx = new OperationContext(op, serviceCtx);
> > +         OperationContext opCtx = ContextFactory.
> > createOperationContext(op, ackRMMsgContext.getMessageContext().
> > getServiceContext());
> > ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
> >        }
> >
> >
> > Modified:
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java
> > URL: http://svn.apache.
> >
>
> org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java?view=diff&rev=507097&r1=507096&r2=507097
> >
>
> ==============================================================================
> > ---
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java (original)
> > +++
> >
>
> webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> > java Tue Feb 13 08:58:14 2007
> > @@ -11,6 +11,7 @@
> >  import org.apache.axis2.addressing.AddressingConstants;
> >  import org.apache.axis2.addressing.EndpointReference;
> >  import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.context.ContextFactory;
> >  import org.apache.axis2.context.MessageContext;
> >  import org.apache.axis2.context.OperationContext;
> >  import org.apache.axis2.context.ServiceContext;
> > @@ -522,9 +523,11 @@
> >                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
> >                 if (requestMsgOpCtx.getAxisOperation().
> > getMessageReceiver() == null) {
> >                    // Generate a new RM In Only operation
> > +
> >                    ServiceContext serviceCtx =
> > responseMessageContext.getServiceContext();
> >                    AxisOperation op = msgCtx.getAxisService().
> > getOperation(new QName("RMInOnlyOperation"));
> > -                  responseMsgOpCtx = new OperationContext(op,
> > serviceCtx);
> > +                  responseMsgOpCtx = ContextFactory.
> > createOperationContext (op, serviceCtx);
> > +
> >                 }
> >
> > responseMessageContext.setOperationContext(responseMsgOpCtx);
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> >
>
>
>
>
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>
>
>
>
>
>
>

Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Matthew Lovett <ML...@uk.ibm.com>.
Hi Chamikara,

Can you explain the changes to the module.xml a bit for me? I'm afraid 
that I don't quite follow your reasoning. Here's why:

If we are trying to change the server-side behaviour, that implies that 
the server-side-servlet serving the request is confused by the "1-way" ops 
that produce a response. If that is the case then we haven't solved the 
whole issue, as a user's 1-way op could result in an ackMessage that needs 
to flow on the backchannel, and presumably the servlet would be just as 
confused by this! I think the only place to fix that would be in the 
servlet itself, and that means that we could leave the module.xml alone - 
with definitions that follow the spec.

If it isn't the service side, but actually the client side that we are 
trying to fix, then the module.xml is not as relevant as the code in 
SpecSpecificConstants::getWSRMOperationType. However, you didn't change 
that, so I'm assuming that it is server side that we need to worry about.

Do you actually have a test case that is impacted by the module.xml change 
you put in?

Thanks

Matt

chamikara@apache.org wrote on 13/02/2007 16:58:15:

> Author: chamikara
> Date: Tue Feb 13 08:58:14 2007
> New Revision: 507097
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=507097
> Log:
> changed AckRequest, LastMessage and TerminateSequence ActionMappings
> to the RMInOutOperation. Having them as InOnly caused 
> the response to come with 202 in the Servlet case.
> 
> Changed the places where we create contexts to use the ContextFactory.
> 
> Modified:
>     webservices/sandesha/trunk/java/config/client_axis2.xml
>     webservices/sandesha/trunk/java/config/module.xml
>     webservices/sandesha/trunk/java/config/server_axis2.xml
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java
> 
> Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> URL: http://svn.apache.
> org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml?
> view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- webservices/sandesha/trunk/java/config/client_axis2.xml (original)
> +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb 
> 13 08:58:14 2007
> @@ -96,6 +96,7 @@
>                       class="org.apache.axis2.transport.http.
> CommonsHTTPTransportSender">
>          <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
>          <parameter name="Transfer-Encoding" 
> locked="false">chunked</parameter>
> +        <!-- <parameter name="OmitSOAP12Action" 
> locked="false">true</parameter> -->
>      </transportSender>
>      <transportSender name="https"
>                       class="org.apache.axis2.transport.http.
> CommonsHTTPTransportSender">
> 
> Modified: webservices/sandesha/trunk/java/config/module.xml
> URL: http://svn.apache.
> org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- webservices/sandesha/trunk/java/config/module.xml (original)
> +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13 
08:58:14 2007
> @@ -40,14 +40,10 @@
>          <messageReceiver class="org.apache.sandesha2.msgreceivers.
> RMMessageReceiver"/>
> 
>          <!-- namespaces for the 2005-02 spec -->
> -        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/TerminateSequence</actionMapping>
>          <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> -        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/AckRequested</actionMapping>
> -        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/LastMessage</actionMapping>
> 
>          <!-- namespaces for the 2006-08 spec -->
>          <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/SequenceAcknowledgement</actionMapping>
> -        <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/AckRequested</actionMapping>
>       </operation>
> 
>       <operation name="RMInOutOperation" mep="http://www.w3.
> org/2006/01/wsdl/in-out">
> @@ -55,7 +51,17 @@
> 
>          <!-- namespaces for the 2005-02 spec -->
>          <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/CreateSequence</actionMapping>
> -
> +        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/AckRequested</actionMapping>
> + 
> +        <!--  For interoparability perposes. Some WSRM 
> implementations tend to send this as the LastMessage, 
+ 
> replied with an ack -->
> +        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/LastMessage</actionMapping>
> +        <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/AckRequested</actionMapping>
> + 
> +        <!--  TerminateSequence works as a InOut in RM 1.0 
> anonymous scenario -->
> +        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/TerminateSequence</actionMapping>
> + 
> + 
>          <!-- namespaces for the 2006-08 spec -->
>          <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/CreateSequence</actionMapping>
>          <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/CloseSequence</actionMapping>
> 
> Modified: webservices/sandesha/trunk/java/config/server_axis2.xml
> URL: http://svn.apache.
> org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml?
> view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- webservices/sandesha/trunk/java/config/server_axis2.xml (original)
> +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb 
> 13 08:58:14 2007
> @@ -97,6 +97,7 @@
>                       class="org.apache.axis2.transport.http.
> CommonsHTTPTransportSender">
>          <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
>          <parameter name="Transfer-Encoding" 
> locked="false">chunked</parameter>
> +        <!-- <parameter name="OmitSOAP12Action" 
> locked="false">true</parameter> -->
>      </transportSender>
>      <transportSender name="https"
>                       class="org.apache.axis2.transport.http.
> CommonsHTTPTransportSender">
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java Tue Feb 13 08:58:14 2007
> @@ -30,6 +30,7 @@
>  import org.apache.axis2.Constants;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.context.ServiceContext;
> @@ -184,8 +185,10 @@
>           if (rmMsgCtx.getMessageContext().getOperationContext() == 
null) {
>              // operation context will be null when doing in a GLOBAL
>              // handler.
> + 
>              ServiceContext serviceCtx = msgContext.getServiceContext();
> -            OperationContext opCtx = new 
> OperationContext(ackOperation, serviceCtx);
> +            OperationContext opCtx =  ContextFactory.
> createOperationContext(ackOperation, serviceCtx);
> +
>              rmMsgCtx.getMessageContext().setOperationContext(opCtx);
>           }
> 
> @@ -292,8 +295,11 @@
>              getRMVersion(),
>              getMsgContext().getAxisService());
>        getMsgContext().setAxisOperation(ackOperation);
> +
>        ServiceContext serviceCtx = getMsgContext().getServiceContext();
> -      OperationContext opcontext = new 
> OperationContext(ackOperation, serviceCtx);
> +      OperationContext opcontext = ContextFactory.
> createOperationContext(ackOperation, serviceCtx);
> +      opcontext.setParent(getMsgContext().getServiceContext());
> +
>        getConfigurationContext().
> registerOperationContext(ackRequestRMMsg.getMessageId(), opcontext);
>        getMsgContext().setOperationContext(opcontext);
> 
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java Tue Feb 13 08:58:14 2007
> @@ -24,6 +24,7 @@
>  import org.apache.axiom.soap.SOAPFactory;
>  import org.apache.axis2.AxisFault;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.description.AxisOperation;
> @@ -172,7 +173,10 @@
>              rmMsgCtx.getMessageContext().getAxisService());
>        getMsgContext().setAxisOperation(closeOperation);
> 
> -      OperationContext opcontext = new 
> OperationContext(closeOperation, getMsgContext().getServiceContext());
> +
> +      OperationContext opcontext = ContextFactory.
> createOperationContext(closeOperation, 
getMsgContext().getServiceContext());
> +      opcontext.setParent(getMsgContext().getServiceContext());
> +
>        getConfigurationContext().registerOperationContext(rmMsgCtx.
> getMessageId(),opcontext);
>        getMsgContext().setOperationContext(opcontext);
> 
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java Tue Feb 13 08:58:14 2007
> @@ -7,8 +7,10 @@
>  import org.apache.axis2.AxisFault;
>  import org.apache.axis2.Constants;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
> +import org.apache.axis2.context.OperationContextFactory;
>  import org.apache.axis2.description.AxisOperation;
>  import org.apache.axis2.description.TransportOutDescription;
>  import org.apache.commons.logging.Log;
> @@ -144,7 +146,9 @@
>        OperationContext context = pollMessage.getMessageContext().
> getOperationContext();
>        if(context == null) {
>           AxisOperation oldOperation = returnMessage.getAxisOperation();
> -         context = new OperationContext(oldOperation, 
> returnMessage.getServiceContext());
> +
> +         context = ContextFactory.
> createOperationContext(oldOperation, returnMessage.
> getServiceContext()); //new OperationContext(oldOperation);
> +
>           context.addMessageContext(pollMessage.getMessageContext());
>           pollMessage.getMessageContext().setOperationContext(context);
>        }
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java Tue Feb 13 08:58:14 2007
> @@ -23,6 +23,7 @@
>  import org.apache.axis2.AxisFault;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.context.OperationContextFactory;
> @@ -366,9 +367,10 @@
>              Sandesha2Constants.MessageTypes.TERMINATE_SEQ,
>              rmMsgCtx.getRMSpecVersion(),
>              getMsgContext().getAxisService());
> -      OperationContext opcontext = OperationContextFactory
> -            .createOperationContext(
> -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp, 
> getMsgContext().getServiceContext());
> + 
> +      OperationContext opcontext = ContextFactory.
> createOperationContext(terminateOp, 
getMsgContext().getServiceContext());
> +      opcontext.setParent(getMsgContext().getServiceContext());
> +
>        getConfigurationContext().registerOperationContext(rmMsgCtx.
> getMessageId(),   opcontext);
> 
>        getMsgContext().setOperationContext(opcontext);
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java Tue Feb 13 08:58:14 2007
> @@ -31,6 +31,7 @@
>  import org.apache.axis2.Constants;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.context.ServiceContext;
> @@ -354,8 +355,9 @@
>           // operation context will be null when doing in a GLOBAL
>           // handler.
>           AxisOperation op = ackMsgContext.getAxisOperation();
> +
>           ServiceContext serviceCtx = ackMsgContext.getServiceContext();
> -         OperationContext opCtx = new OperationContext(op, serviceCtx);
> +         OperationContext opCtx = ContextFactory.
> createOperationContext(op, ackRMMsgContext.getMessageContext().
> getServiceContext());
> ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
>        }
> 
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java Tue Feb 13 08:58:14 2007
> @@ -11,6 +11,7 @@
>  import org.apache.axis2.addressing.AddressingConstants;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.context.ServiceContext;
> @@ -522,9 +523,11 @@
>                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
>                 if (requestMsgOpCtx.getAxisOperation().
> getMessageReceiver() == null) {
>                    // Generate a new RM In Only operation
> +
>                    ServiceContext serviceCtx = 
> responseMessageContext.getServiceContext();
>                    AxisOperation op = msgCtx.getAxisService().
> getOperation(new QName("RMInOnlyOperation"));
> -                  responseMsgOpCtx = new OperationContext(op, 
> serviceCtx); 
> +                  responseMsgOpCtx = ContextFactory.
> createOperationContext (op, serviceCtx); 
> +
>                 }
> 
> responseMessageContext.setOperationContext(responseMsgOpCtx);
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: svn commit: r507097 - in /webservices/sandesha/trunk/java: config/ src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/ src/org/apache/sandesha2/workers/

Posted by Matthew Lovett <ML...@uk.ibm.com>.
Hi Chamikara,

Can you explain the changes to the module.xml a bit for me? I'm afraid 
that I don't quite follow your reasoning. Here's why:

If we are trying to change the server-side behaviour, that implies that 
the server-side-servlet serving the request is confused by the "1-way" ops 
that produce a response. If that is the case then we haven't solved the 
whole issue, as a user's 1-way op could result in an ackMessage that needs 
to flow on the backchannel, and presumably the servlet would be just as 
confused by this! I think the only place to fix that would be in the 
servlet itself, and that means that we could leave the module.xml alone - 
with definitions that follow the spec.

If it isn't the service side, but actually the client side that we are 
trying to fix, then the module.xml is not as relevant as the code in 
SpecSpecificConstants::getWSRMOperationType. However, you didn't change 
that, so I'm assuming that it is server side that we need to worry about.

Do you actually have a test case that is impacted by the module.xml change 
you put in?

Thanks

Matt

chamikara@apache.org wrote on 13/02/2007 16:58:15:

> Author: chamikara
> Date: Tue Feb 13 08:58:14 2007
> New Revision: 507097
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=507097
> Log:
> changed AckRequest, LastMessage and TerminateSequence ActionMappings
> to the RMInOutOperation. Having them as InOnly caused 
> the response to come with 202 in the Servlet case.
> 
> Changed the places where we create contexts to use the ContextFactory.
> 
> Modified:
>     webservices/sandesha/trunk/java/config/client_axis2.xml
>     webservices/sandesha/trunk/java/config/module.xml
>     webservices/sandesha/trunk/java/config/server_axis2.xml
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java
> 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java
> 
> Modified: webservices/sandesha/trunk/java/config/client_axis2.xml
> URL: http://svn.apache.
> org/viewvc/webservices/sandesha/trunk/java/config/client_axis2.xml?
> view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- webservices/sandesha/trunk/java/config/client_axis2.xml (original)
> +++ webservices/sandesha/trunk/java/config/client_axis2.xml Tue Feb 
> 13 08:58:14 2007
> @@ -96,6 +96,7 @@
>                       class="org.apache.axis2.transport.http.
> CommonsHTTPTransportSender">
>          <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
>          <parameter name="Transfer-Encoding" 
> locked="false">chunked</parameter>
> +        <!-- <parameter name="OmitSOAP12Action" 
> locked="false">true</parameter> -->
>      </transportSender>
>      <transportSender name="https"
>                       class="org.apache.axis2.transport.http.
> CommonsHTTPTransportSender">
> 
> Modified: webservices/sandesha/trunk/java/config/module.xml
> URL: http://svn.apache.
> org/viewvc/webservices/sandesha/trunk/java/config/module.xml?
> view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- webservices/sandesha/trunk/java/config/module.xml (original)
> +++ webservices/sandesha/trunk/java/config/module.xml Tue Feb 13 
08:58:14 2007
> @@ -40,14 +40,10 @@
>          <messageReceiver class="org.apache.sandesha2.msgreceivers.
> RMMessageReceiver"/>
> 
>          <!-- namespaces for the 2005-02 spec -->
> -        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/TerminateSequence</actionMapping>
>          <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/SequenceAcknowledgement</actionMapping>
> -        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/AckRequested</actionMapping>
> -        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/LastMessage</actionMapping>
> 
>          <!-- namespaces for the 2006-08 spec -->
>          <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/SequenceAcknowledgement</actionMapping>
> -        <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/AckRequested</actionMapping>
>       </operation>
> 
>       <operation name="RMInOutOperation" mep="http://www.w3.
> org/2006/01/wsdl/in-out">
> @@ -55,7 +51,17 @@
> 
>          <!-- namespaces for the 2005-02 spec -->
>          <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/CreateSequence</actionMapping>
> -
> +        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/AckRequested</actionMapping>
> + 
> +        <!--  For interoparability perposes. Some WSRM 
> implementations tend to send this as the LastMessage, 
+ 
> replied with an ack -->
> +        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/LastMessage</actionMapping>
> +        <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/AckRequested</actionMapping>
> + 
> +        <!--  TerminateSequence works as a InOut in RM 1.0 
> anonymous scenario -->
> +        <actionMapping>http://schemas.xmlsoap.
> org/ws/2005/02/rm/TerminateSequence</actionMapping>
> + 
> + 
>          <!-- namespaces for the 2006-08 spec -->
>          <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/CreateSequence</actionMapping>
>          <actionMapping>http://docs.oasis-open.org/ws-
> rx/wsrm/200608/CloseSequence</actionMapping>
> 
> Modified: webservices/sandesha/trunk/java/config/server_axis2.xml
> URL: http://svn.apache.
> org/viewvc/webservices/sandesha/trunk/java/config/server_axis2.xml?
> view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- webservices/sandesha/trunk/java/config/server_axis2.xml (original)
> +++ webservices/sandesha/trunk/java/config/server_axis2.xml Tue Feb 
> 13 08:58:14 2007
> @@ -97,6 +97,7 @@
>                       class="org.apache.axis2.transport.http.
> CommonsHTTPTransportSender">
>          <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
>          <parameter name="Transfer-Encoding" 
> locked="false">chunked</parameter>
> +        <!-- <parameter name="OmitSOAP12Action" 
> locked="false">true</parameter> -->
>      </transportSender>
>      <transportSender name="https"
>                       class="org.apache.axis2.transport.http.
> CommonsHTTPTransportSender">
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.
> java Tue Feb 13 08:58:14 2007
> @@ -30,6 +30,7 @@
>  import org.apache.axis2.Constants;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.context.ServiceContext;
> @@ -184,8 +185,10 @@
>           if (rmMsgCtx.getMessageContext().getOperationContext() == 
null) {
>              // operation context will be null when doing in a GLOBAL
>              // handler.
> + 
>              ServiceContext serviceCtx = msgContext.getServiceContext();
> -            OperationContext opCtx = new 
> OperationContext(ackOperation, serviceCtx);
> +            OperationContext opCtx =  ContextFactory.
> createOperationContext(ackOperation, serviceCtx);
> +
>              rmMsgCtx.getMessageContext().setOperationContext(opCtx);
>           }
> 
> @@ -292,8 +295,11 @@
>              getRMVersion(),
>              getMsgContext().getAxisService());
>        getMsgContext().setAxisOperation(ackOperation);
> +
>        ServiceContext serviceCtx = getMsgContext().getServiceContext();
> -      OperationContext opcontext = new 
> OperationContext(ackOperation, serviceCtx);
> +      OperationContext opcontext = ContextFactory.
> createOperationContext(ackOperation, serviceCtx);
> +      opcontext.setParent(getMsgContext().getServiceContext());
> +
>        getConfigurationContext().
> registerOperationContext(ackRequestRMMsg.getMessageId(), opcontext);
>        getMsgContext().setOperationContext(opcontext);
> 
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.
> java Tue Feb 13 08:58:14 2007
> @@ -24,6 +24,7 @@
>  import org.apache.axiom.soap.SOAPFactory;
>  import org.apache.axis2.AxisFault;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.description.AxisOperation;
> @@ -172,7 +173,10 @@
>              rmMsgCtx.getMessageContext().getAxisService());
>        getMsgContext().setAxisOperation(closeOperation);
> 
> -      OperationContext opcontext = new 
> OperationContext(closeOperation, getMsgContext().getServiceContext());
> +
> +      OperationContext opcontext = ContextFactory.
> createOperationContext(closeOperation, 
getMsgContext().getServiceContext());
> +      opcontext.setParent(getMsgContext().getServiceContext());
> +
>        getConfigurationContext().registerOperationContext(rmMsgCtx.
> getMessageId(),opcontext);
>        getMsgContext().setOperationContext(opcontext);
> 
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.
> java Tue Feb 13 08:58:14 2007
> @@ -7,8 +7,10 @@
>  import org.apache.axis2.AxisFault;
>  import org.apache.axis2.Constants;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
> +import org.apache.axis2.context.OperationContextFactory;
>  import org.apache.axis2.description.AxisOperation;
>  import org.apache.axis2.description.TransportOutDescription;
>  import org.apache.commons.logging.Log;
> @@ -144,7 +146,9 @@
>        OperationContext context = pollMessage.getMessageContext().
> getOperationContext();
>        if(context == null) {
>           AxisOperation oldOperation = returnMessage.getAxisOperation();
> -         context = new OperationContext(oldOperation, 
> returnMessage.getServiceContext());
> +
> +         context = ContextFactory.
> createOperationContext(oldOperation, returnMessage.
> getServiceContext()); //new OperationContext(oldOperation);
> +
>           context.addMessageContext(pollMessage.getMessageContext());
>           pollMessage.getMessageContext().setOperationContext(context);
>        }
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.
> java Tue Feb 13 08:58:14 2007
> @@ -23,6 +23,7 @@
>  import org.apache.axis2.AxisFault;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.context.OperationContextFactory;
> @@ -366,9 +367,10 @@
>              Sandesha2Constants.MessageTypes.TERMINATE_SEQ,
>              rmMsgCtx.getRMSpecVersion(),
>              getMsgContext().getAxisService());
> -      OperationContext opcontext = OperationContextFactory
> -            .createOperationContext(
> -                  WSDLConstants.MEP_CONSTANT_OUT_IN, terminateOp, 
> getMsgContext().getServiceContext());
> + 
> +      OperationContext opcontext = ContextFactory.
> createOperationContext(terminateOp, 
getMsgContext().getServiceContext());
> +      opcontext.setParent(getMsgContext().getServiceContext());
> +
>        getConfigurationContext().registerOperationContext(rmMsgCtx.
> getMessageId(),   opcontext);
> 
>        getMsgContext().setOperationContext(opcontext);
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.
> java Tue Feb 13 08:58:14 2007
> @@ -31,6 +31,7 @@
>  import org.apache.axis2.Constants;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.context.ServiceContext;
> @@ -354,8 +355,9 @@
>           // operation context will be null when doing in a GLOBAL
>           // handler.
>           AxisOperation op = ackMsgContext.getAxisOperation();
> +
>           ServiceContext serviceCtx = ackMsgContext.getServiceContext();
> -         OperationContext opCtx = new OperationContext(op, serviceCtx);
> +         OperationContext opCtx = ContextFactory.
> createOperationContext(op, ackRMMsgContext.getMessageContext().
> getServiceContext());
> ackRMMsgContext.getMessageContext().setOperationContext(opCtx);
>        }
> 
> 
> Modified: 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java?view=diff&rev=507097&r1=507096&r2=507097
> 
==============================================================================
> --- 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java (original)
> +++ 
> 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.
> java Tue Feb 13 08:58:14 2007
> @@ -11,6 +11,7 @@
>  import org.apache.axis2.addressing.AddressingConstants;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ContextFactory;
>  import org.apache.axis2.context.MessageContext;
>  import org.apache.axis2.context.OperationContext;
>  import org.apache.axis2.context.ServiceContext;
> @@ -522,9 +523,11 @@
>                 OperationContext responseMsgOpCtx = requestMsgOpCtx;
>                 if (requestMsgOpCtx.getAxisOperation().
> getMessageReceiver() == null) {
>                    // Generate a new RM In Only operation
> +
>                    ServiceContext serviceCtx = 
> responseMessageContext.getServiceContext();
>                    AxisOperation op = msgCtx.getAxisService().
> getOperation(new QName("RMInOnlyOperation"));
> -                  responseMsgOpCtx = new OperationContext(op, 
> serviceCtx); 
> +                  responseMsgOpCtx = ContextFactory.
> createOperationContext (op, serviceCtx); 
> +
>                 }
> 
> responseMessageContext.setOperationContext(responseMsgOpCtx);
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org