use of org.apache.hello_world_soap_http.types.GreetMeLaterResponse in project cxf by apache.
the class AsyncHTTPConduitTest method testTimeoutAsync.
@Test
public void testTimeoutAsync() throws Exception {
updateAddressPort(g, PORT);
HTTPConduit c = (HTTPConduit) ClientProxy.getClient(g).getConduit();
c.getClient().setReceiveTimeout(3000);
try {
Response<GreetMeLaterResponse> future = g.greetMeLaterAsync(-5000L);
future.get();
fail();
} catch (Exception ex) {
// expected!!!
}
}
use of org.apache.hello_world_soap_http.types.GreetMeLaterResponse in project cxf by apache.
the class AsyncHTTPConduitTest method testCallsAsync.
@Test
@Ignore("peformance test")
public void testCallsAsync() throws Exception {
updateAddressPort(g, PORT);
final int warmupIter = 5000;
final int runIter = 5000;
final CountDownLatch wlatch = new CountDownLatch(warmupIter);
final boolean[] wdone = new boolean[warmupIter];
@SuppressWarnings("unchecked") AsyncHandler<GreetMeLaterResponse>[] whandler = new AsyncHandler[warmupIter];
for (int x = 0; x < warmupIter; x++) {
final int c = x;
whandler[x] = new AsyncHandler<GreetMeLaterResponse>() {
public void handleResponse(Response<GreetMeLaterResponse> res) {
try {
String s = res.get().getResponseType();
s = s.substring(s.lastIndexOf(' ') + 1);
if (c != Integer.parseInt(s)) {
System.out.println("Problem " + c + " != " + s);
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
wdone[c] = true;
wlatch.countDown();
}
};
}
// warmup
long start = System.currentTimeMillis();
for (int x = 0; x < warmupIter; x++) {
// builder.append("a");
// long s1 = System.nanoTime();
// System.out.println("aa1: " + s1);
g.greetMeLaterAsync(x, whandler[x]);
// long s2 = System.nanoTime();
// System.out.println("aa2: " + s2 + " " + (s2 - s1));
// System.out.println();
}
wlatch.await(30, TimeUnit.SECONDS);
long end = System.currentTimeMillis();
System.out.println("Warmup Total: " + (end - start) + " " + wlatch.getCount());
for (int x = 0; x < warmupIter; x++) {
if (!wdone[x]) {
System.out.println(" " + x);
}
}
if (wlatch.getCount() > 0) {
Thread.sleep(1000000);
}
final CountDownLatch rlatch = new CountDownLatch(runIter);
AsyncHandler<GreetMeLaterResponse> rhandler = new AsyncHandler<GreetMeLaterResponse>() {
public void handleResponse(Response<GreetMeLaterResponse> res) {
rlatch.countDown();
}
};
start = System.currentTimeMillis();
for (int x = 0; x < runIter; x++) {
// builder.append("a");
// long s1 = System.nanoTime();
// System.out.println("aa1: " + s1);
g.greetMeLaterAsync(x, rhandler);
// long s2 = System.nanoTime();
// System.out.println("aa2: " + s2 + " " + (s2 - s1));
// System.out.println();
}
rlatch.await(30, TimeUnit.SECONDS);
end = System.currentTimeMillis();
System.out.println("Total: " + (end - start) + " " + rlatch.getCount());
}
use of org.apache.hello_world_soap_http.types.GreetMeLaterResponse in project cxf by apache.
the class ClientServerWebSocketTest method testAsyncSynchronousPolling.
@Test
public void testAsyncSynchronousPolling() throws Exception {
URL wsdl = getClass().getResource("/wsdl/hello_world.wsdl");
assertNotNull(wsdl);
SOAPService service = new SOAPService(wsdl, serviceName);
assertNotNull(service);
final String expectedString = new String("Hello, finally!");
class Poller extends Thread {
Response<GreetMeLaterResponse> response;
int tid;
Poller(Response<GreetMeLaterResponse> r, int t) {
response = r;
tid = t;
}
public void run() {
if (tid % 2 > 0) {
while (!response.isDone()) {
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
// ignore
}
}
}
GreetMeLaterResponse reply = null;
try {
reply = response.get();
} catch (Exception ex) {
fail("Poller " + tid + " failed with " + ex);
}
assertNotNull("Poller " + tid + ": no response received from service", reply);
String s = reply.getResponseType();
assertEquals(expectedString, s);
}
}
Greeter greeter = service.getPort(portName, Greeter.class);
updateGreeterAddress(greeter, PORT);
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++) {
pollers[i] = new Poller(response, i);
}
for (Poller p : pollers) {
p.start();
}
for (Poller p : pollers) {
p.join();
}
}
use of org.apache.hello_world_soap_http.types.GreetMeLaterResponse in project cxf by apache.
the class ClientServerWebSocketTest method testAsyncPollingCall.
@Test
public void testAsyncPollingCall() throws Exception {
URL wsdl = getClass().getResource("/wsdl/hello_world.wsdl");
assertNotNull(wsdl);
SOAPService service = new SOAPService(wsdl, serviceName);
Greeter greeter = service.getPort(portName, Greeter.class);
updateGreeterAddress(greeter, PORT);
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());
}
use of org.apache.hello_world_soap_http.types.GreetMeLaterResponse in project cxf by apache.
the class ClientServerTest method testAsyncPollingCall.
@Test
public void testAsyncPollingCall() throws Exception {
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);
updateAddressPort(greeter, PORT);
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());
}
Aggregations