Author: antelder
Date: Sun Mar 21 09:42:41 2010
New Revision: 925745
URL: http://svn.apache.org/viewvc?rev=925745&view=rev
Log:
Update Hazelcast registry to check for duplicate endpoints
Modified:
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/MultiRegTestCase.java
Modified:
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java?rev=925745&r1=925744&r2=925745&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java
Sun Mar 21 09:42:41 2010
@@ -155,6 +155,11 @@ public class HazelcastEndpointRegistry e
}
public void addEndpoint(Endpoint endpoint) {
+ if (findEndpoint(endpoint.getURI()).size() > 0) {
+ Member m = getOwningMember(endpoint.getURI());
+ throw new IllegalStateException("Endpoint " + endpoint.getURI() +
" already exists in domain " + configURI.getDomainName() + " at " +
m.getInetSocketAddress());
+ }
+
String localMemberAddr =
hazelcastInstance.getCluster().getLocalMember().getInetSocketAddress().toString();
String endpointURI = endpoint.getURI();
Transaction txn = hazelcastInstance.getTransaction();
Modified:
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/MultiRegTestCase.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/MultiRegTestCase.java?rev=925745&r1=925744&r2=925745&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/MultiRegTestCase.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/MultiRegTestCase.java
Sun Mar 21 09:42:41 2010
@@ -108,6 +108,34 @@ public class MultiRegTestCase {
System.out.println("done");
}
+ @Test
+ public void testDuplicates() throws Exception {
+ HazelcastEndpointRegistry reg1 = new
HazelcastEndpointRegistry(extensionPoints, null,
"tuscany:foo?listen=127.0.0.1:9876&multicast=off", "bar");
+ reg1.start();
+ RuntimeEndpoint ep1 = createEndpoint("ep1uri");
+ ep1.bind(extensionPoints, reg1);
+ reg1.addEndpoint(ep1);
+
+ HazelcastEndpointRegistry reg2 = new
HazelcastEndpointRegistry(extensionPoints, null,
"tuscany:foo?listen=127.0.0.1:9877&multicast=off&remotes=127.0.0.1:9876",
"bar");
+ reg2.start();
+
+ try {
+ reg2.addEndpoint(ep1);
+ Assert.fail();
+ } catch (IllegalStateException e) {
+ // expected
+ }
+
+ reg1.stop();
+
+ Thread.sleep(200);
+
+ // now it should work
+ reg2.addEndpoint(ep1);
+
+ reg2.stop();
+ }
+
private Endpoint assertExists(HazelcastEndpointRegistry reg, String uri)
throws InterruptedException {
Endpoint ep = reg.getEndpoint(uri);
Assert.assertNotNull(ep);