Package io.grpc.internal
Class DnsNameResolverProvider
java.lang.Object
io.grpc.NameResolver.Factory
io.grpc.NameResolverProvider
io.grpc.internal.DnsNameResolverProvider
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)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns the default scheme, which will be used to construct a URI whenManagedChannelBuilder.forTarget(String)
is given an authority string instead of a compliant URI.Collection
<Class<? extends SocketAddress>> Returns theSocketAddress
types this provider's name-resolver is capable of producing.protected boolean
Whether this provider is available for use, taking the current environment into consideration.newNameResolver
(URI targetUri, NameResolver.Args args) Creates aNameResolver
for the given target URI, ornull
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 io.grpc.NameResolverProvider
getScheme
-
Constructor Details
-
DnsNameResolverProvider
public DnsNameResolverProvider()
-
-
Method Details
-
newNameResolver
Description copied from class:NameResolver.Factory
Creates aNameResolver
for the given target URI, ornull
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 classNameResolver.Factory
- Parameters:
targetUri
- the target URI to be resolved, whose scheme must not benull
args
- other information that may be useful
-
getDefaultScheme
Description copied from class:NameResolver.Factory
Returns the default scheme, which will be used to construct a URI whenManagedChannelBuilder.forTarget(String)
is given an authority string instead of a compliant URI.- Specified by:
getDefaultScheme
in classNameResolver.Factory
-
isAvailable
protected boolean isAvailable()Description copied from class:NameResolverProvider
Whether this provider is available for use, taking the current environment into consideration. Iffalse
, no other methods are safe to be called.- Specified by:
isAvailable
in classNameResolverProvider
-
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 classNameResolverProvider
-
getProducedSocketAddressTypes
Description copied from class:NameResolverProvider
Returns theSocketAddress
types this provider's name-resolver is capable of producing. This enables selection of the appropriateManagedChannelProvider
for a channel.- Overrides:
getProducedSocketAddressTypes
in classNameResolverProvider
- Returns:
- the
SocketAddress
types this provider's name-resolver is capable of producing.
-