@Internal public abstract class ManagedChannelProvider 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.ManagedChannelProvider
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 |
ManagedChannelProvider.NewChannelBuilderResult |
static class |
ManagedChannelProvider.ProviderNotFoundException
Thrown when no suitable
ManagedChannelProvider objects can be found. |
Constructor and Description |
---|
ManagedChannelProvider() |
Modifier and Type | Method and Description |
---|---|
protected abstract ManagedChannelBuilder<?> |
builderForAddress(String name,
int port)
Creates a new builder with the given host and port.
|
protected abstract ManagedChannelBuilder<?> |
builderForTarget(String target)
Creates a new builder with the given target URI.
|
protected abstract Collection<Class<? extends SocketAddress>> |
getSupportedSocketAddressTypes()
Returns the
SocketAddress types this ManagedChannelProvider supports. |
protected abstract boolean |
isAvailable()
Whether this provider is available for use, taking the current environment into consideration.
|
protected ManagedChannelProvider.NewChannelBuilderResult |
newChannelBuilder(String target,
ChannelCredentials creds)
Creates a new builder with the given target URI 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 ManagedChannelProvider |
provider()
Returns the ClassLoader-wide default channel.
|
public static ManagedChannelProvider 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 ManagedChannelBuilder<?> builderForAddress(String name, int port)
protected abstract ManagedChannelBuilder<?> builderForTarget(String target)
protected ManagedChannelProvider.NewChannelBuilderResult newChannelBuilder(String target, ChannelCredentials creds)
protected abstract Collection<Class<? extends SocketAddress>> getSupportedSocketAddressTypes()
SocketAddress
types this ManagedChannelProvider supports.