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/04/19 13:41:39 UTC

svn commit: r395220 - in /webservices/sandesha/trunk/src/org/apache/sandesha2: RMMsgContext.java client/SandeshaClient.java handlers/SandeshaGlobalInHandler.java msgprocessors/AcknowledgementProcessor.java msgprocessors/ApplicationMsgProcessor.java

Author: chamikara
Date: Wed Apr 19 04:41:38 2006
New Revision: 395220

URL: http://svn.apache.org/viewcvs?rev=395220&view=rev
Log:
Changes due to the recent changes in Axis2.
Additions to the Client API

Modified:
    webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java?rev=395220&r1=395219&r2=395220&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/RMMsgContext.java Wed Apr 19 04:41:38 2006
@@ -193,8 +193,8 @@
 		msgContext.setWSAAction(action);
 	}
 
-	public void setRelatesTo(RelatesTo relatesTo) {
-		msgContext.setRelatesTo(relatesTo);
+	public void addRelatesTo(RelatesTo relatesTo) {
+		msgContext.addRelatesTo(relatesTo);
 	}
 
 	public void setWSAAction(String URI) {

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java?rev=395220&r1=395219&r2=395220&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java Wed Apr 19 04:41:38 2006
@@ -102,50 +102,72 @@
 		return getOutgoingSequenceReport(internalSequenceID,configurationContext);
 	}
 	
-	public static void createSequence (ServiceClient serviceClient, boolean offer) throws SandeshaException{
-		Options options = serviceClient.getOptions();
-		if (options==null)
-			throw new SandeshaException ("Options object is not set");
+	public static SequenceReport getOutgoingSequenceReport (String to,String sequenceKey,ConfigurationContext configurationContext) throws SandeshaException {
 		
-		EndpointReference toEPR = serviceClient.getOptions().getTo();
-		if (toEPR==null)
-			throw new SandeshaException ("ToEPR is not set");
+		String internalSequenceID = SandeshaUtil.getInternalSequenceID(to,sequenceKey);
+		return getOutgoingSequenceReport(internalSequenceID,configurationContext);
+	}
+	
+	public static SequenceReport getOutgoingSequenceReport (String internalSequenceID,ConfigurationContext configurationContext) throws SandeshaException {
 		
-		String to = toEPR.getAddress();
-		if (to==null)
-			throw new SandeshaException ("To EPR is not set");
+		SequenceReport sequenceReport = new SequenceReport ();
+		sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_OUT);
 		
-		if (offer) {
-			String offeredSequenceID = SandeshaUtil.getUUID();
-			options.setProperty(SandeshaClientConstants.OFFERED_SEQUENCE_ID,offeredSequenceID);
-		}
+		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configurationContext);
+		SequencePropertyBeanMgr seqPropMgr = storageManager.getSequencePropretyBeanMgr();
+		CreateSeqBeanMgr createSeqMgr = storageManager.getCreateSeqBeanMgr();
 		
-		//setting a new squenceKey if not already set.
-		String sequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
-		if (sequenceKey==null) {
-			sequenceKey = SandeshaUtil.getUUID();
-			options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
-		}
+		Transaction reportTransaction = storageManager.getTransaction();
 		
-	    options.setProperty(SandeshaClientConstants.DUMMY_MESSAGE,Sandesha2Constants.VALUE_TRUE);
-	    
-	    try {
-			serviceClient.fireAndForget(null);
-		} catch (AxisFault e) {
-			throw new SandeshaException (e);
-		}
+		sequenceReport.setInternalSequenceID(internalSequenceID);
 		
-		options.setProperty(SandeshaClientConstants.DUMMY_MESSAGE,Sandesha2Constants.VALUE_FALSE);
+		CreateSeqBean createSeqFindBean = new CreateSeqBean ();
+		createSeqFindBean.setInternalSequenceID(internalSequenceID);
 		
-	}
-	
-	public static void createSequnce (ServiceClient serviceClient, boolean offer, String sequenceKey) throws SandeshaException {
+		CreateSeqBean createSeqBean = createSeqMgr.findUnique(createSeqFindBean);
 		
-		Options options = serviceClient.getOptions();
-		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
+		//if data not is available sequence has to be terminated or timedOut.
+		if (createSeqBean==null) {
+			
+			//check weather this is an terminated sequence.
+			if (isSequenceTerminated(internalSequenceID,seqPropMgr)) {
+				fillTerminatedOutgoingSequenceInfo (sequenceReport,internalSequenceID,seqPropMgr);
+				
+				return sequenceReport;
+			}
+			
+			if (isSequenceTimedout(internalSequenceID,seqPropMgr)) {
+				fillTimedoutOutgoingSequenceInfo (sequenceReport,internalSequenceID,seqPropMgr);
+				
+				return sequenceReport;
+			}
 		
-		createSequence(serviceClient,offer);
+			//sequence must hv been timed out before establiching. No other posibility I can think of.
+			//this does not get recorded since there is no key (which is normally the sequenceID) to store it.
+			//(properties with key as the internalSequenceID get deleted in timing out)
+			
+			//so, setting the sequence status to INITIAL
+			sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_INITIAL);
+			
+			//returning the current sequence report.
+			return sequenceReport;
+		}
+		
+		String outSequenceID = createSeqBean.getSequenceID();
+		if (outSequenceID==null) {
+			 sequenceReport.setInternalSequenceID(internalSequenceID);
+			 sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_INITIAL);
+			 sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_OUT);
+			 
+			 return sequenceReport;
+		}
 		
