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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to