From d7c15da034109074d717d3f9f0c3325a54b597dd Mon Sep 17 00:00:00 2001 From: rfeng Date: Thu, 25 Feb 2010 23:00:57 +0000 Subject: Add the check for local-by-reference, local-by-value and remote invocations for binding.sca git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@916483 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/itest/bindingsca/BindingSCATestCase.java | 37 ++++++++------ .../ClientNodeSharedCustomerTestCase.java | 6 ++- .../bindingsca/ClientNodeSharedLocalTestCase.java | 1 + .../bindingsca/ClientSharedCustomerTestCase.java | 2 + .../bindingsca/ClientSharedLocalTestCase.java | 2 + sca-java-2.x/trunk/itest/nodes/pom.xml | 1 + .../sca/interfacedef/InterfaceContractMapper.java | 10 +++- .../impl/InterfaceContractMapperImpl.java | 19 ++++++-- .../binding-http-runtime/META-INF/MANIFEST.MF | 1 + .../impl/Axis2SCAReferenceBindingProvider.java | 9 +++- .../RuntimeSCAReferenceBindingProvider.java | 56 +++++++++++++++++----- .../binding/sca/provider/SCABindingInvoker.java | 52 ++++---------------- .../tuscany/sca/invocation/InvocationChain.java | 7 +++ .../impl/RuntimeEndpointReferenceImpl.java | 3 +- .../core/invocation/impl/InvocationChainImpl.java | 13 +++++ .../sca/core/invocation/impl/PhaseManager.java | 4 +- .../sca/domain/node/GetServiceTestCase.java | 4 +- .../domain/node/MultipleNodesPerJVMTestCase.java | 4 +- 18 files changed, 146 insertions(+), 85 deletions(-) (limited to 'sca-java-2.x/trunk') diff --git a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/BindingSCATestCase.java b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/BindingSCATestCase.java index baf4d69508..88d1e201f1 100644 --- a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/BindingSCATestCase.java +++ b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/BindingSCATestCase.java @@ -26,7 +26,7 @@ import org.apache.tuscany.sca.node.NodeFactory; import org.apache.tuscany.sca.node.configuration.NodeConfiguration; import org.junit.Assert; import org.junit.Test; -import org.oasisopen.sca.SCARuntimeException; +import org.oasisopen.sca.ServiceRuntimeException; /** * Test binding.sca in the same classloader @@ -49,10 +49,13 @@ public class BindingSCATestCase { Node node2 = createServiceNode(factory1); node1.start(); node2.start(); - runClient(node1); - node2.stop(); - node1.stop(); - factory1.destroy(); + try { + runClient(node1); + } finally { + node2.stop(); + node1.stop(); + factory1.destroy(); + } } /** @@ -94,14 +97,15 @@ public class BindingSCATestCase { node2.start(); try { runClient(node1); - Assert.fail("SCARuntimeException should have been thrown."); - } catch (SCARuntimeException e) { + Assert.fail("ServiceRuntimeException should have been thrown."); + } catch (ServiceRuntimeException e) { // ignore + } finally { + node2.stop(); + node1.stop(); + factory2.destroy(); + factory1.destroy(); } - node2.stop(); - node1.stop(); - factory2.destroy(); - factory1.destroy(); } /** @@ -117,7 +121,7 @@ public class BindingSCATestCase { String id = client.create("Ray"); Assert.assertEquals("Ray", client.getName(id)); } - + /** * One node factory and one node for both composites */ @@ -130,9 +134,12 @@ public class BindingSCATestCase { Node node1 = factory.createNode(config1); node1.start(); - runClient(node1); - node1.stop(); - factory.destroy(); + try { + runClient(node1); + } finally { + node1.stop(); + factory.destroy(); + } } } diff --git a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientNodeSharedCustomerTestCase.java b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientNodeSharedCustomerTestCase.java index d9436e8ea5..7255697d4b 100644 --- a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientNodeSharedCustomerTestCase.java +++ b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientNodeSharedCustomerTestCase.java @@ -31,12 +31,13 @@ import org.junit.Test; public class ClientNodeSharedCustomerTestCase { private static Node clientNode; private static TestCaseRunner runner; + private static NodeFactory factory; @BeforeClass public static void setUpBeforeClass() throws Exception { runner = new TestCaseRunner(ServiceNode.class, Remote.class.getName(), RemoteServiceImpl.class.getName()); runner.beforeClass(); - NodeFactory factory = NodeFactory.getInstance(); + factory = NodeFactory.getInstance(); clientNode = BindingSCATestCase.createClientNode(factory).start(); Thread.sleep(1000); } @@ -54,5 +55,8 @@ public class ClientNodeSharedCustomerTestCase { if (runner != null) { runner.afterClass(); } + if (factory != null) { + factory.destroy(); + } } } diff --git a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientNodeSharedLocalTestCase.java b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientNodeSharedLocalTestCase.java index c29dfe4ae4..51fafae32c 100644 --- a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientNodeSharedLocalTestCase.java +++ b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientNodeSharedLocalTestCase.java @@ -57,5 +57,6 @@ public class ClientNodeSharedLocalTestCase { if (runner != null) { runner.afterClass(); } + NodeFactory.getInstance().destroy(); } } diff --git a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientSharedCustomerTestCase.java b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientSharedCustomerTestCase.java index 13dd048f1f..b8ff0c58ba 100644 --- a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientSharedCustomerTestCase.java +++ b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientSharedCustomerTestCase.java @@ -19,6 +19,7 @@ package org.apache.tuscany.sca.itest.bindingsca; +import org.apache.tuscany.sca.node.NodeFactory; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -48,5 +49,6 @@ public class ClientSharedCustomerTestCase { if (runner != null) { runner.afterClass(); } + NodeFactory.getInstance().destroy(); } } diff --git a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientSharedLocalTestCase.java b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientSharedLocalTestCase.java index d48b18f83a..034136ca53 100644 --- a/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientSharedLocalTestCase.java +++ b/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/ClientSharedLocalTestCase.java @@ -19,6 +19,7 @@ package org.apache.tuscany.sca.itest.bindingsca; +import org.apache.tuscany.sca.node.NodeFactory; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -51,5 +52,6 @@ public class ClientSharedLocalTestCase { if (runner != null) { runner.afterClass(); } + NodeFactory.getInstance().destroy(); } } diff --git a/sca-java-2.x/trunk/itest/nodes/pom.xml b/sca-java-2.x/trunk/itest/nodes/pom.xml index a347da0ebd..c578a0ba56 100644 --- a/sca-java-2.x/trunk/itest/nodes/pom.xml +++ b/sca-java-2.x/trunk/itest/nodes/pom.xml @@ -47,6 +47,7 @@ one-jvm-hazelcast one-jvm-hazelcast-client one-jvm-tribes + binding-sca-tribes one-node-test two-nodes-test two-nodes-two-vms-test diff --git a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java index 7a917e5560..5ce1baa54c 100644 --- a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java +++ b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java @@ -78,15 +78,21 @@ public interface InterfaceContractMapper { * Simply speaking, any request from the source operation can be processed by the target operation and * the normal response or fault/exception from the target operation can be handled by the source operation. * - * Please note this compatibility check is NOT symmetric. + * Please note this compatibility check is NOT symmetric. But the following should be guaranteed: + *