+		sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_ESTABLISHED);
+		fillOutgoingSequenceInfo(sequenceReport,outSequenceID,seqPropMgr);
+		
+		reportTransaction.commit();
+		
+		return sequenceReport;	
 	}
 	
 	/**
@@ -176,7 +198,6 @@
 		return incomingSequenceReports;
 	}
 	
-
 	/**
 	 * SandeshaReport gives the details of all incoming and outgoing sequences.
 	 * The outgoing sequence have to pass the initial state (CS/CSR exchange) to be included in a SandeshaReport
@@ -227,6 +248,52 @@
 		return sandeshaReport;
 	}
 	
+	public static void createSequence (ServiceClient serviceClient, boolean offer) throws SandeshaException{
+		Options options = serviceClient.getOptions();
+		if (options==null)
+			throw new SandeshaException ("Options object is not set");
+		
+		EndpointReference toEPR = serviceClient.getOptions().getTo();
+		if (toEPR==null)
+			throw new SandeshaException ("ToEPR is not set");
+		
+		String to = toEPR.getAddress();
+		if (to==null)
+			throw new SandeshaException ("To EPR is not set");
+		
+		if (offer) {
+			String offeredSequenceID = SandeshaUtil.getUUID();
+			options.setProperty(SandeshaClientConstants.OFFERED_SEQUENCE_ID,offeredSequenceID);
+		}
+		
+		//setting a new squenceKey if not already set.
+		String sequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+		if (sequenceKey==null) {
+			sequenceKey = SandeshaUtil.getUUID();
+			options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
+		}
+		
+	    options.setProperty(SandeshaClientConstants.DUMMY_MESSAGE,Sandesha2Constants.VALUE_TRUE);
+	    
+	    try {
+			serviceClient.fireAndForget(null);
+		} catch (AxisFault e) {
+			throw new SandeshaException (e);
+		}
+		
+		options.setProperty(SandeshaClientConstants.DUMMY_MESSAGE,Sandesha2Constants.VALUE_FALSE);
+		
+	}
+	
+	public static void createSequnce (ServiceClient serviceClient, boolean offer, String sequenceKey) throws SandeshaException {
+		
+		Options options = serviceClient.getOptions();
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
+		
+		createSequence(serviceClient,offer);
+		
+	}
+	
 	
 	
 	/**
@@ -256,6 +323,7 @@
 		
 		String oldAction = options.getAction();
 		options.setAction(SpecSpecificConstants.getTerminateSequenceAction(rmSpecVersion));
+		
 		try {
 			serviceClient.fireAndForget(terminateBody);
 		} catch (AxisFault e) {
@@ -266,6 +334,18 @@
 		}
 	}
 	
+	public static void terminateSequence (ServiceClient serviceClient, String sequenceKey) throws SandeshaException {	
+		Options options = serviceClient.getOptions();
+		if (options==null)
+			throw new SandeshaException ("Options object is not set");
+		
+		String oldSequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
+		terminateSequence(serviceClient);
+		
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,oldSequenceKey);
+	}
+	
 	/**
 	 * User can close the sequence defined by the passed serviceClient.
 	 * 
@@ -302,60 +382,19 @@
 			options.setAction(oldAction);
 		}
 	}
-
-	private static SOAPEnvelope configureTerminateSequence (Options options,ConfigurationContext configurationContext) throws SandeshaException { 
-
-		if (options==null)
-			throw new SandeshaException ("You must set the Options object before calling this method");
-		
-		EndpointReference epr = options.getTo();
-		if (epr==null)
-			throw new SandeshaException ("You must set the toEPR before calling this method");
-		
-		String to = epr.getAddress();
-		String sequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
-		String internalSequenceID = SandeshaUtil.getInternalSequenceID(to,sequenceKey);
-		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(internalSequenceID,configurationContext);
-		if (sequenceReport==null)
-			throw new SandeshaException ("Cannot generate the sequence report for the given internalSequenceID");
-		if (sequenceReport.getSequenceStatus()!=SequenceReport.SEQUENCE_STATUS_ESTABLISHED)
-			throw new SandeshaException ("Canot terminate the sequence since it is not active");
-		
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configurationContext);
-		SequencePropertyBeanMgr seqPropMgr = storageManager.getSequencePropretyBeanMgr();
-		SequencePropertyBean sequenceIDBean = seqPropMgr.retrieve(internalSequenceID,Sandesha2Constants.SequenceProperties.OUT_SEQUENCE_ID);
-		if (sequenceIDBean==null)
-			throw new SandeshaException ("SequenceIdBean is not set");
-		
-		String sequenceID = sequenceIDBean.getValue();
-
-		if (sequenceID==null)
-			throw new SandeshaException ("Cannot find the sequenceID");
-		
-		String rmSpecVersion = (String) options.getProperty(SandeshaClientConstants.RM_SPEC_VERSION);
-		if (rmSpecVersion==null) 
-			rmSpecVersion = SpecSpecificConstants.getDefaultSpecVersion ();
+	
+	public static void closeSequence (ServiceClient serviceClient, String sequenceKey) throws SandeshaException {
+	    //TODO test
 		
-		options.setAction(SpecSpecificConstants.getTerminateSequenceAction(rmSpecVersion));		
-		SOAPEnvelope dummyEnvelope = null;
-		SOAPFactory factory = null;
-		String soapNamespaceURI = options.getSoapVersionURI();
-		if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(soapNamespaceURI)) {
-			factory = new SOAP12Factory ();
-			dummyEnvelope = factory.getDefaultEnvelope();
-		}else  {
-			factory = new SOAP11Factory ();
-			dummyEnvelope = factory.getDefaultEnvelope();
-		}
+		Options options = serviceClient.getOptions();
+		if (options==null)
+			throw new SandeshaException ("Options object is not set");
 		
-		String rmNamespaceValue = SpecSpecificConstants.getRMNamespaceValue(rmSpecVersion);
-		TerminateSequence terminateSequence = new TerminateSequence (factory,rmNamespaceValue);
-		Identifier identifier = new Identifier (factory,rmNamespaceValue);
-		identifier.setIndentifer(sequenceID);
-		terminateSequence.setIdentifier(identifier);
-		terminateSequence.toSOAPEnvelope(dummyEnvelope);
+		String oldSequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
+		closeSequence(serviceClient);
 		
-		return dummyEnvelope;
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,oldSequenceKey);
 	}
 	
 	/**
@@ -363,10 +402,22 @@
 	 * 
 	 * @param serviceClient
 	 */
