You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ch...@apache.org on 2006/02/26 18:36:25 UTC

svn commit: r381126 - in /webservices/sandesha/trunk/samples/src/sandesha2/samples/interop: AsyncEchoClient.java AsyncPingClient.java RMInteropService.java SyncEchoClient.java SyncPingClient.java

Author: chamikara
Date: Sun Feb 26 09:36:22 2006
New Revision: 381126

URL: http://svn.apache.org/viewcvs?rev=381126&view=rev
Log:
Changed the interop sample to go with the requirement of the new WSRM spec.

Modified:
    webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncEchoClient.java
    webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncPingClient.java
    webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/RMInteropService.java
    webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncEchoClient.java
    webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncPingClient.java

Modified: webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncEchoClient.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncEchoClient.java?rev=381126&r1=381125&r2=381126&view=diff
==============================================================================
--- webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncEchoClient.java (original)
+++ webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncEchoClient.java Sun Feb 26 09:36:22 2006
@@ -22,7 +22,6 @@
 
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Call;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.client.async.AsyncResult;
@@ -30,19 +29,22 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.context.MessageContextConstants;
-import org.apache.axis2.description.AxisService;
+import org.apache.sandesha2.client.Sandesha2ClientAPI;
 import org.apache.ws.commons.om.OMAbstractFactory;
 import org.apache.ws.commons.om.OMElement;
 import org.apache.ws.commons.om.OMFactory;
 import org.apache.ws.commons.om.OMNamespace;
-import org.apache.ws.commons.soap.SOAP12Constants;
-import org.apache.sandesha2.Sandesha2Constants;
-import org.apache.sandesha2.client.RMReport;
-import org.apache.sandesha2.client.Sandesha2ClientAPI;
-import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.ws.commons.soap.SOAPBody;
 
 public class AsyncEchoClient {
 	
+	private final static String applicationNamespaceName = "http://tempuri.org/"; 
+	private final static String echoString = "echoString";
+	private final static String Text = "Text";
+	private final static String Sequence = "Sequence";
+	private final static String echoStringResponse = "echoStringResponse";
+	private final static String EchoStringReturn = "EchoStringReturn";
+	
 	private String toIP = "127.0.0.1";
 	
 	private String ackIP = "127.0.0.1";
@@ -95,16 +97,19 @@
 		clientOptions.setProperty(Options.COPY_PROPERTIES,new Boolean (true));
 		clientOptions.setTo(new EndpointReference (toEPR));
 		clientOptions.setProperty(Sandesha2ClientAPI.AcksTo,acksToEPR);
-		clientOptions.setProperty(Sandesha2ClientAPI.SEQUENCE_KEY,"sequence1");
+		
+		String sequenceKey = "sequence4";
+		clientOptions.setProperty(Sandesha2ClientAPI.SEQUENCE_KEY,sequenceKey);
+		
 		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportToEPR);
 		
-		//clientOptions.setProperty(MessageContextConstants.CHUNKED,Constants.VALUE_FALSE);   //uncomment this to send messages without chunking.
+//		clientOptions.setProperty(MessageContextConstants.CHUNKED,Constants.VALUE_FALSE);   //uncomment this to send messages without chunking.
 		
-		//clientOptions.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);   //uncomment this to send messages in SOAP 1.2
+//		clientOptions.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);   //uncomment this to send messages in SOAP 1.2
 		
-		//clientOptions.setProperty(Sandesha2ClientAPI.RM_SPEC_VERSION,Sandesha2Constants.SPEC_VERSIONS.WSRX);  //uncomment this to send the messages according to the WSRX spec.
+//		clientOptions.setProperty(Sandesha2ClientAPI.RM_SPEC_VERSION,Sandesha2Constants.SPEC_VERSIONS.WSRX);  //uncomment this to send the messages according to the WSRX spec.
 		
