You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2010/03/18 13:25:23 UTC

svn commit: r924744 - /tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java

Author: antelder
Date: Thu Mar 18 12:25:22 2010
New Revision: 924744

URL: http://svn.apache.org/viewvc?rev=924744&view=rev
Log:
Add a method to get the Hazelcast member owning an endpoint

Modified:
    tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.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=924744&r1=924743&r2=924744&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 Thu Mar 18 12:25:22 2010
@@ -27,8 +27,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.logging.Logger;
 
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.core.LifeCycleListener;
 import org.apache.tuscany.sca.runtime.BaseEndpointRegistry;
 import org.apache.tuscany.sca.runtime.DomainRegistryURI;
@@ -65,6 +67,7 @@ public class HazelcastEndpointRegistry e
     protected Map<Object, Object> endpointMap;
     private Map<String, Endpoint> localEndpoints = new HashMap<String, Endpoint>();
     private MultiMap<String, String> endpointOwners;
+    private AssemblyFactory assemblyFactory;
 
     public HazelcastEndpointRegistry(ExtensionPointRegistry registry,
                                      Map<String, String> attributes,
@@ -72,6 +75,7 @@ public class HazelcastEndpointRegistry e
                                      String domainURI) {
         super(registry, attributes, domainRegistryURI, domainURI);
         this.configURI = new DomainRegistryURI(domainRegistryURI);
+        this.assemblyFactory = registry.getExtensionPoint(FactoryExtensionPoint.class).getFactory(AssemblyFactory.class);
     }
     
     public HazelcastInstance getHazelcastInstance() {
@@ -292,4 +296,21 @@ public class HazelcastEndpointRegistry e
             }
         }
     }
+
+    public Member getOwningMember(String serviceURI) {
+        for (String memberAddr : endpointOwners.keySet()) {
+            for (String service : endpointOwners.get(memberAddr)) {
+                Endpoint ep = assemblyFactory.createEndpoint();
+                ep.setURI(service);
+                if (ep.matches(serviceURI)) {
+                    for (Member m : hazelcastInstance.getCluster().getMembers()) {
+                        if (memberAddr.equals(m.getInetSocketAddress().toString())) {
+                            return m;
+                        }
+                    }
+                }
+            }
+        }
+        return null;
+    }
 }