-	public void waitUntilSequenceCompleted (ServiceClient serviceClient) throws SandeshaException {
+	public static void waitUntilSequenceCompleted (ServiceClient serviceClient) throws SandeshaException {
 		waitUntilSequenceCompleted(serviceClient,-1);
 	}
 	
+	public static void waitUntilSequenceCompleted (ServiceClient serviceClient, String sequenceKey) throws SandeshaException {
+		Options options = serviceClient.getOptions();
+		if (options==null)
+			throw new SandeshaException ("Options object is not set");
+		
+		String oldSequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
+		waitUntilSequenceCompleted(serviceClient);
+		
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,oldSequenceKey);
+	}
+	
 	/**
 	 * This blocks the system until the messages u have sent hv been completed or until the
 	 * given time interval exceeds. (the time is taken in seconds)
@@ -374,7 +425,7 @@
 	 * @param serviceClient
 	 * @param maxWaitingTime
 	 */
-	public void waitUntilSequenceCompleted (ServiceClient serviceClient, long maxWaitingTime) throws SandeshaException{
+	public static void waitUntilSequenceCompleted (ServiceClient serviceClient, long maxWaitingTime) throws SandeshaException{
 		
 		long startTime = System.currentTimeMillis();
 		
@@ -397,9 +448,19 @@
 				if (timeNow> (startTime+maxWaitingTime))
 					done = true;
 			}
-		}
+		}	
+	}
+	
+	public static void waitUntilSequenceCompleted (ServiceClient serviceClient, long maxWaitingTime, String sequenceKey) throws SandeshaException{
+		Options options = serviceClient.getOptions();
+		if (options==null)
+			throw new SandeshaException ("Options object is not set");
 		
+		String oldSequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
+		waitUntilSequenceCompleted(serviceClient,maxWaitingTime);
 		
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,oldSequenceKey);
 	}
 	
 	//gives the out sequenceID if CS/CSR exchange is done. Otherwise a SandeshaException
