summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/trunk')
-rw-r--r--sca-java-2.x/trunk/itest/nodes/one-jvm-hazelcast/pom.xml5
-rw-r--r--sca-java-2.x/trunk/itest/nodes/one-jvm-hazelcast/src/test/java/itest/OneNodeOneContributionTestCase.java64
-rw-r--r--sca-java-2.x/trunk/itest/nodes/pom.xml1
-rw-r--r--sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java17
4 files changed, 82 insertions, 5 deletions
diff --git a/sca-java-2.x/trunk/itest/nodes/one-jvm-hazelcast/pom.xml b/sca-java-2.x/trunk/itest/nodes/one-jvm-hazelcast/pom.xml
index 54dca44b84..8c089de515 100644
--- a/sca-java-2.x/trunk/itest/nodes/one-jvm-hazelcast/pom.xml
+++ b/sca-java-2.x/trunk/itest/nodes/one-jvm-hazelcast/pom.xml
@@ -31,6 +31,11 @@
<dependencies>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-nodes-helloworld-service-and-client</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
<artifactId>itest-nodes-helloworld-iface</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
diff --git a/sca-java-2.x/trunk/itest/nodes/one-jvm-hazelcast/src/test/java/itest/OneNodeOneContributionTestCase.java b/sca-java-2.x/trunk/itest/nodes/one-jvm-hazelcast/src/test/java/itest/OneNodeOneContributionTestCase.java
new file mode 100644
index 0000000000..3755d0b365
--- /dev/null
+++ b/sca-java-2.x/trunk/itest/nodes/one-jvm-hazelcast/src/test/java/itest/OneNodeOneContributionTestCase.java
@@ -0,0 +1,64 @@
+/*
+ * 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 itest;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import itest.nodes.sac.Helloworld;
+
+import java.net.URI;
+
+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 org.oasisopen.sca.client.SCAClientFactory;
+
+/**
+ * This shows how to test the Calculator service component.
+ */
+public class OneNodeOneContributionTestCase{
+
+ private static URI domainURI = URI.create("tuscany:OneNodeTestCase");
+ private static Node node;
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ node = NodeFactory.getInstance().createNode(domainURI, "../helloworld-service-and-client/target/classes");
+ node.start();
+ }
+
+ @Test
+ public void testNode() throws Exception {
+
+ Helloworld client = node.getService(Helloworld.class, "HelloworldClient");
+ assertNotNull(client);
+ assertEquals("Hi Hello Petra", client.sayHello("Petra"));
+
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ if (node != null) {
+ node.stop();
+ }
+ }
+}
diff --git a/sca-java-2.x/trunk/itest/nodes/pom.xml b/sca-java-2.x/trunk/itest/nodes/pom.xml
index 055c23e6c1..a347da0ebd 100644
--- a/sca-java-2.x/trunk/itest/nodes/pom.xml
+++ b/sca-java-2.x/trunk/itest/nodes/pom.xml
@@ -37,6 +37,7 @@
<module>helloworld-iface</module>
<module>helloworld-service</module>
<module>helloworld-client</module>
+ <module>helloworld-service-and-client</module>
<!--
<module>helloworld-service-a</module>
<module>helloworld-service-b</module>
diff --git a/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java b/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java
index d921ec3a48..88a45bbf4c 100644
--- a/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java
+++ b/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java
@@ -58,7 +58,7 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E
private HazelcastInstance hazelcastInstance;
protected Map<Object, Object> map;
- private List<String> localEndpoints = new ArrayList<String>();
+ private Map<String, Endpoint> localEndpoints = new HashMap<String, Endpoint>();
public HazelcastEndpointRegistry(ExtensionPointRegistry registry,
Map<String, String> attributes,
@@ -138,7 +138,7 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E
public void addEndpoint(Endpoint endpoint) {
map.put(endpoint.getURI(), endpoint);
- localEndpoints.add(endpoint.getURI());
+ localEndpoints.put(endpoint.getURI(), endpoint);
logger.info("Add endpoint - " + endpoint);
}
@@ -150,8 +150,15 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E
if (matches(uri, endpoint.getURI())) {
if (!isLocal(endpoint)) {
endpoint.setRemote(true);
+ ((RuntimeEndpoint)endpoint).bind(registry, this);
+ } else {
+ // get the local version of the endpoint
+ // this local version won't have been serialized
+ // won't be marked as remote and will have the
+ // full interface contract information
+ endpoint = localEndpoints.get(endpoint.getURI());
}
- ((RuntimeEndpoint)endpoint).bind(registry, this);
+
foundEndpoints.add(endpoint);
logger.fine("Found endpoint with matching service - " + endpoint);
}
@@ -161,7 +168,7 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E
private boolean isLocal(Endpoint endpoint) {
- return localEndpoints.contains(endpoint.getURI());
+ return localEndpoints.containsKey(endpoint.getURI());
}
public Endpoint getEndpoint(String uri) {
@@ -200,7 +207,7 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E
if (!isLocal(newEp)) {
logger.info(" Remote endpoint added: " + newEp);
newEp.setRemote(true);
- }
+ }
endpointAdded(newEp);
}