You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ch...@apache.org on 2006/06/27 17:51:11 UTC

svn commit: r417492 - in /webservices/sandesha/trunk/java/src/org/apache/sandesha2: msgprocessors/ util/ workers/

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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org