You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2010/01/29 04:34:27 UTC

svn commit: r904367 [2/2] - in /tuscany/sca-java-2.x/trunk: itest/nodes/one-jvm-hazelcast/src/test/java/itest/ itest/nodes/two-nodes-two-vms-test/ modules/assembly/src/main/resources/META-INF/services/ modules/binding-sca-runtime/src/main/java/org/apac...

Modified: tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/ReplicatedEndpointRegistry.java Fri Jan 29 03:34:21 2010
@@ -31,8 +31,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.StringTokenizer;
-import java.util.UUID;
-import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -46,23 +44,23 @@
 import org.apache.catalina.tribes.membership.StaticMember;
 import org.apache.catalina.tribes.transport.ReceiverBase;
 import org.apache.tuscany.sca.assembly.Endpoint;
-import org.apache.tuscany.sca.assembly.EndpointReference;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.LifeCycleListener;
 import org.apache.tuscany.sca.endpoint.tribes.AbstractReplicatedMap.MapEntry;
 import org.apache.tuscany.sca.endpoint.tribes.MapStore.MapListener;
-import org.apache.tuscany.sca.runtime.EndpointListener;
+import org.apache.tuscany.sca.runtime.BaseEndpointRegistry;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
 import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
 
 /**
  * A replicated EndpointRegistry based on Apache Tomcat Tribes
  */
-public class ReplicatedEndpointRegistry implements EndpointRegistry, LifeCycleListener, MapListener {
+public class ReplicatedEndpointRegistry extends BaseEndpointRegistry implements EndpointRegistry, LifeCycleListener,
+    MapListener {
     private final static Logger logger = Logger.getLogger(ReplicatedEndpointRegistry.class.getName());
     private static final String MULTICAST_ADDRESS = "228.0.0.100";
     private static final int MULTICAST_PORT = 50000;
-    
+
     private static final int FIND_REPEAT_COUNT = 10;
 
     private int port = MULTICAST_PORT;
@@ -73,12 +71,6 @@
     private int receiverAutoBind = 100;
     private List<URI> staticRoutes;
 
-    private final static String DEFAULT_DOMAIN_URI = "http://tuscany.apache.org/sca/1.1/domains/default";
-    private String domainURI = DEFAULT_DOMAIN_URI;
-    private List<EndpointReference> endpointreferences = new CopyOnWriteArrayList<EndpointReference>();
-    private List<EndpointListener> listeners = new CopyOnWriteArrayList<EndpointListener>();
-
-    private ExtensionPointRegistry registry;
     private ReplicatedMap map;
 
     private String id;
@@ -101,7 +93,7 @@
         } else {
             mcastService.setBind(getBindAddress());
         }
-        
+
         return channel;
     }
 
@@ -109,9 +101,7 @@
                                       Map<String, String> attributes,
                                       String domainRegistryURI,
                                       String domainURI) {
-        this.registry = registry;
-        this.domainURI = domainURI;
-        this.id = "[" + System.identityHashCode(this) + "]";
+        super(registry, attributes, domainRegistryURI, domainURI);
         getParameters(attributes, domainRegistryURI);
     }
 
@@ -220,7 +210,7 @@
             ((AbstractSender)sender).setMaxRetryAttempts(5);
         }
         */