-		//clientOptions.setProperty(Sandesha2ClientAPI.OFFERED_SEQUENCE_ID,SandeshaUtil.getUUID());  //Uncomment this to offer a sequenceID for the incoming sequence.
+//		clientOptions.setProperty(Sandesha2ClientAPI.OFFERED_SEQUENCE_ID,SandeshaUtil.getUUID());  //Uncomment this to offer a sequenceID for the incoming sequence.
 		
 		//You must set the following two properties in the request-reply case.
 		clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
@@ -114,34 +119,39 @@
 		serviceClient.engageModule(new QName ("sandesha2"));  //engaging the sandesha2 module.
 		
 		Callback callback1 = new TestCallback ("Callback 1");
-		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo1"),callback1);
-		Callback callback2 = new TestCallback ("Callback 2");
-		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo2"),callback2);
+		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo1",sequenceKey),callback1);
 		
+		Callback callback2 = new TestCallback ("Callback 2");
+		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo2",sequenceKey),callback2);
+
 		Callback callback3 = new TestCallback ("Callback 3");
-		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo3"),callback3);
+		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo3",sequenceKey),callback3);
+		
 		Callback callback4 = new TestCallback ("Callback 4");
-		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo4"),callback4);
+		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo4",sequenceKey),callback4);
 		
 		clientOptions.setProperty(Sandesha2ClientAPI.LAST_MESSAGE, "true");
-		Callback callback5 = new TestCallback ("Callback 6");
-		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo6"),callback5);
+		Callback callback5 = new TestCallback ("Callback 5");
+		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo5",sequenceKey),callback5);
 		
         while (!callback5.isComplete()) {
             Thread.sleep(1000);
         }
-       
 	}
 
