cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrea Smyth <andrea.sm...@iona.com>
Subject 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...
Date Tue, 28 Nov 2006 10:48:17 GMT
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;
>
>
>  
>


Mime
View raw message