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]