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 ml...@apache.org on 2006/11/29 16:23:41 UTC

svn commit: r480595 [1/2] - in /webservices/sandesha/trunk/java/test/src/org/apache/sandesha2: ./ scenarios/ security/ versions/ workers/

Author: mlovett
Date: Wed Nov 29 07:23:40 2006
New Revision: 480595

URL: http://svn.apache.org/viewvc?view=rev&rev=480595
Log:
Refactor tests to minimise wait times and remove duplicated code, see SANDESHA2-54

Modified:
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageContextPropertyTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageRetransmissionTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaReportsTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaTestCase.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SquenceOfferTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressableEchoTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressablePingTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AnonymousAckEchoTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AnonymousPingTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/OptionalReliabilityTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/security/SecurityTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/versions/AddressingVersionTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/versions/RMVersionTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/versions/SOAPVersionTest.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageContextPropertyTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageContextPropertyTest.java?view=diff&rev=480595&r1=480594&r2=480595
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageContextPropertyTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageContextPropertyTest.java Wed Nov 29 07:23:40 2006
@@ -1,22 +1,14 @@
 package org.apache.sandesha2;
 
 import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
 
-import javax.activation.DataHandler;
-import javax.activation.DataSource;
-import javax.activation.FileDataSource;
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.OMText;
 import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAPBody;
-import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.client.Options;
@@ -24,7 +16,6 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.MessageContextConstants;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisOperationFactory;
 import org.apache.axis2.description.AxisService;
@@ -32,30 +23,22 @@
 import org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver;
 import org.apache.axis2.transport.http.SimpleHTTPServer;
 import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.client.SandeshaClient;
 import org.apache.sandesha2.client.SandeshaClientConstants;
 import org.apache.sandesha2.client.SequenceReport;
 
 public class MessageContextPropertyTest extends SandeshaTestCase {
 
-
-
 	private final String TEST_OPERATION_NAME = "testOperation";
-	SimpleHTTPServer httpServer = null;
 	private final String applicationNamespaceName = "http://tempuri.org/"; 
-	private final String ping = "ping";
 	private final String Text = "Text";
 	
-	private Log log = LogFactory.getLog(getClass());
-	int serverPort = DEFAULT_SERVER_TEST_PORT;
-
 	public MessageContextPropertyTest() {
 		super("MessageContextPropertyTest");
 	}
 
-	public void setUp() throws AxisFault {
+	public void setUp() throws Exception {
+		super.setUp();
 
 		String repoPath = "target" + File.separator + "repos" + File.separator + "server";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
@@ -87,22 +70,9 @@
 		}
 	}
 
-	public void tearDown() throws SandeshaException {
-		if (httpServer != null)
-			httpServer.stop();
-
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException("sleep interupted");
-		}
-	}
-
-
 	public void testParameters () throws AxisFault,InterruptedException  {
 		
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		
 		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
@@ -114,7 +84,6 @@
 		clientOptions.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
 		
 		clientOptions.setTo(new EndpointReference (to));
-		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 		
 		String sequenceKey = "sequence1";
 		clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
@@ -129,13 +98,25 @@
 		clientOptions.setProperty(SandeshaClientConstants.LAST_MESSAGE, "true");
 		serviceClient.fireAndForget(getTestOperationOMBlock("ping2"));
 		
-		Thread.sleep(10000);
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+				SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(2)));
+				assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
 				
-		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(2)));
-		assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
-	
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
+		}
+		if(lastError != null) throw lastError;
+
 		configContext.getListenerManager().stop();
 		serviceClient.cleanup();
 	}

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageRetransmissionTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageRetransmissionTest.java?view=diff&rev=480595&r1=480594&r2=480595
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageRetransmissionTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/MessageRetransmissionTest.java Wed Nov 29 07:23:40 2006
@@ -18,75 +18,29 @@
 
 import java.io.File;
 
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReference;
 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.transport.http.SimpleHTTPServer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.client.SandeshaClient;
 import org.apache.sandesha2.client.SandeshaClientConstants;
 import org.apache.sandesha2.client.SequenceReport;
 
 public class MessageRetransmissionTest extends SandeshaTestCase {
 
-	SimpleHTTPServer httpServer = null;
-	private final String applicationNamespaceName = "http://tempuri.org/"; 
-	private final String ping = "ping";
-	private final String Text = "Text";
-	
-	private Log log = LogFactory.getLog(getClass());
-	
-	int serverPort = DEFAULT_SERVER_TEST_PORT;
+	private static final String server_repoPath = "target" + File.separator + "repos" + File.separator + "server";
+	private static final String server_axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
 	
 	public MessageRetransmissionTest () {
 		super ("MessageRetransmissionTest");
 	}
 	
-	public void setUp () throws AxisFault {
-		String serverPortStr = getTestProperty("test.server.port");
-		if (serverPortStr!=null) {
-		
-			try {
-				serverPort = Integer.parseInt(serverPortStr);
-			} catch (NumberFormatException e) {
-				log.error(e);
-			}
-		}
-	}
-	
-	private void startServer () throws AxisFault {
-		
-		String repoPath = "target" + File.separator + "repos" + File.separator + "server";
-		String axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
-
-
-		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
-
-		
-		httpServer = new SimpleHTTPServer (configContext,serverPort);
-		httpServer.start();
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
-	}
-	
-	public void testMessageRetransmission () throws AxisFault,InterruptedException  {
+	public void testMessageRetransmission () throws Exception  {
 		
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		
+	
 		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
 
@@ -97,7 +51,6 @@
 		clientOptions.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
 		
 		clientOptions.setTo(new EndpointReference (to));
-		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 		
 		String sequenceKey = "sequence1";
 		clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
@@ -112,46 +65,33 @@
 		
 		//starting the server after a wait
 		Thread.sleep(10000);
-		
-		startServer();
+		startServer(server_repoPath, server_axis2_xml);
 
 		clientOptions.setProperty(SandeshaClientConstants.LAST_MESSAGE, "true");
 		serviceClient.fireAndForget(getPingOMBlock("ping2"));
 		
-		
-		Thread.sleep(10000);
-	
-		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(2)));
-		assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
-	
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+				SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(2)));
+				assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
+		}
+		if(lastError != null) throw lastError;
+
 		configContext.getListenerManager().stop();
 		serviceClient.cleanup();
-	}
-	
-	private OMElement getPingOMBlock(String text) {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		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 pingElem;
-	}
-	
-	public void tearDown () throws SandeshaException {
-		if (httpServer!=null)
-			httpServer.stop();
-		
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
 	}
 	
 }

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java?view=diff&rev=480595&r1=480594&r2=480595
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java Wed Nov 29 07:23:40 2006
@@ -19,12 +19,7 @@
 import java.io.File;
 import java.util.List;
 
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.Constants.Configuration;
 import org.apache.axis2.addressing.EndpointReference;