@@ -521,6 +582,22 @@
 		options.setAction(oldAction);		
 	}
 		
+	public static void sendAckRequest (ServiceClient serviceClient, String sequenceKey) throws SandeshaException {
+		Options options = serviceClient.getOptions();
+		if (options==null)
+			throw new SandeshaException ("Options object is not set");
+		
+		String oldSequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
+		sendAckRequest(serviceClient);
+		
+		options.setProperty(SandeshaClientConstants.SEQUENCE_KEY,oldSequenceKey);
+	}
+	
+	private static String getInternalSequenceID (String to, String sequenceKey) {
+		return SandeshaUtil.getInternalSequenceID(to,sequenceKey);
+	}
+	
 	private static SOAPEnvelope configureCloseSequence (Options options,ConfigurationContext configurationContext) throws SandeshaException {
 
 		if (options==null)
@@ -583,73 +660,6 @@
 		return dummyEnvelope;
 	}
 	
-	public static SequenceReport getOutgoingSequenceReport (String to,String sequenceKey,ConfigurationContext configurationContext) throws SandeshaException {
-		String internalSequenceID = SandeshaUtil.getInternalSequenceID(to,sequenceKey);
-		return getOutgoingSequenceReport(internalSequenceID,configurationContext);
-	}
-	
-	public static SequenceReport getOutgoingSequenceReport (String internalSequenceID,ConfigurationContext configurationContext) throws SandeshaException {
-		
-		SequenceReport sequenceReport = new SequenceReport ();
-		sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_OUT);
-		
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configurationContext);
-		SequencePropertyBeanMgr seqPropMgr = storageManager.getSequencePropretyBeanMgr();
-		CreateSeqBeanMgr createSeqMgr = storageManager.getCreateSeqBeanMgr();
-		
-		Transaction reportTransaction = storageManager.getTransaction();
-		
-		sequenceReport.setInternalSequenceID(internalSequenceID);
-		
-		CreateSeqBean createSeqFindBean = new CreateSeqBean ();
-		createSeqFindBean.setInternalSequenceID(internalSequenceID);
-		
-		CreateSeqBean createSeqBean = createSeqMgr.findUnique(createSeqFindBean);
-		
-		//if data not is available sequence has to be terminated or timedOut.
-		if (createSeqBean==null) {
-			
-			//check weather this is an terminated sequence.
-			if (isSequenceTerminated(internalSequenceID,seqPropMgr)) {
-				fillTerminatedOutgoingSequenceInfo (sequenceReport,internalSequenceID,seqPropMgr);
-				
-				return sequenceReport;
-			}
-			
-			if (isSequenceTimedout(internalSequenceID,seqPropMgr)) {
-				fillTimedoutOutgoingSequenceInfo (sequenceReport,internalSequenceID,seqPropMgr);
-				
-				return sequenceReport;
-			}
-		
-			//sequence must hv been timed out before establiching. No other posibility I can think of.
-			//this does not get recorded since there is no key (which is normally the sequenceID) to store it.
-			//(properties with key as the internalSequenceID get deleted in timing out)
-			
-			//so, setting the sequence status to INITIAL
-			sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_INITIAL);
-			
-			//returning the current sequence report.
-			return sequenceReport;
-		}
-		
-		String outSequenceID = createSeqBean.getSequenceID();
-		if (outSequenceID==null) {
-			 sequenceReport.setInternalSequenceID(internalSequenceID);
-			 sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_INITIAL);
-			 sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_OUT);
-			 
-			 return sequenceReport;
-		}
-		
-		sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_ESTABLISHED);
-		fillOutgoingSequenceInfo(sequenceReport,outSequenceID,seqPropMgr);
-		
-		reportTransaction.commit();
-		
-		return sequenceReport;	
-	}
-	
 	private static boolean isSequenceTerminated (String internalSequenceID, SequencePropertyBeanMgr seqPropMgr) throws SandeshaException { 
 		SequencePropertyBean internalSequenceFindBean = new SequencePropertyBean ();
 		internalSequenceFindBean.setValue(internalSequenceID);
@@ -783,6 +793,11 @@
 		
 	}
 	
