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