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 2011/01/14 08:40:47 UTC

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

Author: antelder
Date: Fri Jan 14 07:40:46 2011
New Revision: 1058877

URL: http://svn.apache.org/viewvc?rev=1058877&view=rev
Log:
Update to use local version of Endpoint if a local Endpoint exists

Modified:
    tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java

Modified: tuscany/sca-java-2.x/trunk/modules/domain-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/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java?rev=1058877&r1=1058876&r2=1058877&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java Fri Jan 14 07:40:46 2011
@@ -224,23 +224,28 @@ public class HazelcastEndpointRegistry e
             Endpoint endpoint = (Endpoint)v;
             logger.fine("Matching against - " + endpoint);
             if (endpoint.matches(uri)) {
-                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());
-                }
-                
+                endpoint = localizeEndpoint(endpoint);
                 foundEndpoints.add(endpoint);
                 logger.fine("Found endpoint with matching service  - " + endpoint);
             }
         }
         return foundEndpoints;
     }
+
+    private Endpoint localizeEndpoint(Endpoint endpoint) {
+        if (endpoint == null) return null;
+        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());
+        }
+        return endpoint;
+    }
     
 
     private boolean isLocal(Endpoint endpoint) {
@@ -248,11 +253,15 @@ public class HazelcastEndpointRegistry e
     }
 
     public Endpoint getEndpoint(String uri) {
-        return (Endpoint)endpointMap.get(uri);
+        return localizeEndpoint((Endpoint)endpointMap.get(uri));
     }
 
     public List<Endpoint> getEndpoints() {
-        return new ArrayList(endpointMap.values());
+        ArrayList<Endpoint> eps = new ArrayList();
+        for (Object ep : endpointMap.values()) {
+            eps.add(localizeEndpoint((Endpoint)ep));
+        }
+        return eps;
     }
 
     public void removeEndpoint(Endpoint endpoint) {