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);


Reply via email to