Author: chamikara
Date: Tue Jun 27 08:51:10 2006
New Revision: 417492

URL: http://svn.apache.org/viewvc?rev=417492&view=rev
Log:
Applied patches from Andrew and Thomas.

Modified:
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InOrderInvoker.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java?rev=417492&r1=417491&r2=417492&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
 Tue Jun 27 08:51:10 2006
@@ -33,6 +33,7 @@
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisOperationFactory;
 import org.apache.axis2.engine.AxisEngine;
+import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -98,7 +99,7 @@
                AxisOperation ackOperation = null;
 
                try {
-                       ackOperation = 
AxisOperationFactory.getOperationDescription(AxisOperationFactory.MEP_URI_IN_ONLY);
+                       ackOperation = 
AxisOperationFactory.getOperationDescription(WSDL20_2004Constants.MEP_URI_IN_ONLY);
                } catch (AxisFault e) {
                        throw new SandeshaException("Could not create the 
Operation");
                }
@@ -155,7 +156,7 @@
                                // handler.
                                try {
                                        AxisOperation op = AxisOperationFactory
-                                                       
.getAxisOperation(AxisOperationFactory.MEP_CONSTANT_IN_OUT);
+                                                       
.getAxisOperation(WSDL20_2004Constants.MEP_CONSTANT_IN_OUT);
                                        OperationContext opCtx = new 
OperationContext(op);
                                        
rmMsgCtx.getMessageContext().setAxisOperation(op);
                                        
rmMsgCtx.getMessageContext().setOperationContext(opCtx);

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?rev=417492&r1=417491&r2=417492&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
 Tue Jun 27 08:51:10 2006
@@ -32,6 +32,7 @@
 import org.apache.axis2.description.TransportOutDescription;
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.util.Utils;
+import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -314,7 +315,7 @@
                        //setting flows
                        
outInAxisOp.setRemainingPhasesInFlow(oldOPeration.getRemainingPhasesInFlow());
                        
-                       OperationContext opcontext = 
OperationContextFactory.createOperationContext(OperationContextFactory.MEP_CONSTANT_OUT_IN,outInAxisOp);
+                       OperationContext opcontext = 
OperationContextFactory.createOperationContext(WSDL20_2004Constants.MEP_CONSTANT_OUT_IN,outInAxisOp);
                    opcontext.setParent(msgContext.getServiceContext());
                        
configurationContext.registerOperationContext(rmMsgCtx.getMessageId(),opcontext);
                } catch (AxisFault e1) {

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java?rev=417492&r1=417491&r2=417492&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
 Tue Jun 27 08:51:10 2006
@@ -33,6 +33,7 @@
 import org.apache.axis2.context.OperationContext;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisOperationFactory;
+import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -209,7 +210,7 @@
                AxisOperation ackOperation = null;
 
                try {
-                       ackOperation = 
AxisOperationFactory.getOperationDescription(AxisOperationFactory.MEP_URI_IN_ONLY);
+                       ackOperation = 
AxisOperationFactory.getOperationDescription(WSDL20_2004Constants.MEP_URI_IN_ONLY);
                } catch (AxisFault e) {
                        throw new SandeshaException("Could not create the 
Operation");
                }
@@ -271,7 +272,7 @@
                                // handler.
                                try {
                                        AxisOperation op = AxisOperationFactory
-                                                       
.getAxisOperation(AxisOperationFactory.MEP_CONSTANT_IN_OUT);
+                                                       
.getAxisOperation(WSDL20_2004Constants.MEP_CONSTANT_IN_OUT);
                                        OperationContext opCtx = new 
OperationContext(op);
                                        
referenceRMMessage.getMessageContext().setAxisOperation(op);
                                        
referenceRMMessage.getMessageContext().setOperationContext(opCtx);

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java?rev=417492&r1=417491&r2=417492&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java 
Tue Jun 27 08:51:10 2006
@@ -38,6 +38,7 @@
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisOperationFactory;
 import org.apache.axis2.util.Utils;
+import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.FaultData;
@@ -434,7 +435,7 @@
                                        .getServiceContextID());
 
                        AxisOperation operation = AxisOperationFactory
-                                       
.getAxisOperation(AxisOperationFactory.MEP_CONSTANT_OUT_ONLY);
+                                       
.getAxisOperation(WSDL20_2004Constants.MEP_CONSTANT_OUT_ONLY);
 
                        OperationContext operationContext = new 
OperationContext(operation);
 

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java?rev=417492&r1=417491&r2=417492&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java 
Tue Jun 27 08:51:10 2006
@@ -35,6 +35,7 @@
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisOperationFactory;
 import org.apache.axis2.description.Parameter;
+import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -224,7 +225,7 @@
                        // creating by copying common contents. (this will not 
set contexts
                        // except for configCtx).
                        AxisOperation createSequenceOperation = 
AxisOperationFactory
-                                       
.getAxisOperation(AxisOperation.MEP_CONSTANT_OUT_IN);
+                                       
.getAxisOperation(WSDL20_2004Constants.MEP_CONSTANT_OUT_IN);
 
                        createSeqmsgContext = 
SandeshaUtil.createNewRelatedMessageContext(
                                        applicationRMMsg, 
createSequenceOperation);
@@ -362,7 +363,7 @@
 
                try {
                        terminateOperation = AxisOperationFactory
-                                       
.getAxisOperation(AxisOperationFactory.MEP_CONSTANT_OUT_ONLY);
+                                       
.getAxisOperation(WSDL20_2004Constants.MEP_CONSTANT_OUT_ONLY);
                } catch (AxisFault e1) {
                        throw new SandeshaException(e1.getMessage());
                }
@@ -694,7 +695,7 @@
                                        .getMessageContext();
 
                        AxisOperation ackOperation = AxisOperationFactory
-                                       
.getAxisOperation(AxisOperationFactory.MEP_CONSTANT_OUT_ONLY);
+                                       
.getAxisOperation(WSDL20_2004Constants.MEP_CONSTANT_OUT_ONLY);
                        
                        MessageContext ackMsgCtx = SandeshaUtil
                                        
.createNewRelatedMessageContext(relatedRMMessage,

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java?rev=417492&r1=417491&r2=417492&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java
 Tue Jun 27 08:51:10 2006
@@ -21,6 +21,7 @@
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.engine.ListenerManager;
+import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -325,7 +326,7 @@
                        startListnerForAsyncAcks = true;
                }
                
-               if (mep!=null && !AxisOperation.MEP_URI_OUT_ONLY.equals(mep)) {
+               if (mep!=null && 
!WSDL20_2004Constants.MEP_URI_OUT_ONLY.equals(mep)) {
                        //starting listner for the async createSeqResponse & 
terminateSer messages.
                        startListnerForAsyncControlMsgs = true;
                }

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InOrderInvoker.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InOrderInvoker.java?rev=417492&r1=417491&r2=417492&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InOrderInvoker.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InOrderInvoker.java
 Tue Jun 27 08:51:10 2006
@@ -56,6 +56,7 @@
        private ArrayList workingSequences = new ArrayList();
        private ConfigurationContext context = null;
        private static final Log log = LogFactory.getLog(InOrderInvoker.class);
+       private boolean hasStopped = false;
        
        public synchronized void stopInvokerForTheSequence(String sequenceID) {
     if (log.isDebugEnabled())
@@ -74,7 +75,19 @@
     if (log.isDebugEnabled())
       log.debug("Enter: InOrderInvoker::stopInvoking");
     
-               runInvoker = false;
+               if(isInvokerStarted()){
+                       //the invoker is started so stop it
+                       runInvoker = false;
+                       //wait for it to finish
+                       while(!hasStoppedInvoking()){
+                               try {
+                                       
wait(Sandesha2Constants.INVOKER_SLEEP_TIME);
+                               }
+                               catch (InterruptedException e1) {
+                                               log.debug(e1.getMessage());
+                               }
+                       }
+               }
     
     if (log.isDebugEnabled())
       log.debug("Exit: InOrderInvoker::stopInvoking");
@@ -112,15 +125,43 @@
     if (log.isDebugEnabled())
       log.debug("Exit: InOrderInvoker::runInvokerForTheSequence");
        }
+       
+       private synchronized boolean hasStoppedInvoking(){
+    if (log.isDebugEnabled())
+    {
+      log.debug("Enter: InOrderInvoker::hasStoppedInvoking");
+      log.debug("Exit: InOrderInvoker::hasStoppedInvoking, " + hasStopped);
+    }
+               return hasStopped;
+       }
 
-       public void run() {
+       public void run(){
     if (log.isDebugEnabled())
       log.debug("Enter: InOrderInvoker::run");
     
+    try{
+       internalRun();
+    }
+    finally{
+       //flag that we have exited the run loop and notify any waiting threads
+       synchronized(this){
+                       hasStopped = true;
+                       notify();
+       }       
+    }
+    
+    if (log.isDebugEnabled())
+      log.debug("Exit: InOrderInvoker::run");
+       }
+       
+       private void internalRun() {
+    if (log.isDebugEnabled())
+      log.debug("Enter: InOrderInvoker::internalRun");
+    
                while (isInvokerStarted()) {
 
                        try {
-                               Thread.sleep(1000);
+                               
Thread.sleep(Sandesha2Constants.INVOKER_SLEEP_TIME);
                        } catch (InterruptedException ex) {
                                log.debug("Invoker was Inturrepted....");
                                log.debug(ex.getMessage());
@@ -289,7 +330,7 @@
                        }
                }
     if (log.isDebugEnabled())
-      log.debug("Exit: InOrderInvoker::run");
+      log.debug("Exit: InOrderInvoker::internalRun");
        }
        
        private void makeMessageReadyForReinjection (MessageContext 
messageContext) {

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java?rev=417492&r1=417491&r2=417492&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java 
Tue Jun 27 08:51:10 2006
@@ -60,6 +60,7 @@
        private ArrayList workingSequences = new ArrayList();
        private ConfigurationContext context = null;
        private static final Log log = LogFactory.getLog(Sender.class);
+       private boolean hasStopped = false;
 
        public synchronized void stopSenderForTheSequence(String sequenceID) {
     if (log.isDebugEnabled())
@@ -75,10 +76,33 @@
        public synchronized void stopSending () {
     if (log.isDebugEnabled())
       log.debug("Enter: Sender::stopSending");
-               runSender = false;
+               
+    if(isSenderStarted()){
+                       //the sender is started so stop it
+                       runSender = false;
+                       //wait for it to finish
+                       while(!hasStoppedSending()){
+                               try {
+                                       
wait(Sandesha2Constants.SENDER_SLEEP_TIME);
+                               }
+                               catch (InterruptedException e1) {
+                                               log.debug(e1.getMessage());
+                               }
+                       }
+               }
+    
     if (log.isDebugEnabled())
       log.debug("Exit: Sender::stopSending");
        }
+       
+       private synchronized boolean hasStoppedSending(){
+    if (log.isDebugEnabled())
+    {
+      log.debug("Enter: Sender::hasStoppedSending");
+      log.debug("Exit: Sender::hasStoppedSending, " + hasStopped);
+    }
+               return hasStopped;
+       }
 
        public synchronized boolean isSenderStarted() {
     if (log.isDebugEnabled())
@@ -88,10 +112,29 @@
     }
                return runSender;
        }
+       
+       public void run(){
+    if (log.isDebugEnabled())
+       log.debug("Enter: Sender::run");
+    
+    try{
+       internalRun();
+    }
+    finally{
+       //flag that we have exited the run loop and notify any waiting threads
+       synchronized(this){
+                       hasStopped = true;
+                       notify();
+       }       
+    }
+    
+    if (log.isDebugEnabled())
+      log.debug("Exit: Sender::run");
+       }
 
-       public void run() {
+       private void internalRun() {
     if (log.isDebugEnabled())
-      log.debug("Enter: Sender::run");
+      log.debug("Enter: Sender::internalRun");
 
                StorageManager storageManager = null;
 
@@ -283,7 +326,7 @@
                        }
                }
     if (log.isDebugEnabled())
-      log.debug("Exit: Sender::run");
+      log.debug("Exit: Sender::internalRun");
        }
 
        public synchronized void runSenderForTheSequence(



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to