@ExperimentalApi(value="https://github.com/grpc/grpc-java/issues/1783") public final class InProcessServerBuilder extends AbstractServerImplBuilder<InProcessServerBuilder>
The server is intended to be fully-featured, high performance, and useful in testing.
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.
String uniqueName = InProcessServerBuilder.generateName(); Server server = InProcessServerBuilder.forName(uniqueName) .directExecutor() // directExecutor is fine for unit tests .addService(/* your code here */) .build().start(); ManagedChannel channel = InProcessChannelBuilder.forName(uniqueName) .directExecutor() .build();
TestServiceGrpc.TestServiceBlockingStub blockingStub = TestServiceGrpc.newBlockingStub(channel);
Modifier and Type | Method and Description |
---|---|
protected List<io.grpc.inprocess.InProcessServer> |
buildTransportServers(List<? extends ServerStreamTracer.Factory> streamTracerFactories)
Children of AbstractServerBuilder should override this method to provide transport specific
information for the server.
|
static InProcessServerBuilder |
forName(String name)
Create a server builder that will bind with the given name.
|
static InProcessServerBuilder |
forPort(int port)
Always fails.
|
static String |
generateName()
Generates a new server name that is unique each time.
|
InProcessServerBuilder |
maxInboundMetadataSize(int bytes)
Sets the maximum size of metadata allowed to be received.
|
InProcessServerBuilder |
scheduledExecutorService(ScheduledExecutorService scheduledExecutorService)
Provides a custom scheduled executor service.
|
InProcessServerBuilder |
useTransportSecurity(File certChain,
File privateKey)
Makes the server use TLS.
|
addService, addService, addStreamTracerFactory, addTransportFilter, build, compressorRegistry, decompressorRegistry, directExecutor, executor, fallbackHandlerRegistry, getChannelz, getTransportTracerFactory, handshakeTimeout, intercept, overrideCensusStatsModule, setBinaryLog, setStatsEnabled, setStatsRecordFinishedRpcs, setStatsRecordRealTimeMetrics, setStatsRecordStartedRpcs, setTracingEnabled, setTransportTracerFactory
maxInboundMessageSize, useTransportSecurity
public static InProcessServerBuilder forName(String name)
name
- the identity of the server for clients to connect topublic static InProcessServerBuilder forPort(int port)
forName(java.lang.String)
instead.public static String generateName()
public InProcessServerBuilder scheduledExecutorService(ScheduledExecutorService scheduledExecutorService)
It's an optional parameter. If the user has not provided a scheduled executor service when the channel is built, the builder will use a static cached thread pool.
public InProcessServerBuilder maxInboundMetadataSize(int bytes)
Integer.MAX_VALUE
disables
the enforcement. Defaults to no limit (Integer.MAX_VALUE
).
There is potential for performance penalty when this setting is enabled, as the Metadata must actually be serialized. Since the current implementation of Metadata pre-serializes, it's currently negligible. But Metadata is free to change its implementation.
maxInboundMetadataSize
in class ServerBuilder<InProcessServerBuilder>
bytes
- the maximum size of received metadataIllegalArgumentException
- if bytes is non-positiveprotected List<io.grpc.inprocess.InProcessServer> buildTransportServers(List<? extends ServerStreamTracer.Factory> streamTracerFactories)
AbstractServerImplBuilder
buildTransportServers
in class AbstractServerImplBuilder<InProcessServerBuilder>
streamTracerFactories
- an immutable list of stream tracer factoriespublic InProcessServerBuilder useTransportSecurity(File certChain, File privateKey)
ServerBuilder
useTransportSecurity
in class ServerBuilder<InProcessServerBuilder>
certChain
- file containing the full certificate chainprivateKey
- file containing the private keyCopyright © 2019. All rights reserved.