You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2006/11/30 06:31:13 UTC
svn commit: r480842 -
/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java
Author: ffang
Date: Wed Nov 29 21:31:11 2006
New Revision: 480842
URL: http://svn.apache.org/viewvc?view=rev&rev=480842
Log:
[CXF-270] update all asyn test to use greetMeLaterAsync method
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java?view=diff&rev=480842&r1=480841&r2=480842
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java Wed Nov 29 21:31:11 2006
@@ -63,7 +63,6 @@
import org.apache.hello_world_soap_http.SOAPServiceDocLitBare;
import org.apache.hello_world_soap_http.types.BareDocumentResponse;
import org.apache.hello_world_soap_http.types.GreetMeLaterResponse;
-import org.apache.hello_world_soap_http.types.GreetMeSometimeResponse;
public class ClientServerTest extends ClientServerTestBase {
@@ -253,28 +252,42 @@
assertNotNull(wsdl);
SOAPService service = new SOAPService(wsdl, serviceName);
+
assertNotNull(service);
- ExecutorService executor = Executors.newFixedThreadPool(5);
- service.setExecutor(executor);
+
+ Greeter greeter = service.getPort(portName, Greeter.class);
+
assertNotNull(service);
+
+ long before = System.currentTimeMillis();
- String expectedString = new String("How are you Joe");
- try {
- Greeter greeter = (Greeter)service.getPort(portName, Greeter.class);
-
- Response<GreetMeSometimeResponse> response = greeter.greetMeSometimeAsync("Joe");
- while (!response.isDone()) {
- Thread.sleep(100);
+ long delay = 3000;
+ Response<GreetMeLaterResponse> r1 = greeter.greetMeLaterAsync(delay);
+ Response<GreetMeLaterResponse> r2 = greeter.greetMeLaterAsync(delay);
+
+ long after = System.currentTimeMillis();
+
+ assertTrue("Duration of calls exceeded " + (2 * delay) + " ms", after - before < (2 * delay));
+
+ // first time round, responses should not be available yet
+ assertFalse("Response already available.", r1.isDone());
+ assertFalse("Response already available.", r2.isDone());
+
+ // after three seconds responses should be available
+ long waited = 0;
+ while (waited < (delay + 1000)) {
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException ex) {
+ // ignore
}
- GreetMeSometimeResponse reply = response.get();
- assertNotNull("no response received from service", reply);
- String s = reply.getResponseType();
- assertEquals(expectedString, s);
- } catch (UndeclaredThrowableException ex) {
- ex.printStackTrace();
- throw (Exception)ex.getCause();
+ if (r1.isDone() && r2.isDone()) {
+ break;
+ }
+ waited += 500;
}
- executor.shutdown();
+ assertTrue("Response is not available.", r1.isDone());
+ assertTrue("Response is not available.", r2.isDone());
}
public void testAsyncSynchronousPolling() throws Exception {
@@ -283,17 +296,14 @@
SOAPService service = new SOAPService(wsdl, serviceName);
assertNotNull(service);
- ExecutorService executor = Executors.newFixedThreadPool(5);
- service.setExecutor(executor);
- assertNotNull(service);
-
- final String expectedString = new String("How are you Joe");
+
+ final String expectedString = new String("Hello, finally!");
class Poller extends Thread {
- Response<GreetMeSometimeResponse> response;
+ Response<GreetMeLaterResponse> response;
int tid;
- Poller(Response<GreetMeSometimeResponse> r, int t) {
+ Poller(Response<GreetMeLaterResponse> r, int t) {
response = r;
tid = t;
}
@@ -307,7 +317,7 @@
}
}
}
- GreetMeSometimeResponse reply = null;
+ GreetMeLaterResponse reply = null;
try {
reply = response.get();
} catch (Exception ex) {
@@ -320,7 +330,19 @@
}
Greeter greeter = (Greeter)service.getPort(portName, Greeter.class);
- Response<GreetMeSometimeResponse> response = greeter.greetMeSometimeAsync("Joe");
+ long before = System.currentTimeMillis();
+
+
+ long delay = 3000;
+
+ Response<GreetMeLaterResponse> response = greeter.greetMeLaterAsync(delay);
+ long after = System.currentTimeMillis();
+
+ assertTrue("Duration of calls exceeded " + delay + " ms", after - before < delay);
+
+ // first time round, responses should not be available yet
+ assertFalse("Response already available.", response.isDone());
+
Poller[] pollers = new Poller[4];
for (int i = 0; i < pollers.length; i++) {
@@ -334,16 +356,16 @@
p.join();
}
- executor.shutdown();
+
}
- static class MyHandler implements AsyncHandler<GreetMeSometimeResponse> {
+ static class MyHandler implements AsyncHandler<GreetMeLaterResponse> {
static int invocationCount;
private String replyBuffer;
- public void handleResponse(Response<GreetMeSometimeResponse> response) {
+ public void handleResponse(Response<GreetMeLaterResponse> response) {
invocationCount++;
try {
- GreetMeSometimeResponse reply = response.get();
+ GreetMeLaterResponse reply = response.get();
replyBuffer = reply.getResponseType();
} catch (InterruptedException ex) {
ex.printStackTrace();
@@ -362,19 +384,26 @@
assertNotNull(wsdl);
SOAPService service = new SOAPService(wsdl, serviceName);
- ExecutorService executor = Executors.newFixedThreadPool(5);
- service.setExecutor(executor);
+
assertNotNull(service);
MyHandler h = new MyHandler();
MyHandler.invocationCount = 0;
- String expectedString = new String("How are you Joe");
+ String expectedString = new String("Hello, finally!");
try {
Greeter greeter = (Greeter)service.getPort(portName, Greeter.class);
- Future<?> f = greeter.greetMeSometimeAsync("Joe", h);
+ long before = System.currentTimeMillis();
+ long delay = 3000;
+ Future<?> f = greeter.greetMeLaterAsync(delay, h);
+ long after = System.currentTimeMillis();
+ assertTrue("Duration of calls exceeded " + delay + " ms", after - before < delay);
+ // first time round, responses should not be available yet
+ assertFalse("Response already available.", f.isDone());
+
+
int i = 0;
- while (!f.isDone() && i < 20) {
+ while (!f.isDone() && i < 50) {
Thread.sleep(100);
i++;
}
@@ -384,21 +413,20 @@
throw (Exception)ex.getCause();
}
assertEquals(1, MyHandler.invocationCount);
- executor.shutdown();
+
}
public void testAsyncCallWithHandlerAndMultipleClients() throws Exception {
URL wsdl = getClass().getResource("/wsdl/hello_world.wsdl");
assertNotNull(wsdl);
SOAPService service = new SOAPService(wsdl, serviceName);
- ExecutorService executor = Executors.newFixedThreadPool(5);
- service.setExecutor(executor);
+
assertNotNull(service);
final MyHandler h = new MyHandler();
MyHandler.invocationCount = 0;
- final String expectedString = new String("How are you Joe");
+ final String expectedString = new String("Hello, finally!");
class Poller extends Thread {
Future<?> future;
@@ -429,7 +457,13 @@
}
Greeter greeter = (Greeter)service.getPort(portName, Greeter.class);
- Future<?> f = greeter.greetMeSometimeAsync("Joe", h);
+ long before = System.currentTimeMillis();
+ long delay = 3000;
+ Future<?> f = greeter.greetMeLaterAsync(delay, h);
+ long after = System.currentTimeMillis();
+ assertTrue("Duration of calls exceeded " + delay + " ms", after - before < delay);
+ // first time round, responses should not be available yet
+ assertFalse("Response already available.", f.isDone());
Poller[] pollers = new Poller[4];
for (int i = 0; i < pollers.length; i++) {
@@ -443,7 +477,6 @@
p.join();
}
assertEquals(1, MyHandler.invocationCount);
- executor.shutdown();
}
@@ -599,47 +632,5 @@
junit.textui.TestRunner.run(ClientServerTest.class);
}
- public void testAsync() {
- URL wsdl = getClass().getResource("/wsdl/hello_world.wsdl");
- assertNotNull(wsdl);
-
- SOAPService service = new SOAPService(wsdl, serviceName);
-
- assertNotNull(service);
-
- Greeter greeter = service.getPort(portName, Greeter.class);
-
- assertNotNull(service);
-
- long before = System.currentTimeMillis();
-
- long delay = 3000;
- Response<GreetMeLaterResponse> r1 = greeter.greetMeLaterAsync(delay);
- Response<GreetMeLaterResponse> r2 = greeter.greetMeLaterAsync(delay);
- long after = System.currentTimeMillis();
-
- assertTrue("Duration of calls exceeded " + (2 * delay) + " ms", after - before < (2 * delay));
-
- // first time round, responses should not be available yet
- assertFalse("Response already available.", r1.isDone());
- assertFalse("Response already available.", r2.isDone());
-
- // after three seconds responses should be available
- long waited = 0;
- while (waited < (delay + 1000)) {
- try {
- Thread.sleep(500);
- } catch (InterruptedException ex) {
- // ignore
- }
- if (r1.isDone() && r2.isDone()) {
- break;
- }
- waited += 500;
- }
- assertTrue("Response is not available.", r1.isDone());
- assertTrue("Response is not available.", r2.isDone());
-
- }
}