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 pa...@apache.org on 2009/11/09 12:45:17 UTC

svn commit: r834025 - in /webservices/sandesha/trunk/java/modules: core/src/main/java/org/apache/sandesha2/ core/src/main/java/org/apache/sandesha2/msgprocessors/ core/src/main/java/org/apache/sandesha2/util/ core/src/main/java/org/apache/sandesha2/wor...

Author: parsonsd
Date: Mon Nov  9 11:45:10 2009
New Revision: 834025

URL: http://svn.apache.org/viewvc?rev=834025&view=rev
Log:
So that Sandesha is compliant with the ReliableSecureProfile spec.  Piggybacked acks must have the mustUnderstand flag set to false.

Modified:
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/RMMsgContext.java
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java
    webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java
    webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/wsrm/SequenceAcknowledgementTest.java

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/RMMsgContext.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/RMMsgContext.java?rev=834025&r1=834024&r2=834025&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/RMMsgContext.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/RMMsgContext.java Mon Nov  9 11:45:10 2009
@@ -603,7 +603,7 @@
 						sequence = new Sequence(namespace);
 						sequence.fromHeaderBlock(element);
 					}else if(WSRM_COMMON.SEQUENCE_ACK.equals(localName)){
-						SequenceAcknowledgement sequenceAcknowledgement = new SequenceAcknowledgement(namespace);
+						SequenceAcknowledgement sequenceAcknowledgement = new SequenceAcknowledgement(namespace, false);
 						sequenceAcknowledgement.fromHeaderBlock(element);
 						sequenceAcknowledgements.add(sequenceAcknowledgement);
 					}else if(WSRM_COMMON.ACK_REQUESTED.equals(localName)){

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java?rev=834025&r1=834024&r2=834025&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java Mon Nov  9 11:45:10 2009
@@ -173,7 +173,7 @@
 
 		ackMsgCtx.setTo(acksTo);
 		ackMsgCtx.setReplyTo(msgContext.getTo());
-		RMMsgCreator.addAckMessage(ackRMMsgCtx, sequenceId, rmdBean, true);
+		RMMsgCreator.addAckMessage(ackRMMsgCtx, sequenceId, rmdBean, true, false);
 		
 		//this is not a client generated message. So set serverSide to true.
 		ackMsgCtx.setServerSide(true);

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java?rev=834025&r1=834024&r2=834025&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java Mon Nov  9 11:45:10 2009
@@ -81,7 +81,7 @@
 					if (acksToEPR == null || acksToEPR.hasAnonymousAddress()) {
 						if (LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled())
 							log.debug("Piggybacking ack for inbound sequence: " + inboundSequence);
-						RMMsgCreator.addAckMessage(rmMessageContext, inboundSequence, inboundBean, false);
+						RMMsgCreator.addAckMessage(rmMessageContext, inboundSequence, inboundBean, false, true);
 					}
 				}
 			}
