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