You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ch...@apache.org on 2006/10/07 20:10:37 UTC

svn commit: r453975 - in /webservices/sandesha/trunk/java/src/org/apache/sandesha2: msgprocessors/ policy/builders/ util/ workers/

Author: chamikara
Date: Sat Oct  7 11:10:36 2006
New Revision: 453975

URL: http://svn.apache.org/viewvc?view=rev&rev=453975
Log:
Corrected the termination logic.
A bug fix in the RMPolicyProcessor.

Modified:
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?view=diff&rev=453975&r1=453974&r2=453975
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Sat Oct  7 11:10:36 2006
@@ -136,13 +136,7 @@
 			rmMsgCtx.getMessageContext().getOperationContext().setProperty(Constants.RESPONSE_WRITTEN,
 					Constants.VALUE_FALSE);
 		}
-
-		FaultManager faultManager = new FaultManager();
-		SandeshaException fault = faultManager.checkForLastMsgNumberExceeded(rmMsgCtx, storageManager);
-		if (fault != null) {
-			throw fault;
-		}
-
+		
 		// setting acked msg no range
 		ConfigurationContext configCtx = rmMsgCtx.getMessageContext().getConfigurationContext();
 		if (configCtx == null) {
@@ -151,7 +145,8 @@
 			throw new SandeshaException(message);
 		}
 
-		fault = faultManager.checkForUnknownSequence(rmMsgCtx, sequenceId, storageManager);
+		FaultManager faultManager = new FaultManager();
+		SandeshaException fault = faultManager.checkForUnknownSequence(rmMsgCtx, sequenceId, storageManager);
 		if (fault != null) {
 			throw fault;
 		}
@@ -162,6 +157,11 @@
 
 		// throwing a fault if the sequence is closed.
 		fault = faultManager.checkForSequenceClosed(rmMsgCtx, sequenceId, storageManager);
+		if (fault != null) {
+			throw fault;
+		}
+
+		fault = faultManager.checkForLastMsgNumberExceeded(rmMsgCtx, storageManager);
 		if (fault != null) {
 			throw fault;
 		}

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?view=diff&rev=453975&r1=453974&r2=453975
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java Sat Oct  7 11:10:36 2006
@@ -119,7 +119,7 @@
 																										// created
 																										// sequnceID.
 
-
+			
 			
 			RMMsgContext createSeqResponse = RMMsgCreator.createCreateSeqResponseMsg(createSeqRMMsg, outMessage,
 					newSequenceId, storageManager); // converting the blank out

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=453975&r1=453974&r2=453975
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java Sat Oct  7 11:10:36 2006
@@ -127,8 +127,9 @@
 		sequencePropertyBeanMgr.insert(terminateReceivedBean);
 
 		// add the terminate sequence response if required.
+		RMMsgContext terminateSequenceResponse = null;
 		if (SpecSpecificConstants.isTerminateSequenceResponseRequired(terminateSeqRMMsg.getRMSpecVersion()))
-			addTerminateSequenceResponse(terminateSeqRMMsg, sequencePropertyKey, sequenceId, storageManager);
+			terminateSequenceResponse = getTerminateSequenceResponse(terminateSeqRMMsg, sequencePropertyKey, sequenceId, storageManager);
 
 		setUpHighestMsgNumbers(context, storageManager,sequencePropertyKey, sequenceId, terminateSeqRMMsg);
 
@@ -144,6 +145,35 @@
 
 		SequenceManager.updateLastActivatedTime(sequencePropertyKey, storageManager);
 
+		//sending the terminate sequence response
+		if (terminateSequenceResponse != null) {
+			
+			MessageContext outMessage = terminateSequenceResponse.getMessageContext();
+			EndpointReference toEPR = outMessage.getTo();
+			
+			AxisEngine engine = new AxisEngine(terminateSeqMsg
+					.getConfigurationContext());
+			engine.send(outMessage);
+
+			String addressingNamespaceURI = SandeshaUtil
+					.getSequenceProperty(
+							sequencePropertyKey,
+							Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE,
+							storageManager);
+
+			String anonymousURI = SpecSpecificConstants
+					.getAddressingAnonymousURI(addressingNamespaceURI);
+
+			if (anonymousURI.equals(toEPR.getAddress())) {
+				terminateSeqMsg.getOperationContext().setProperty(
+						org.apache.axis2.Constants.RESPONSE_WRITTEN, "true");
+			} else {
+				terminateSeqMsg.getOperationContext().setProperty(
+						org.apache.axis2.Constants.RESPONSE_WRITTEN, "false");
+			}
+
+		}
+		
 		terminateSeqMsg.pause();
 
 		if (log.isDebugEnabled())
@@ -246,14 +276,13 @@
 			log.debug("Exit: TerminateSeqMsgProcessor::setUpHighestMsgNumbers");
 	}
 
