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