Search in sources :

Example 1 with RegistryImpl

use of sun.rmi.registry.RegistryImpl in project jdk8u_jdk by JetBrains.

the class TestLibrary method getRegistryPort.

/**
     * Returns the port number the RMI {@link Registry} is running on.
     *
     * @param registry the registry to find the port of.
     * @return the port number the registry is using.
     * @throws RuntimeException if there was a problem getting the port number.
     */
public static int getRegistryPort(Registry registry) {
    int port = -1;
    try {
        RemoteRef remoteRef = ((RegistryImpl) registry).getRef();
        LiveRef liveRef = ((UnicastServerRef) remoteRef).getLiveRef();
        Endpoint endpoint = liveRef.getChannel().getEndpoint();
        TCPEndpoint tcpEndpoint = (TCPEndpoint) endpoint;
        port = tcpEndpoint.getPort();
    } catch (Exception ex) {
        throw new RuntimeException("Error getting registry port.", ex);
    }
    return port;
}
Also used : RegistryImpl(sun.rmi.registry.RegistryImpl) TCPEndpoint(sun.rmi.transport.tcp.TCPEndpoint) LiveRef(sun.rmi.transport.LiveRef) Endpoint(sun.rmi.transport.Endpoint) TCPEndpoint(sun.rmi.transport.tcp.TCPEndpoint) RemoteRef(java.rmi.server.RemoteRef) UnicastServerRef(sun.rmi.server.UnicastServerRef) Endpoint(sun.rmi.transport.Endpoint) TCPEndpoint(sun.rmi.transport.tcp.TCPEndpoint) NoSuchObjectException(java.rmi.NoSuchObjectException) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) RemoteException(java.rmi.RemoteException)

Example 2 with RegistryImpl

use of sun.rmi.registry.RegistryImpl in project jdk8u_jdk by JetBrains.

the class LocateRegistry method getRegistry.

/**
     * Returns a locally created remote reference to the remote object
     * <code>Registry</code> on the specified <code>host</code> and
     * <code>port</code>.  Communication with this remote registry will
     * use the supplied <code>RMIClientSocketFactory</code> <code>csf</code>
     * to create <code>Socket</code> connections to the registry on the
     * remote <code>host</code> and <code>port</code>.
     *
     * @param host host for the remote registry
     * @param port port on which the registry accepts requests
     * @param csf  client-side <code>Socket</code> factory used to
     *      make connections to the registry.  If <code>csf</code>
     *      is null, then the default client-side <code>Socket</code>
     *      factory will be used in the registry stub.
     * @return reference (a stub) to the remote registry
     * @exception RemoteException if the reference could not be created
     * @since 1.2
     */
public static Registry getRegistry(String host, int port, RMIClientSocketFactory csf) throws RemoteException {
    Registry registry = null;
    if (port <= 0)
        port = Registry.REGISTRY_PORT;
    if (host == null || host.length() == 0) {
        // that the RegistryImpl's checkAccess will not fail.
        try {
            host = java.net.InetAddress.getLocalHost().getHostAddress();
        } catch (Exception e) {
            // If that failed, at least try "" (localhost) anyway...
            host = "";
        }
    }
    /*
         * Create a proxy for the registry with the given host, port, and
         * client socket factory.  If the supplied client socket factory is
         * null, then the ref type is a UnicastRef, otherwise the ref type
         * is a UnicastRef2.  If the property
         * java.rmi.server.ignoreStubClasses is true, then the proxy
         * returned is an instance of a dynamic proxy class that implements
         * the Registry interface; otherwise the proxy returned is an
         * instance of the pregenerated stub class for RegistryImpl.
         **/
    LiveRef liveRef = new LiveRef(new ObjID(ObjID.REGISTRY_ID), new TCPEndpoint(host, port, csf, null), false);
    RemoteRef ref = (csf == null) ? new UnicastRef(liveRef) : new UnicastRef2(liveRef);
    return (Registry) Util.createProxy(RegistryImpl.class, ref, false);
}
Also used : RegistryImpl(sun.rmi.registry.RegistryImpl) TCPEndpoint(sun.rmi.transport.tcp.TCPEndpoint) LiveRef(sun.rmi.transport.LiveRef) ObjID(java.rmi.server.ObjID) RemoteRef(java.rmi.server.RemoteRef) UnicastRef2(sun.rmi.server.UnicastRef2) UnicastRef(sun.rmi.server.UnicastRef) RemoteException(java.rmi.RemoteException)

Aggregations

RemoteException (java.rmi.RemoteException)2 RemoteRef (java.rmi.server.RemoteRef)2 RegistryImpl (sun.rmi.registry.RegistryImpl)2 LiveRef (sun.rmi.transport.LiveRef)2 TCPEndpoint (sun.rmi.transport.tcp.TCPEndpoint)2 IOException (java.io.IOException)1 MalformedURLException (java.net.MalformedURLException)1 NoSuchObjectException (java.rmi.NoSuchObjectException)1 ObjID (java.rmi.server.ObjID)1 UnicastRef (sun.rmi.server.UnicastRef)1 UnicastRef2 (sun.rmi.server.UnicastRef2)1 UnicastServerRef (sun.rmi.server.UnicastServerRef)1 Endpoint (sun.rmi.transport.Endpoint)1