Package io.grpc.xds
Class XdsCredentialsRegistry
- java.lang.Object
-
- io.grpc.xds.XdsCredentialsRegistry
-
@ThreadSafe final class XdsCredentialsRegistry extends java.lang.ObjectRegistry ofXdsCredentialsProviders. Thedefault instanceloads providers at runtime through the Java service provider mechanism.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classXdsCredentialsRegistry.XdsCredentialsProviderPriorityAccessor
-
Field Summary
Fields Modifier and Type Field Description private java.util.LinkedHashSet<XdsCredentialsProvider>allProvidersprivate com.google.common.collect.ImmutableMap<java.lang.String,XdsCredentialsProvider>effectiveProvidersGenerated fromallProviders.private static XdsCredentialsRegistryinstanceprivate static java.util.logging.Loggerlogger
-
Constructor Summary
Constructors Constructor Description XdsCredentialsRegistry()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddProvider(XdsCredentialsProvider provider)voidderegister(XdsCredentialsProvider provider)Deregisters a provider.static XdsCredentialsRegistrygetDefaultRegistry()Returns the default registry that loads providers via the Java service loader mechanism.(package private) static java.util.List<java.lang.Class<?>>getHardCodedClasses()XdsCredentialsProvidergetProvider(java.lang.String name)Returns the effective provider for the given xds credential name, ornullif no suitable provider can be found.(package private) java.util.Map<java.lang.String,XdsCredentialsProvider>providers()Returns effective providers map from scheme to the highest priority XdsCredsProvider of that scheme.private voidrefreshProviders()voidregister(XdsCredentialsProvider provider)Register a provider.
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
instance
private static XdsCredentialsRegistry instance
-
allProviders
private final java.util.LinkedHashSet<XdsCredentialsProvider> allProviders
-
effectiveProviders
private com.google.common.collect.ImmutableMap<java.lang.String,XdsCredentialsProvider> effectiveProviders
Generated fromallProviders. Is mapping from scheme key to the highest priorityXdsCredentialsProvider. Is replaced instead of mutating.
-
-
Method Detail
-
register
public void register(XdsCredentialsProvider 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(XdsCredentialsProvider provider)
-
deregister
public void deregister(XdsCredentialsProvider 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.xds.XdsCredentialsProvider).
-
refreshProviders
private void refreshProviders()
-
getDefaultRegistry
public static XdsCredentialsRegistry getDefaultRegistry()
Returns the default registry that loads providers via the Java service loader mechanism.
-
providers
java.util.Map<java.lang.String,XdsCredentialsProvider> providers()
Returns effective providers map from scheme to the highest priority XdsCredsProvider of that scheme.
-
getProvider
@Nullable public XdsCredentialsProvider getProvider(java.lang.String name)
Returns the effective provider for the given xds credential name, ornullif no suitable provider can be found. Each provider declares its name viaXdsCredentialsProvider.getName().
-
getHardCodedClasses
static java.util.List<java.lang.Class<?>> getHardCodedClasses()
-
-