You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/09/29 02:50:23 UTC

svn commit: r699932 - in /tuscany/branches/sca-equinox: demos/bigbank-calculator/src/main/resources/ demos/bigbank/src/main/resources/ modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/ modules/assembly-xsd/src/main/resources/...

Author: jsdelfino
Date: Sun Sep 28 17:50:22 2008
New Revision: 699932

URL: http://svn.apache.org/viewvc?rev=699932&view=rev
Log:
Ported from trunk and simplified. Support the rmi:// uri for binding.rmi.

Modified:
    tuscany/branches/sca-equinox/demos/bigbank-calculator/src/main/resources/Calculator.composite
    tuscany/branches/sca-equinox/demos/bigbank/src/main/resources/BigBank.composite
    tuscany/branches/sca-equinox/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite
    tuscany/branches/sca-equinox/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-rmi.xsd
    tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java
    tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIReferenceBindingProvider.java
    tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
    tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/test/resources/RMIBindingTest.composite
    tuscany/branches/sca-equinox/modules/binding-rmi/src/main/java/org/apache/tuscany/sca/binding/rmi/RMIBinding.java
    tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
    tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
    tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
    tuscany/branches/sca-equinox/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java
    tuscany/branches/sca-equinox/samples/calculator-rmi-reference/src/main/resources/CalculatorRMIReference.composite
    tuscany/branches/sca-equinox/samples/calculator-rmi-service/src/main/resources/CalculatorRMIServer.composite
    tuscany/branches/sca-equinox/samples/simple-bigbank-spring/src/main/resources/BigBank.composite
    tuscany/branches/sca-equinox/samples/spring-bigbank-calculator/src/main/resources/Calculator.composite
    tuscany/branches/sca-equinox/tools/eclipse34/plugins/core/xsd/tuscany-sca-binding-rmi.xsd

Modified: tuscany/branches/sca-equinox/demos/bigbank-calculator/src/main/resources/Calculator.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/demos/bigbank-calculator/src/main/resources/Calculator.composite?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/demos/bigbank-calculator/src/main/resources/Calculator.composite (original)
+++ tuscany/branches/sca-equinox/demos/bigbank-calculator/src/main/resources/Calculator.composite Sun Sep 28 17:50:22 2008
@@ -27,7 +27,7 @@
 		<implementation.java class="calculator.CalculatorServiceImpl"/>
 		
 	    <service name="CalculatorService">
-	        <tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/>
+	        <tuscany:binding.rmi uri="rmi://localhost:8099/CalculatorRMIService"/>
 	    </service>
 
         <reference name="addService" target="AddServiceComponent" />

Modified: tuscany/branches/sca-equinox/demos/bigbank/src/main/resources/BigBank.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/demos/bigbank/src/main/resources/BigBank.composite?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/demos/bigbank/src/main/resources/BigBank.composite (original)
+++ tuscany/branches/sca-equinox/demos/bigbank/src/main/resources/BigBank.composite Sun Sep 28 17:50:22 2008
@@ -45,7 +45,7 @@
         <reference name="stockAcService" target="StockAccountServiceComponent"/>
         
         <reference name="calculatorService">
-            <tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/>
+            <tuscany:binding.rmi uri="rmi://localhost:8099/CalculatorRMIService"/>
         </reference>
         <reference name="stockQuoteService" requires="integrity">
             <binding.ws uri="http://localhost:8081/services/StockQuoteWebService"/>

Modified: tuscany/branches/sca-equinox/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite (original)
+++ tuscany/branches/sca-equinox/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite Sun Sep 28 17:50:22 2008
@@ -23,7 +23,7 @@
 
 	<service name="HelloWorldRmiService" promote="HelloWorldServiceComponent">
         <interface.java interface="helloworld.HelloWorldService"/>
-        <tuscany:binding.rmi host="localhost" port="8099" serviceName="HelloWorldRemoteService"   />
+        <tuscany:binding.rmi uri="rmi://localhost:8099/HelloWorldRemoteService"   />
     </service>
       
     <component name="HelloWorldServiceComponent">
