Package io.grpc
Class ServerRegistry
- java.lang.Object
-
- io.grpc.ServerRegistry
-
@Internal @ThreadSafe public final class ServerRegistry extends java.lang.Object
Registry ofServerProvider
s. Thedefault instance
loads providers at runtime through the Java service provider mechanism.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ServerRegistry.ProviderNotFoundException
Thrown when no suitableServerProvider
objects can be found.private static class
ServerRegistry.ServerPriorityAccessor
-
Field Summary
Fields Modifier and Type Field Description private java.util.LinkedHashSet<ServerProvider>
allProviders
private java.util.List<ServerProvider>
effectiveProviders
Immutable, sorted version ofallProviders
.private static ServerRegistry
instance
private static java.util.logging.Logger
logger
-
Constructor Summary
Constructors Constructor Description ServerRegistry()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addProvider(ServerProvider provider)
void
deregister(ServerProvider provider)
Deregisters a provider.static ServerRegistry
getDefaultRegistry()
Returns the default registry that loads providers via the Java service loader mechanism.(package private) static java.util.List<java.lang.Class<?>>
getHardCodedClasses()
(package private) ServerBuilder<?>
newServerBuilderForPort(int port, ServerCredentials creds)
(package private) ServerProvider
provider()
(package private) java.util.List<ServerProvider>
providers()
Returns effective providers, in priority order.private void
refreshProviders()
void
register(ServerProvider provider)
Register a provider.
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
instance
private static ServerRegistry instance
-
allProviders
private final java.util.LinkedHashSet<ServerProvider> allProviders
-
effectiveProviders
private java.util.List<ServerProvider> effectiveProviders
Immutable, sorted version ofallProviders
. Is replaced instead of mutating.
-
-
Method Detail
-
register
public void register(ServerProvider 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(ServerProvider provider)
-
deregister
public void deregister(ServerProvider 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.ServerProvider)
.
-
refreshProviders
private void refreshProviders()
-
getDefaultRegistry
public static ServerRegistry getDefaultRegistry()
Returns the default registry that loads providers via the Java service loader mechanism.
-
providers
java.util.List<ServerProvider> providers()
Returns effective providers, in priority order.
-
provider
ServerProvider provider()
-
getHardCodedClasses
static java.util.List<java.lang.Class<?>> getHardCodedClasses()
-
newServerBuilderForPort
ServerBuilder<?> newServerBuilderForPort(int port, ServerCredentials creds)
-
-