Author: rfeng
Date: Thu Mar 11 04:45:13 2010
New Revision: 921690

URL: http://svn.apache.org/viewvc?rev=921690&view=rev
Log:
Allows RMIHost to return mapped uri

Modified:
    
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
    
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
    
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
    
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
    
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
 Thu Mar 11 04:45:13 2010
@@ -77,7 +77,9 @@ public class RMIServiceBindingProvider i
 
         try {
 
-            rmiHost.registerService(binding.getURI(), rmiProxy);
+            String uri = rmiHost.registerService(binding.getURI(), rmiProxy);
+            // Update the binding with the physical URI
+            binding.setURI(uri);
 
         } catch (RMIHostException e) {
             throw new ServiceRuntimeException(e);

Modified: 
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
 Thu Mar 11 04:45:13 2010
@@ -102,6 +102,17 @@ public class DefaultProviderFactoryExten
         loadProviderFactories();
         return policyProviderFactories;
     }
+    
+    public <P extends ProviderFactory> Collection<P> 
getProviderFactories(Class<P> factoryType) {
+        loadProviderFactories();
+        List<P> factories = new ArrayList<P>();
+        for (ProviderFactory pf : providerFactories.values()) {
+            if (factoryType.isInstance(pf)) {
+                factories.add(factoryType.cast(pf));
+            }
+        }
+        return factories;
+    }
 
     /**
      * Load provider factories declared under META-INF/services.

Modified: 
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
 Thu Mar 11 04:45:13 2010
@@ -19,6 +19,7 @@
 
 package org.apache.tuscany.sca.provider;
 
+import java.util.Collection;
 import java.util.List;
 
 
@@ -60,4 +61,13 @@ public interface ProviderFactoryExtensio
      */
     List<PolicyProviderFactory> getPolicyProviderFactories();
     
+    /**
+     * Get a collection of provider factories by the factory type 
+     * @param <P>
+     * @param factoryType The factory type such as BindingProviderFactory
+     * @return a collection of provider factories of the factory type
+     */
+    <P extends ProviderFactory> Collection<P> getProviderFactories(Class<P> 
factoryType);
+
+    
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
 Thu Mar 11 04:45:13 2010
@@ -19,7 +19,9 @@
 
 package org.apache.tuscany.sca.host.rmi;
 
+import java.net.InetAddress;
 import java.net.URI;
+import java.net.UnknownHostException;
 import java.rmi.AlreadyBoundException;
 import java.rmi.NoSuchObjectException;
 import java.rmi.NotBoundException;
@@ -53,7 +55,7 @@ public class DefaultRMIHost implements R
         this.socketFactory = new RMISocketFactoryImpl(CONNECTION_TIMEOUT);
     }
     
-    public void registerService(String uri, Remote serviceObject) throws 
RMIHostException, RMIHostRuntimeException {
+    public String registerService(String uri, Remote serviceObject) throws 
RMIHostException, RMIHostRuntimeException {
         RMIURI rmiURI = new RMIURI(uri);
 
         Registry registry;
@@ -69,6 +71,7 @@ public class DefaultRMIHost implements R
             }
             registry.bind(rmiURI.serviceName, serviceObject);
             logger.info("RMI service registered: " + rmiURI);
+            return rmiURI.toString();
         } catch (AlreadyBoundException e) {
             throw new RMIHostException(e);
         } catch (RemoteException e) {
@@ -134,11 +137,14 @@ public class DefaultRMIHost implements R
         private String serviceName;
 
         private RMIURI(String uriStr) {
-            this.uriStr = uriStr;
             URI uri = URI.create(uriStr);
             host = uri.getHost();
             if (host == null) {
-                host = "localhost";
+                try {
+                    host = InetAddress.getLocalHost().getHostName();
+                } catch (UnknownHostException e) {
+                    host = "localhost";
+                }
             }
             port = uri.getPort();
             if (port <= 0) {
@@ -149,6 +155,7 @@ public class DefaultRMIHost implements R
                 path = path.substring(1);
             }
             serviceName = path;
+            this.uriStr = "rmi://" + host + ":" + port + "/" + serviceName;
         }
 
         public String toString() {

Modified: 
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
 Thu Mar 11 04:45:13 2010
@@ -35,16 +35,16 @@ public class ExtensibleRMIHost implement
         this.rmiHosts = rmiHosts;
     }
 
-    public void registerService(String uri, Remote serviceObject) throws 
RMIHostException, RMIHostRuntimeException {
+    public String registerService(String uri, Remote serviceObject) throws 
RMIHostException, RMIHostRuntimeException {
         if (rmiHosts.getRMIHosts().isEmpty()) {
-            throw new RMIHostException("No RMI host available");
+            throw new RMIHostException("No RMI host is available");
         }
-        getDefaultHost().registerService(uri, serviceObject);
+        return getDefaultHost().registerService(uri, serviceObject);
     }
 
     public void unregisterService(String uri) throws RMIHostException, 
RMIHostRuntimeException {
         if (rmiHosts.getRMIHosts().isEmpty()) {
-            throw new RMIHostException("No RMI host available");
+            throw new RMIHostException("No RMI host is available");
         }
         getDefaultHost().unregisterService(uri);
     }

Modified: 
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
 Thu Mar 11 04:45:13 2010
@@ -34,10 +34,11 @@ public interface RMIHost {
      *
      * @param uri the URI against which the server is to be registered
      * @param serviceObject the server object to be registered
+     * @return TODO
      * @throws RMIHostException
      * @throws RMIHostRuntimeException
      */
-    void registerService(String uri, Remote serviceObject) throws 
RMIHostException, RMIHostRuntimeException;
+    String registerService(String uri, Remote serviceObject) throws 
RMIHostException, RMIHostRuntimeException;
 
     /**
      * Unregister a service registered under the given service name and port 
number


Reply via email to