Package io.grpc
Class ManagedChannelProvider
- java.lang.Object
-
- io.grpc.ManagedChannelProvider
-
@Internal public abstract class ManagedChannelProvider extends Object
Provider of managed channels for transport agnostic consumption.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
fromisAvailable()
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ManagedChannelProvider.NewChannelBuilderResult
static class
ManagedChannelProvider.ProviderNotFoundException
Thrown when no suitableManagedChannelProvider
objects can be found.
-
Constructor Summary
Constructors Constructor Description ManagedChannelProvider()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method 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 theSocketAddress
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.
-
-
-
Method Detail
-
provider
public static ManagedChannelProvider provider()
Returns the ClassLoader-wide default channel.- Throws:
ManagedChannelProvider.ProviderNotFoundException
- if no provider is available
-
isAvailable
protected abstract boolean isAvailable()
Whether this provider is available for use, taking the current environment into consideration. Iffalse
, no other methods are safe to be called.
-
priority
protected abstract int priority()
A priority, from 0 to 10 that this provider should be used, taking the current environment into consideration. 5 should be considered the default, and then tweaked based on environment detection. A priority of 0 does not imply that the provider wouldn't work; just that it should be last in line.
-
builderForAddress
protected abstract ManagedChannelBuilder<?> builderForAddress(String name, int port)
Creates a new builder with the given host and port.
-
builderForTarget
protected abstract ManagedChannelBuilder<?> builderForTarget(String target)
Creates a new builder with the given target URI.
-
newChannelBuilder
protected ManagedChannelProvider.NewChannelBuilderResult newChannelBuilder(String target, ChannelCredentials creds)
Creates a new builder with the given target URI and credentials. Returns an error-string result if unable to understand the credentials.
-
getSupportedSocketAddressTypes
protected abstract Collection<Class<? extends SocketAddress>> getSupportedSocketAddressTypes()
Returns theSocketAddress
types this ManagedChannelProvider supports.
-
-