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