-        
+
         if (staticRoutes != null) {
             StaticMembershipInterceptor smi = new StaticMembershipInterceptor();
             for (URI staticRoute : staticRoutes) {
@@ -237,7 +227,7 @@
             smi.setLocalMember(map.getChannel().getLocalMember(false));
             map.getChannel().addInterceptor(smi);
         }
-        
+
         try {
             map.getChannel().start(Channel.DEFAULT);
         } catch (ChannelException e) {
@@ -265,78 +255,14 @@
         logger.info("Add endpoint - " + endpoint);
     }
 
-    public void addEndpointReference(EndpointReference endpointReference) {
-        endpointreferences.add(endpointReference);
-        logger.fine("Add endpoint reference - " + endpointReference);
-    }
-
-    public void addListener(EndpointListener listener) {
-        listeners.add(listener);
-    }
-
-    /**
-     * Parse the component/service/binding URI into an array of parts (componentURI, serviceName, bindingName)
-     * @param uri
-     * @return
-     */
-    private String[] parse(String uri) {
-        String[] names = new String[3];
-        int index = uri.lastIndexOf('#');
-        if (index == -1) {
-            names[0] = uri;
-        } else {
-            names[0] = uri.substring(0, index);
-            String str = uri.substring(index + 1);
-            if (str.startsWith("service-binding(") && str.endsWith(")")) {
-                str = str.substring("service-binding(".length(), str.length() - 1);
-                String[] parts = str.split("/");
-                if (parts.length != 2) {
-                    throw new IllegalArgumentException("Invalid service-binding URI: " + uri);
-                }
-                names[1] = parts[0];
-                names[2] = parts[1];
-            } else if (str.startsWith("service(") && str.endsWith(")")) {
-                str = str.substring("service(".length(), str.length() - 1);
-                names[1] = str;
-            } else {
-                throw new IllegalArgumentException("Invalid component/service/binding URI: " + uri);
-            }
-        }
-        return names;
-    }
-
-    private boolean matches(String target, String uri) {
-        String[] parts1 = parse(target);
-        String[] parts2 = parse(uri);
-        for (int i = 0; i < parts1.length; i++) {
-            if (parts1[i] == null || parts1[i].equals(parts2[i])) {
-                continue;
-            } else {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    public List<Endpoint> findEndpoint(EndpointReference endpointReference) {
-        logger.fine("Find endpoint for reference - " + endpointReference);
-
-        if (endpointReference.getReference() != null) {
-            Endpoint targetEndpoint = endpointReference.getTargetEndpoint();
-            return findEndpoint(targetEndpoint.getURI());
-        }
-
-        return new ArrayList<Endpoint>();
-    }
-
     public List<Endpoint> findEndpoint(String uri) {
         List<Endpoint> foundEndpoints = new ArrayList<Endpoint>();
 
         // in the failure case we repeat the look up after a short
         // delay to take account of tribes replication delays
         int repeat = FIND_REPEAT_COUNT;
-        
-        while (repeat > 0){
+
+        while (repeat > 0) {
             for (Object v : map.values()) {
                 Endpoint endpoint = (Endpoint)v;
                 // TODO: implement more complete matching
@@ -347,15 +273,15 @@
                         endpoint.setRemote(true);
                     }
                     // if (!entry.isPrimary()) {
-                    ((RuntimeEndpoint) endpoint).bind(registry, this);
+                    ((RuntimeEndpoint)endpoint).bind(registry, this);
                     // }
                     foundEndpoints.add(endpoint);
                     logger.fine("Found endpoint with matching service  - " + endpoint);
                     repeat = 0;
-                } 
+                }
                 // else the service name doesn't match
             }
-            
+
             if (foundEndpoints.size() == 0) {
                 // the service name doesn't match any endpoints so wait a little and try
                 // again in case this is caused by tribes synch delays
@@ -363,9 +289,9 @@
                 repeat--;
                 try {
                     Thread.sleep(1000);
-                } catch(Exception ex){
+                } catch (Exception ex) {
                     // do nothing
-                    repeat=0;
+                    repeat = 0;
                 }
             }
         }
@@ -373,45 +299,23 @@
         return foundEndpoints;
     }
 
-
     private boolean isLocal(MapEntry entry) {
         return entry.getPrimary().equals(map.getChannel().getLocalMember(false));
     }
 
-    public List<EndpointReference> findEndpointReference(Endpoint endpoint) {
-        return endpointreferences;
-    }
-
     public Endpoint getEndpoint(String uri) {
         return (Endpoint)map.get(uri);
     }
 
-    public List<EndpointReference> getEndpointReferences() {
-        return endpointreferences;
-    }
-
     public List<Endpoint> getEndpoints() {
         return new ArrayList(map.values());
     }
 
-    public List<EndpointListener> getListeners() {
-        return listeners;
-    }
-
     public void removeEndpoint(Endpoint endpoint) {
         map.remove(endpoint.getURI());
         logger.info("Remove endpoint - " + endpoint);
     }
 
-    public void removeEndpointReference(EndpointReference endpointReference) {
-        endpointreferences.remove(endpointReference);
-        logger.fine("Remove endpoint reference - " + endpointReference);
-    }
-
-    public void removeListener(EndpointListener listener) {
-        listeners.remove(listener);
-    }
-
     public void replicate(boolean complete) {
         map.replicate(complete);
     }
@@ -431,10 +335,7 @@
             logger.info(id + " Remote endpoint added: " + entry.getValue());
             newEp.setRemote(true);
         }
-        ((RuntimeEndpoint) newEp).bind(registry, this);
-        for (EndpointListener listener : listeners) {
-            listener.endpointAdded(newEp);
-        }
+        endpointAdded(newEp);
     }
 
     public void entryRemoved(Object key, Object value) {
@@ -442,11 +343,7 @@
         if (!isLocal(entry)) {
             logger.info(id + " Remote endpoint removed: " + entry.getValue());
         }
-        Endpoint oldEp = (Endpoint)entry.getValue();
-        ((RuntimeEndpoint) oldEp).bind(registry, this);
-        for (EndpointListener listener : listeners) {
-            listener.endpointRemoved(oldEp);
-        }
+        endpointRemoved((Endpoint)entry.getValue());
     }
 
     public void entryUpdated(Object key, Object oldValue, Object newValue) {
@@ -457,46 +354,7 @@
         }
         Endpoint oldEp = (Endpoint)oldEntry.getValue();
         Endpoint newEp = (Endpoint)newEntry.getValue();
