Author: slaws
Date: Fri Jan 14 15:00:50 2011
New Revision: 1059033

URL: http://svn.apache.org/viewvc?rev=1059033&view=rev
Log:
TUSCANY-3784 - Add multiple operations and a void return type to the async part 
of the implementation same

Modified:
    
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleWSDLInvoker.java
    
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/Upper.java
    
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncReferenceImpl.java
    
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncServiceImpl.java
    
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperTest.java
    
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/impl/SampleNativeAsyncTestCase.java
    
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/resources/Upper-async.wsdl

Modified: 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleWSDLInvoker.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleWSDLInvoker.java?rev=1059033&r1=1059032&r2=1059033&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleWSDLInvoker.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleWSDLInvoker.java
 Fri Jan 14 15:00:50 2011
@@ -71,8 +71,9 @@ class SampleWSDLInvoker extends Intercep
         // At this point we could serialize the AsyncResponseInvoker and pick 
it up again 
         // later to send the async response
         
-        //((RuntimeEndpoint)msg.getTo()).invokeAsyncResponse(responseMsg);
-        respInvoker.invokeAsyncResponse(responseMsg);
+        if (responseMsg.getBody() != null){
+            respInvoker.invokeAsyncResponse(responseMsg);
+        }
     } // end method invokeAsyncRequest
     
     public Message processRequest(Message msg) {

Modified: 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/Upper.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/Upper.java?rev=1059033&r1=1059032&r2=1059033&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/Upper.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/Upper.java
 Fri Jan 14 15:00:50 2011
@@ -30,4 +30,8 @@ import org.oasisopen.sca.annotation.Remo
 public interface Upper {
 
     String upper(String s);
+    
+    String upper2(String s);
+    
+    String upperVoid(String s);
 }

Modified: 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncReferenceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncReferenceImpl.java?rev=1059033&r1=1059032&r2=1059033&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncReferenceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncReferenceImpl.java
 Fri Jan 14 15:00:50 2011
@@ -46,6 +46,8 @@ public class UpperSampleAsyncReferenceIm
     WSDLReference upper;
     
     Element response;
+    Element response2;
+    public static String responseVoid;
     CountDownLatch latch = new CountDownLatch( 1 );
     
     public String upper(String s) {
@@ -80,4 +82,51 @@ public class UpperSampleAsyncReferenceIm
         this.response = response;
         latch.countDown();
     }
+    
+    public String upper2(String s) {
+        out.println("UpperSampleAsyncReferenceImpl.upper2(" + s + ")");
+        
+        // TODO - I'm passing in the non-wrapped version of the parameter
+        //        here which doesn't seem right. Need to test that databinding
+        //        wraps it correctly
+        //final Element ureq = xdom("http://sample/upper-async";, "s", text(s));
+        NodeBuilder node1 = elem("s", text(s));
+        final Element ureq = xdom("http://sample/upper-async";, "upper", node1);
+        upper.callAsync("upper2", ureq);
+        
+        try {
+            Thread.sleep(500);
+            latch.await(500, TimeUnit.SECONDS);
+        } catch (Exception ex) {
+            // do nothing
+        }
+        
+        if( response2 != null ) return response2.getTextContent();
+        else return "upper did not get called back";
+    }
+    
+    /**
+     *  In this implementation the convention is that the 
+     *  async callback arrives at an operation named
+     *  operationName + Callback
+     */
+    public void upper2Callback(Element response) {
+        out.println("UpperSampleAsyncReferenceImpl.upper2Callback(" + 
response.getTextContent() + ")");
+        this.response2 = response;
+        latch.countDown();
+    }    
+    
+    public String upperVoid(String s) {
+        out.println("UpperSampleAsyncReferenceImpl.upperVoid(" + s + ")");
+        
+        // TODO - I'm passing in the non-wrapped version of the parameter
+        //        here which doesn't seem right. Need to test that databinding
+        //        wraps it correctly
+        //final Element ureq = xdom("http://sample/upper-async";, "s", text(s));
+        NodeBuilder node1 = elem("s", text(s));
+        final Element ureq = xdom("http://sample/upper-async";, "upper", node1);
+        upper.callAsync("upperVoid", ureq);
+        return responseVoid;
+    }
+    
 }

