Class NameResolverProvider
- Direct Known Subclasses:
DnsNameResolverProvider
,NameResolverFactoryToProviderFacade
,UdsNameResolverProvider
Implementations can be automatically discovered by gRPC via Java's SPI mechanism. For
automatic discovery, the implementation must have a zero-argument constructor and include
a resource named META-INF/services/io.grpc.NameResolverProvider
in their JAR. The
file's contents should be the implementation's class name. Implementations that need arguments in
their constructor can be manually registered by NameResolverRegistry.register(io.grpc.NameResolverProvider)
.
Implementations should not throw. If they do, it may interrupt class loading. If
exceptions may reasonably occur for implementation-specific reasons, implementations should
generally handle the exception gracefully and return false
from isAvailable()
.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCollection
<Class<? extends SocketAddress>> Returns theSocketAddress
types this provider's name-resolver is capable of producing.protected String
Returns the scheme associated with the provider.protected abstract boolean
Whether this provider is available for use, taking the current environment into consideration.protected abstract 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.NameResolver.Factory
getDefaultScheme, newNameResolver
-
Constructor Details
-
NameResolverProvider
public NameResolverProvider()
-
-
Method Details
-
isAvailable
protected abstract boolean isAvailable()Whether this provider is available for use, taking the current environment into consideration. Iffalse
, no other methods are safe to be called.- Since:
- 1.0.0
-
priority
protected abstract int priority()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.- Since:
- 1.0.0
-
getScheme
Returns the scheme associated with the provider. The provider normally should only create aNameResolver
when target URI scheme matches the provider scheme. It temporarily delegates toNameResolver.Factory.getDefaultScheme()
beforeNameResolver.Factory
is deprecated in https://github.com/grpc/grpc-java/issues/7133.The scheme should be lower-case.
- Since:
- 1.40.0
-
getProducedSocketAddressTypes
Returns theSocketAddress
types this provider's name-resolver is capable of producing. This enables selection of the appropriateManagedChannelProvider
for a channel.- Returns:
- the
SocketAddress
types this provider's name-resolver is capable of producing.
-