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/10/02 15:25:56 UTC
svn commit: r452030 - in
/webservices/sandesha/trunk/java/src/org/apache/sandesha2: ./ client/
handlers/ msgprocessors/ polling/ util/ workers/
Author: chamikara
Date: Mon Oct 2 06:25:55 2006
New Revision: 452030
URL: http://svn.apache.org/viewvc?view=rev&rev=452030
Log:
Some bug fixes. These caused failures in different locations - specially in WSRX 1.1.
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.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/msgprocessors/TerminateSeqResponseMsgProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java?view=diff&rev=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java Mon Oct 2 06:25:55 2006
@@ -535,6 +535,10 @@
String WSRM_ANONYMOUS_URI_PREFIX = "http://docs.oasis-open.org/ws-rx/wsrm/200608/anonymous";
+ String RM_IN_OUT_OPERATION_NAME = "RMInOutOperation";
+
+ String RM_IN_ONLY_OPERATION = "RMInOnlyOperation";
+
String [] SPEC_NS_URIS = {
SPEC_2005_02.NS_URI,
SPEC_2006_08.NS_URI
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java?view=diff&rev=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java Mon Oct 2 06:25:55 2006
@@ -1094,6 +1094,18 @@
anonOutOnlyOperation.setName(ServiceClient.ANON_OUT_ONLY_OP);
anonOutOnlyOperation.setParent(service);
service.addChild(anonOutOnlyOperation);
+
+ Iterator iter = service.getOperations();
+ AxisOperation referenceOperation = null;
+ if (iter.hasNext())
+ referenceOperation = (AxisOperation) iter.next();
+
+ if (referenceOperation!=null) {
+ anonOutOnlyOperation.setPhasesOutFlow(referenceOperation.getPhasesOutFlow());
+ anonOutOnlyOperation.setPhasesOutFaultFlow(referenceOperation.getPhasesOutFaultFlow());
+ anonOutOnlyOperation.setPhasesInFaultFlow(referenceOperation.getPhasesInFaultFlow());
+ anonOutOnlyOperation.setPhasesInFaultFlow(referenceOperation.getRemainingPhasesInFlow());
+ }
}
} catch (AxisFault e) {
throw new SandeshaException (e);
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java?view=diff&rev=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java Mon Oct 2 06:25:55 2006
@@ -17,9 +17,12 @@
package org.apache.sandesha2.handlers;
+import java.util.Iterator;
+
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.handlers.AbstractHandler;
import org.apache.commons.logging.Log;
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=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java Mon Oct 2 06:25:55 2006
@@ -21,6 +21,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
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=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java Mon Oct 2 06:25:55 2006
@@ -296,16 +296,15 @@
terminateSeqResponseRMMsg.addSOAPEnvelope();
-
terminateSeqResponseRMMsg.setFlow(MessageContext.OUT_FLOW);
terminateSeqResponseRMMsg.setProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE, "true");
+ EndpointReference toEPR = terminateSeqMsg.getTo();
+
outMessage.setResponseWritten(true);
AxisEngine engine = new AxisEngine(terminateSeqMsg.getConfigurationContext());
- EndpointReference toEPR = terminateSeqMsg.getTo();
-
try {
engine.send(outMessage);
} catch (AxisFault e) {
@@ -367,8 +366,16 @@
try {
AxisOperation oldOPeration = msgContext.getAxisOperation();
AxisOperation outInAxisOp = new OutInAxisOperation(new QName("temp"));
+
+ AxisOperation referenceInOutOperation = msgContext.getAxisService().getOperation(new QName (Sandesha2Constants.RM_IN_OUT_OPERATION_NAME));
+ if (referenceInOutOperation==null) {
+ String messge = "Cant find the recerence RM InOut operation";
+ throw new SandeshaException (messge);
+ }
+
// setting flows
- outInAxisOp.setRemainingPhasesInFlow(oldOPeration.getRemainingPhasesInFlow());
+ outInAxisOp.setRemainingPhasesInFlow(referenceInOutOperation.getRemainingPhasesInFlow());
+// outInAxisOp.setRemainingPhasesInFlow(oldOPeration.getRemainingPhasesInFlow());
OperationContext opcontext = OperationContextFactory.createOperationContext(
WSDL20_2004Constants.MEP_CONSTANT_OUT_IN, outInAxisOp);
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqResponseMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqResponseMsgProcessor.java?view=diff&rev=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqResponseMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqResponseMsgProcessor.java Mon Oct 2 06:25:55 2006
@@ -32,6 +32,7 @@
import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
import org.apache.sandesha2.storage.beans.SequencePropertyBean;
import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.sandesha2.util.TerminateManager;
import org.apache.sandesha2.wsrm.TerminateSequenceResponse;
/**
@@ -65,6 +66,11 @@
secManager.checkProofOfPossession(token, body, msgContext);
}
+ //doing the termination
+// TODO - do termination correctly.
+// TerminateManager.terminateSendingSide(configContext, sequencePropertyKey, msgCtx.isServerSide(),
+// storageManager);
+
// Stop this message travelling further through the Axis runtime
terminateResRMMsg.pause();
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java?view=diff&rev=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java Mon Oct 2 06:25:55 2006
@@ -97,7 +97,6 @@
nextMsgBean = (NextMsgBean) results.get(item);
}
- sequenceId = nextMsgBean.getSequenceID();
} else {
NextMsgBean findBean = new NextMsgBean ();
findBean.setPollingMode(true);
@@ -109,6 +108,8 @@
//If not valid entry is found, try again later.
if (nextMsgBean==null)
continue;
+
+ sequenceId = nextMsgBean.getSequenceID();
//create a MakeConnection message
String referenceMsgKey = nextMsgBean.getReferenceMessageKey();
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java?view=diff&rev=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java Mon Oct 2 06:25:55 2006
@@ -520,12 +520,6 @@
MessageContext newMessageContext = new MessageContext();
newMessageContext.setConfigurationContext(configContext);
-
-// Options referenceMsgOptions = referenceMessage.getOptions();
-// Options newOptions = null;
-// if (referenceMsgOptions!=null)
-// newOptions = new Options (referenceMsgOptions);
-// else
Options newOptions = new Options ();
@@ -579,10 +573,11 @@
AxisService service = newMessageContext.getAxisService();
if (service != null && operation != null) {
- service.addChild(operation);
+// Adding this operation to the service is tricky.
+// service.addChild(operation);
+
operation.setParent(service);
}
-
OperationContext operationContext = new OperationContext(operation);
newMessageContext.setOperationContext(operationContext);
@@ -610,6 +605,8 @@
.getProperty(MessageContext.TRANSPORT_IN));
newMessageContext.setProperty(MessageContext.TRANSPORT_OUT, referenceMessage
.getProperty(MessageContext.TRANSPORT_OUT));
+
+ //TODO - move this to a property file.
newMessageContext.setProperty(RampartMessageData.KEY_RAMPART_POLICY, referenceMessage
.getProperty(RampartMessageData.KEY_RAMPART_POLICY));
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=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java Mon Oct 2 06:25:55 2006
@@ -372,6 +372,7 @@
if (terminated != null && terminated.getValue() != null && "true".equals(terminated.getValue())) {
String message = "Terminate was added previously.";
log.debug(message);
+ return;
}
RMMsgContext terminateRMMessage = RMMsgCreator.createTerminateSequenceMessage(referenceMessage, outSequenceId,
@@ -387,11 +388,18 @@
String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.toEPRNotValid, null);
throw new SandeshaException(message);
}
-
+
terminateRMMessage.setTo(new EndpointReference(toEPR.getAddress()));
+ SequencePropertyBean replyToBean = seqPropMgr.retrieve(sequencePropertyKey,
+ Sandesha2Constants.SequenceProperties.REPLY_TO_EPR);
+ if (replyToBean!=null) {
+ terminateRMMessage.setReplyTo(new EndpointReference (replyToBean.getValue()));
+ }
+
String addressingNamespaceURI = SandeshaUtil.getSequenceProperty(sequencePropertyKey,
Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE, storageManager);
+
String anonymousURI = SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespaceURI);
String rmVersion = SandeshaUtil.getRMVersion(sequencePropertyKey, storageManager);
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java?view=diff&rev=452030&r1=452029&r2=452030
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java Mon Oct 2 06:25:55 2006
@@ -191,8 +191,19 @@
checkForSyncResponses(msgCtx);
}
- if (rmMsgCtx.getMessageType() == Sandesha2Constants.MessageTypes.TERMINATE_SEQ) {
- // terminate sending side.
+ if ((rmMsgCtx.getMessageType() == Sandesha2Constants.MessageTypes.TERMINATE_SEQ)
+ /*&&
+ (Sandesha2Constants.SPEC_2005_02.NS_URI.equals(rmMsgCtx.getRMNamespaceValue()))*/) {
+
+ //TODO - cant do below due to a bug. Since CreateSequenceResponsMsgProcessor does not get called
+ //currently. To fix this fix the 'todo' in the processOutMessage method of the TerminateSeqMsgProcesser.
+
+ //terminate message sent using the SandeshaClient. Since the terminate message will simply get the
+ //InFlow of the reference message get called which could be zero sized (OutOnly operations).
+
+ // terminate sending side if this is the WSRM 1.0 spec.
+ // If the WSRM versoion is 1.1 termination will happen in the terminate sequence response message.
+
TerminateSequence terminateSequence = (TerminateSequence) rmMsgCtx
.getMessagePart(Sandesha2Constants.MessageParts.TERMINATE_SEQ);
String sequenceID = terminateSequence.getIdentifier().getIdentifier();
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org