@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()
.
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 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)