diff options
author | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2010-12-01 17:17:56 +0000 |
---|---|---|
committer | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2010-12-01 17:17:56 +0000 |
commit | b5183938ecb94be45e21c37cb7b7f6b940fa31f5 (patch) | |
tree | 04b1a4e97bc4c2bfb53d737ad86c93c089690126 | |
parent | 34c7072ebd7f00d9405eaecc9ba2738c2a68f203 (diff) |
Make space for testing native as well as generic async support in bindings
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1041090 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r-- | sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/main/java/sampleasync/impl/SampleAsyncInvoker.java | 68 | ||||
-rw-r--r-- | sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleGenericAsyncTestCase.java (renamed from sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleAsyncReferenceTestCase.java) | 4 | ||||
-rw-r--r-- | sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleNativeAsyncTestCase.java | 63 | ||||
-rw-r--r-- | sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testgenericasync.composite (renamed from sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testasync.composite) | 0 | ||||
-rw-r--r-- | sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testnativeasync.composite | 35 |
5 files changed, 100 insertions, 70 deletions
diff --git a/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/main/java/sampleasync/impl/SampleAsyncInvoker.java b/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/main/java/sampleasync/impl/SampleAsyncInvoker.java deleted file mode 100644 index 74ac0467cf..0000000000 --- a/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/main/java/sampleasync/impl/SampleAsyncInvoker.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package sampleasync.impl; - -import java.lang.reflect.Method; -import java.util.Map; - -import org.apache.tuscany.sca.core.invocation.Constants; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLOperation; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; -import org.w3c.dom.Element; - -/** - * Invoker for Sample components that implement a WSDL interface using a generic - * call method. - * - * @version $Rev$ $Date$ - */ -class SampleAsyncInvoker implements Invoker { - final String name; - final Object instance; - final Operation op; - Map<String, Object> asyncMessageMap; - - SampleAsyncInvoker(Map<String, Object> asyncMessageMap, final Operation op, final Class<?> clazz, final Object instance) { - this.asyncMessageMap = asyncMessageMap; - this.name = op.getName(); - this.instance = instance; - this.op = op; - } - - public Message invoke(final Message msg) { - try { - String messageID = (String) msg.getHeaders().get(Constants.MESSAGE_ID); - String forwardOpName = (String)asyncMessageMap.get(messageID); - - // process the async response - Object reponse = ((Object[])msg.getBody())[0]; - - //Method method = instance.getClass().getMethod(forwardOpName + "Callback", Element.class); - Method method = instance.getClass().getMethod(forwardOpName + "Callback", String.class); - method.invoke(instance, reponse); - } catch(Exception e) { - e.printStackTrace(); - msg.setFaultBody(e.getCause()); - } - return msg; - } -} diff --git a/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleAsyncReferenceTestCase.java b/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleGenericAsyncTestCase.java index 6511f3ddf3..36fdb76424 100644 --- a/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleAsyncReferenceTestCase.java +++ b/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleGenericAsyncTestCase.java @@ -36,13 +36,13 @@ import sampleasync.Upper; * * @version $Rev$ $Date$ */ -public class SampleAsyncReferenceTestCase { +public class SampleGenericAsyncTestCase { static Node node; @BeforeClass public static void setUp() throws Exception { final NodeFactory nf = NodeFactory.newInstance(); - String here = SampleAsyncReferenceTestCase.class.getProtectionDomain().getCodeSource().getLocation().toString(); + String here = SampleGenericAsyncTestCase.class.getProtectionDomain().getCodeSource().getLocation().toString(); node = nf.createNode(new Contribution("test", here)); node.start(); } diff --git a/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleNativeAsyncTestCase.java b/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleNativeAsyncTestCase.java new file mode 100644 index 0000000000..bc35a637d1 --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/java/sampleasync/impl/SampleNativeAsyncTestCase.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package sampleasync.impl; + +import static org.junit.Assert.assertEquals; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import sampleasync.Upper; + +/** + * Test how to run an SCA contribution containing a test composite on a + * Tuscany runtime node. + * + * @version $Rev$ $Date$ + */ +public class SampleNativeAsyncTestCase { + static Node node; + + @BeforeClass + public static void setUp() throws Exception { + final NodeFactory nf = NodeFactory.newInstance(); + String here = SampleNativeAsyncTestCase.class.getProtectionDomain().getCodeSource().getLocation().toString(); + node = nf.createNode(new Contribution("test", here)); + node.start(); + } + + @AfterClass + public static void tearDown() throws Exception { + node.stop(); + } + + @Test + public void testReference() { + System.out.println("SampleNaiveAsyncTestCase.testReference"); + Upper upper = node.getService(Upper.class, "SampleNativeAsyncReference"); + final String r = upper.upper("async"); + System.out.println(r); + assertEquals("ASYNC", r); + } +} diff --git a/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testasync.composite b/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testgenericasync.composite index c289a1ab32..c289a1ab32 100644 --- a/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testasync.composite +++ b/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testgenericasync.composite diff --git a/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testnativeasync.composite b/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testnativeasync.composite new file mode 100644 index 0000000000..f9c077e272 --- /dev/null +++ b/sca-java-2.x/trunk/unreleased/samples/implementation-sample-async/src/test/resources/testnativeasync.composite @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" + targetNamespace="http://test" + name="testnativeasync"> + + <!-- SampleAsync implementation at reference with Java async at service --> + <component name="SampleNativeAsyncReference"> + <t:implementation.sampleasync class="sampleasync.impl.UpperSampleAsyncReferenceImpl"/> + <reference name="upper" target="SampleAsyncService"/> + </component> + + <component name="SampleNativeAsyncService"> + <t:implementation.sampleasync class="sampleasync.impl.UpperSampleAsyncServiceImpl"/> + </component> + +</composite> |