You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Andrea Smyth <an...@iona.com> on 2006/11/28 11:48:17 UTC
Re: svn commit: r479954 - in /incubator/cxf/trunk: rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/
systests/src/test/java/org/apache/cxf/systest/jaxws/ systests/src/test/java/org/apache/cxf/systest/ws/rm/
testutils/src/main/java/org/apache/hello_worl...
Hi Freeman,
Can you add a new operation greetMeSlow so that not every test that uses
greetMe incurs the 3 sec. delay?
Also, there is no need to add a new test - the existing system tests for
asynchronicity should be fixed accordingly.
Andrea.
ffang@apache.org wrote:
>Author: ffang
>Date: Tue Nov 28 00:51:57 2006
>New Revision: 479954
>
>URL: http://svn.apache.org/viewvc?view=rev&rev=479954
>Log:
>get asyn invocation work
>
>Modified:
> incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java
> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
> incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java?view=diff&rev=479954&r1=479953&r2=479954
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java Tue Nov 28 00:51:57 2006
>@@ -27,6 +27,7 @@
> import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
>+import java.util.concurrent.Executor;
> import java.util.concurrent.FutureTask;
> import java.util.logging.Logger;
>
>@@ -155,8 +156,12 @@
> context
> ));
>
>+ endpoint.getService().setExecutor(new Executor() {
>+ public void execute(Runnable r) {
>+ new Thread(r).start();
>+ }
>+ });
> endpoint.getService().getExecutor().execute(f);
>-
> Response<?> r = new AsyncResponse<Object>(f, Object.class);
> if (params.length > 0 && params[params.length - 1] instanceof AsyncHandler) {
> // callback style
>
>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=479954&r1=479953&r2=479954
>==============================================================================
>--- 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 Tue Nov 28 00:51:57 2006
>@@ -62,6 +62,7 @@
> import org.apache.hello_world_soap_http.SOAPService;
> 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.GreetMeResponse;
> import org.apache.hello_world_soap_http.types.GreetMeSometimeResponse;
>
> public class ClientServerTest extends ClientServerTestBase {
>@@ -597,4 +598,47 @@
> public static void main(String[] args) {
> 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();
>+
>+ Response<GreetMeResponse> r1 = greeter.greetMeAsync("one");
>+ Response<GreetMeResponse> r2 = greeter.greetMeAsync("two");
>+
>+ long after = System.currentTimeMillis();
>+
>+ assertTrue("Duration of calls exceeded 6000 ms", after - before < 6000);
>+
>+ // 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 < 5000) {
>+ 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());
>+
>+ }
> }
>
>Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java?view=diff&rev=479954&r1=479953&r2=479954
>==============================================================================
>--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java (original)
>+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java Tue Nov 28 00:51:57 2006
>@@ -552,7 +552,7 @@
>
> }
>
>- public void testTwowayMessageLoss() throws Exception {
>+ public void xtestTwowayMessageLoss() throws Exception {
> if (!doTestTwowayMessageLoss) {
> return;
> }
>
>Modified: incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java?view=diff&rev=479954&r1=479953&r2=479954
>==============================================================================
>--- incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java (original)
>+++ incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java Tue Nov 28 00:51:57 2006
>@@ -57,6 +57,12 @@
> }
>
> public String greetMe(String me) {
>+ try {
>+ // to prove async invocation works
>+ Thread.sleep(3000);
>+ } catch (InterruptedException e) {
>+ e.printStackTrace();
>+ }
> LOG.info("Invoking greetMe " + me);
> invocationCount++;
> return "Hello " + me;
>
>
>
>
Re: svn commit: r479954 - in /incubator/cxf/trunk: rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/
systests/src/test/java/org/apache/cxf/systest/jaxws/ systests/src/test/java/org/apache/cxf/systest/ws/rm/
testutils/src/main/java/org/apache/hello_worl...
Posted by Freeman Fang <fr...@iona.com>.
Hi Andrea,
I will do it soon
Thanks very much
Freeman
Andrea Smyth wrote:
> Hi Freeman,
>
> Can you add a new operation greetMeSlow so that not every test that
> uses greetMe incurs the 3 sec. delay?
> Also, there is no need to add a new test - the existing system tests
> for asynchronicity should be fixed accordingly.
>
> Andrea.
>
> ffang@apache.org wrote:
>
>> Author: ffang
>> Date: Tue Nov 28 00:51:57 2006
>> New Revision: 479954
>>
>> URL: http://svn.apache.org/viewvc?view=rev&rev=479954
>> Log:
>> get asyn invocation work
>>
>> Modified:
>>
>> incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java
>>
>> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerTest.java
>>
>> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
>>
>> incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java
>>
>> Modified:
>> incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java?view=diff&rev=479954&r1=479953&r2=479954
>> ==============================================================================
>> ---
>> incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java
>> (original)
>> +++
>> incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointInvocationHandler.java
>> Tue Nov 28 00:51:57 2006
>> @@ -27,6 +27,7 @@
>> import java.util.HashMap;
>> import java.util.List;
>> import java.util.Map;
>> +import java.util.concurrent.Executor;
>> import java.util.concurrent.FutureTask;
>> import java.util.logging.Logger;
>>
>> @@ -155,8 +156,12 @@
>>
>> context
>>
>> ));
>>
>> + endpoint.getService().setExecutor(new Executor() {
>> + public void execute(Runnable r) {
>> + new Thread(r).start();
>> + }
>> + });
>> endpoint.getService().getExecutor().execute(f);
>> -
>> Response<?> r = new AsyncResponse<Object>(f, Object.class);
>> if (params.length > 0 && params[params.length - 1] instanceof
>> AsyncHandler) {
>> // callback style
>>
>> 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=479954&r1=479953&r2=479954
>> ==============================================================================
>> ---
>> 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
>> Tue Nov 28 00:51:57 2006
>> @@ -62,6 +62,7 @@
>> import org.apache.hello_world_soap_http.SOAPService;
>> 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.GreetMeResponse;
>> import org.apache.hello_world_soap_http.types.GreetMeSometimeResponse;
>>
>> public class ClientServerTest extends ClientServerTestBase {
>> @@ -597,4 +598,47 @@
>> public static void main(String[] args) {
>> 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();
>> +
>> + Response<GreetMeResponse> r1 = greeter.greetMeAsync("one");
>> + Response<GreetMeResponse> r2 = greeter.greetMeAsync("two");
>> +
>> + long after = System.currentTimeMillis();
>> +
>> + assertTrue("Duration of calls exceeded 6000 ms", after -
>> before < 6000);
>> +
>> + // 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 < 5000) {
>> + 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());
>> + + } }
>>
>> Modified:
>> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java?view=diff&rev=479954&r1=479953&r2=479954
>> ==============================================================================
>> ---
>> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
>> (original)
>> +++
>> incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
>> Tue Nov 28 00:51:57 2006
>> @@ -552,7 +552,7 @@
>> }
>> - public void testTwowayMessageLoss() throws Exception {
>> + public void xtestTwowayMessageLoss() throws Exception {
>> if (!doTestTwowayMessageLoss) {
>> return;
>> }
>>
>> Modified:
>> incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java
>> URL:
>> http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java?view=diff&rev=479954&r1=479953&r2=479954
>> ==============================================================================
>> ---
>> incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java
>> (original)
>> +++
>> incubator/cxf/trunk/testutils/src/main/java/org/apache/hello_world_soap_http/GreeterImpl.java
>> Tue Nov 28 00:51:57 2006
>> @@ -57,6 +57,12 @@
>> }
>>
>> public String greetMe(String me) {
>> + try {
>> + // to prove async invocation works
>> + Thread.sleep(3000);
>> + } catch (InterruptedException e) {
>> + e.printStackTrace();
>> + }
>> LOG.info("Invoking greetMe " + me);
>> invocationCount++;
>> return "Hello " + me;
>>
>>
>>
>>
>
--
Freeman Fang
Software Engineer
IONA Asia Pacific Software Development Center
No.2 Floor A Unit Information Center
Zhongguancun Software Park Haidian District,
Beijing, P.R.China
Tel.: +86-10-82825151 - ex. 551
Fax: +86-10-8282-5210
freeman.fang@iona.com
-------------------------------------------------
Making Software Work Together TM