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