1 package twcsckernel.projectbase.rmi.registry;
2
3 import java.rmi.RemoteException;
4 import java.rmi.server.ObjID;
5 import java.rmi.server.RMIClientSocketFactory;
6 import java.rmi.server.RMIServerSocketFactory;
7 import java.rmi.server.RemoteRef;
8
9 import sun.rmi.server.UnicastRef;
10 import sun.rmi.server.UnicastRef2;
11 import sun.rmi.server.Util;
12 import sun.rmi.transport.LiveRef;
13 import sun.rmi.transport.tcp.TCPEndpoint;
14
15 public class LocateRegistry {
16
17 private LocateRegistry() {
18 }
19
20 public static Registry getRegistry(String host, int port,
21 RMIClientSocketFactory csf) throws RemoteException {
22 if (port <= 0)
23 port = Registry.REGISTRY_PORT;
24
25 if (host == null || host.length() == 0) {
26 try {
27 host = java.net.InetAddress.getLocalHost().getHostAddress();
28 } catch (Exception e) {
29 host = "";
30 }
31 }
32
33 LiveRef liveRef = new LiveRef(new ObjID(ObjID.REGISTRY_ID),
34 new TCPEndpoint(host, port, csf, null), false);
35 RemoteRef ref = (csf == null) ? new UnicastRef(liveRef)
36 : new UnicastRef2(liveRef);
37
38 return (Registry) Util.createProxy(RegistryImpl.class, ref, false);
39 }
40
41 public static Registry createRegistry(int port, RMIClientSocketFactory csf,
42 RMIServerSocketFactory ssf) throws RemoteException {
43 return new RegistryImpl(port, csf, ssf);
44 }
45
46 public static Registry createRegistry(int port) throws RemoteException {
47 return new RegistryImpl(port);
48 }
49 }