@@ -32,10 +27,6 @@
 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.transport.http.SimpleHTTPServer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.client.SandeshaClient;
 import org.apache.sandesha2.client.SandeshaClientConstants;
 import org.apache.sandesha2.client.SequenceReport;
@@ -46,62 +37,18 @@
 
 public class SandeshaClientTest extends SandeshaTestCase {
 
-	SimpleHTTPServer httpServer = null;
-	private Log log = LogFactory.getLog(getClass());
-	int serverPort = DEFAULT_SERVER_TEST_PORT;
-	
-	private static final String applicationNamespaceName = "http://tempuri.org/"; 
-	private static final String ping = "ping";
-	private static final String Text = "Text";
+	String server_repoPath = "target" + File.separator + "repos" + File.separator + "server";
+	String server_axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
 
-	
 	public SandeshaClientTest () {
 		super ("SandeshaClientTest");
 	}
 	
-	public void setUp () {
-		
-		String serverPortStr = getTestProperty("test.server.port");
-		if (serverPortStr!=null) {
-		
-			try {
-				serverPort = Integer.parseInt(serverPortStr);
-			} catch (NumberFormatException e) {
-				log.error(e);
-			}
-		}
-		
-	}
-	
-	private void startServer() throws AxisFault {
-		
-		String repoPath = "target" + File.separator + "repos" + File.separator + "server";
-		String axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
-
-
-		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
-		httpServer = new SimpleHTTPServer (configContext,serverPort);
-		httpServer.start();
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
-
-	}
-	
-	public void tearDown () throws SandeshaException {
-		if (httpServer!=null)
-			httpServer.stop();
-		
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
+	public void setUp () throws Exception {
+		super.setUp();
 	}
 	
-	public void testCreateSequenceWithOffer () throws AxisFault,InterruptedException {
+	public void testCreateSequenceWithOffer () throws Exception {
 		
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
@@ -120,7 +67,7 @@
 		
 		ServiceClient serviceClient = new ServiceClient (configContext,null);
 		
-		startServer();
+		startServer(server_repoPath, server_axis2_xml);
 		try
 		{
 			String acksTo = serviceClient.getMyEPR(Constants.TRANSPORT_HTTP).getAddress();
@@ -141,12 +88,24 @@
 			String sequenceKey = SandeshaClient.createSequence(serviceClient,true);
 			clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY, sequenceKey);
 			
-			Thread.sleep(10000);
-			
-			SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-			
-			assertNotNull(sequenceReport.getSequenceID());
-			assertFalse(sequenceReport.isSecureSequence());
+			long limit = System.currentTimeMillis() + waitTime;
+			Error lastError = null;
+			while(System.currentTimeMillis() < limit) {
+				Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+				
+				try {
+					SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+					
+					assertNotNull(sequenceReport.getSequenceID());
+					assertFalse(sequenceReport.isSecureSequence());
+
+					lastError = null;
+					break;
+				} catch(Error e) {
+					lastError = e;
+				}
+			}
+			if(lastError != null) throw lastError;
 		}
 		finally
 		{
@@ -157,9 +116,8 @@
 	}
 	
 	public void testSequenceCloseTerminate()throws Exception{
-			startServer();
+			startServer(server_repoPath, server_axis2_xml);
 			String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-			String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 			
 			String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 			String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
@@ -171,7 +129,6 @@
 		   clientOptions.setProperty(SandeshaClientConstants.RM_SPEC_VERSION, 
 		       Sandesha2Constants.SPEC_VERSIONS.v1_1);
 			clientOptions.setTo(new EndpointReference (to));
-			clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 			
 			String sequenceKey = "some_sequence_key";
 			clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
@@ -188,25 +145,37 @@
 				
 				serviceClient.fireAndForget(getPingOMBlock("ping1"));
 				
-				Thread.sleep(10000);
-				
-				SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-				assertNotNull(sequenceReport.getSequenceID());
-				
-				//now close the sequence
-				SandeshaClient.closeSequence(serviceClient);
-				
-				//try and send another msg - this should fail
-				try{
-					serviceClient.fireAndForget(getPingOMBlock("ping2"));
-					fail(); //this should have failed
-				}
-				catch(Exception e){
-					//good
+				long limit = System.currentTimeMillis() + waitTime;
+				Error lastError = null;
+				while(System.currentTimeMillis() < limit) {
+					Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+					
+					try {
+						SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+						assertNotNull(sequenceReport.getSequenceID());
+						
+						//now close the sequence
+						SandeshaClient.closeSequence(serviceClient);
+						
+						//try and send another msg - this should fail
+						try{
+							serviceClient.fireAndForget(getPingOMBlock("ping2"));
+							fail(); //this should have failed
+						}
+						catch(Exception e){
+							//good
+						}
+					
+						//finally terminate the sequence
+						terminateAndCheck(serviceClient);
+
+						lastError = null;
+						break;
+					} catch(Error e) {
+						lastError = e;
+					}
 				}
-			
-				//finally terminate the sequence
-				terminateAndCheck(serviceClient);
+				if(lastError != null) throw lastError;
 			}
 			finally{
 				configContext.getListenerManager().stop();
@@ -217,13 +186,25 @@
 		
 		private void terminateAndCheck(ServiceClient srvcClient)throws Exception{
 			SandeshaClient.terminateSequence(srvcClient);
-			//wait
-			Thread.sleep(1000);
-			//now check the sequence is terminated
-			SequenceReport report = SandeshaClient.getOutgoingSequenceReport(srvcClient);
-			assertNotNull(report);
-			assertEquals(report.getSequenceStatus(), SequenceReport.SEQUENCE_STATUS_TERMINATED);
-			
+
+			long limit = System.currentTimeMillis() + waitTime;
+			Error lastError = null;
+			while(System.currentTimeMillis() < limit) {
+				Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+				
+				try {
+					//now check the sequence is terminated
+					SequenceReport report = SandeshaClient.getOutgoingSequenceReport(srvcClient);
+					assertNotNull(report);
+					assertEquals(report.getSequenceStatus(), SequenceReport.SEQUENCE_STATUS_TERMINATED);
+
+					lastError = null;
+					break;
+				} catch(Error e) {
+					lastError = e;
+				}
+			}
+			if(lastError != null) throw lastError;
 		}
 	
 //	public void testCreateSequenceWithoutOffer () {
@@ -250,7 +231,7 @@
 	 * SenderBean no longer exists for it.
 	 */
 	public void testAckRequest () throws Exception {
-		startServer();
+		startServer(server_repoPath, server_axis2_xml);
 		
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
@@ -276,36 +257,63 @@
 		// Create a sequence 
 		SandeshaClient.createSequence(serviceClient, false, null);
 		
-		Thread.sleep(5000);
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+				//now check the sequence is running
+				SequenceReport report = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertEquals(report.getSequenceStatus(), SequenceReport.SEQUENCE_STATUS_ESTABLISHED);
+
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
+		}
+		if(lastError != null) throw lastError;
 		
 		// Send the ACK request
 		SandeshaClient.sendAckRequest(serviceClient);
 		
-		Thread.sleep(10000);
-		
-		// Get the storage manager from the ConfigurationContext
-		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext, configContext.getAxisConfiguration());
-		
-		// Get the sequence id for this sequence.
-		String sequenceId = SandeshaClient.getSequenceID(serviceClient);
-		
-		// Get the SenderBeanManager
-		SenderBeanMgr senderManager = storageManager.getRetransmitterBeanMgr();
+		limit = System.currentTimeMillis() + waitTime;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+				// Get the storage manager from the ConfigurationContext
+				StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext, configContext.getAxisConfiguration());
 				
-		// Check that there are no sender beans inside the SenderBeanMgr.
-		SenderBean senderBean = new SenderBean();
-		senderBean.setSequenceID(sequenceId);
-		senderBean.setSend(true);
-		senderBean.setReSend(false);
-		
-		// Find any sender beans for the to address.
-		List beans = senderManager.find(senderBean);
-		assertTrue("SenderBeans found when the list should be empty", beans.isEmpty());
-		
-		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		
-		assertNotNull(sequenceReport.getSequenceID());
-		assertFalse(sequenceReport.isSecureSequence());
+				// Get the sequence id for this sequence.
+				String sequenceId = SandeshaClient.getSequenceID(serviceClient);
+				
+				// Get the SenderBeanManager
+				SenderBeanMgr senderManager = storageManager.getRetransmitterBeanMgr();
+						
+				// Check that there are no sender beans inside the SenderBeanMgr.
+				SenderBean senderBean = new SenderBean();
+				senderBean.setSequenceID(sequenceId);
+				senderBean.setSend(true);
+				senderBean.setReSend(false);
+				
+				// Find any sender beans for the to address.
+				List beans = senderManager.find(senderBean);
+				assertTrue("SenderBeans found when the list should be empty", beans.isEmpty());
+				
+				SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				
+				assertNotNull(sequenceReport.getSequenceID());
+				assertFalse(sequenceReport.isSecureSequence());
+
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
+		}
+		if(lastError != null) throw lastError;
 		
 		configContext.getListenerManager().stop();
 		serviceClient.cleanup();
@@ -344,46 +352,56 @@
 		
 		serviceClient.fireAndForget(getPingOMBlock("ping1"));
 		
-		//starting the server after a wait
-		Thread.sleep(10000);
+		// Let an error occur before we start the server
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+				// Check that the last error and last error time stamp have been set
+				String lastSendError = SandeshaClient.getLastSendError(serviceClient);
+				long lastSendErrorTime = SandeshaClient.getLastSendErrorTimestamp(serviceClient);
 				
-		// Check that the last error and last error time stamp have been set
-		String lastSendError = SandeshaClient.getLastSendError(serviceClient);
-		long lastSendErrorTime = SandeshaClient.getLastSendErrorTimestamp(serviceClient);
-		
-		// Check the values are valid
-		assertNotNull(lastSendError);
-		assertTrue(lastSendErrorTime > -1);
+				// Check the values are valid
+				assertNotNull(lastSendError);
+				assertTrue(lastSendErrorTime > -1);
+
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
+		}
+		if(lastError != null) throw lastError;
 		
-		startServer();
+		startServer(server_repoPath, server_axis2_xml);
 
 		clientOptions.setProperty(SandeshaClientConstants.LAST_MESSAGE, "true");
 		serviceClient.fireAndForget(getPingOMBlock("ping2"));
 		
 		
-		Thread.sleep(10000);
-	
-		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(2)));
-		assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+		limit = System.currentTimeMillis() + waitTime;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+				SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(2)));
+				assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
+		}
+		if(lastError != null) throw lastError;
 	
 		configContext.getListenerManager().stop();
 		serviceClient.cleanup();
 	}
