Package io.grpc
Class NameResolverRegistry
- java.lang.Object
-
- io.grpc.NameResolverRegistry
-
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/4159") @ThreadSafe public final class NameResolverRegistry extends java.lang.Object
Registry ofNameResolverProvider
s. Thedefault instance
loads providers at runtime through the Java service provider mechanism.- Since:
- 1.21.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
NameResolverRegistry.NameResolverFactory
private static class
NameResolverRegistry.NameResolverPriorityAccessor
-
Field Summary
Fields Modifier and Type Field Description private java.util.LinkedHashSet<NameResolverProvider>
allProviders
private java.lang.String
defaultScheme
private com.google.common.collect.ImmutableMap<java.lang.String,NameResolverProvider>
effectiveProviders
Generated fromallProviders
.private NameResolver.Factory
factory
private static NameResolverRegistry
instance
private static java.util.logging.Logger
logger
private static java.lang.String
UNKNOWN_SCHEME
-
Constructor Summary
Constructors Constructor Description NameResolverRegistry()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addProvider(NameResolverProvider provider)
NameResolver.Factory
asFactory()
void
deregister(NameResolverProvider provider)
Deregisters a provider.static NameResolverRegistry
getDefaultRegistry()
Returns the default registry that loads providers via the Java service loader mechanism.java.lang.String
getDefaultScheme()
(package private) static java.util.List<java.lang.Class<?>>
getHardCodedClasses()
NameResolverProvider
getProviderForScheme(java.lang.String scheme)
(package private) java.util.Map<java.lang.String,NameResolverProvider>
providers()
Returns effective providers map from scheme to the highest priority NameResolverProvider of that scheme.private void
refreshProviders()
void
register(NameResolverProvider provider)
Register a provider.
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
instance
private static NameResolverRegistry instance
-
factory
private final NameResolver.Factory factory
-
UNKNOWN_SCHEME
private static final java.lang.String UNKNOWN_SCHEME
- See Also:
- Constant Field Values
-
defaultScheme
private java.lang.String defaultScheme
-
allProviders
private final java.util.LinkedHashSet<NameResolverProvider> allProviders
-
effectiveProviders
private com.google.common.collect.ImmutableMap<java.lang.String,NameResolverProvider> effectiveProviders
Generated fromallProviders
. Is mapping from scheme key to the highest priorityNameResolverProvider
. Is replaced instead of mutating.
-
-
Method Detail
-
getDefaultScheme
public java.lang.String getDefaultScheme()
-
getProviderForScheme
public NameResolverProvider getProviderForScheme(java.lang.String scheme)
-
register
public void register(NameResolverProvider provider)
Register a provider.If the provider's
isAvailable()
returnsfalse
, this method will throwIllegalArgumentException
.Providers will be used in priority order. In case of ties, providers are used in registration order.
-
addProvider
private void addProvider(NameResolverProvider provider)
-
deregister
public void deregister(NameResolverProvider provider)
Deregisters a provider. No-op if the provider is not in the registry.- Parameters:
provider
- the provider that was added to the register viaregister(io.grpc.NameResolverProvider)
.
-
refreshProviders
private void refreshProviders()
-
getDefaultRegistry
public static NameResolverRegistry getDefaultRegistry()
Returns the default registry that loads providers via the Java service loader mechanism.
-
providers
java.util.Map<java.lang.String,NameResolverProvider> providers()
Returns effective providers map from scheme to the highest priority NameResolverProvider of that scheme.
-
asFactory
public NameResolver.Factory asFactory()
-
getHardCodedClasses
static java.util.List<java.lang.Class<?>> getHardCodedClasses()
-
-