Class NameResolverProvider
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 theSocketAddresstypes this provider's name-resolver is capable of producing.protected StringReturns the scheme associated with the provider.protected abstract booleanWhether this provider is available for use, taking the current environment into consideration.protected abstract intpriority()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 aNameResolverwhen target URI scheme matches the provider scheme. It temporarily delegates toNameResolver.Factory.getDefaultScheme()beforeNameResolver.Factoryis deprecated in https://github.com/grpc/grpc-java/issues/7133.The scheme should be lower-case.
- Since:
- 1.40.0
-
getProducedSocketAddressTypes
Returns theSocketAddresstypes this provider's name-resolver is capable of producing. This enables selection of the appropriateManagedChannelProviderfor a channel.- Returns:
- the
SocketAddresstypes this provider's name-resolver is capable of producing.
-