-	
-	private OMElement getPingOMBlock(String text) {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		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 pingElem;
-	}
-
 	
 }

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaReportsTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaReportsTest.java?view=diff&rev=480595&r1=480594&r2=480595
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaReportsTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaReportsTest.java Wed Nov 29 07:23:40 2006
@@ -20,26 +20,13 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.SOAPBody;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 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.context.MessageContextConstants;
-import org.apache.axis2.transport.http.SimpleHTTPServer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.client.SandeshaClient;
 import org.apache.sandesha2.client.SandeshaClientConstants;
 import org.apache.sandesha2.client.SandeshaReport;
@@ -48,64 +35,22 @@
 
 public class SandeshaReportsTest extends SandeshaTestCase {
 
-	SimpleHTTPServer httpServer = null;
-	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";
-	int serverPort = DEFAULT_SERVER_TEST_PORT;
-	private final String ping = "ping";
-
-	private Log log = LogFactory.getLog(getClass());
-	
 	public SandeshaReportsTest () {
 		super ("SandeshaReportsTest");
 	}
 	
-	public void setUp () throws AxisFault {
-		
+	public void setUp () throws Exception {
+		super.setUp();
+
 		String repoPath = "target" + File.separator + "repos" + File.separator + "server";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
 
-
-		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
-
-		String serverPortStr = getTestProperty("test.server.port");
-		if (serverPortStr!=null) {
-		
-			try {
-				serverPort = Integer.parseInt(serverPortStr);
-			} catch (NumberFormatException e) {
-				log.error(e);
-			}
-		}
-		
-		httpServer = new SimpleHTTPServer (configContext,serverPort);
-		httpServer.start();
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
+		startServer(repoPath, axis2_xml);
 	}
 	
-	public void tearDown () throws SandeshaException {
-		if (httpServer!=null)
-			httpServer.stop();
-		
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
-	}
-	
-	public void testSequenceReports () throws AxisFault,InterruptedException  {
+	public void testSequenceReports () throws Exception  {
 
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		
 		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
@@ -115,7 +60,6 @@
 		Options clientOptions = new Options ();
 
 		clientOptions.setTo(new EndpointReference (to));
-		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 		
 		String sequenceKey = SandeshaUtil.getUUID();
 		clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
@@ -142,28 +86,39 @@
 		TestCallback callback2 = new TestCallback ("Callback 2");
 		serviceClient.sendReceiveNonBlocking (getEchoOMBlock("echo2",sequenceKey),callback2);
 
-        
-        Thread.sleep(10000);
-		
-        //testing outgoing sequence reports
-		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(2)));
-		assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
-		
-		//testing incoming sequence reports
-		ArrayList incomingSequenceReports = SandeshaClient.getIncomingSequenceReports(configContext);
-		assertEquals(incomingSequenceReports.size(),1);
-		SequenceReport incomingSequenceReport = (SequenceReport) incomingSequenceReports.get(0);
-		assertEquals(incomingSequenceReport.getCompletedMessages().size(),2);
-		assertNotNull(incomingSequenceReport.getSequenceID());
-		assertEquals(incomingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_IN);
-		assertEquals(incomingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertNotNull(incomingSequenceReport.getInternalSequenceID());
-		
-		assertEquals(incomingSequenceReport.getSequenceID(),incomingSequenceReport.getInternalSequenceID());  //for the incoming side, internalSequenceID==sequenceID
-		
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+		        //testing outgoing sequence reports
+				SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(2)));
+				assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+				
+				//testing incoming sequence reports
+				ArrayList incomingSequenceReports = SandeshaClient.getIncomingSequenceReports(configContext);
+				assertEquals(incomingSequenceReports.size(),1);
+				SequenceReport incomingSequenceReport = (SequenceReport) incomingSequenceReports.get(0);
+				assertEquals(incomingSequenceReport.getCompletedMessages().size(),2);
+				assertNotNull(incomingSequenceReport.getSequenceID());
+				assertEquals(incomingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_IN);
+				assertEquals(incomingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertNotNull(incomingSequenceReport.getInternalSequenceID());
+				
+				assertEquals(incomingSequenceReport.getSequenceID(),incomingSequenceReport.getInternalSequenceID());  //for the incoming side, internalSequenceID==sequenceID
+
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
+		}
+		if(lastError != null) throw lastError;
+
 		configContext.getListenerManager().stop();
 		serviceClient.cleanup();
 	}