-	private void addTerminateSequenceResponse(RMMsgContext terminateSeqRMMsg, String sequencePropertyKey,String sequenceId,
+	private RMMsgContext getTerminateSequenceResponse(RMMsgContext terminateSeqRMMsg, String sequencePropertyKey,String sequenceId,
 			StorageManager storageManager) throws AxisFault {
 
 		if (log.isDebugEnabled())
 			log.debug("Enter: TerminateSeqMsgProcessor::addTerminateSequenceResponse, " + sequenceId);
 
 		MessageContext terminateSeqMsg = terminateSeqRMMsg.getMessageContext();
-		ConfigurationContext configCtx = terminateSeqMsg.getConfigurationContext();
 
 		MessageContext outMessage = null;
 
@@ -288,27 +317,14 @@
 		terminateSeqResponseRMMsg.setFlow(MessageContext.OUT_FLOW);
 		terminateSeqResponseRMMsg.setProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE, "true");
 
-		EndpointReference toEPR = terminateSeqResponseRMMsg.getTo();
-		
 		outMessage.setResponseWritten(true);
+		
+		if (log.isDebugEnabled())
+			log.debug("Exit: TerminateSeqMsgProcessor::addTerminateSequenceResponse");
 
-		AxisEngine engine = new AxisEngine(terminateSeqMsg.getConfigurationContext());
-
-		engine.send(outMessage);
-
-		String addressingNamespaceURI = SandeshaUtil.getSequenceProperty(sequencePropertyKey,
-				Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE, storageManager);
-
-		String anonymousURI = SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespaceURI);
+		return terminateSeqResponseRMMsg;
 
-		if (anonymousURI.equals(toEPR.getAddress())) {
-			terminateSeqMsg.getOperationContext().setProperty(org.apache.axis2.Constants.RESPONSE_WRITTEN, "true");
-		} else {
-			terminateSeqMsg.getOperationContext().setProperty(org.apache.axis2.Constants.RESPONSE_WRITTEN, "false");
-		}
 
-		if (log.isDebugEnabled())
-			log.debug("Exit: TerminateSeqMsgProcessor::addTerminateSequenceResponse");
 	}
 
 	public void processOutMessage(RMMsgContext rmMsgCtx) throws AxisFault {

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java?view=diff&rev=453975&r1=453974&r2=453975
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java Sat Oct  7 11:10:36 2006
@@ -87,7 +87,10 @@
             	boolean inOrder = false;
             	
             	if (value!=null && Constants.VALUE_TRUE.equals(value))
-            		propertyBean.setInOrder(inOrder);
+            		inOrder = true;
+            	
+            	propertyBean.setInOrder(inOrder);
+            	
             }  else if (Sandesha2Constants.Assertions.ELEM_MAX_RETRANS_COUNT
                     .equals(name)) {
                 propertyBean.setMaximumRetransmissionCount (Integer.parseInt(element.getText().trim()));

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java?view=diff&rev=453975&r1=453974&r2=453975
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java Sat Oct  7 11:10:36 2006
@@ -83,14 +83,18 @@
 
 		if (!inOrderInvocation) {
 			// there is no invoking by Sandesha2. So clean invocations storages.
+			
+			receivingSideCleanMap.put(sequenceId, CLEANED_ON_TERMINATE_MSG);
 			cleanReceivingSideAfterInvocation(configContext, sequencePropertyKey, sequenceId, storageManager);
-		}
+		} else {
 
-		String cleanStatus = (String) receivingSideCleanMap.get(sequenceId);
-		if (cleanStatus != null && CLEANED_AFTER_INVOCATION.equals(cleanStatus))
-			completeTerminationOfReceivingSide(configContext, sequencePropertyKey, sequenceId, storageManager);
-		else {
-			receivingSideCleanMap.put(sequenceId, CLEANED_ON_TERMINATE_MSG);
+			String cleanStatus = (String) receivingSideCleanMap.get(sequenceId);
+			if (cleanStatus != null
+					&& CLEANED_AFTER_INVOCATION.equals(cleanStatus))
+				completeTerminationOfReceivingSide(configContext,
+						sequencePropertyKey, sequenceId, storageManager);
+			else
+				receivingSideCleanMap.put(sequenceId, CLEANED_ON_TERMINATE_MSG);
 		}
 	}
 

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java?view=diff&rev=453975&r1=453974&r2=453975
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java Sat Oct  7 11:10:36 2006
@@ -131,6 +131,8 @@
 			if (rmMsg.getMessageType() == Sandesha2Constants.MessageTypes.APPLICATION) {
 				Sequence sequence = (Sequence) rmMsg
 						.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);
+				
+				//TODO support WSRM 1.1 spce here ( there is no last message concept)
 				if (sequence.getLastMessage() != null) {
 					TerminateManager.cleanReceivingSideAfterInvocation(configurationContext, sequencePropertyKey, sequenceId, storageManager);
 					// exit from current iteration. (since an entry



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