Class SocketAddressResolver.Async

java.lang.Object
org.eclipse.jetty.util.SocketAddressResolver.Async
All Implemented Interfaces:
SocketAddressResolver
Enclosing interface:
SocketAddressResolver

@ManagedObject("The asynchronous address resolver") @Deprecated(since="2021-05-27") public static class SocketAddressResolver.Async extends Object implements SocketAddressResolver
Deprecated.
The Eclipse Jetty and Apache Felix Http Jetty packages are no longer supported.

Creates SocketAddress instances asynchronously in a different thread.

InetSocketAddress(String, int) attempts to perform a DNS resolution of the host name, and this may block for several seconds. This class creates the InetSocketAddress in a separate thread and provides the result through a Promise, with the possibility to specify a timeout for the operation.

Example usage:

  SocketAddressResolver resolver = new SocketAddressResolver.Async(executor, scheduler, timeout);
  resolver.resolve("www.google.com", 80, new Promise<SocketAddress>()
  {
      public void succeeded(SocketAddress result)
      {
          // The address was resolved
      }

      public void failed(Throwable failure)
      {
          // The address resolution failed
      }
  });
  
  • Constructor Details

    • Async

      public Async(Executor executor, Scheduler scheduler, long timeout)
      Deprecated.
      Creates a new instance with the given executor (to perform DNS resolution in a separate thread), the given scheduler (to cancel the operation if it takes too long) and the given timeout, in milliseconds.
      Parameters:
      executor - the thread pool to use to perform DNS resolution in pooled threads
      scheduler - the scheduler to schedule tasks to cancel DNS resolution if it takes too long
      timeout - the timeout, in milliseconds, for the DNS resolution to complete
  • Method Details

    • getExecutor

      public Executor getExecutor()
      Deprecated.
    • getScheduler

      public Scheduler getScheduler()
      Deprecated.
    • getTimeout

      @ManagedAttribute(value="The timeout, in milliseconds, to resolve an address", readonly=true) public long getTimeout()
      Deprecated.
    • resolve

      public void resolve(String host, int port, Promise<List<InetSocketAddress>> promise)
      Deprecated.
      Description copied from interface: SocketAddressResolver
      Resolves the given host and port, returning a SocketAddress through the given Promise with the default timeout.
      Specified by:
      resolve in interface SocketAddressResolver
      Parameters:
      host - the host to resolve
      port - the port of the resulting socket address
      promise - the callback invoked when the resolution succeeds or fails