@@ -171,7 +126,6 @@
 	public void testRMReport () throws AxisFault,InterruptedException {
 		
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		
 		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
@@ -183,7 +137,6 @@
 //		clientOptions.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
 		
 		clientOptions.setTo(new EndpointReference (to));
-		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 		
 		String sequenceKey1 = "sequence3";
 		clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey1);
@@ -203,121 +156,51 @@
 		clientOptions.setProperty(SandeshaClientConstants.LAST_MESSAGE, "false");
 		serviceClient.fireAndForget(getPingOMBlock("ping1"));		
 		
-		try {
-			//waiting till the messages exchange finishes.
-			Thread.sleep(10000);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+				SandeshaReport rmReport = SandeshaClient.getSandeshaReport(configContext);
+				
+			 	SequenceReport sequence1Report = null;
+			 	SequenceReport sequence2Report = null;
+			 	
+			 	Iterator iterator = rmReport.getOutgoingSequenceList().iterator();
+			 	while (iterator.hasNext()) {
+			 		String sequenceID = (String) iterator.next();
+			 		
+			 		 String internalSequenceID = rmReport.getInternalSequenceIdOfOutSequence(sequenceID);
+			 		 
+			 		 if (internalSequenceID.indexOf(sequenceKey1)>=0) {
+			 			 sequence1Report = SandeshaClient.getOutgoingSequenceReport(to,sequenceKey1,configContext);
+			 		 } else if (internalSequenceID.indexOf(sequenceKey2)>=0){
+			 			 sequence2Report = SandeshaClient.getOutgoingSequenceReport(to,sequenceKey2,configContext);
+			 		 }
+			 	}
+			 	
+			 	assertNotNull(sequence1Report);
+			 	assertNotNull(sequence2Report);
+			 	
+			 	assertEquals(sequence1Report.getCompletedMessages().size(),2);
+			 	assertEquals(sequence2Report.getCompletedMessages().size(),1);
+			 	
+			 	assertEquals(sequence1Report.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+			 	assertEquals(sequence2Report.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_ESTABLISHED);	
+
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
 		}
-		
-		
-		SandeshaReport rmReport = SandeshaClient.getSandeshaReport(configContext);
-		
-	 	SequenceReport sequence1Report = null;
-	 	SequenceReport sequence2Report = null;
-	 	
-	 	Iterator iterator = rmReport.getOutgoingSequenceList().iterator();
-	 	while (iterator.hasNext()) {
-	 		String sequenceID = (String) iterator.next();
-	 		
-	 		 String internalSequenceID = rmReport.getInternalSequenceIdOfOutSequence(sequenceID);
-	 		 
-	 		 if (internalSequenceID.indexOf(sequenceKey1)>=0) {
-	 			 sequence1Report = SandeshaClient.getOutgoingSequenceReport(to,sequenceKey1,configContext);
-	 		 } else if (internalSequenceID.indexOf(sequenceKey2)>=0){
-	 			 sequence2Report = SandeshaClient.getOutgoingSequenceReport(to,sequenceKey2,configContext);
-	 		 }
-	 	}
-	 	
-	 	assertNotNull(sequence1Report);
-	 	assertNotNull(sequence2Report);
-	 	
-	 	assertEquals(sequence1Report.getCompletedMessages().size(),2);
-	 	assertEquals(sequence2Report.getCompletedMessages().size(),1);
-	 	
-	 	assertEquals(sequence1Report.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-	 	assertEquals(sequence2Report.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_ESTABLISHED);	
+		if(lastError != null) throw lastError;
 	
 		configContext.getListenerManager().stop();
 		serviceClient.cleanup();
 	}
 	
-	private static OMElement getEchoOMBlock(String text, String sequenceKey) {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		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 {
-
-		String name = null;
-		boolean completed = false;
-		boolean errorRported = false;
-		String resultStr;
-		
-		public boolean isCompleted() {
-			return completed;
-		}
-
-		public boolean isErrorRported() {
-			return errorRported;
-		}
-
-		public String getResult () {
-			return resultStr;
-		}
-		
-		public TestCallback (String name) {
-			this.name = name;
-		}
-		
-		public void onComplete(AsyncResult result) {
-
-			SOAPBody body = result.getResponseEnvelope().getBody();
-			
-			OMElement echoStringResponseElem = body.getFirstChildWithName(new QName (applicationNamespaceName,echoStringResponse));
-			if (echoStringResponseElem==null) { 
-				log.error("Error: SOAPBody does not have a 'echoStringResponse' child");
-				return;
-			}
-			
-			OMElement echoStringReturnElem = echoStringResponseElem.getFirstChildWithName(new QName (applicationNamespaceName,EchoStringReturn));
-			if (echoStringReturnElem==null) { 
-				log.error("Error: 'echoStringResponse' element does not have a 'EchoStringReturn' child");
-				return;
-			}
-			
-			String resultStr = echoStringReturnElem.getText();
-			this.resultStr = resultStr;
-			completed = true;
-		}
-
-		public void onError (Exception e) {
-			e.printStackTrace();
-			errorRported = true;
-		}
-	}
-	
-	private OMElement getPingOMBlock(String text) {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		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 pingElem;
-	}
 	
 //	public void testSequenceTermination () throws AxisFault,InterruptedException {
 //		

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaTestCase.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaTestCase.java?view=diff&rev=480595&r1=480594&r2=480595
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaTestCase.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaTestCase.java Wed Nov 29 07:23:40 2006
@@ -32,16 +32,22 @@
 import junit.framework.TestCase;
 
 import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory;
+import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axis2.AxisFault;
+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.ServiceContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisOperationFactory;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.transport.http.SimpleHTTPServer;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -55,6 +61,19 @@
     private final String RMServiceName = "RMSampleService";
 	private Log log = LogFactory.getLog(getClass());
     
+	private final static String applicationNamespaceName = "http://tempuri.org/"; 
+	private final static String echoString = "echoString";
+	private final static String ping = "ping";
+	private final static String Text = "Text";
+	private final static String Sequence = "Sequence";
+	private final static String echoStringResponse = "echoStringResponse";
+	private final static String EchoStringReturn = "EchoStringReturn";
+
+	protected SimpleHTTPServer httpServer = null;
+	protected int serverPort = DEFAULT_SERVER_TEST_PORT;
+	protected int waitTime = 30000; // Each test will wait up to 30 seconds, unless we override it here
+	protected int tickTime = 1000;  // Each wait will check the test assertions each second
+	
     public SandeshaTestCase(String name) {
         super(name);
         File baseDir = new File("");
@@ -74,7 +93,39 @@
 		}
     }
     
-    protected InputStreamReader getResource(String relativePath, String resourceName) {
+    public void setUp () throws Exception {
+		super.setUp();
+    	
+		String serverPortStr = getTestProperty("test.server.port");
+		if (serverPortStr!=null) {
+			try {
+				serverPort = Integer.parseInt(serverPortStr);
+			} catch (NumberFormatException e) {
+				log.error(e);
+			}
+		}
+    }
+    
+	public ConfigurationContext startServer(String repoPath, String axis2_xml)
+	throws Exception {
+
+		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
+
+		httpServer = new SimpleHTTPServer (configContext,serverPort);
+		httpServer.start();
+		Thread.sleep(300);
+		
+		return configContext;
+	}
+
+	public void tearDown () throws Exception {
+		if (httpServer!=null)
+			httpServer.stop();
+		
+		Thread.sleep(300);
+	}
+
+	protected InputStreamReader getResource(String relativePath, String resourceName) {
         String resourceFile = resourceDir + relativePath + File.separator + resourceName;
         try {
             FileReader reader = new FileReader(resourceFile);
@@ -104,7 +155,45 @@
     protected SOAPEnvelope getEmptySOAPEnvelope() {
         return OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
     }
+
+    protected static OMElement getEchoOMBlock(String text, String sequenceKey) {
+		OMFactory fac = OMAbstractFactory.getOMFactory();
+		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;
+	}
     
+	protected OMElement getPingOMBlock(String text) {
+		OMFactory fac = OMAbstractFactory.getOMFactory();
+		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 pingElem;
+	}
+
+	protected String checkEchoOMBlock(OMElement response) {
+		assertEquals("Response namespace", applicationNamespaceName, response.getNamespace().getNamespaceURI());
+		assertEquals("Response local name", echoStringResponse, response.getLocalName());
+		
+		OMElement echoStringReturnElem = response.getFirstChildWithName(new QName (applicationNamespaceName,EchoStringReturn));
+		assertNotNull("Echo String Return", echoStringReturnElem);
+		
+		String resultStr = echoStringReturnElem.getText();
+		return resultStr;
+	}
+
     public String getTestProperty (String key) {
     	if (properties!=null)
     		return properties.getProperty(key);
@@ -130,5 +219,41 @@
     	
     	operation.setMessageReceiver(messageReceiver);
     }
+
+	protected class TestCallback extends Callback {
+
+		String name = null;
+		boolean completed = false;
+		boolean errorRported = false;
+		String resultStr;
+		
+		public boolean isCompleted() {
+			return completed;
+		}
+
+		public boolean isErrorRported() {
+			return errorRported;
+		}
+
+		public String getResult () {
+			return resultStr;
+		}
+		
+		public TestCallback (String name) {
+			this.name = name;
+		}
+		
+		public void onComplete(AsyncResult result) {
+			SOAPBody body = result.getResponseEnvelope().getBody();
+			OMElement contents = body.getFirstElement();
+			this.resultStr = checkEchoOMBlock(contents);
+			completed = true;
+		}
+
+		public void onError (Exception e) {
+			e.printStackTrace();
+			errorRported = true;
+		}
+	}
 
 }

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SquenceOfferTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SquenceOfferTest.java?view=diff&rev=480595&r1=480594&r2=480595
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SquenceOfferTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SquenceOfferTest.java Wed Nov 29 07:23:40 2006
@@ -19,26 +19,12 @@
 import java.io.File;
 import java.util.ArrayList;
 
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.SOAPBody;
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 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.context.MessageContextConstants;
-import org.apache.axis2.transport.http.SimpleHTTPServer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.client.SandeshaClient;
 import org.apache.sandesha2.client.SandeshaClientConstants;
 import org.apache.sandesha2.client.SandeshaReport;
@@ -47,63 +33,22 @@
 
 public class SquenceOfferTest extends SandeshaTestCase {
 
-	SimpleHTTPServer httpServer = null;
-	
-	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";
-	int serverPort = DEFAULT_SERVER_TEST_PORT;
-	private Log log = LogFactory.getLog(getClass());
-	
 	public SquenceOfferTest () {
 		super ("SquenceOfferTest");
 	}
 	
-	public void setUp () throws AxisFault {
-		
+	public void setUp () throws Exception {
+		super.setUp();
+
 		String repoPath = "target" + File.separator + "repos" + File.separator + "server";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
 
-
-		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
-
-		String serverPortStr = getTestProperty("test.server.port");
-		if (serverPortStr!=null) {
-		
-			try {
-				serverPort = Integer.parseInt(serverPortStr);
-			} catch (NumberFormatException e) {
-				log.error(e);
-			}
-		}
-		
-		httpServer = new SimpleHTTPServer (configContext,serverPort);
-		httpServer.start();
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
-	}
-	
-	public void tearDown () throws SandeshaException {
-		if (httpServer!=null)
-			httpServer.stop();
-		
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
+		startServer(repoPath, axis2_xml);
 	}
 	
-	public void testSequenceOffer () throws AxisFault, InterruptedException {
+	public void testSequenceOffer () throws Exception {
 		
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		
 		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
@@ -113,7 +58,6 @@
 		Options clientOptions = new Options ();
 
 		clientOptions.setTo(new EndpointReference (to));
-		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 		
 		String sequenceKey = SandeshaUtil.getUUID();
 		clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
@@ -141,90 +85,38 @@
 		TestCallback callback1 = new TestCallback ("Callback 1");
 		serviceClient.sendReceiveNonBlocking (getEchoOMBlock("echo1",sequenceKey),callback1);
         
-        Thread.sleep(10000);
-		
-        //assertions for the out sequence.
-		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
-		
-		assertTrue(callback1.isComplete());
-		assertEquals(callback1.getResult(),"echo1");
-		
-		//checking weather the incomingSequenceReport has the offered sequence ID
-		SandeshaReport rmReport = SandeshaClient.getSandeshaReport(configContext);
-		ArrayList incomingSeqList = rmReport.getIncomingSequenceList();
-		assertEquals(incomingSeqList.size(),1);
-		assertEquals(incomingSeqList.get(0),offeredSequenceID);	
-	
-		configContext.getListenerManager().stop();
-		serviceClient.cleanup();
-	}
-	
-	private static OMElement getEchoOMBlock(String text, String sequenceKey) {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		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 {
-
-		String name = null;
-		boolean completed = false;
-		boolean errorRported = false;
-		String resultStr;
-		
-		public boolean isCompleted() {
-			return completed;
-		}
-
-		public boolean isErrorRported() {
-			return errorRported;
-		}
-
-		public String getResult () {
-			return resultStr;
-		}
-		
-		public TestCallback (String name) {
-			this.name = name;
-		}
-		
-		public void onComplete(AsyncResult result) {
-
-			SOAPBody body = result.getResponseEnvelope().getBody();
-			
-			OMElement echoStringResponseElem = body.getFirstChildWithName(new QName (applicationNamespaceName,echoStringResponse));
-			if (echoStringResponseElem==null) { 
-				log.error("Error: SOAPBody does not have a 'echoStringResponse' child");
-				return;
-			}
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
 			
-			OMElement echoStringReturnElem = echoStringResponseElem.getFirstChildWithName(new QName (applicationNamespaceName,EchoStringReturn));
-			if (echoStringReturnElem==null) { 
-				log.error("Error: 'echoStringResponse' element does not have a 'EchoStringReturn' child");
-				return;
+			try {
+		        //assertions for the out sequence.
+				SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+				
+				assertTrue(callback1.isComplete());
+				assertEquals(callback1.getResult(),"echo1");
+				
+				//checking weather the incomingSequenceReport has the offered sequence ID
+				SandeshaReport rmReport = SandeshaClient.getSandeshaReport(configContext);
+				ArrayList incomingSeqList = rmReport.getIncomingSequenceList();
+				assertEquals(incomingSeqList.size(),1);
+				assertEquals(incomingSeqList.get(0),offeredSequenceID);	
+	
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
 			}
-			
-			String resultStr = echoStringReturnElem.getText();
-			this.resultStr = resultStr;
-			completed = true;
 		}
 
-		public void onError (Exception e) {
-			e.printStackTrace();
-			errorRported = true;
-		}
-	}
+		if(lastError != null) throw lastError;
 
+		configContext.getListenerManager().stop();
+		serviceClient.cleanup();
+	}
+	
 }

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressableEchoTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressableEchoTest.java?view=diff&rev=480595&r1=480594&r2=480595
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressableEchoTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressableEchoTest.java Wed Nov 29 07:23:40 2006
@@ -3,27 +3,13 @@
 import java.io.File;
 import java.util.ArrayList;
 
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.SOAPBody;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 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.context.MessageContextConstants;
-import org.apache.axis2.transport.http.SimpleHTTPServer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.SandeshaTestCase;
 import org.apache.sandesha2.client.SandeshaClient;
 import org.apache.sandesha2.client.SandeshaClientConstants;
@@ -32,63 +18,24 @@
 
 public class AddressableEchoTest extends SandeshaTestCase {
 
-	SimpleHTTPServer httpServer = null;
-	
-	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";
 	int serverPort = DEFAULT_SERVER_TEST_PORT;
-	private Log log = LogFactory.getLog(getClass());
 	
 	public AddressableEchoTest () {
 		super ("AddressableEchoTest");
 	}
 	
-	public void setUp () throws AxisFault {
-		
+	public void setUp () throws Exception {
+		super.setUp();
+
 		String repoPath = "target" + File.separator + "repos" + File.separator + "server";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
 
-
-		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
-
-		String serverPortStr = getTestProperty("test.server.port");
-		if (serverPortStr!=null) {
-		
-			try {
-				serverPort = Integer.parseInt(serverPortStr);
-			} catch (NumberFormatException e) {
-				log.error(e);
-			}
-		}
-		
-		httpServer = new SimpleHTTPServer (configContext,serverPort);
-		httpServer.start();
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
+		startServer(repoPath, axis2_xml);
 	}
 	
-	public void tearDown () throws SandeshaException {
-		if (httpServer!=null)
-			httpServer.stop();
-		
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
-	}
-	
-	public void testAsyncEcho () throws AxisFault, InterruptedException {
+	public void testAsyncEcho () throws Exception {
 	
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		
 		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
@@ -98,7 +45,6 @@
 		Options clientOptions = new Options ();
 
 		clientOptions.setTo(new EndpointReference (to));
-		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 		
 		String sequenceKey = SandeshaUtil.getUUID();
 		clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
@@ -129,38 +75,48 @@
 		TestCallback callback3 = new TestCallback ("Callback 3");
 		serviceClient.sendReceiveNonBlocking (getEchoOMBlock("echo3",sequenceKey),callback3);
 		
-        Thread.sleep(15000);
-		
-        //assertions for the out sequence.
-		SequenceReport outgoingSequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		assertEquals (outgoingSequenceReport.getCompletedMessages().size(),3);
-		assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(2)));
-		assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(3)));
-		assertEquals(outgoingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(outgoingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
-		
-		ArrayList incomingReports = SandeshaClient.getIncomingSequenceReports(configContext);
-		assertEquals(incomingReports.size(),1);
-		SequenceReport incomingSequenceReport = (SequenceReport) incomingReports.get(0);
-		assertEquals (incomingSequenceReport.getCompletedMessages().size(),3);
-		assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(2)));
-		assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(3)));
-		assertEquals(incomingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(incomingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_IN);
-//		
-		assertTrue(callback1.isComplete());
-		System.out.println(callback2.getResult());
-		assertNotNull (callback1.getResult());
-		
-		assertTrue(callback2.isComplete());
-		System.out.println(callback2.getResult());
-		assertNotNull (callback2.getResult());
-		
-		assertTrue(callback3.isComplete());
-		assertNotNull (callback3.getResult());
-		
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+		        //assertions for the out sequence.
+				SequenceReport outgoingSequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertEquals (outgoingSequenceReport.getCompletedMessages().size(),3);
+				assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(2)));
+				assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(3)));
+				assertEquals(outgoingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(outgoingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+				
+				ArrayList incomingReports = SandeshaClient.getIncomingSequenceReports(configContext);
+				assertEquals(incomingReports.size(),1);
+				SequenceReport incomingSequenceReport = (SequenceReport) incomingReports.get(0);
+				assertEquals (incomingSequenceReport.getCompletedMessages().size(),3);
+				assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(2)));
+				assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(3)));
+				assertEquals(incomingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(incomingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_IN);
+
+				assertTrue(callback1.isComplete());
+				assertEquals ("echo1", callback1.getResult());
+				
+				assertTrue(callback2.isComplete());
+				assertEquals ("echo1echo2", callback2.getResult());
+				
+				assertTrue(callback3.isComplete());
+				assertEquals ("echo1echo2echo3", callback3.getResult());
+				
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
+		}
+		if(lastError != null) throw lastError;
+
 		configContext.getListenerManager().stop();
 		serviceClient.cleanup();
 	}
