Class DnsNameResolverProvider


  • public final class DnsNameResolverProvider
    extends NameResolverProvider
    A provider for DnsNameResolver.

    It resolves a target URI whose scheme is "dns". The (optional) authority of the target URI is reserved for the address of alternative DNS server (not implemented yet). The path of the target URI, excluding the leading slash '/', is treated as the host name and the optional port to be resolved by DNS. Example target URIs:

    • "dns:///foo.googleapis.com:8080" (using default DNS)
    • "dns://8.8.8.8/foo.googleapis.com:8080" (using alternative DNS (not implemented yet))
    • "dns:///foo.googleapis.com" (without port)
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static boolean IS_ANDROID  
      private static java.lang.String SCHEME  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getDefaultScheme()
      Returns the default scheme, which will be used to construct a URI when ManagedChannelBuilder.forTarget(String) is given an authority string instead of a compliant URI.
      java.util.Collection<java.lang.Class<? extends java.net.SocketAddress>> getProducedSocketAddressTypes()
      Returns the SocketAddress types this provider's name-resolver is capable of producing.
      protected boolean isAvailable()
      Whether this provider is available for use, taking the current environment into consideration.
      NameResolver newNameResolver​(java.net.URI targetUri, NameResolver.Args args)
      Creates a NameResolver for the given target URI, or null if the given URI cannot be resolved by this factory.
      int priority()
      A priority, from 0 to 10 that this provider should be used, taking the current environment into consideration.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • IS_ANDROID

        private static final boolean IS_ANDROID
    • Constructor Detail

      • DnsNameResolverProvider

        public DnsNameResolverProvider()
    • Method Detail

      • newNameResolver

        public NameResolver newNameResolver​(java.net.URI targetUri,
                                            NameResolver.Args args)
        Description copied from class: NameResolver.Factory
        Creates a NameResolver for the given target URI, or null if the given URI cannot be resolved by this factory. The decision should be solely based on the scheme of the URI.
        Specified by:
        newNameResolver in class NameResolver.Factory
        Parameters:
        targetUri - the target URI to be resolved, whose scheme must not be null
        args - other information that may be useful
      • isAvailable

        protected boolean isAvailable()
        Description copied from class: NameResolverProvider
        Whether this provider is available for use, taking the current environment into consideration. If false, no other methods are safe to be called.
        Specified by:
        isAvailable in class NameResolverProvider
      • priority

        public int priority()
        Description copied from class: NameResolverProvider
        A priority, from 0 to 10 that this provider should be used, taking the current environment into consideration. 5 should be considered the default, and then tweaked based on environment detection. A priority of 0 does not imply that the provider wouldn't work; just that it should be last in line.
        Specified by:
        priority in class NameResolverProvider
      • getProducedSocketAddressTypes

        public java.util.Collection<java.lang.Class<? extends java.net.SocketAddress>> getProducedSocketAddressTypes()
        Description copied from class: NameResolverProvider
        Returns the SocketAddress types this provider's name-resolver is capable of producing. This enables selection of the appropriate ManagedChannelProvider for a channel.
        Overrides:
        getProducedSocketAddressTypes in class NameResolverProvider
        Returns:
        the SocketAddress types this provider's name-resolver is capable of producing.