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>