summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/testing/itest/interface-matching/src/test/java/org/apache/tuscany/sca/itest/interfaces/InerfaceMatchTestCase.java
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2012-03-23 17:26:56 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2012-03-23 17:26:56 +0000
commit3d3b1538aaf57eb4dac00c808240102dc7ebebe8 (patch)
treebf7d31eb63503aaa41908afcc51dd523b6b23659 /sca-java-2.x/trunk/testing/itest/interface-matching/src/test/java/org/apache/tuscany/sca/itest/interfaces/InerfaceMatchTestCase.java
parent2b658cba22046ff1deee29562fe073bcabe4cdc0 (diff)
TUSCANY-4032 - serialize the "isForCallback" flag for an endpoint service so that the SCAClient can ignore callback endpoints in the remote case.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1304510 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/testing/itest/interface-matching/src/test/java/org/apache/tuscany/sca/itest/interfaces/InerfaceMatchTestCase.java119
1 files changed, 118 insertions, 1 deletions
diff --git a/sca-java-2.x/trunk/testing/itest/interface-matching/src/test/java/org/apache/tuscany/sca/itest/interfaces/InerfaceMatchTestCase.java b/sca-java-2.x/trunk/testing/itest/interface-matching/src/test/java/org/apache/tuscany/sca/itest/interfaces/InerfaceMatchTestCase.java
index 6afb0ecd27..ade96178d2 100644
--- a/sca-java-2.x/trunk/testing/itest/interface-matching/src/test/java/org/apache/tuscany/sca/itest/interfaces/InerfaceMatchTestCase.java
+++ b/sca-java-2.x/trunk/testing/itest/interface-matching/src/test/java/org/apache/tuscany/sca/itest/interfaces/InerfaceMatchTestCase.java
@@ -23,6 +23,7 @@ import java.net.URI;
import junit.framework.Assert;
+import org.apache.tuscany.sca.TuscanyRuntime;
import org.apache.tuscany.sca.assembly.SCABinding;
import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
import org.apache.tuscany.sca.node.Node;
@@ -31,6 +32,7 @@ import org.apache.tuscany.sca.node.impl.NodeImpl;
import org.junit.Ignore;
import org.junit.Test;
import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.client.SCAClientFactory;
public class InerfaceMatchTestCase {
@@ -248,5 +250,120 @@ public class InerfaceMatchTestCase {
node1.stop();
node2.stop();
- }
+ }
+
+ /**
+ * Remotable client and service interfaces where the interfaces match.
+ * Components running in the separate composite/JVM, i.e. there is a remote registry
+ * Access from an SCALient call to make sure that it is able to connect to the remote
+ * registry.
+ *
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testDistributedRemotableSCAClient() throws Exception {
+
+ // Force the remote default binding to be web services
+ System.setProperty("org.apache.tuscany.sca.binding.sca.provider.SCABindingMapper.mappedBinding",
+ "{http://docs.oasis-open.org/ns/opencsa/sca/200912}binding.ws");
+
+ TuscanyRuntime runtime = TuscanyRuntime.newInstance();
+
+/*
+ org.apache.tuscany.sca.Node nodeA = runtime.createNode("default");
+ nodeA.installContribution("nodeAContrib", "./target/classes", null, null);
+ nodeA.startComposite("node1Contrib", "org/apache/tuscany/sca/itest/interfaces/match/distributed/MatchDistributedClient.composite");
+
+ org.apache.tuscany.sca.Node nodeB = runtime.createNode("default");
+ nodeB.installContribution("nodeAContrib", "./target/classes", null, null);
+ nodeB.startComposite("node1Contrib", "org/apache/tuscany/sca/itest/interfaces/match/distributed/MatchDistributedService.composite");
+*/
+
+ String [] contributions = {"./target/classes"};
+ Node node1 = NodeFactory.newInstance().createNode(URI.create("uri:default"),
+ "org/apache/tuscany/sca/itest/interfaces/match/distributed/MatchDistributedClient.composite",
+ contributions);
+ node1.start();
+
+ Node node2 = NodeFactory.newInstance().createNode(URI.create("uri:default"),
+ "org/apache/tuscany/sca/itest/interfaces/match/distributed/MatchDistributedService.composite",
+ contributions);
+
+ // force default binding on node2 to use a different port from node 1(which will default to 8080
+ ((NodeImpl)node2).getConfiguration().addBinding(WebServiceBinding.TYPE, "http://localhost:8081/");
+ ((NodeImpl)node2).getConfiguration().addBinding(SCABinding.TYPE, "http://localhost:8081/");
+ node2.start();
+
+ SCAClientFactory clientFactory = SCAClientFactory.newInstance(URI.create("default"));
+ ClientComponent local = clientFactory.getService(ClientComponent.class, "LocalClientClientComponent");
+
+ ParameterObject po = new ParameterObject();
+
+ try {
+ String response = local.foo1(po);
+ Assert.assertEquals("AComponent", response);
+ } catch (ServiceRuntimeException ex){
+ Assert.fail("Unexpected exception with foo " + ex.toString());
+ }
+
+/* Used to keep the composites alive when running the next (ignored) test manually
+ System.out.println("Press a key to end");
+ try {
+ System.in.read();
+ } catch (Exception ex) {
+ }
+ System.out.println("Continuing");
+*/
+ node1.stop();
+ node2.stop();
+ }
+
+ /**
+ * Allows you to manually call the previous test from a separate VM to
+ * ensure that endpoint serialization to the client work OK. It's not
+ * intended to run as part of the test suite.
+ *
+ *
+ * @throws Exception
+ */
+ @Test
+ @Ignore
+ public void testDistributedRemotableSCAClientSeparateVM() throws Exception {
+ // Force the remote default binding to be web services
+ System.setProperty("org.apache.tuscany.sca.binding.sca.provider.SCABindingMapper.mappedBinding",
+ "{http://docs.oasis-open.org/ns/opencsa/sca/200912}binding.ws");
+
+ // Make a reference target point across VMs to a component that has callback services
+ String [] contributions = {"./target/classes"};
+
+ Node node3 = NodeFactory.newInstance().createNode(URI.create("uri:default"),
+ "org/apache/tuscany/sca/itest/interfaces/match/distributed/MatchDistributedClientClient.composite",
+ contributions);
+ node3.start();
+
+ SCAClientFactory clientFactory = SCAClientFactory.newInstance(URI.create("default"));
+ ClientComponent clientClient = clientFactory.getService(ClientComponent.class, "DistributedClientClientComponent");
+
+ ParameterObject po = new ParameterObject();
+
+ try {
+ String response = clientClient.foo1(po);
+ Assert.assertEquals("AComponent", response);
+ } catch (ServiceRuntimeException ex){
+ Assert.fail("Unexpected exception with foo " + ex.toString());
+ }
+
+ // Make an SCAClient point across VMs to a component that has callback services
+ ClientComponent client = clientFactory.getService(ClientComponent.class, "DistributedClientComponent");
+
+ try {
+ String response = client.foo1(po);
+ Assert.assertEquals("AComponent", response);
+ } catch (ServiceRuntimeException ex){
+ Assert.fail("Unexpected exception with foo " + ex.toString());
+ }
+
+ node3.stop();
+ }
}