View Javadoc

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  }