Modified: 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncServiceImpl.java?rev=1059033&r1=1059032&r2=1059033&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncServiceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperSampleAsyncServiceImpl.java
 Fri Jan 14 15:00:50 2011
@@ -38,8 +38,15 @@ public class UpperSampleAsyncServiceImpl
 
     public Element call(String op, Element e) {
         String input = e.getTextContent();
-        out.println("UpperSampleAsyncServiceImpl.upper(" + input + ")");
+        out.println("UpperSampleAsyncServiceImpl." + op + "(" + input + ")");
         String output = input.toUpperCase();
-        return xdom("http://sample/upper-async";, "upperResponse", 
elem("result", text(output)));
+        
+        if (!op.equals("upperVoid")){
+            return xdom("http://sample/upper-async";, "upperResponse", 
elem("result", text(output)));
+        } else {
+            out.println("No response as void return type");
+            UpperSampleAsyncReferenceImpl.responseVoid = output;
+            return null;
+        }
     }
 }

Modified: 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperTest.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperTest.java?rev=1059033&r1=1059032&r2=1059033&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperTest.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/UpperTest.java
 Fri Jan 14 15:00:50 2011
@@ -34,4 +34,13 @@ public class UpperTest {
         out.println("UpperTest.upper(" + s + ")");
         return s.toUpperCase();
     }
+    
+    public String upper2(String s) {
+        out.println("UpperTest.upper2(" + s + ")");
+        return s.toUpperCase();
+    }
+    
+    public void upperVoid(String s) {
+        out.println("UpperTest.upperVoid(" + s + ")");
+    }
 }

Modified: 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/impl/SampleNativeAsyncTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/impl/SampleNativeAsyncTestCase.java?rev=1059033&r1=1059032&r2=1059033&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/impl/SampleNativeAsyncTestCase.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/java/sample/impl/SampleNativeAsyncTestCase.java
 Fri Jan 14 15:00:50 2011
@@ -54,11 +54,29 @@ public class SampleNativeAsyncTestCase {
     }
 
     @Test
-    public void testReference() {
-        System.out.println("SampleNaiveAsyncTestCase.testReference");
+    public void testUpper() {
+        System.out.println("SampleNaiveAsyncTestCase.testUpper");
         Upper upper = node.getService(Upper.class, 
"SampleNativeAsyncReference");
         final String r = upper.upper("async"); 
         System.out.println(r);
         assertEquals("ASYNC", r);
     }
+    
+    @Test
+    public void testUpper2() {
+        System.out.println("SampleNaiveAsyncTestCase.testUpper2");
+        Upper upper = node.getService(Upper.class, 
"SampleNativeAsyncReference");
+        final String r = upper.upper2("async2"); 
+        System.out.println(r);
+        assertEquals("ASYNC2", r);
+    }   
+    
+    @Test
+    public void testVoid() {
+        System.out.println("SampleNaiveAsyncTestCase.testUpperVoid");
+        Upper upper = node.getService(Upper.class, 
"SampleNativeAsyncReference");
+        final String r = upper.upperVoid("asyncVoid");
+        System.out.println(r);
+        assertEquals("ASYNCVOID", r);
+    }    
 }

Modified: 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/resources/Upper-async.wsdl
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/resources/Upper-async.wsdl?rev=1059033&r1=1059032&r2=1059033&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/resources/Upper-async.wsdl
 (original)
+++ 
tuscany/sca-java-2.x/trunk/samples/extending-tuscany/implementation-sample/src/test/resources/Upper-async.wsdl
 Fri Jan 14 15:00:50 2011
@@ -60,6 +60,13 @@
             <wsdl:input message="tns:upperRequest" name="upperRequest" />
             <wsdl:output message="tns:upperResponse" name="upperResponse" />
         </wsdl:operation>
+        <wsdl:operation name="upper2">
+            <wsdl:input message="tns:upperRequest" name="upperRequest" />
+            <wsdl:output message="tns:upperResponse" name="upperResponse" />
+        </wsdl:operation>
+        <wsdl:operation name="upperVoid">
+            <wsdl:input message="tns:upperRequest" name="upperRequest" />
+        </wsdl:operation>
     </wsdl:portType>
 
 </wsdl:definitions>


Reply via email to