Package io.grpc

Class NameResolverRegistry


  • @ExperimentalApi("https://github.com/grpc/grpc-java/issues/4159")
    @ThreadSafe
    public final class NameResolverRegistry
    extends java.lang.Object
    Registry of NameResolverProviders. The default instance loads providers at runtime through the Java service provider mechanism.
    Since:
    1.21.0
    • Field Detail

      • logger

        private static final java.util.logging.Logger logger
      • defaultScheme

        private java.lang.String defaultScheme
      • effectiveProviders

        private com.google.common.collect.ImmutableMap<java.lang.String,​NameResolverProvider> effectiveProviders
        Generated from allProviders. Is mapping from scheme key to the highest priority NameResolverProvider. Is replaced instead of mutating.
    • Constructor Detail

      • NameResolverRegistry

        public NameResolverRegistry()
    • 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() returns false, this method will throw IllegalArgumentException.

        Providers will be used in priority order. In case of ties, providers are used in registration order.

      • 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.
      • getHardCodedClasses

        static java.util.List<java.lang.Class<?>> getHardCodedClasses()