private GrpcCallContext newCallContext(@Nullable Map<Option, ?> options, String resource) { GrpcCallContext context = GrpcCallContext.createDefault(); if (options != null) { context = context.withChannelAffinity(Option.CHANNEL_HINT.getLong(options).intValue()); } context = context.withExtraHeaders(metadataProvider.newExtraHeaders(resource, projectName)); return context.withStreamWaitTimeout(waitTimeout).withStreamIdleTimeout(idleTimeout); }
@Before public void setUp() { innerCallable = new MockInnerCallable(); retryCodes = ImmutableSet.of(Code.DEADLINE_EXCEEDED, Code.UNAVAILABLE); callContext = GrpcCallContext.createDefault(); parentFuture = new MockRetryingFuture(); }
.splitCall( responseObserver, GrpcCallContext.createDefault().withChannelAffinity(channelAffinity));
@Override public GrpcCallContext getEmptyCallContext() { return GrpcCallContext.createDefault(); }
/** * Constructs a new call context and sets the CallOptions to add handlers to retrieve the headers * and trailers, and make them available via the getMetadata and getTrailingMetadata methods. */ public GrpcCallContext createContextWithHandlers() { return addHandlers(GrpcCallContext.createDefault()); }
/** * Constructs a new call context and sets the CallOptions to add handlers to retrieve the headers * and trailers, and make them available via the getMetadata and getTrailingMetadata methods. */ public GrpcCallContext createContextWithHandlers() { return addHandlers(GrpcCallContext.createDefault()); }
private ApiCallContext contextWithParamsEncoder(RequestT request, ApiCallContext inputContext) { return GrpcCallContext.createDefault() .nullToSelf(inputContext) .withRequestParamsDynamicHeaderOption(paramsEncoder.encode(request)); } }
@Override public ApiFuture<ResponseT> futureCall(RequestT request, ApiCallContext inputContext) { GrpcCallContext context = GrpcCallContext.createDefault().nullToSelf(inputContext); ApiFuture<ResponseT> innerCallFuture = callable.futureCall(request, context); ExceptionTransformingFuture transformingFuture = new ExceptionTransformingFuture(innerCallFuture); ApiFutures.addCallback(innerCallFuture, transformingFuture, directExecutor()); return transformingFuture; }
@Override public ApiFuture<ResponseT> futureCall(RequestT request, ApiCallContext inputContext) { GrpcCallContext context = GrpcCallContext.createDefault().nullToSelf(inputContext); ApiFuture<ResponseT> innerCallFuture = callable.futureCall(request, context); ExceptionTransformingFuture transformingFuture = new ExceptionTransformingFuture(innerCallFuture); ApiFutures.addCallback(innerCallFuture, transformingFuture, directExecutor()); return transformingFuture; }
private ApiCallContext contextWithParamsEncoder(RequestT request, ApiCallContext inputContext) { return GrpcCallContext.createDefault() .nullToSelf(inputContext) .withRequestParamsDynamicHeaderOption(paramsEncoder.encode(request)); } }
private GrpcCallContext newCallContext(@Nullable Map<Option, ?> options, String resource) { GrpcCallContext context = GrpcCallContext.createDefault(); if (options != null) { context = context.withChannelAffinity(Option.CHANNEL_HINT.getLong(options).intValue()); } context = context.withExtraHeaders(metadataProvider.newExtraHeaders(resource, projectName)); return context.withStreamWaitTimeout(waitTimeout).withStreamIdleTimeout(idleTimeout); }
@Override public ApiFuture<ResponseT> futureCall(RequestT request, ApiCallContext inputContext) { GrpcCallContext newCallContext = GrpcCallContext.createDefault() .nullToSelf(inputContext) .withRequestParamsDynamicHeaderOption(paramsEncoder.encode(request)); return callable.futureCall(request, newCallContext); } }
@Test public void testMergeWithNullStreamingWaitTimeout() { Duration timeout = Duration.ofSeconds(10); GrpcCallContext baseContext = GrpcCallContext.createDefault().withStreamWaitTimeout(timeout); GrpcCallContext defaultOverlay = GrpcCallContext.createDefault(); Truth.assertThat(baseContext.merge(defaultOverlay).getStreamWaitTimeout()).isEqualTo(timeout); GrpcCallContext explicitNullOverlay = GrpcCallContext.createDefault().withStreamWaitTimeout(null); Truth.assertThat(baseContext.merge(explicitNullOverlay).getStreamWaitTimeout()) .isEqualTo(timeout); }
@Test public void testMergeWithNullStreamingIdleTimeout() { Duration timeout = Duration.ofSeconds(10); GrpcCallContext baseContext = GrpcCallContext.createDefault().withStreamIdleTimeout(timeout); GrpcCallContext defaultOverlay = GrpcCallContext.createDefault(); Truth.assertThat(baseContext.merge(defaultOverlay).getStreamIdleTimeout()).isEqualTo(timeout); GrpcCallContext explicitNullOverlay = GrpcCallContext.createDefault().withStreamIdleTimeout(null); Truth.assertThat(baseContext.merge(explicitNullOverlay).getStreamIdleTimeout()) .isEqualTo(timeout); }
@Test public void testWithTransportChannel() { ManagedChannel channel = Mockito.mock(ManagedChannel.class); GrpcCallContext context = GrpcCallContext.createDefault().withTransportChannel(GrpcTransportChannel.create(channel)); Truth.assertThat(context.getChannel()).isSameAs(channel); }
@Test public void testWithZeroStreamingIdleTimeout() { Duration timeout = Duration.ZERO; Truth.assertThat( GrpcCallContext.createDefault().withStreamIdleTimeout(timeout).getStreamIdleTimeout()) .isEqualTo(timeout); }
@Test public void testWithCredentials() { Credentials credentials = Mockito.mock(Credentials.class); GrpcCallContext emptyContext = GrpcCallContext.createDefault(); Truth.assertThat(emptyContext.getCallOptions().getCredentials()).isNull(); GrpcCallContext context = emptyContext.withCredentials(credentials); Truth.assertThat(context.getCallOptions().getCredentials()).isNotNull(); }
@Test public void testWithNegativeTimeout() { Truth.assertThat( GrpcCallContext.createDefault().withTimeout(Duration.ofSeconds(-1L)).getTimeout()) .isNull(); }
@Test public void testWithStreamingIdleTimeout() { Duration timeout = Duration.ofSeconds(15); GrpcCallContext context = GrpcCallContext.createDefault().withStreamIdleTimeout(timeout); Truth.assertThat(context.getStreamIdleTimeout()).isEqualTo(timeout); }
@Test public void testWithShorterTimeout() { GrpcCallContext ctxWithLongTimeout = GrpcCallContext.createDefault().withTimeout(Duration.ofSeconds(10)); // Sanity check Truth.assertThat(ctxWithLongTimeout.getTimeout()).isEqualTo(Duration.ofSeconds(10)); // Shorten the timeout and make sure it changed GrpcCallContext ctxWithShorterTimeout = ctxWithLongTimeout.withTimeout(Duration.ofSeconds(5)); Truth.assertThat(ctxWithShorterTimeout.getTimeout()).isEqualTo(Duration.ofSeconds(5)); }