Package io.grpc

Class 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 from isAvailable().

    • Constructor Detail

      • ManagedChannelProvider

        public ManagedChannelProvider()
    • Method Detail

      • isAvailable

        protected abstract boolean isAvailable()
        Whether this provider is available for use, taking the current environment into consideration. If false, 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.