@@ -168,7 +124,6 @@
 	public void testAsyncEchoWithOffer () throws AxisFault, InterruptedException {
 		
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		
 		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
@@ -178,7 +133,6 @@
 		Options clientOptions = new Options ();
 
 		clientOptions.setTo(new EndpointReference (to));
-		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 		
 		String sequenceKey = SandeshaUtil.getUUID();
 		clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
@@ -213,103 +167,49 @@
 		TestCallback callback3 = new TestCallback ("Callback 3");
 		serviceClient.sendReceiveNonBlocking (getEchoOMBlock("echo3",sequenceKey),callback3);
 
-        
-        Thread.sleep(15000);
-		
-        //assertions for the out sequence.
-        //assertions for the out sequence.
-		SequenceReport outgoingSequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		assertEquals (outgoingSequenceReport.getCompletedMessages().size(),3);
-		assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(2)));
-		assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(3)));
-		assertEquals(outgoingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(outgoingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
-		
-		SequenceReport incomingSequenceReport = SandeshaClient.getIncomingSequenceReport(offeredSequeiceId,configContext);
-		assertEquals (incomingSequenceReport.getCompletedMessages().size(),3);
-		assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(2)));
-		assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(3)));
-		assertEquals(incomingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(incomingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_IN);
-		
-		assertTrue(callback1.isComplete());
-		assertNotNull (callback1.getResult(),"echo1");
-		
-		assertTrue(callback2.isComplete());
-		assertNotNull (callback2.getResult(),"echo1echo2");
-		
-		assertTrue(callback3.isComplete());
-		assertNotNull (callback3.getResult(),"echo1echo2echo3");
-		
-		configContext.getListenerManager().stop();
-		serviceClient.cleanup();
-	}
-	
-	private static OMElement getEchoOMBlock(String text, String sequenceKey) {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		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 {
-
-		String name = null;
-		boolean completed = false;
-		boolean errorRported = false;
-		String resultStr;
-		
-		public boolean isCompleted() {
-			return completed;
-		}
-
-		public boolean isErrorRported() {
-			return errorRported;
-		}
-
-		public String getResult () {
-			return resultStr;
-		}
-		
-		public TestCallback (String name) {
-			this.name = name;
-		}
-		
-		public void onComplete(AsyncResult result) {
-			//System.out.println("On Complete Called for " + text);
-			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;
-			}
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
 			
-			OMElement echoStringReturnElem = echoStringResponseElem.getFirstChildWithName(new QName (applicationNamespaceName,EchoStringReturn));
-			if (echoStringReturnElem==null) { 
-				System.out.println("Error: 'echoStringResponse' element does not have a 'EchoStringReturn' child");
-				return;
+			try {
+		        //assertions for the out sequence.
+				SequenceReport outgoingSequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertEquals (outgoingSequenceReport.getCompletedMessages().size(),3);
+				assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(2)));
+				assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(3)));
+				assertEquals(outgoingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(outgoingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+				
+				SequenceReport incomingSequenceReport = SandeshaClient.getIncomingSequenceReport(offeredSequeiceId,configContext);
+				assertEquals (incomingSequenceReport.getCompletedMessages().size(),3);
+				assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(2)));
+				assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(3)));
+				assertEquals(incomingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(incomingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_IN);
+				
+				assertTrue(callback1.isComplete());
+				assertNotNull (callback1.getResult(),"echo1");
+				
+				assertTrue(callback2.isComplete());
+				assertNotNull (callback2.getResult(),"echo1echo2");
+				
+				assertTrue(callback3.isComplete());
+				assertNotNull (callback3.getResult(),"echo1echo2echo3");
+		
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
 			}
