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 2008/02/14 04:50:09 UTC

svn commit: r627650 - in /incubator/tuscany/java/sca/modules/host-rmi/src: main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java

Author: rfeng
Date: Wed Feb 13 19:50:09 2008
New Revision: 627650

URL: http://svn.apache.org/viewvc?rev=627650&view=rev
Log:
Support shared RMI registry and use 999x as the ports in test case to avoid 1099 conflict

Modified:
    incubator/tuscany/java/sca/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
    incubator/tuscany/java/sca/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java

Modified: incubator/tuscany/java/sca/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java?rev=627650&r1=627649&r2=627650&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java (original)
+++ incubator/tuscany/java/sca/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java Wed Feb 13 19:50:09 2008
@@ -46,17 +46,20 @@
     }
 
     public void registerService(String serviceName, int port, Remote serviceObject) throws RMIHostException,
-                                                                                           RMIHostRuntimeException {
+        RMIHostRuntimeException {
         Registry registry;
         try {
             registry = rmiRegistries.get(Integer.toString(port));
             if (registry == null) {
-                registry = LocateRegistry.createRegistry(port);
-                rmiRegistries.put(Integer.toString(port),
-                    registry);
+                try {
+                    registry = LocateRegistry.getRegistry(port);
+                    registry.list();
+                } catch (RemoteException e) {
+                    registry = LocateRegistry.createRegistry(port);
+                }
+                rmiRegistries.put(Integer.toString(port), registry);
             }
-            registry.bind(serviceName,
-                serviceObject);
+            registry.bind(serviceName, serviceObject);
         } catch (AlreadyBoundException e) {
             throw new RMIHostException(e);
         } catch (RemoteException e) {
@@ -68,22 +71,18 @@
     }
 
     public void registerService(String serviceName, Remote serviceObject) throws RMIHostException,
-                                                                                 RMIHostRuntimeException {
-        registerService(serviceName,
-            RMI_DEFAULT_PORT,
-            serviceObject);
+        RMIHostRuntimeException {
+        registerService(serviceName, RMI_DEFAULT_PORT, serviceObject);
     }
 
-    public void unregisterService(String serviceName, int port) throws RMIHostException,
-                                                                       RMIHostRuntimeException {
+    public void unregisterService(String serviceName, int port) throws RMIHostException, RMIHostRuntimeException {
         Registry registry;
 
         try {
             registry = rmiRegistries.get(Integer.toString(port));
             if (registry == null) {
-                registry = LocateRegistry.createRegistry(port);
-                rmiRegistries.put(Integer.toString(port),
-                    registry);
+                registry = LocateRegistry.getRegistry(port);
+                rmiRegistries.put(Integer.toString(port), registry);
             }
             registry.unbind(serviceName);
         } catch (RemoteException e) {
@@ -95,24 +94,20 @@
         }
     }
 
-    public void unregisterService(String serviceName) throws RMIHostException,
-                                                             RMIHostRuntimeException {
-        unregisterService(serviceName,
-            RMI_DEFAULT_PORT);
+    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 {
+        RMIHostRuntimeException {
         Registry registry;
         Remote remoteService = null;
         host = (host == null || host.length() <= 0) ? "localhost" : host;
-        int portNumber = (port == null || port.length() <= 0) ? RMI_DEFAULT_PORT : Integer
-            .decode(port);
+        int portNumber = (port == null || port.length() <= 0) ? RMI_DEFAULT_PORT : Integer.decode(port);
 
         try {
-            registry = LocateRegistry.getRegistry(host,
-                portNumber);
+            registry = LocateRegistry.getRegistry(host, portNumber);
 
             if (registry != null) {
                 remoteService = registry.lookup(svcName);

Modified: incubator/tuscany/java/sca/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java?rev=627650&r1=627649&r2=627650&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/host-rmi/src/test/java/org/apache/tuscany/sca/host/rmi/RMIHostImplTestCase.java Wed Feb 13 19:50:09 2008
@@ -18,6 +18,7 @@
  */
 package org.apache.tuscany.sca.host.rmi;
 
+import java.io.Serializable;
 import java.rmi.Remote;
 
 import junit.framework.TestCase;
@@ -39,8 +40,17 @@
 
     public void testRegisterService1() throws RMIHostRuntimeException, RMIHostException {
         DefaultRMIHost host = new DefaultRMIHost();
-        host.registerService("foo1", new MockRemote());
-        host.unregisterService("foo1");
+        host.registerService("foo1", 9996, new MockRemote());
+        host.unregisterService("foo1", 9996);
+    }
+
+    public void testExistingRegistry() throws RMIHostRuntimeException, RMIHostException {
+        DefaultRMIHost host1 = new DefaultRMIHost();
+        host1.registerService("foo1", 9995, new MockRemote());
+        DefaultRMIHost host2 = new DefaultRMIHost();
+        host2.registerService("foo2", 9995, new MockRemote());
+        host2.unregisterService("foo1", 9995);
+        host2.unregisterService("foo2", 9995);
     }
 
     public void testRegisterService2() throws RMIHostRuntimeException, RMIHostException {
@@ -65,11 +75,11 @@
         try {
             host.unregisterService("bar3", 9998);
             fail();
-        } catch (RMIHostException e) {
+        } catch (RMIHostRuntimeException e) {
             // expected
         }
     }
 
-    private static class MockRemote implements Remote {
+    private static class MockRemote implements Remote, Serializable {
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org