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]