Class LookupLocator

java.lang.Object
net.jini.core.discovery.LookupLocator
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
ConstrainableLookupLocator

public class LookupLocator extends Object implements Serializable
A utility class that performs unicast discovery, using version 1 of the unicast discovery protocol.
Since:
1.0
Author:
Sun Microsystems, Inc.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected String
    The name of the host at which to perform discovery.
    protected int
    The port number on the host at which to perform discovery.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Construct a new LookupLocator object, set up to perform discovery to the given URL.
    LookupLocator(String host, int port)
    Construct a new LookupLocator object, set to perform unicast discovery to the input host and port.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Two locators are equal if they have the same host and port fields.
    Returns the name of the host that this instance should contact.
    int
    Returns the number of the port to which this instance should connect.
    Perform unicast discovery and return the ServiceRegistrar object for the given lookup service.
    getRegistrar(int timeout)
    Perform unicast discovery and return the ServiceRegistrar object for the given lookup service, with the given discovery timeout.
    int
    Returns a hash code value calculated from the host and port field values.
    Return the string form of this LookupLocator, as a URL of scheme "jini".

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • host

      protected String host
      The name of the host at which to perform discovery.
    • port

      protected int port
      The port number on the host at which to perform discovery.
  • Constructor Details

    • LookupLocator

      public LookupLocator(String url) throws MalformedURLException
      Construct a new LookupLocator object, set up to perform discovery to the given URL. The host and port fields will be populated with the host and port components of the input URL. No host name resolution is attempted.

      The syntax of the URL must be that of a hierarchical URI with a server-based naming authority. Requirements for the components are as follows:

      • A scheme of "jini" must be present.
      • A server-based naming authority must be present; user-info must not be present. The port, if present, must be between 1 and 65535 (both included). If no port is specified, a default value of 4162 is used.
      • A path if present, must be "/"; path segments must not be present.
      • There must not be any other components present.

      The four allowed forms of the URL are thus:

      • jini://host
      • jini://host/
      • jini://host:port
      • jini://host:port/
      Parameters:
      url - the URL to use
      Throws:
      MalformedURLException - url could not be parsed
      NullPointerException - if url is null
    • LookupLocator

      public LookupLocator(String host, int port)
      Construct a new LookupLocator object, set to perform unicast discovery to the input host and port. The host and port fields will be populated with the host and port arguments. No host name resolution is attempted.

      The host argument must meet any one of the following syntactical requirements:

      Parameters:
      host - the name of the host to contact
      port - the number of the port to connect to
      Throws:
      IllegalArgumentException - if port is not between 1 and 65535 (both included) or if host cannot be parsed.
      NullPointerException - if host is null
  • Method Details

    • getHost

      public String getHost()
      Returns the name of the host that this instance should contact. LookupLocator implements this method to return the host field.
      Returns:
      a String representing the host value
    • getPort

      public int getPort()
      Returns the number of the port to which this instance should connect. LookupLocator implements this method to return the port field.
      Returns:
      an int representing the port value
    • getRegistrar

      public ServiceRegistrar getRegistrar() throws IOException, ClassNotFoundException
      Perform unicast discovery and return the ServiceRegistrar object for the given lookup service. Unicast discovery is performed anew each time this method is called. LookupLocator implements this method to simply invoke getRegistrar(int) with a timeout value, which is determined by the value of the net.jini.discovery.timeout system property. If the property is set, is not negative, and can be parsed as an Integer, the value of the property is used as the timeout value. Otherwise, a default value of 60 seconds is assumed.
      Returns:
      the ServiceRegistrar for the lookup service denoted by this LookupLocator object
      Throws:
      IOException - an error occurred during discovery
      ClassNotFoundException - if a class required to unmarshal the ServiceRegistrar proxy cannot be found
    • getRegistrar

      public ServiceRegistrar getRegistrar(int timeout) throws IOException, ClassNotFoundException
      Perform unicast discovery and return the ServiceRegistrar object for the given lookup service, with the given discovery timeout. Unicast discovery is performed anew each time this method is called. LookupLocator implements this method to use the values of the host and port field in determining the host and port to connect to.

      If a connection can be established to start unicast discovery but the remote end fails to respond within the given time limit, an exception is thrown.

      Parameters:
      timeout - the maximum time to wait for a response, in milliseconds. A value of 0 specifies an infinite timeout.
      Returns:
      the ServiceRegistrar for the lookup service denoted by this LookupLocator object
      Throws:
      IOException - an error occurred during discovery
      ClassNotFoundException - if a class required to unmarshal the ServiceRegistrar proxy cannot be found
      IllegalArgumentException - if timeout is negative
    • toString

      public String toString()
      Return the string form of this LookupLocator, as a URL of scheme "jini".
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Two locators are equal if they have the same host and port fields. The case of the host is ignored. Alternative forms of the same IPv6 addresses for the host value are treated as being unequal.
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Returns a hash code value calculated from the host and port field values.
      Overrides:
      hashCode in class Object