@Internal public abstract class ServerProvider extends Object
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.ServerProvider
in their JAR. The
file's contents should be the implementation's class name.
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()
.
Modifier and Type | Class and Description |
---|---|
static class |
ServerProvider.NewServerBuilderResult |
Constructor and Description |
---|
ServerProvider() |
Modifier and Type | Method and Description |
---|---|
protected abstract ServerBuilder<?> |
builderForPort(int port)
Creates a new builder with the given port.
|
protected abstract boolean |
isAvailable()
Whether this provider is available for use, taking the current environment into consideration.
|
protected ServerProvider.NewServerBuilderResult |
newServerBuilderForPort(int port,
ServerCredentials creds)
Creates a new builder with the given port and credentials.
|
protected abstract int |
priority()
A priority, from 0 to 10 that this provider should be used, taking the current environment into
consideration.
|
static ServerProvider |
provider()
Returns the ClassLoader-wide default server.
|
public static ServerProvider provider()
ManagedChannelProvider.ProviderNotFoundException
- if no provider is availableprotected abstract boolean isAvailable()
false
, no other methods are safe to be called.protected abstract int priority()
protected abstract ServerBuilder<?> builderForPort(int port)
protected ServerProvider.NewServerBuilderResult newServerBuilderForPort(int port, ServerCredentials creds)