@@ -115,7 +115,7 @@
 					log.debug("Piggybacking ack for sequence: " + inboundSequence);
 				RMDBean sequence = storageManager.getRMDBeanMgr().retrieve(inboundSequence);
 				if (sequence != null && !sequence.isTerminated()) {				  
-    				RMMsgCreator.addAckMessage(rmMessageContext, inboundSequence, sequence, false);
+    				RMMsgCreator.addAckMessage(rmMessageContext, inboundSequence, sequence, false, true);
     				((Sender) storageManager.getSender()).removeScheduledAcknowledgement(inboundSequence);
 				}
 			} else {
@@ -147,7 +147,7 @@
 					if (LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled())
 						log.debug("Piggybacking ack for sequence: " + sequenceId);
 
-					RMMsgCreator.addAckMessage(rmMessageContext, sequenceId, sequence, false);
+					RMMsgCreator.addAckMessage(rmMessageContext, sequenceId, sequence, false, true);
 
 					((Sender) storageManager.getSender()).removeScheduledAcknowledgement(sequenceId);
 
@@ -213,7 +213,7 @@
 		ackMsgCtx.setServerSide(serverSide);
 
 		// adding the SequenceAcknowledgement part.
-		RMMsgCreator.addAckMessage(ackRMMsgCtx, sequenceId, rmdBean, true);
+		RMMsgCreator.addAckMessage(ackRMMsgCtx, sequenceId, rmdBean, true, false);
 
 		if (LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled())
 			log.debug("Exit: AcknowledgementManager::generateAckMessage");

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java?rev=834025&r1=834024&r2=834025&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java Mon Nov  9 11:45:10 2009
@@ -488,7 +488,8 @@
 	 * @param sequenceId - The sequence to which we will be Acking
 	 * @throws SandeshaException
 	 */
-	public static void addAckMessage(RMMsgContext applicationMsg, String sequenceId, RMDBean rmdBean, boolean addToEnvelope)
+	public static void addAckMessage(RMMsgContext applicationMsg, String sequenceId, RMDBean rmdBean, boolean addToEnvelope,
+										boolean isPiggybacked)
 			throws SandeshaException {
 		if(LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled())
 			log.debug("Entry: RMMsgCreator::addAckMessage " + sequenceId);
@@ -500,7 +501,7 @@
 			if(LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled())
 				log.debug("RMMsgCreator::addAckMessage : there are messages to ack " + ackRangeArrayList);
 			//there are actually messages to ack
-			SequenceAcknowledgement sequenceAck = new SequenceAcknowledgement(rmNamespaceValue);
+			SequenceAcknowledgement sequenceAck = new SequenceAcknowledgement(rmNamespaceValue, isPiggybacked);
 			Identifier id = new Identifier(rmNamespaceValue);
 			id.setIndentifer(sequenceId);
 			sequenceAck.setIdentifier(id);

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java?rev=834025&r1=834024&r2=834025&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java Mon Nov  9 11:45:10 2009
@@ -269,7 +269,7 @@
 				RMDBean incomingSequenceBean = SandeshaUtil.getRMDBeanFromSequenceId(storageManager, inboundSequenceId);
 
 				if (incomingSequenceBean!=null)
-					RMMsgCreator.addAckMessage(rmMsgCtx, inboundSequenceId, incomingSequenceBean, false);
+					RMMsgCreator.addAckMessage(rmMsgCtx, inboundSequenceId, incomingSequenceBean, false, true);
 			}
 
 			if (transaction != null && transaction.isActive()) 

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java?rev=834025&r1=834024&r2=834025&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java Mon Nov  9 11:45:10 2009
@@ -53,10 +53,11 @@
 	private OMNamespace omNamespace = null;
 	private boolean ackNone = false;
 	private boolean ackFinal = false;
+	private boolean piggybacked = false;
 	
 	private OMElement originalSequenceAckElement;
 	
-	public SequenceAcknowledgement(String namespaceValue) {
+	public SequenceAcknowledgement(String namespaceValue, boolean _piggybacked) {
 		this.namespaceValue = namespaceValue;
 		if (Sandesha2Constants.SPEC_2005_02.NS_URI.equals(namespaceValue)) {
 			omNamespace = Sandesha2Constants.SPEC_2005_02.OM_NS_URI;
@@ -65,6 +66,7 @@
 		}
 		acknowledgementRangeList = new ArrayList<Range>();
 		nackList = new ArrayList<Long>();
+		piggybacked = _piggybacked;
 	}
 
 	public String getNamespaceValue() {
@@ -198,7 +200,13 @@
 							header.toString()));
 
 		// SequenceACK messages should always have the MustUnderstand flag set to true
-		sequenceAcknowledgementHeaderBlock.setMustUnderstand(true);
+		// Unless it is a piggybacked ack
+		if(piggybacked){
+			sequenceAcknowledgementHeaderBlock.setMustUnderstand(false);
+		} else {
+			sequenceAcknowledgementHeaderBlock.setMustUnderstand(true);
+		}
+		
 		identifier.toOMElement(sequenceAcknowledgementHeaderBlock, omNamespace);
 
 		Iterator<Range> ackRangeIt = acknowledgementRangeList.iterator();

Modified: webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java?rev=834025&r1=834024&r2=834025&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java (original)
+++ webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java Mon Nov  9 11:45:10 2009
@@ -336,7 +336,7 @@
 		String rmNamespaceValue = SpecSpecificConstants.getRMNamespaceValue(Sandesha2Constants.SPEC_VERSIONS.v1_1);
 				
 		//setup the sequenceAck portion of the msg
-		SequenceAcknowledgement sequenceAck = new SequenceAcknowledgement(rmNamespaceValue);
+		SequenceAcknowledgement sequenceAck = new SequenceAcknowledgement(rmNamespaceValue, true);
 		// Set the sequenceId
 		Identifier id = new Identifier(rmNamespaceValue);
 		id.setIndentifer(sequenceIDAck);
@@ -392,7 +392,7 @@
 		applicationRMMsg.setSequence(sequence);
 		
 		//setup the sequenceAck portion of the msg
-		SequenceAcknowledgement sequenceAck = new SequenceAcknowledgement(rmNamespaceValue);
+		SequenceAcknowledgement sequenceAck = new SequenceAcknowledgement(rmNamespaceValue, true);
 		// Set the sequenceId
 		Identifier id = new Identifier(rmNamespaceValue);
 		id.setIndentifer(sequenceIDAck);

Modified: webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/wsrm/SequenceAcknowledgementTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/wsrm/SequenceAcknowledgementTest.java?rev=834025&r1=834024&r2=834025&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/wsrm/SequenceAcknowledgementTest.java (original)
+++ webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/wsrm/SequenceAcknowledgementTest.java Mon Nov  9 11:45:10 2009
@@ -41,7 +41,7 @@
 
     public void testFromOMElement()  throws SandeshaException {
     	  QName name = new QName(rmNamespace, "SequenceAcknowledgement");
-        SequenceAcknowledgement sequenceAck = new SequenceAcknowledgement(rmNamespace);
+        SequenceAcknowledgement sequenceAck = new SequenceAcknowledgement(rmNamespace, true);
         SOAPEnvelope env = getSOAPEnvelope("", "SequenceAcknowledgement.xml");
         sequenceAck.fromHeaderBlock((SOAPHeaderBlock) env.getHeader().getFirstChildWithName(name));
 
@@ -78,7 +78,7 @@
     }
 
     public void testToOMElement()  throws Exception {
-        SequenceAcknowledgement seqAck = new SequenceAcknowledgement(rmNamespace);
+        SequenceAcknowledgement seqAck = new SequenceAcknowledgement(rmNamespace, true);
         Identifier identifier = new Identifier(rmNamespace);
         identifier.setIndentifer("uuid:897ee740-1624-11da-a28e-b3b9c4e71445");
         seqAck.setIdentifier(identifier);



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