-        ((RuntimeEndpoint) newEp).bind(registry, this);
-        for (EndpointListener listener : listeners) {
-            listener.endpointUpdated(oldEp, newEp);
-        }
-    }
-
-    public static void main(String[] args) throws Exception {
-        //create a channel
-        GroupChannel channel = new GroupChannel();
-        McastService mcastService = (McastService)channel.getMembershipService();
-        mcastService.setPort(MULTICAST_PORT);
-        mcastService.setAddress(MULTICAST_ADDRESS);
-
-        
-//        ChannelReceiver rcv = channel.getChannelReceiver();
-//        ReceiverBase rcvb = (ReceiverBase)rcv;
-//        rcvb.setPort(10480);
-
-        InetAddress localhost = InetAddress.getLocalHost();
-
-        // REVIEW: In my case, there are multiple IP addresses
-        // One for the WIFI and the other one for VPN. For some reason the VPN one doesn't support
-        // Multicast
-
-        // You can use "route add 228.0.0.0 mask 252.0.0.0 192.168.1.100"
-        mcastService.setBind(getBindAddress());
-        channel.start(Channel.DEFAULT);
-        ReplicatedMap map = new ReplicatedMap(null, channel, 50, "01", null);
-        map.put(UUID.randomUUID().toString(), localhost.getHostAddress());
-        for (int i = 0; i < 4; i++) {
-            Thread.sleep(3000);
-            System.out.println(localhost + ": " + map.keySet());
-        }
-        for (Object e : map.entrySetFull()) {
-            Map.Entry en = (Map.Entry)e;
-            AbstractReplicatedMap.MapEntry entry = (AbstractReplicatedMap.MapEntry)en.getValue();
-            System.out.println(entry);
-        }
-        map.breakdown();
-        channel.stop(Channel.DEFAULT);
+        endpointUpdated(oldEp, newEp);
     }
 
     private static String getBindAddress() {

Added: tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/TribesDomainRegistryFactory.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/TribesDomainRegistryFactory.java?rev=904367&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/TribesDomainRegistryFactory.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/TribesDomainRegistryFactory.java Fri Jan 29 03:34:21 2010
@@ -0,0 +1,49 @@
+/*
+ * 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 org.apache.tuscany.sca.endpoint.tribes;
+
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.runtime.BaseDomainRegistryFactory;
+import org.apache.tuscany.sca.runtime.EndpointRegistry;
+
+/**
+ * The utility responsible for finding the endpoint regstry by the scheme and creating instances for the
+ * given domain
+ */
+public class TribesDomainRegistryFactory extends BaseDomainRegistryFactory {
+    private final static String[] schemes = new String[] {"multicast", "tribes"};
+
+    /**
+     * @param extensionRegistry
+     */
+    public TribesDomainRegistryFactory(ExtensionPointRegistry registry) {
+        super(registry);
+    }
+
+    protected EndpointRegistry createEndpointRegistry(String endpointRegistryURI, String domainURI) {
+        EndpointRegistry endpointRegistry =
+            new ReplicatedEndpointRegistry(registry, null, endpointRegistryURI, domainURI);
+        return endpointRegistry;
+    }
+
+    public String[] getSupportedSchemes() {
+        return schemes;
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/TribesDomainRegistryFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/java/org/apache/tuscany/sca/endpoint/tribes/TribesDomainRegistryFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory?rev=904367&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory (added)
+++ tuscany/sca-java-2.x/trunk/modules/endpoint-tribes/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory Fri Jan 29 03:34:21 2010
@@ -0,0 +1,17 @@
+# 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.
+org.apache.tuscany.sca.endpoint.tribes.TribesDomainRegistryFactory;ranking=50
\ No newline at end of file

Modified: tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/DistributedRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/DistributedRegistry.java?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/DistributedRegistry.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/DistributedRegistry.java Fri Jan 29 03:34:21 2010
@@ -23,6 +23,7 @@
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -223,7 +224,7 @@
         return endpointreferences;
     }
 
-    public List<Endpoint> getEndpoints() {
+    public Collection<Endpoint> getEndpoints() {
         return new ArrayList<Endpoint>(values());
     }
 

Added: tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/ZooKeeperDomainRegistryFactory.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/ZooKeeperDomainRegistryFactory.java?rev=904367&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/ZooKeeperDomainRegistryFactory.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/ZooKeeperDomainRegistryFactory.java Fri Jan 29 03:34:21 2010
@@ -0,0 +1,49 @@
+/*
+ * 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 org.apache.tuscany.sca.endpoint.zookeeper;
+
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.runtime.BaseDomainRegistryFactory;
+import org.apache.tuscany.sca.runtime.EndpointRegistry;
+
+/**
+ * The utility responsible for finding the endpoint regstry by the scheme and creating instances for the
+ * given domain
+ */
+public class ZooKeeperDomainRegistryFactory extends BaseDomainRegistryFactory {
+    private final static String[] schemes = new String[] {"zookeeper"};
+
+    /**
+     * @param extensionRegistry
+     */
+    public ZooKeeperDomainRegistryFactory(ExtensionPointRegistry registry) {
+        super(registry);
+    }
+
+    protected EndpointRegistry createEndpointRegistry(String endpointRegistryURI, String domainURI) {
+        EndpointRegistry endpointRegistry =
+            new DistributedRegistry(registry, null, endpointRegistryURI, domainURI);
+        return endpointRegistry;
+    }
+
+    public String[] getSupportedSchemes() {
+        return schemes;
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/ZooKeeperDomainRegistryFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/java/org/apache/tuscany/sca/endpoint/zookeeper/ZooKeeperDomainRegistryFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory?rev=904367&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory (added)
+++ tuscany/sca-java-2.x/trunk/modules/endpoint-zookeeper/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.DomainRegistryFactory Fri Jan 29 03:34:21 2010
@@ -0,0 +1,17 @@
+# 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.
+org.apache.tuscany.sca.endpoint.zookeeper.ZooKeeperDomainRegistryFactory;ranking=20
\ No newline at end of file

Modified: tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/service/discovery/impl/DomainDiscoveryService.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/service/discovery/impl/DomainDiscoveryService.java?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/service/discovery/impl/DomainDiscoveryService.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/service/discovery/impl/DomainDiscoveryService.java Fri Jan 29 03:34:21 2010
@@ -26,12 +26,12 @@
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.assembly.Implementation;
 import org.apache.tuscany.sca.core.LifeCycleListener;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.implementation.osgi.OSGiImplementation;
 import org.apache.tuscany.sca.node.configuration.NodeConfiguration;
 import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
 import org.apache.tuscany.sca.runtime.EndpointListener;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
+import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistry;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.remoteserviceadmin.EndpointDescription;
@@ -49,8 +49,7 @@
 
     public void start() {
         super.start();
-        this.domainRegistryFactory =
-            registry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(DomainRegistryFactory.class);
+        this.domainRegistryFactory = new ExtensibleDomainRegistry(registry);
         domainRegistryFactory.addListener(this);
 
         // [rfeng] Starting of the endpoint registry takes a long time and it leaves the bundle

Modified: tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java Fri Jan 29 03:34:21 2010
@@ -80,6 +80,7 @@
 import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
 import org.apache.tuscany.sca.runtime.EndpointReferenceBinder;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
+import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistry;
 import org.apache.tuscany.sca.work.WorkScheduler;
 import org.oasisopen.sca.ServiceRuntimeException;
 
@@ -297,7 +298,7 @@
     // autowire which still relies on matching in the builder
     private void postBuildEndpointReferenceMatching(Composite composite){
         EndpointReferenceBinder endpointReferenceBinder = registry.getExtensionPoint(EndpointReferenceBinder.class);
-        DomainRegistryFactory domainRegistryFactory = registry.getExtensionPoint(DomainRegistryFactory.class);
+        DomainRegistryFactory domainRegistryFactory = new ExtensibleDomainRegistry(registry);
         
         // create temporary local registry for all available local endpoints
         // TODO - need a better way of getting a local registry

Modified: tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java Fri Jan 29 03:34:21 2010
@@ -54,6 +54,7 @@
 import org.apache.tuscany.sca.runtime.CompositeActivator;
 import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
+import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistry;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
 import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
 import org.apache.tuscany.sca.runtime.RuntimeComponentService;
@@ -112,13 +113,13 @@
         manager.init();
         manager.addNode(configuration, this);
         this.proxyFactory = manager.proxyFactory;
-        UtilityExtensionPoint utilities = manager.registry.getExtensionPoint(UtilityExtensionPoint.class);
         
-        DomainRegistryFactory domainRegistryFactory = utilities.getUtility(DomainRegistryFactory.class);
+        DomainRegistryFactory domainRegistryFactory = new ExtensibleDomainRegistry(manager.registry);
         EndpointRegistry endpointRegistry =
             domainRegistryFactory.getEndpointRegistry(configuration.getDomainRegistryURI(), configuration
                 .getDomainURI());
-
+        
+        UtilityExtensionPoint utilities = manager.registry.getExtensionPoint(UtilityExtensionPoint.class);
         this.compositeActivator = utilities.getUtility(CompositeActivator.class);
         try {
             Monitor monitor = manager.monitorFactory.createMonitor();
@@ -370,8 +371,7 @@
     public List<String> getServiceNames() {
         List<String> serviceNames = new ArrayList<String>();
         ExtensionPointRegistry extensionsRegistry = getExtensionPoints();
-        UtilityExtensionPoint utilities = extensionsRegistry.getExtensionPoint(UtilityExtensionPoint.class);
-        DomainRegistryFactory domainRegistryFactory = utilities.getUtility(DomainRegistryFactory.class);
+        DomainRegistryFactory domainRegistryFactory = new ExtensibleDomainRegistry(extensionsRegistry);
         EndpointRegistry endpointRegistry = domainRegistryFactory.getEndpointRegistry(configuration.getDomainRegistryURI(), configuration.getDomainName());
         for (Endpoint endpoint : endpointRegistry.getEndpoints()) {
             // Would be nice if Endpoint.getURI() returned this:

Modified: tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java Fri Jan 29 03:34:21 2010
@@ -26,13 +26,13 @@
 
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.node.Node;
 import org.apache.tuscany.sca.node.NodeFactory;
 import org.apache.tuscany.sca.node.impl.NodeFactoryImpl;
 import org.apache.tuscany.sca.node.impl.NodeImpl;
 import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
+import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistry;
 import org.oasisopen.sca.NoSuchDomainException;
 import org.oasisopen.sca.NoSuchServiceException;
 import org.oasisopen.sca.client.SCAClientFactory;
@@ -53,8 +53,7 @@
         
         this.nodeFactory = (NodeFactoryImpl)NodeFactory.getInstance();
         this.extensionsRegistry = nodeFactory.getExtensionPoints();
-        UtilityExtensionPoint utilities = extensionsRegistry.getExtensionPoint(UtilityExtensionPoint.class);
-        DomainRegistryFactory domainRegistryFactory = utilities.getUtility(DomainRegistryFactory.class);
+        DomainRegistryFactory domainRegistryFactory = new ExtensibleDomainRegistry(extensionsRegistry);
         this.endpointRegistry = domainRegistryFactory.getEndpointRegistry(null, getDomainURI().toString()); // TODO: shouldnt use null for reg uri
         // TODO: if there is not an existing endpoint registry for the domain URI the
         //       this should create an endpoint registry client for the remote domain (eg hazelcast native client)

Modified: tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator (original)
+++ tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator Fri Jan 29 03:34:21 2010
@@ -15,4 +15,4 @@
 # specific language governing permissions and limitations
 # under the License.
 # Implementation class for the ModuleActivator
-org.apache.tuscany.sca.client.impl.SCAClientModuleActivator;priority=100
+org.apache.tuscany.sca.client.impl.SCAClientModuleActivator;ranking=100

Modified: tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/resources/META-INF/services/org.oasisopen.sca.client.SCAClientFactory
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/resources/META-INF/services/org.oasisopen.sca.client.SCAClientFactory?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/resources/META-INF/services/org.oasisopen.sca.client.SCAClientFactory (original)
+++ tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/resources/META-INF/services/org.oasisopen.sca.client.SCAClientFactory Fri Jan 29 03:34:21 2010
@@ -1,2 +1,18 @@
+# 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.
+# Implementation class for the ModuleActivator
 org.apache.tuscany.sca.client.impl.SCAClientFactoryImpl
-

Modified: tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientFactoryImpl.java?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientFactoryImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientFactoryImpl.java Fri Jan 29 03:34:21 2010
@@ -26,13 +26,13 @@
 
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.node.Node;
 import org.apache.tuscany.sca.node.NodeFactory;
 import org.apache.tuscany.sca.node.impl.NodeFactoryImpl;
 import org.apache.tuscany.sca.node.impl.NodeImpl;
 import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
+import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistry;
 import org.oasisopen.sca.NoSuchDomainException;
 import org.oasisopen.sca.NoSuchServiceException;
 import org.oasisopen.sca.client.SCAClientFactory;
@@ -54,9 +54,9 @@
         this.nodeFactory = (NodeFactoryImpl)NodeFactory.getInstance();
         this.extensionsRegistry = nodeFactory.getExtensionPoints();
         if (extensionsRegistry != null) {
-            UtilityExtensionPoint utilities = extensionsRegistry.getExtensionPoint(UtilityExtensionPoint.class);
-            DomainRegistryFactory domainRegistryFactory = utilities.getUtility(DomainRegistryFactory.class);
-            this.endpointRegistry = domainRegistryFactory.getEndpointRegistry(getRegistryURI(), getDomainName()); 
+            this.extensionsRegistry = nodeFactory.getExtensionPoints();
+            DomainRegistryFactory domainRegistryFactory = new ExtensibleDomainRegistry(extensionsRegistry);
+            this.endpointRegistry = domainRegistryFactory.getEndpointRegistry(getRegistryURI(), getDomainName());
         }
     }   
     

Modified: tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientProxyHandler.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientProxyHandler.java?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientProxyHandler.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientProxyHandler.java Fri Jan 29 03:34:21 2010
@@ -30,7 +30,6 @@
 import org.apache.tuscany.sca.binding.rmi.provider.RMIBindingInvoker;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.host.rmi.ExtensibleRMIHost;
 import org.apache.tuscany.sca.host.rmi.RMIHost;
 import org.apache.tuscany.sca.host.rmi.RMIHostExtensionPoint;
@@ -39,6 +38,7 @@
 import org.apache.tuscany.sca.node.impl.NodeFactoryImpl;
 import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
+import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistry;
 import org.oasisopen.sca.NoSuchServiceException;
 
 public class SCAClientProxyHandler implements InvocationHandler {
@@ -75,8 +75,7 @@
             Endpoint targetEndpoint = assemblyFactory.createEndpoint();
             targetEndpoint.setURI(serviceName);
             endpointReference.setTargetEndpoint(targetEndpoint);
-            UtilityExtensionPoint utilities = extensionsRegistry.getExtensionPoint(UtilityExtensionPoint.class);
-            DomainRegistryFactory domainRegistryFactory = utilities.getUtility(DomainRegistryFactory.class);
+            DomainRegistryFactory domainRegistryFactory = new ExtensibleDomainRegistry(extensionsRegistry);
             this.endpointRegistry = domainRegistryFactory.getEndpointRegistry(null, domainURI);
 
             List<Endpoint> endpoints = endpointRegistry.findEndpoint(endpointReference);

Modified: tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator (original)
+++ tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator Fri Jan 29 03:34:21 2010
@@ -15,4 +15,4 @@
 # specific language governing permissions and limitations
 # under the License.
 # Implementation class for the ModuleActivator
-org.apache.tuscany.sca.client.rmi.SCAClientModuleActivator;priority=200
+org.apache.tuscany.sca.client.rmi.SCAClientModuleActivator;ranking=200

Modified: tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/resources/META-INF/services/org.oasisopen.sca.client.SCAClientFactory
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/resources/META-INF/services/org.oasisopen.sca.client.SCAClientFactory?rev=904367&r1=904366&r2=904367&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/resources/META-INF/services/org.oasisopen.sca.client.SCAClientFactory (original)
+++ tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/resources/META-INF/services/org.oasisopen.sca.client.SCAClientFactory Fri Jan 29 03:34:21 2010
@@ -1,2 +1,19 @@
+# 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.
+# Implementation class for the ModuleActivator
 org.apache.tuscany.sca.client.rmi.SCAClientFactoryImpl