diff options
Diffstat (limited to 'sca-java-2.x/trunk')
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);
}
|