@@ -37,7 +37,7 @@
            
   	<reference name="HelloWorldRmiReference" promote="HelloWorldRmiServiceComponent/extService">
         <interface.java interface="helloworld.HelloWorldService"/>
-        <tuscany:binding.rmi host="localhost" port="8099" serviceName="HelloWorldRemoteService"   />
+        <tuscany:binding.rmi uri="rmi://localhost:8099/HelloWorldRemoteService"   />
     </reference>
 
 </composite>

Modified: tuscany/branches/sca-equinox/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-rmi.xsd
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-rmi.xsd?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-rmi.xsd (original)
+++ tuscany/branches/sca-equinox/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-rmi.xsd Sun Sep 28 17:50:22 2008
@@ -34,9 +34,6 @@
                     <any namespace="##targetNamespace" processContents="lax" minOccurs="0"
                          maxOccurs="unbounded"/>
                 </sequence>
-			 <attribute name="host" type="anyURI" use="optional"/>
-			 <attribute name="port" type="int" use="optional"/>
-			 <attribute name="serviceName" type="anyURI" use="required"/>
             </extension>
         </complexContent>
     </complexType>

Modified: tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java (original)
+++ tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java Sun Sep 28 17:50:22 2008
@@ -35,18 +35,14 @@
 public class RMIBindingInvoker implements Invoker, DataExchangeSemantics {
 
     private RMIHost rmiHost;
-    private String host;
-    private String port;
-    private String svcName;
+    private String uri;
     private Method remoteMethod;
     private Remote proxy;
 
-    public RMIBindingInvoker(RMIHost rmiHost, String host, String port, String svcName, Method remoteMethod) {
+    public RMIBindingInvoker(RMIHost rmiHost, String uri, Method remoteMethod) {
         this.rmiHost = rmiHost;
         this.remoteMethod = remoteMethod;
-        this.host = host;
-        this.port = port;
-        this.svcName = svcName;
+        this.uri = uri;
     }
 
     public Message invoke(Message msg) {
@@ -67,8 +63,7 @@
 
     public Object invokeTarget(final Object payload) throws InvocationTargetException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException {
         if (proxy == null) {
-            proxy = rmiHost.findService(host, port, svcName);
-            // proxy = Naming.lookup(serviceURI);
+            proxy = rmiHost.findService(uri);
         }
 
         remoteMethod = proxy.getClass().getMethod(remoteMethod.getName(), remoteMethod.getParameterTypes());

Modified: tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIReferenceBindingProvider.java?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIReferenceBindingProvider.java (original)
+++ tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIReferenceBindingProvider.java Sun Sep 28 17:50:22 2008
@@ -65,7 +65,7 @@
             throw new IllegalArgumentException(e);
         }
 
-        return new RMIBindingInvoker(rmiHost, binding.getHost(), binding.getPort(), binding.getServiceName(), remoteMethod);
+        return new RMIBindingInvoker(rmiHost, binding.getURI(), remoteMethod);
     }
 
     public void start() {

Modified: tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java (original)
+++ tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java Sun Sep 28 17:50:22 2008
@@ -79,7 +79,7 @@
 
         try {
 
-            rmiHost.registerService(binding.getServiceName(), getPort(binding.getPort()), rmiProxy);
+            rmiHost.registerService(binding.getURI(), rmiProxy);
 
         } catch (RMIHostException e) {
             throw new ServiceRuntimeException(e);
@@ -87,7 +87,7 @@
     }
 
     public void stop() {
-        rmiHost.unregisterService(binding.getServiceName(), getPort(binding.getPort()));
+        rmiHost.unregisterService(binding.getURI());
     }
 
     private int getPort(String port) {

Modified: tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/test/resources/RMIBindingTest.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/test/resources/RMIBindingTest.composite?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/test/resources/RMIBindingTest.composite (original)
+++ tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/test/resources/RMIBindingTest.composite Sun Sep 28 17:50:22 2008
@@ -23,7 +23,7 @@
 
 	<service name="HelloWorldRmiService" promote="HelloWorldServiceComponent">
         <interface.java interface="helloworld.HelloWorldService"/>
-        <tuscany:binding.rmi host="localhost" port="8099" serviceName="HelloWorldRemoteService"   />
+        <tuscany:binding.rmi uri="rmi://localhost:8099/HelloWorldRemoteService"   />
     </service>
       
     <component name="HelloWorldServiceComponent">
@@ -37,7 +37,7 @@
            
   	<reference name="HelloWorldRmiReference" promote="HelloWorldRmiServiceComponent/extService">
         <interface.java interface="helloworld.HelloWorldService"/>
-        <tuscany:binding.rmi host="localhost" port="8099" serviceName="HelloWorldRemoteService"   />
+        <tuscany:binding.rmi uri="rmi://localhost:8099/HelloWorldRemoteService"   />
     </reference>
 
 </composite>

Modified: tuscany/branches/sca-equinox/modules/binding-rmi/src/main/java/org/apache/tuscany/sca/binding/rmi/RMIBinding.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rmi/src/main/java/org/apache/tuscany/sca/binding/rmi/RMIBinding.java?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rmi/src/main/java/org/apache/tuscany/sca/binding/rmi/RMIBinding.java (original)
+++ tuscany/branches/sca-equinox/modules/binding-rmi/src/main/java/org/apache/tuscany/sca/binding/rmi/RMIBinding.java Sun Sep 28 17:50:22 2008
@@ -27,56 +27,9 @@
  */
 public class RMIBinding implements Binding {
 
-    private String host;
-    private String port;
-    private String serviceName;
     private String uri;
     private String name;
 
-    /**
-     * @return the host name of the RMI Service
-     */
-    public String getHost() {
-        return host;
-    }
-
-    /**
-     * @param rmiHostName the hostname of the RMI Service
-     */
-    public void setHost(String rmiHostName) {
-        this.host = rmiHostName;
-    }
-
-    /**
-     * @return the port number for the RMI Service
-     */
-    public String getPort() {
-        return port;
-    }
-
-    /**
-     * @param rmiPort the port number for the RMI Service
-     */
-    public void setPort(String rmiPort) {
-        this.port = rmiPort;
-    }
-
-    /**
-     * @return returns the RMI Service Name
-     */
-    public String getServiceName() {
-        return serviceName;
-    }
-
-    /**
-     * Sets the service name for the RMI Server
-     * 
-     * @param rmiServiceName the name of the RMI service
-     */
-    public void setServiceName(String rmiServiceName) {
-        this.serviceName = rmiServiceName;
-    }
-    
     public String getURI() {
         return uri;
     }

Modified: tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java (original)
+++ tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java Sun Sep 28 17:50:22 2008
@@ -19,6 +19,7 @@
 
 package org.apache.tuscany.sca.host.rmi;
 
+import java.net.URI;
 import java.rmi.AlreadyBoundException;
 import java.rmi.NotBoundException;
 import java.rmi.Remote;
@@ -35,7 +36,7 @@
  */
 public class DefaultRMIHost implements RMIHost {
 
-    //map of RMI registries started and running
+    // Map of RMI registries started and running
     private Map<String, Registry> rmiRegistries;
 
     public DefaultRMIHost() {
@@ -45,21 +46,22 @@
          */
     }
 
-    public void registerService(String serviceName, int port, Remote serviceObject) throws RMIHostException,
-        RMIHostRuntimeException {
+    public void registerService(String uri, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException {
+        RMIURI rmiURI = new RMIURI(uri);
+        
         Registry registry;
         try {
-            registry = rmiRegistries.get(Integer.toString(port));
+            registry = rmiRegistries.get(Integer.toString(rmiURI.port));
             if (registry == null) {
                 try {
-                    registry = LocateRegistry.getRegistry(port);
+                    registry = LocateRegistry.getRegistry(rmiURI.port);
                     registry.list();
                 } catch (RemoteException e) {
-                    registry = LocateRegistry.createRegistry(port);
+                    registry = LocateRegistry.createRegistry(rmiURI.port);
                 }
-                rmiRegistries.put(Integer.toString(port), registry);
+                rmiRegistries.put(Integer.toString(rmiURI.port), registry);
             }
-            registry.bind(serviceName, serviceObject);
+            registry.bind(rmiURI.serviceName, serviceObject);
         } catch (AlreadyBoundException e) {
             throw new RMIHostException(e);
         } catch (RemoteException e) {
@@ -70,21 +72,16 @@
 
     }
 
-    public void registerService(String serviceName, Remote serviceObject) throws RMIHostException,
-        RMIHostRuntimeException {
-        registerService(serviceName, RMI_DEFAULT_PORT, serviceObject);
-    }
-
-    public void unregisterService(String serviceName, int port) throws RMIHostException, RMIHostRuntimeException {
-        Registry registry;
+    public void unregisterService(String uri) throws RMIHostException, RMIHostRuntimeException {
+        RMIURI rmiURI = new RMIURI(uri);
 
         try {
-            registry = rmiRegistries.get(Integer.toString(port));
+            Registry registry = rmiRegistries.get(Integer.toString(rmiURI.port));
             if (registry == null) {
-                registry = LocateRegistry.getRegistry(port);
-                rmiRegistries.put(Integer.toString(port), registry);
+                registry = LocateRegistry.getRegistry(rmiURI.port);
+                rmiRegistries.put(Integer.toString(rmiURI.port), registry);
             }
-            registry.unbind(serviceName);
+            registry.unbind(rmiURI.serviceName);
         } catch (RemoteException e) {
             RMIHostRuntimeException rmiExec = new RMIHostRuntimeException(e.getMessage());
             rmiExec.setStackTrace(e.getStackTrace());
@@ -94,25 +91,17 @@
         }
     }
 
-    public void unregisterService(String serviceName) throws RMIHostException, RMIHostRuntimeException {
-        unregisterService(serviceName, RMI_DEFAULT_PORT);
-
-    }
-
-    public Remote findService(String host, String port, String svcName) throws RMIHostException,
-        RMIHostRuntimeException {
-        Registry registry;
+    public Remote findService(String uri) throws RMIHostException, RMIHostRuntimeException {
+        RMIURI rmiURI = new RMIURI(uri);
+        
         Remote remoteService = null;
-        host = (host == null || host.length() <= 0) ? "localhost" : host;
-        int portNumber = (port == null || port.length() <= 0) ? RMI_DEFAULT_PORT : Integer.decode(port);
-
         try {
             // Requires permission java.net.SocketPermission "host:port", "connect,accept,resolve"
             // in security policy.
-            registry = LocateRegistry.getRegistry(host, portNumber);
+            Registry registry = LocateRegistry.getRegistry(rmiURI.host, rmiURI.port);
 
             if (registry != null) {
-                remoteService = registry.lookup(svcName);
+                remoteService = registry.lookup(rmiURI.serviceName);
             }
         } catch (RemoteException e) {
             RMIHostRuntimeException rmiExec = new RMIHostRuntimeException(e.getMessage());
@@ -124,4 +113,33 @@
         return remoteService;
     }
 
+    /**
+     * A representation of an RMI URI.
+     * 
+     * rmi://[host][:port][/[object]]
+     * rmi:[/][object]
+     */
+    private static class RMIURI {
+        private String host;
+        private int port;
+        private String serviceName;
+        
+        private RMIURI(String uriStr) {
+            URI uri = URI.create(uriStr);
+            host = uri.getHost();
+            if (host == null) {
+                host = "localhost";
+            }
+            port = uri.getPort();
+            if (port <= 0) {
+                port = RMI_DEFAULT_PORT;
+            }
+            String path = uri.getPath();
+            if (path != null && path.charAt(0) == '/') {
+                path = path.substring(1);
+            }
+            serviceName = path;
+        }
+    }
+    
 }

Modified: tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java (original)
+++ tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java Sun Sep 28 17:50:22 2008
@@ -35,39 +35,25 @@
         this.rmiHosts = rmiHosts;
     }
     
-    public void registerService(String serviceName, int port, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException {
+    public void registerService(String uri, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException {
         if (rmiHosts.getRMIHosts().isEmpty()) {
             throw new RMIHostException("No RMI host available");
         }
-        rmiHosts.getRMIHosts().get(0).registerService(serviceName, port, serviceObject);
+        rmiHosts.getRMIHosts().get(0).registerService(uri, serviceObject);
     }
     
-    public Remote findService(String host, String port, String svcName) throws RMIHostException, RMIHostRuntimeException {
+    public void unregisterService(String uri) throws RMIHostException, RMIHostRuntimeException {
         if (rmiHosts.getRMIHosts().isEmpty()) {
             throw new RMIHostException("No RMI host available");
         }
-        return rmiHosts.getRMIHosts().get(0).findService(host, port, svcName);
+        rmiHosts.getRMIHosts().get(0).unregisterService(uri);
     }
     
-    public void registerService(String serviceName, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException {
+    public Remote findService(String uri) throws RMIHostException, RMIHostRuntimeException {
         if (rmiHosts.getRMIHosts().isEmpty()) {
             throw new RMIHostException("No RMI host available");
         }
-        rmiHosts.getRMIHosts().get(0).registerService(serviceName, serviceObject);
+        return rmiHosts.getRMIHosts().get(0).findService(uri);
     }
     
-    public void unregisterService(String serviceName) throws RMIHostException, RMIHostRuntimeException {
-        if (rmiHosts.getRMIHosts().isEmpty()) {
-            throw new RMIHostException("No RMI host available");
-        }
-        rmiHosts.getRMIHosts().get(0).unregisterService(serviceName);
-    }
-    
-    public void unregisterService(String serviceName, int port) throws RMIHostException, RMIHostRuntimeException {
-        if (rmiHosts.getRMIHosts().isEmpty()) {
-            throw new RMIHostException("No RMI host available");
-        }
-        rmiHosts.getRMIHosts().get(0).unregisterService(serviceName, port);
-    }
-
 }

Modified: tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java (original)
+++ tuscany/branches/sca-equinox/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java Sun Sep 28 17:50:22 2008
@@ -32,59 +32,30 @@
     /**
      * Register an RMI service with the given name and port
      * 
-     * @param serviceName against which the server is to be registered
-     * @param port the port against which the server is to be registered
+     * @param uri the URI against which the server is to be registered
      * @param serviceObject the server object to be registered
      * @throws RMIHostException
      * @throws RMIHostRuntimeException
      */ 
-    void registerService(String serviceName, int port, Remote serviceObject) throws RMIHostException,
-                                                                                    RMIHostRuntimeException;
-
-    /**
-     * Register an RMI service with the given name and default port (1099)
-     * 
-     * @param serviceName serviceName against which the server is to be registered
-     * @param serviceObject the server object to be registered
-     * @throws RMIHostException
-     * @throws RMIHostRuntimeException
-     */
-    void registerService(String serviceName, Remote serviceObject) throws RMIHostException,
-                                                                          RMIHostRuntimeException;
+    void registerService(String uri, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException;
 
     /**
      * Unregister a service registered under the given service name and port number
      * 
-     * @param serviceName serviceName against which the server is to be registered
-     * @param port the port against which the server is to be registered
+     * @param uri the URI of the server
      * @throws RMIHostException
      * @throws RMIHostRuntimeException
      */
-    void unregisterService(String serviceName, int port) throws RMIHostException,
-                                                                RMIHostRuntimeException;
-
-    /**
-     * Unregister a service registered under the given service name and default port number (1099)
-     * 
-     * @param serviceName the name of the service that has to be unregistered
-     * @throws RMIHostException
-     * @throws RMIHostRuntimeException
-     */
-    void unregisterService(String serviceName) throws RMIHostException,
-                                                      RMIHostRuntimeException;
-
+    void unregisterService(String uri) throws RMIHostException, RMIHostRuntimeException;
 
     /**
      * find a remote service hosted on the given host, port and service name
      * 
-     * @param host the name of the host on which the RMI service to be unregistered is running
-     * @param port the port against which the server is to be unregistered is running
-     * @param svcName serviceName against which the server is to be unregistered is running
+     * @param uri the URI of the service
      * @return the RMI server object 
      * @throws RMIHostException
      * @throws RMIHostRuntimeException
      */
-    Remote findService(String host, String port, String svcName) throws RMIHostException,
-                                                                        RMIHostRuntimeException;
+    Remote findService(String uri) throws RMIHostException, RMIHostRuntimeException;
 
 }

Modified: tuscany/branches/sca-equinox/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java Sun Sep 28 17:50:22 2008
@@ -36,7 +36,7 @@
 
     public void testFindServiceBadHost() throws RMIHostRuntimeException, RMIHostException {
         try {
-            new DefaultRMIHost().findService(null, "9994", "$BAD$");
+            new DefaultRMIHost().findService("rmi://locahost:9994/$BAD$");
             fail();
         } catch (RMIHostRuntimeException e) {
             // expected
@@ -45,40 +45,40 @@
 
     public void testRegisterService1() throws RMIHostRuntimeException, RMIHostException {
         DefaultRMIHost host = new DefaultRMIHost();
-        host.registerService("foo1", 9996, new MockRemote());
-        host.unregisterService("foo1", 9996);
+        host.registerService("rmi://localhost:9996/foo1", new MockRemote());
+        host.unregisterService("rmi://localhost:9996/foo1");
     }
 
     public void testExistingRegistry() throws RMIHostRuntimeException, RMIHostException {
         DefaultRMIHost host1 = new DefaultRMIHost();
-        host1.registerService("foo1", 9995, new MockRemote());
+        host1.registerService("rmi://localhost:9995/foo1", new MockRemote());
         DefaultRMIHost host2 = new DefaultRMIHost();
-        host2.registerService("foo2", 9995, new MockRemote());
-        host2.unregisterService("foo1", 9995);
-        host2.unregisterService("foo2", 9995);
+        host2.registerService("rmi://localhost:9995/foo2", new MockRemote());
+        host2.unregisterService("rmi://localhost:9995/foo1");
+        host2.unregisterService("rmi://localhost:9995/foo2");
     }
 
     public void testRegisterService2() throws RMIHostRuntimeException, RMIHostException {
         DefaultRMIHost host = new DefaultRMIHost();
-        host.registerService("bar1", 9999, new MockRemote());
-        host.unregisterService("bar1", 9999);
+        host.registerService("rmi://localhost:9999/bar1", new MockRemote());
+        host.unregisterService("rmi://localhost:9999/bar1");
     }
 
     public void testRegisterServiceAlreadyBound() throws RMIHostRuntimeException, RMIHostException {
         DefaultRMIHost host = new DefaultRMIHost();
-        host.registerService("bar2", 9997, new MockRemote());
+        host.registerService("rmi://localhost:9997/bar2", new MockRemote());
         try {
-            host.registerService("bar2", 9997, new MockRemote());
+            host.registerService("rmi://localhost:9997/bar2", new MockRemote());
         } catch (RMIHostException e) {
             // expected
-            host.unregisterService("bar2", 9997);
+            host.unregisterService("rmi://localhost:9997/bar2");
         }
     }
 
     public void testUnRegisterService() throws RMIHostRuntimeException, RMIHostException {
         DefaultRMIHost host = new DefaultRMIHost();
         try {
-            host.unregisterService("bar3", 9998);
+            host.unregisterService("rmi://localhost:9998/bar3");
             fail();
         } catch (RMIHostRuntimeException e) {
             // expected

Modified: tuscany/branches/sca-equinox/samples/calculator-rmi-reference/src/main/resources/CalculatorRMIReference.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/calculator-rmi-reference/src/main/resources/CalculatorRMIReference.composite?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/calculator-rmi-reference/src/main/resources/CalculatorRMIReference.composite (original)
+++ tuscany/branches/sca-equinox/samples/calculator-rmi-reference/src/main/resources/CalculatorRMIReference.composite Sun Sep 28 17:50:22 2008
@@ -26,16 +26,16 @@
     <component name="CalculatorServiceComponent">
 		<implementation.java class="calculator.CalculatorServiceImpl"/>
 		<reference name="addService">
-	    	<tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/>
+	    	<tuscany:binding.rmi uri="rmi://localhost:8099/CalculatorRMIService"/>
 		</reference>
         <reference name="subtractService">
-    		<tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/>
+	    	<tuscany:binding.rmi uri="rmi://localhost:8099/CalculatorRMIService"/>
         </reference>
         <reference name="multiplyService">
-    		<tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/>
+	    	<tuscany:binding.rmi uri="rmi://localhost:8099/CalculatorRMIService"/>
         </reference>
         <reference name="divideService">
-    		<tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/>
+	    	<tuscany:binding.rmi uri="rmi://localhost:8099/CalculatorRMIService"/>
         </reference>
     </component>
     

Modified: tuscany/branches/sca-equinox/samples/calculator-rmi-service/src/main/resources/CalculatorRMIServer.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/calculator-rmi-service/src/main/resources/CalculatorRMIServer.composite?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/calculator-rmi-service/src/main/resources/CalculatorRMIServer.composite (original)
+++ tuscany/branches/sca-equinox/samples/calculator-rmi-service/src/main/resources/CalculatorRMIServer.composite Sun Sep 28 17:50:22 2008
@@ -27,7 +27,7 @@
 		<implementation.java class="calculator.CalculatorServiceImpl"/>
 	    <service name="CalculatorService">
 	        <interface.java interface="calculator.CalculatorService"/>
-	        <tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/>
+	        <tuscany:binding.rmi uri="rmi://localhost:8099/CalculatorRMIService"/>
 	    </service>
 		<reference name="addService" target="AddServiceComponent"></reference>
         <reference name="subtractService" target="SubtractServiceComponent"></reference>

Modified: tuscany/branches/sca-equinox/samples/simple-bigbank-spring/src/main/resources/BigBank.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/simple-bigbank-spring/src/main/resources/BigBank.composite?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/simple-bigbank-spring/src/main/resources/BigBank.composite (original)
+++ tuscany/branches/sca-equinox/samples/simple-bigbank-spring/src/main/resources/BigBank.composite Sun Sep 28 17:50:22 2008
@@ -53,7 +53,7 @@
         <reference name="stockAccountService" target="StockAccountServiceComponent"/>
         
         <reference name="calculatorService">
-            <tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/>
+            <tuscany:binding.rmi uri="rmi://localhost:8099/CalculatorRMIService"/>
         </reference>      
         
         <reference name="stockQuoteService">

Modified: tuscany/branches/sca-equinox/samples/spring-bigbank-calculator/src/main/resources/Calculator.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/spring-bigbank-calculator/src/main/resources/Calculator.composite?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/spring-bigbank-calculator/src/main/resources/Calculator.composite (original)
+++ tuscany/branches/sca-equinox/samples/spring-bigbank-calculator/src/main/resources/Calculator.composite Sun Sep 28 17:50:22 2008
@@ -25,7 +25,7 @@
 	
 	<service name="CalculatorService" promote="CalculatorServiceComponent">
 	    <interface.java interface="bigbank.calculator.CalculatorService"/>
-        <tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/>
+        <tuscany:binding.rmi uri="rmi://localhost:8099/CalculatorRMIService"/>
     </service>
 
     <component name="CalculatorServiceComponent">

Modified: tuscany/branches/sca-equinox/tools/eclipse34/plugins/core/xsd/tuscany-sca-binding-rmi.xsd
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/tools/eclipse34/plugins/core/xsd/tuscany-sca-binding-rmi.xsd?rev=699932&r1=699931&r2=699932&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/tools/eclipse34/plugins/core/xsd/tuscany-sca-binding-rmi.xsd (original)
+++ tuscany/branches/sca-equinox/tools/eclipse34/plugins/core/xsd/tuscany-sca-binding-rmi.xsd Sun Sep 28 17:50:22 2008
@@ -34,9 +34,6 @@
                     <any namespace="##targetNamespace" processContents="lax" minOccurs="0"
                          maxOccurs="unbounded"/>
                 </sequence>
-			 <attribute name="host" type="anyURI" use="optional"/>
-			 <attribute name="port" type="int" use="optional"/>
-			 <attribute name="serviceName" type="anyURI" use="required"/>
             </extension>
         </complexContent>
     </complexType>