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

Reply via email to