+	
+	private static String generateInternalSequenceIDForTheClientSide (String toEPR,String sequenceKey) {
+		return SandeshaUtil.getInternalSequenceID(toEPR,sequenceKey);
+	}
+	
 	private static SequenceReport getIncomingSequenceReport (String sequenceID,ConfigurationContext configCtx) throws SandeshaException {
 		
 		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configCtx);
@@ -806,13 +821,59 @@
 		return sequenceReport;
 	}
 	
-	public static String getInternalSequenceID (String to, String sequenceKey) {
-		return SandeshaUtil.getInternalSequenceID(to,sequenceKey);
-	}
-	
-	
-	private static String generateInternalSequenceIDForTheClientSide (String toEPR,String sequenceKey) {
-		return SandeshaUtil.getInternalSequenceID(toEPR,sequenceKey);
+	private static SOAPEnvelope configureTerminateSequence (Options options,ConfigurationContext configurationContext) throws SandeshaException { 
+
+		if (options==null)
+			throw new SandeshaException ("You must set the Options object before calling this method");
+		
+		EndpointReference epr = options.getTo();
+		if (epr==null)
+			throw new SandeshaException ("You must set the toEPR before calling this method");
+		
+		String to = epr.getAddress();
+		String sequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+		String internalSequenceID = SandeshaUtil.getInternalSequenceID(to,sequenceKey);
+		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(internalSequenceID,configurationContext);
+		if (sequenceReport==null)
+			throw new SandeshaException ("Cannot generate the sequence report for the given internalSequenceID");
+		if (sequenceReport.getSequenceStatus()!=SequenceReport.SEQUENCE_STATUS_ESTABLISHED)
+			throw new SandeshaException ("Canot terminate the sequence since it is not active");
+		
+		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configurationContext);
+		SequencePropertyBeanMgr seqPropMgr = storageManager.getSequencePropretyBeanMgr();
+		SequencePropertyBean sequenceIDBean = seqPropMgr.retrieve(internalSequenceID,Sandesha2Constants.SequenceProperties.OUT_SEQUENCE_ID);
+		if (sequenceIDBean==null)
+			throw new SandeshaException ("SequenceIdBean is not set");
+		
+		String sequenceID = sequenceIDBean.getValue();
+
+		if (sequenceID==null)
+			throw new SandeshaException ("Cannot find the sequenceID");
+		
+		String rmSpecVersion = (String) options.getProperty(SandeshaClientConstants.RM_SPEC_VERSION);
+		if (rmSpecVersion==null) 
+			rmSpecVersion = SpecSpecificConstants.getDefaultSpecVersion ();
+		
+		options.setAction(SpecSpecificConstants.getTerminateSequenceAction(rmSpecVersion));		
+		SOAPEnvelope dummyEnvelope = null;
+		SOAPFactory factory = null;
+		String soapNamespaceURI = options.getSoapVersionURI();
+		if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(soapNamespaceURI)) {
+			factory = new SOAP12Factory ();
+			dummyEnvelope = factory.getDefaultEnvelope();
+		}else  {
+			factory = new SOAP11Factory ();
+			dummyEnvelope = factory.getDefaultEnvelope();
+		}
+		
+		String rmNamespaceValue = SpecSpecificConstants.getRMNamespaceValue(rmSpecVersion);
+		TerminateSequence terminateSequence = new TerminateSequence (factory,rmNamespaceValue);
+		Identifier identifier = new Identifier (factory,rmNamespaceValue);
+		identifier.setIndentifer(sequenceID);
+		terminateSequence.setIdentifier(identifier);
+		terminateSequence.toSOAPEnvelope(dummyEnvelope);
+		
+		return dummyEnvelope;
 	}
 	
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java?rev=395220&r1=395219&r2=395220&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java Wed Apr 19 04:41:38 2006
@@ -286,8 +286,10 @@
 			throws SandeshaException {
 		switch (rmMsgCtx.getMessageType()) {
 		case Sandesha2Constants.MessageTypes.ACK:
-			rmMsgCtx.setRelatesTo(null); 
-			//Removing the relatesTo part from ackMessageIf present. Some Frameworks tend to send this.
+			
+//			//rmMsgCtx.addRelatesTo(null); 
+//			rmMsgCtx.getMessageContext().getre
+//			//Removing the relatesTo part from ackMessageIf present. Some Frameworks tend to send this.
 		}
 	}
 

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java?rev=395220&r1=395219&r2=395220&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java Wed Apr 19 04:41:38 2006
@@ -159,8 +159,8 @@
 		//Removing relatesTo - Some WSRM endpoints tend to set relatesTo value for ack messages.
 		//Because of this dispatching may go wrong. So we set relatesTo value to null for ackMessages. 
 		//(this happens in the SandeshaGlobal handler). Do this only if this is a standalone ACK.
-		if (rmMsgCtx.getMessageType() == Sandesha2Constants.MessageTypes.ACK)
-			rmMsgCtx.setRelatesTo(null);
+//		if (rmMsgCtx.getMessageType() == Sandesha2Constants.MessageTypes.ACK)
+//			rmMsgCtx.setRelatesTo(null);
 
 		SenderBean input = new SenderBean();
 		input.setSend(true);

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=395220&r1=395219&r2=395220&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Wed Apr 19 04:41:38 2006
@@ -831,7 +831,7 @@
 		}
 
 		MessageContext createSeqMsg = createSeqRMMessage.getMessageContext();
-		createSeqMsg.setRelatesTo(null); // create seq msg does not relateTo anything
+		createSeqMsg.setRelationships(null); // create seq msg does not relateTo anything
 
 		CreateSeqBean createSeqBean = new CreateSeqBean(internalSequenceId,createSeqMsg.getMessageID(), null);
 		createSeqMgr.insert(createSeqBean);



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org