Class InProcessServerBuilder

  • @ExperimentalApi("")
    public final class InProcessServerBuilder
    extends ForwardingServerBuilder<InProcessServerBuilder>
    Builder for a server that services in-process requests. Clients identify the in-process server by its name.

    The server is intended to be fully-featured, high performance, and useful in testing.

    Using JUnit TestRule

    The class "GrpcServerRule" (from "grpc-java/testing") is a JUnit TestRule that creates a InProcessServer and a ManagedChannel. This test rule contains the boilerplate code shown below. The classes "HelloWorldServerTest" and "HelloWorldClientTest" (from "grpc-java/examples") demonstrate basic usage.

    Usage example

    Server and client channel setup

       String uniqueName = InProcessServerBuilder.generateName();
       Server server = InProcessServerBuilder.forName(uniqueName)
           .directExecutor() // directExecutor is fine for unit tests
           .addService(/* your code here */)
       ManagedChannel channel = InProcessChannelBuilder.forName(uniqueName)

    Usage in tests

    The channel can be used normally. A blocking stub example:
       TestServiceGrpc.TestServiceBlockingStub blockingStub =