-	private static OMElement getEchoOMBlock(String text) {
+	private static OMElement getEchoOMBlock(String text, String sequenceKey) {
 		OMFactory fac = OMAbstractFactory.getOMFactory();
-		OMNamespace defaultNS = fac.createOMNamespace("http://tempuri.apache.org","ns1");
-		OMElement echoElement = fac.createOMElement("echoString", null);
-		OMElement paramElement = fac.createOMElement("text", null);
-		echoElement.addChild(paramElement);
-		paramElement.setText(text);
-
-		return echoElement;
+		OMNamespace applicationNamespace = fac.createOMNamespace(applicationNamespaceName,"ns1");
+		OMElement echoStringElement = fac.createOMElement(echoString, applicationNamespace);
+		OMElement textElem = fac.createOMElement(Text,applicationNamespace);
+		OMElement sequenceElem = fac.createOMElement(Sequence,applicationNamespace);
+		
+		textElem.setText(text);
+		sequenceElem.setText(sequenceKey);
+		echoStringElement.addChild(textElem);
+		echoStringElement.addChild(sequenceElem);
+		
+		return echoStringElement;
 	}
 
 	class TestCallback extends Callback {
@@ -154,24 +164,22 @@
 		
 		public void onComplete(AsyncResult result) {
 			//System.out.println("On Complete Called for " + text);
-			OMElement responseElement = result.getResponseEnvelope().getBody().getFirstElement();
-			if (responseElement==null) {
-				System.out.println("Response element is null");
+			SOAPBody body = result.getResponseEnvelope().getBody();
+			
+			OMElement echoStringResponseElem = body.getFirstChildWithName(new QName (applicationNamespaceName,echoStringResponse));
+			if (echoStringResponseElem==null) { 
+				System.out.println("Error: SOAPBody does not have a 'echoStringResponse' child");
 				return;
 			}
 			
-			String tempText = responseElement.getText();
-			if (tempText==null || "".equals(tempText)){
-				OMElement child = responseElement.getFirstElement();
-				if (child!=null)
-					tempText = child.getText();
+			OMElement echoStringReturnElem = echoStringResponseElem.getFirstChildWithName(new QName (applicationNamespaceName,EchoStringReturn));
+			if (echoStringReturnElem==null) { 
+				System.out.println("Error: 'echoStringResponse' element does not have a 'EchoStringReturn' child");
+				return;
 			}
 			
-			
-			tempText = (tempText==null)?"":tempText;
-			
-			System.out.println("Callback '" + name +  "' got result:" + tempText);
-			
+			String resultStr = echoStringReturnElem.getText();
+			System.out.println("Callback '" + name +  "' got result:" + resultStr);
 		}
 
 		public void onError (Exception e) {

Modified: webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncPingClient.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncPingClient.java?rev=381126&r1=381125&r2=381126&view=diff
==============================================================================
--- webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncPingClient.java (original)
+++ webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/AsyncPingClient.java Sun Feb 26 09:36:22 2006
@@ -23,24 +23,23 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.MessageSender;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.axis2.context.MessageContextConstants;
-import org.apache.axis2.description.AxisService;
+import org.apache.sandesha2.client.Sandesha2ClientAPI;
 import org.apache.ws.commons.om.OMAbstractFactory;
 import org.apache.ws.commons.om.OMElement;
 import org.apache.ws.commons.om.OMFactory;
 import org.apache.ws.commons.om.OMNamespace;
-import org.apache.ws.commons.soap.SOAP12Constants;
-import org.apache.sandesha2.Sandesha2Constants;
-import org.apache.sandesha2.client.Sandesha2ClientAPI;
 
 
 public class AsyncPingClient {
 
+	private static final String applicationNamespaceName = "http://tempuri.org/"; 
+	private static final String Ping = "Ping";
+	private static final String Text = "Text";
+	
 	private String toIP = "127.0.0.1";
 	
 	private String toPort = "8070";
@@ -84,17 +83,17 @@
 		
 		Options clientOptions = new Options ();
 		
-		//clientOptions.setProperty(MessageContextConstants.CHUNKED,Constants.VALUE_FALSE);   //uncomment this to send messages without chunking.
+//		clientOptions.setProperty(MessageContextConstants.CHUNKED,Constants.VALUE_FALSE);   //uncomment this to send messages without chunking.
 		
-		//clientOptions.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);   //uncomment this to send messages in SOAP 1.2
+//		clientOptions.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);   //uncomment this to send messages in SOAP 1.2
 		
-		//clientOptions.setProperty(Sandesha2ClientAPI.RM_SPEC_VERSION,Sandesha2Constants.SPEC_VERSIONS.WSRX);  //uncomment this to send the messages according to the WSRX spec.
+//		clientOptions.setProperty(Sandesha2ClientAPI.RM_SPEC_VERSION,Sandesha2Constants.SPEC_VERSIONS.WSRX);  //uncomment this to send the messages according to the WSRX spec.
 		
 		clientOptions.setProperty(Options.COPY_PROPERTIES,new Boolean (true));
 		clientOptions.setTo(new EndpointReference (toEPR));
 		clientOptions.setProperty(Sandesha2ClientAPI.AcksTo,acksToEPR);
 		clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
-		clientOptions.setProperty(Sandesha2ClientAPI.SEQUENCE_KEY,"sequence1");
+		clientOptions.setProperty(Sandesha2ClientAPI.SEQUENCE_KEY,"sequence2");
 		
 		serviceClient.setOptions(clientOptions);
 		serviceClient.engageModule(new QName ("sandesha2"));
@@ -109,14 +108,14 @@
 	
 	private static OMElement getPingOMBlock(String text) {
 		OMFactory fac = OMAbstractFactory.getOMFactory();
-		OMNamespace ns = fac.createOMNamespace("http://tempuri.apache.org",
-				"ns1");
-		OMElement pingElement = fac.createOMElement("ping", ns);
-		OMElement paramElement = fac.createOMElement("param1", ns);
-		pingElement.addChild(paramElement);
-		paramElement.setText(text);
+		OMNamespace namespace = fac.createOMNamespace(applicationNamespaceName,"ns1");
+		OMElement pingElem = fac.createOMElement(Ping, namespace);
+		OMElement textElem = fac.createOMElement(Text, namespace);
+		
+		textElem.setText(text);
+		pingElem.addChild(textElem);
 
-		return pingElement;
+		return pingElem;
 	}
 	
 }

Modified: webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/RMInteropService.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/RMInteropService.java?rev=381126&r1=381125&r2=381126&view=diff
==============================================================================
--- webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/RMInteropService.java (original)
+++ webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/RMInteropService.java Sun Feb 26 09:36:22 2006
@@ -20,6 +20,9 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.xml.namespace.QName;
+
+import org.apache.sandesha2.SandeshaException;
 import org.apache.ws.commons.om.OMAbstractFactory;
 import org.apache.ws.commons.om.OMElement;
 import org.apache.ws.commons.om.OMFactory;
@@ -27,104 +30,60 @@
 
 public class RMInteropService {
 
-	private static Map sequences = new HashMap();
-
-	public OMElement echoString(OMElement in) {
-
-		String responseText = null;
-		if (in != null) {
-			String tempText = in.getText();
-			if (tempText == null || "".equals(tempText)) {
-				OMElement firstChild = in.getFirstElement();
-				if (firstChild != null)
-					tempText = firstChild.getText();
-			}
-
-			if (tempText != null)
-				responseText = tempText;
-		}
-
-		System.out.println("echoString got text:"
-				+ ((null == responseText) ? "" : responseText));
+	private static Map sequenceStrings = new HashMap();  //TODO make this non static
+	private final String applicationNamespaceName = "http://tempuri.org/"; 
+	private final String Text = "Text";
+	private final String Sequence = "Sequence";
+	private final String echoStringResponse = "echoStringResponse";
+	private final String EchoStringReturn = "EchoStringReturn";
+  
+	public OMElement echoString(OMElement in) throws Exception {
+		
+		OMElement textElem = in.getFirstChildWithName(new QName (applicationNamespaceName,Text));
+		OMElement sequenceElem = in.getFirstChildWithName(new QName (applicationNamespaceName,Sequence));
+		
+		if (textElem==null)
+			throw new SandeshaException ("'Text' element is not present as a child of the 'echoString' element");
+		if (sequenceElem==null)
+			throw new SandeshaException ("'Sequence' element is not present as a child of the 'echoString' element");
+		
+		String textStr = textElem.getText();
+		String sequenceStr = sequenceElem.getText();
+		
+		System.out.println("'EchoString' service got text '" + textStr + "' for the sequence '" + sequenceStr + "'");
+		
+		String previousText = (String) sequenceStrings.get(sequenceStr);
+		String resultText = (previousText==null)?textStr:previousText+textStr;
+		sequenceStrings.put(sequenceStr,resultText);
+		
+		
 		OMFactory fac = OMAbstractFactory.getOMFactory();
-		OMNamespace omNs = fac.createOMNamespace("http://tempuri.org/",
-				"echoString");
-		OMElement method = fac.createOMElement("echoStringResponse", omNs);
-
-		OMElement value = fac.createOMElement("text", omNs);
-
-		if (responseText == null || "".equals(responseText))
-			responseText = "echo response";
-
-		value.setText(responseText);
-		method.addChild(value);
-
-		return method;
+		OMNamespace applicationNamespace = fac.createOMNamespace(applicationNamespaceName,"ns1");
+		OMElement echoStringResponseElem = fac.createOMElement(echoStringResponse, applicationNamespace);
+		OMElement echoStringReturnElem = fac.createOMElement(EchoStringReturn, applicationNamespace);
+		
+		echoStringReturnElem.setText(resultText);
+		echoStringResponseElem.addChild(echoStringReturnElem);
+		
+		return echoStringResponseElem;
 	}
-
-	public void ping(OMElement in) {
-		//Just accept the message and do some processing
-
-		String text = null;
-		if (in != null) {
-			OMElement firstElement = in.getFirstElement();
-			if (firstElement != null) {
-				text = firstElement.getText();
-			}
-		}
-
-		text = (text == null) ? "" : text;
-
-		System.out.println("Ping got text:" + text);
+  
+	public void ping(OMElement in) throws Exception  {
+		OMElement textElem = in.getFirstChildWithName(new QName (applicationNamespaceName,Text));
+		if (textElem==null)
+			throw new Exception ("'Text' element is not present as a child of the 'Ping' element");
+		
+		String textValue = textElem.getText();
+		
+		System.out.println("ping service got text:" + textValue);
 	}
 
-	public OMElement EchoString(OMElement in) {
-
-		String responseText = null;
-		if (in != null) {
-			String tempText = in.getText();
-			if (tempText == null || "".equals(tempText)) {
-				OMElement firstChild = in.getFirstElement();
-				if (firstChild != null)
-					tempText = firstChild.getText();
-			}
-
-			if (tempText != null)
-				responseText = tempText;
-		}
-
-		System.out.println("echoString got text:"
-				+ ((null == responseText) ? "" : responseText));
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		OMNamespace omNs = fac.createOMNamespace("http://tempuri.org/",
-				"echoString");
-		OMElement method = fac.createOMElement("echoStringResponse", omNs);
-
-		OMElement value = fac.createOMElement("text", omNs);
-
-		if (responseText == null || "".equals(responseText))
-			responseText = "echo response";
-
-		value.setText(responseText);
-		method.addChild(value);
-
-		return method;
+	public OMElement EchoString(OMElement in) throws Exception  {
+		return echoString(in);
 	}
 
-	public void Ping(OMElement in) {
-		//Just accept the message and do some processing
-
-		String text = null;
-		if (in != null) {
-			OMElement firstElement = in.getFirstElement();
-			if (firstElement != null) {
-				text = firstElement.getText();
-			}
-		}
-
-		text = (text == null) ? "" : text;
-
-		System.out.println("Ping got text:" + text);
+	public void Ping(OMElement in) throws Exception  {
+		ping(in);
 	}
 
 }

Modified: webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncEchoClient.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncEchoClient.java?rev=381126&r1=381125&r2=381126&view=diff
==============================================================================
--- webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncEchoClient.java (original)
+++ webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncEchoClient.java Sun Feb 26 09:36:22 2006
@@ -19,31 +19,31 @@
 import java.io.File;
 
 import javax.xml.namespace.QName;
-
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Call;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.client.async.AsyncResult;
 import org.apache.axis2.client.async.Callback;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.axis2.description.AxisOperation;
-import org.apache.axis2.description.AxisService;
+import org.apache.sandesha2.client.Sandesha2ClientAPI;
 import org.apache.ws.commons.om.OMAbstractFactory;
 import org.apache.ws.commons.om.OMElement;
 import org.apache.ws.commons.om.OMFactory;
 import org.apache.ws.commons.om.OMNamespace;
-import org.apache.ws.commons.soap.SOAP12Constants;
-import org.apache.sandesha2.Sandesha2Constants;
-import org.apache.sandesha2.client.Sandesha2ClientAPI;
-import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.ws.commons.soap.SOAPBody;
 
 
 public class SyncEchoClient {
 
+	private final static String applicationNamespaceName = "http://tempuri.org/"; 
+	private final static String echoString = "echoString";
+	private final static String Text = "Text";
+	private final static String Sequence = "Sequence";
+	private final static String echoStringResponse = "echoStringResponse";
+	private final static String EchoStringReturn = "EchoStringReturn";
+	
 	private String toIP = "127.0.0.1";
 	
 	private String toPort = "8070";
@@ -83,46 +83,52 @@
 		
 		clientOptions.setProperty(Options.COPY_PROPERTIES,new Boolean (true));
 		clientOptions.setTo(new EndpointReference (toEPR));
-		clientOptions.setProperty(Sandesha2ClientAPI.SEQUENCE_KEY,"sequence1");
+		
+		String sequenceKey = "sequence3";
+		clientOptions.setProperty(Sandesha2ClientAPI.SEQUENCE_KEY,sequenceKey);
 
 		//You must set the following two properties in the request-reply case.
 		clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 		clientOptions.setUseSeparateListener(true);
 		
-		//clientOptions.setProperty(MessageContextConstants.CHUNKED,Constants.VALUE_FALSE);   //uncomment this to send messages without chunking.
+//		clientOptions.setProperty(MessageContextConstants.CHUNKED,Constants.VALUE_FALSE);   //uncomment this to send messages without chunking.
 		
-		//clientOptions.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);   //uncomment this to send messages in SOAP 1.2
+//		clientOptions.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);   //uncomment this to send messages in SOAP 1.2
 		
-		//clientOptions.setProperty(Sandesha2ClientAPI.RM_SPEC_VERSION,Sandesha2Constants.SPEC_VERSIONS.WSRX);  //uncomment this to send the messages according to the WSRX spec.
+//		clientOptions.setProperty(Sandesha2ClientAPI.RM_SPEC_VERSION,Sandesha2Constants.SPEC_VERSIONS.WSRX);  //uncomment this to send the messages according to the WSRX spec.
 		
-		//clientOptions.setProperty(Sandesha2ClientAPI.OFFERED_SEQUENCE_ID,SandeshaUtil.getUUID());  //Uncomment this to offer a sequenceID for the incoming sequence.
+//		clientOptions.setProperty(Sandesha2ClientAPI.OFFERED_SEQUENCE_ID,SandeshaUtil.getUUID());  //Uncomment this to offer a sequenceID for the incoming sequence.
 		
 		serviceClient.setOptions(clientOptions);
 		serviceClient.engageModule(new QName ("sandesha2"));  //engaging the sandesha2 module
 		
 		Callback callback1 = new TestCallback ("Callback 1");
-		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo1"),callback1);
+		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo1",sequenceKey),callback1);
 		Callback callback2 = new TestCallback ("Callback 2");
-		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo2"),callback2);
+		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo2",sequenceKey),callback2);
 		
 		clientOptions.setProperty(Sandesha2ClientAPI.LAST_MESSAGE, "true");
 		Callback callback3 = new TestCallback ("Callback 3");
-		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo3"),callback3);
+		serviceClient.sendReceiveNonblocking(getEchoOMBlock("echo3",sequenceKey),callback3);
 		
         while (!callback3.isComplete()) {
             Thread.sleep(1000);
         }
 	}
 
-	private static OMElement getEchoOMBlock(String text) {
+	private static OMElement getEchoOMBlock(String text, String sequenceKey) {		
 		OMFactory fac = OMAbstractFactory.getOMFactory();
-		OMNamespace defaultNS = fac.createOMNamespace("http://tempuri.apache.org","ns1");
-		OMElement echoElement = fac.createOMElement("echoString", defaultNS);
-		OMElement paramElement = fac.createOMElement("text", defaultNS);
-		echoElement.addChild(paramElement);
-		paramElement.setText(text);
+		OMNamespace applicationNamespace = fac.createOMNamespace(applicationNamespaceName,"ns1");
+		OMElement echoStringElement = fac.createOMElement(echoString, applicationNamespace);
+		OMElement textElem = fac.createOMElement(Text,applicationNamespace);
+		OMElement sequenceElem = fac.createOMElement(Sequence,applicationNamespace);
+		
+		textElem.setText(text);
+		sequenceElem.setText(sequenceKey);
+		echoStringElement.addChild(textElem);
+		echoStringElement.addChild(sequenceElem);
 
-		return echoElement;
+		return echoStringElement;
 	}
 
 	private class TestCallback extends Callback {
@@ -139,23 +145,22 @@
 		
 		public void onComplete(AsyncResult result) {
 			//System.out.println("On Complete Called for " + text);
-			OMElement responseElement = result.getResponseEnvelope().getBody().getFirstElement();
-			if (responseElement==null) {
-				System.out.println("Response element is null");
+			SOAPBody body = result.getResponseEnvelope().getBody();
+			
+			OMElement echoStringResponseElem = body.getFirstChildWithName(new QName (applicationNamespaceName,echoStringResponse));
+			if (echoStringResponseElem==null) { 
+				System.out.println("Error: SOAPBody does not have a 'echoStringResponse' child");
 				return;
 			}
 			
-			String tempText = responseElement.getText();
-			if (tempText==null || "".equals(tempText)){
-				OMElement child = responseElement.getFirstElement();
-				if (child!=null)
-					tempText = child.getText();
+			OMElement echoStringReturnElem = echoStringResponseElem.getFirstChildWithName(new QName (applicationNamespaceName,EchoStringReturn));
+			if (echoStringReturnElem==null) { 
+				System.out.println("Error: 'echoStringResponse' element does not have a 'EchoStringReturn' child");
+				return;
 			}
 			
-			
-			tempText = (tempText==null)?"":tempText;
-			
-			System.out.println("Callback '" + name +  "' got result:" + tempText);
+			String resultStr = echoStringReturnElem.getText();
+			System.out.println("Callback '" + name +  "' got result:" + resultStr);
 			
 		}
 

Modified: webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncPingClient.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncPingClient.java?rev=381126&r1=381125&r2=381126&view=diff
==============================================================================
--- webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncPingClient.java (original)
+++ webservices/sandesha/trunk/samples/src/sandesha2/samples/interop/SyncPingClient.java Sun Feb 26 09:36:22 2006
@@ -21,33 +21,26 @@
 import javax.xml.namespace.QName;
 
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.InOnlyMEPClient;
-import org.apache.axis2.client.MessageSender;
-import org.apache.axis2.client.OperationClient;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.context.MessageContextConstants;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.ParameterImpl;
-import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.axis2.engine.MessageReceiver;
+import org.apache.sandesha2.client.Sandesha2ClientAPI;
 import org.apache.ws.commons.om.OMAbstractFactory;
 import org.apache.ws.commons.om.OMElement;
 import org.apache.ws.commons.om.OMFactory;
 import org.apache.ws.commons.om.OMNamespace;
-import org.apache.ws.commons.soap.SOAP11Constants;
-import org.apache.ws.commons.soap.SOAP12Constants;
-import org.apache.sandesha2.Sandesha2Constants;
-import org.apache.sandesha2.client.Sandesha2ClientAPI;
 
 
 public class SyncPingClient {
 
+	private static final String applicationNamespaceName = "http://tempuri.org/"; 
+	private static final String Ping = "Ping";
+	private static final String Text = "Text";
+	
 	private String toIP = "127.0.0.1";
 	
 	private String toPort = "8080";
@@ -91,11 +84,11 @@
 		clientOptions.setTo(new EndpointReference (toEPR));
 		clientOptions.setProperty(Sandesha2ClientAPI.SEQUENCE_KEY,"sequence1");
 	    
-		//clientOptions.setProperty(MessageContextConstants.CHUNKED,Constants.VALUE_FALSE);   //uncomment this to send messages without chunking.
+//		clientOptions.setProperty(MessageContextConstants.CHUNKED,Constants.VALUE_FALSE);   //uncomment this to send messages without chunking.
 		
-		//clientOptions.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);   //uncomment this to send messages in SOAP 1.2
+//		clientOptions.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);   //uncomment this to send messages in SOAP 1.2
 		
-		//clientOptions.setProperty(Sandesha2ClientAPI.RM_SPEC_VERSION,Sandesha2Constants.SPEC_VERSIONS.WSRX);  //uncomment this to send the messages according to the WSRX spec.
+//		clientOptions.setProperty(Sandesha2ClientAPI.RM_SPEC_VERSION,Sandesha2Constants.SPEC_VERSIONS.WSRX);  //uncomment this to send the messages according to the WSRX spec.
 		
 		ServiceClient serviceClient = new ServiceClient (configContext,null);		
 		clientOptions.setProperty("prop1","test1234");
@@ -115,14 +108,14 @@
 	
 	private static OMElement getPingOMBlock(String text) {
 		OMFactory fac = OMAbstractFactory.getOMFactory();
-		OMNamespace ns = fac.createOMNamespace("http://tempuri.apache.org",
-				"ns1");
-		OMElement pingElement = fac.createOMElement("ping", ns);
-		OMElement paramElement = fac.createOMElement("param1", ns);
-		pingElement.addChild(paramElement);
-		paramElement.setText(text);
+		OMNamespace namespace = fac.createOMNamespace(applicationNamespaceName,"ns1");
+		OMElement pingElem = fac.createOMElement(Ping, namespace);
+		OMElement textElem = fac.createOMElement(Text, namespace);
+		
+		textElem.setText(text);
+		pingElem.addChild(textElem);
 
-		return pingElement;
+		return pingElem;
 	}
 	
 }



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