-			
-			String resultStr = echoStringReturnElem.getText();
-			this.resultStr = resultStr;
-			completed = true;
 		}
 
-		public void onError (Exception e) {
-			e.printStackTrace();
-			errorRported = true;
-		}
+		if(lastError != null) throw lastError;
+
+		configContext.getListenerManager().stop();
+		serviceClient.cleanup();
 	}
 
 }

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressablePingTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressablePingTest.java?view=diff&rev=480595&r1=480594&r2=480595
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressablePingTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AddressablePingTest.java Wed Nov 29 07:23:40 2006
@@ -17,27 +17,14 @@
 package org.apache.sandesha2.scenarios;
 
 import java.io.File;
-import java.io.IOException;
 
-import junit.framework.TestCase;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 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.transport.http.SimpleHTTPServer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.SandeshaTestCase;
 import org.apache.sandesha2.client.SandeshaClient;
 import org.apache.sandesha2.client.SandeshaClientConstants;
@@ -45,60 +32,22 @@
 
 public class AddressablePingTest extends SandeshaTestCase {
 
-	SimpleHTTPServer httpServer = null;
-	
-	private final String applicationNamespaceName = "http://tempuri.org/"; 
-	private final String ping = "ping";
-	private final String Text = "Text";
-	int serverPort = DEFAULT_SERVER_TEST_PORT;
-	private Log log = LogFactory.getLog(getClass());
-	
 	public AddressablePingTest () {
 		super ("AddressablePingTest");
 	}
 	
-	public void setUp () throws AxisFault {
-		
+	public void setUp () throws Exception {
+		super.setUp();
+
 		String repoPath = "target" + File.separator + "repos" + File.separator + "server";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
 
-
-		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
-
-		String serverPortStr = getTestProperty("test.server.port");
-		if (serverPortStr!=null) {
-		
-			try {
-				serverPort = Integer.parseInt(serverPortStr);
-			} catch (NumberFormatException e) {
-				log.error(e);
-			}
-		}
-		
-		httpServer = new SimpleHTTPServer (configContext,serverPort);
-		httpServer.start();
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
-	}
-	
-	public void tearDown () throws SandeshaException {
-		if (httpServer!=null)
-			httpServer.stop();
-		
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
+		startServer(repoPath, axis2_xml);
 	}
 	
-	public void testAsyncPing () throws AxisFault,IOException {
+	public void testAsyncPing () throws Exception {
 		
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		
 		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
@@ -110,7 +59,6 @@
 		clientOptions.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
 		
 		clientOptions.setTo(new EndpointReference (to));
-		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 		
 		String sequenceKey = "sequence2";
 		clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
@@ -127,31 +75,28 @@
 		clientOptions.setProperty(SandeshaClientConstants.LAST_MESSAGE, "true");
 		serviceClient.fireAndForget(getPingOMBlock("ping2"));
 		
-		try {
-			Thread.sleep(10000);
-		} catch (InterruptedException e) {
-			e.printStackTrace();
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
+			
+			try {
+				SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
+			}
 		}
-		
-		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+
+		if(lastError != null) throw lastError;
 
 		configContext.getListenerManager().stop();
 		serviceClient.cleanup();
 	}
 	
-	private OMElement getPingOMBlock(String text) {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		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 pingElem;
-	}
-
 }

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AnonymousAckEchoTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AnonymousAckEchoTest.java?view=diff&rev=480595&r1=480594&r2=480595
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AnonymousAckEchoTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/scenarios/AnonymousAckEchoTest.java Wed Nov 29 07:23:40 2006
@@ -2,27 +2,12 @@
 
 import java.io.File;
 
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.SOAPBody;
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 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.context.MessageContextConstants;
-import org.apache.axis2.transport.http.SimpleHTTPServer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.SandeshaTestCase;
 import org.apache.sandesha2.client.SandeshaClient;
 import org.apache.sandesha2.client.SandeshaClientConstants;
@@ -31,63 +16,22 @@
 
 public class AnonymousAckEchoTest extends SandeshaTestCase {
 
-	SimpleHTTPServer httpServer = null;
-	
-	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";
-	int serverPort = DEFAULT_SERVER_TEST_PORT;
-	private Log log = LogFactory.getLog(getClass());
-	
 	public AnonymousAckEchoTest () {
 		super ("AnonymousAckEchoTest");
 	}
 	
-	public void setUp () throws AxisFault {
-		
+	public void setUp () throws Exception {
+		super.setUp();
+
 		String repoPath = "target" + File.separator + "repos" + File.separator + "server";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "server" + File.separator + "server_axis2.xml";
 
-
-		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
-
-		String serverPortStr = getTestProperty("test.server.port");
-		if (serverPortStr!=null) {
-		
-			try {
-				serverPort = Integer.parseInt(serverPortStr);
-			} catch (NumberFormatException e) {
-				log.error(e);
-			}
-		}
-		
-		httpServer = new SimpleHTTPServer (configContext,serverPort);
-		httpServer.start();
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
-	}
-	
-	public void tearDown () throws SandeshaException {
-		if (httpServer!=null)
-			httpServer.stop();
-		
-		try {
-			Thread.sleep(300);
-		} catch (InterruptedException e) {
-			throw new SandeshaException ("sleep interupted");
-		}
+		startServer(repoPath, axis2_xml);
 	}
 	
-	public void testSyncEcho () throws AxisFault, InterruptedException {
+	public void testSyncEcho () throws Exception {
 
 		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
-		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
 		
 		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
 		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
@@ -97,7 +41,6 @@
 		Options clientOptions = new Options ();
 
 		clientOptions.setTo(new EndpointReference (to));
-		clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
 		
 		String sequenceKey = SandeshaUtil.getUUID();
 		clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
@@ -116,84 +59,31 @@
 		TestCallback callback1 = new TestCallback ("Callback 1");
 		serviceClient.sendReceiveNonBlocking (getEchoOMBlock("echo1",sequenceKey),callback1);
 		
-        
-        Thread.sleep(10000);
-		
-        //assertions for the out sequence.
-		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-		assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
-		assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
-		assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
-		
-		assertEquals(callback1.getResult(),"echo1");
-		
-		configContext.getListenerManager().stop();
-		serviceClient.cleanup();
-	}
-	
-	private static OMElement getEchoOMBlock(String text, String sequenceKey) {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		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 {
-
-		String name = null;
-		boolean completed = false;
-		boolean errorRported = false;
-		String resultStr;
-		
-		public boolean isCompleted() {
-			return completed;
-		}
-
-		public boolean isErrorRported() {
-			return errorRported;
-		}
-
-		public String getResult () {
-			return resultStr;
-		}
-		
-		public TestCallback (String name) {
-			this.name = name;
-		}
-		
-		public void onComplete(AsyncResult result) {
-			//System.out.println("On Complete Called for " + text);
-			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;
-			}
+		long limit = System.currentTimeMillis() + waitTime;
+		Error lastError = null;
+		while(System.currentTimeMillis() < limit) {
+			Thread.sleep(tickTime); // Try the assertions each tick interval, until they pass or we time out
 			
-			OMElement echoStringReturnElem = echoStringResponseElem.getFirstChildWithName(new QName (applicationNamespaceName,EchoStringReturn));
-			if (echoStringReturnElem==null) { 
-				System.out.println("Error: 'echoStringResponse' element does not have a 'EchoStringReturn' child");
-				return;
+			try {
+		        //assertions for the out sequence.
+				SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+				assertTrue(sequenceReport.getCompletedMessages().contains(new Long(1)));
+				assertEquals(sequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
+				assertEquals(sequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
+				
+				assertEquals(callback1.getResult(),"echo1");
+
+				lastError = null;
+				break;
+			} catch(Error e) {
+				lastError = e;
 			}
-			
-			String resultStr = echoStringReturnElem.getText();
-			this.resultStr = resultStr;
-			completed = true;
 		}
 
-		public void onError (Exception e) {
-			e.printStackTrace();
-			errorRported = true;
-		}
-	}
+		if(lastError != null) throw lastError;
 
+		configContext.getListenerManager().stop();
+		serviceClient.cleanup();
+	}
+	
 }



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