Class InetAddressResolverProvider

java.lang.Object
java.net.spi.InetAddressResolverProvider

public abstract class InetAddressResolverProvider extends Object
Service-provider class for InetAddress resolvers.

A resolver provider is a factory for custom implementations of InetAddress resolvers. A resolver defines operations for looking up (resolving) host names and IP addresses.

A resolver provider is a concrete subclass of this class that has a zero-argument constructor and implements the abstract methods specified below.

A given invocation of the Java virtual machine maintains a single system-wide resolver instance, which is used by InetAddress. It is set after the VM is fully initialized and when an invocation of a method in InetAddress class triggers the first lookup operation.

A resolver provider is located and loaded by InetAddress to create the system-wide resolver as follows:

  1. The ServiceLoader mechanism is used to locate an InetAddressResolverProvider using the system class loader. The order in which providers are located is implementation specific. The first provider found will be used to instantiate the InetAddressResolver by invoking the get(InetAddressResolverProvider.Configuration) method. The returned InetAddressResolver will be set as the system-wide resolver.
  2. If the previous step fails to find any resolver provider the built-in resolver will be set as the system-wide resolver.

If instantiating a custom resolver from a provider discovered in step 1 throws an error or exception, the system-wide resolver will not be set and the error or exception will be propagated to the caller of the method that triggered the lookup operation. Otherwise, any lookup operation will be performed using the system-wide resolver.

Implementation Note:
InetAddress will use the built-in resolver for any lookup operation that might occur before the VM is fully booted.
Since:
18
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
    A Configuration object is supplied to the get(Configuration) method when setting the system-wide resolver.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Creates a new instance of InetAddressResolverProvider.
  • Method Summary

    Modifier and Type
    Method
    Description
    Initialize and return an InetAddressResolver provided by this provider.
    abstract String
    Returns the name of this provider, or null if unnamed.

    Methods declared in class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    Modifier and Type
    Method
    Description
    protected Object
    Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.
    boolean
    Compares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    May cause performance issues, deadlocks and hangs.
    final Class<? extends Object>
    Answers the unique instance of java.lang.Class which represents the class of the receiver.
    int
    Answers an integer hash code for the receiver.
    final void
    Causes one thread which is waiting on the receiver to be made ready to run.
    final void
    Causes all threads which are waiting on the receiver to be made ready to run.
    Answers a string containing a concise, human-readable description of the receiver.
    final void
    Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated by notify or notifyAll).
    final void
    wait(long time)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
    final void
    wait(long time, int frac)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
  • Constructor Details

    • InetAddressResolverProvider

      protected InetAddressResolverProvider()
      Creates a new instance of InetAddressResolverProvider.
      Implementation Note:
      It is recommended that an InetAddressResolverProvider service implementation initialization should be as simple as possible, in order to avoid possible risks of deadlock or class loading cycles during the instantiation of the service provider.
  • Method Details

    • get

      Initialize and return an InetAddressResolver provided by this provider. This method is called by InetAddress when installing the system-wide resolver implementation.

      Any error or exception thrown by this method is considered as a failure of InetAddressResolver instantiation and will be propagated to the caller of the method that triggered the lookup operation.

      Parameters:
      configuration - a InetAddressResolverProvider.Configuration instance containing platform built-in address resolution configuration.
      Returns:
      the resolver provided by this provider
    • name

      public abstract String name()
      Returns the name of this provider, or null if unnamed.
      Returns:
      the name of this provider, or null if unnamed