public static final HttpJsonTargetInstanceStub create(TargetInstanceStubSettings settings) throws IOException { return new HttpJsonTargetInstanceStub(settings, ClientContext.create(settings)); }
@Override public void close() throws Exception { if (closed) { return; } closed = true; firestoreStub.close(); for (BackgroundResource resource : clientContext.getBackgroundResources()) { resource.close(); } executorFactory.release(executor); }
/** * Internal helper to create the base MutateRows callable chain. The chain is responsible for * retrying individual entry in case of error. * * @see MutateRowsRetryingCallable for more details */ private UnaryCallable<MutateRowsRequest, Void> createMutateRowsBaseCallable() { RetryAlgorithm<Void> retryAlgorithm = new RetryAlgorithm<>( new ApiResultRetryAlgorithm<Void>(), new ExponentialRetryAlgorithm( settings.bulkMutateRowsSettings().getRetrySettings(), clientContext.getClock())); RetryingExecutor<Void> retryingExecutor = new ScheduledRetryingExecutor<>(retryAlgorithm, clientContext.getExecutor()); return new MutateRowsRetryingCallable( clientContext.getDefaultCallContext(), stub.mutateRowsCallable(), retryingExecutor, settings.bulkMutateRowsSettings().getRetryableCodes()); }
TransportChannel transportChannel = GrpcTransportChannel.create(managedChannel); clientContext = ClientContext.newBuilder() .setCredentials(null) .setExecutor(executor) settingsBuilder.setHeaderProvider(options.getMergedHeaderProvider(new NoHeaderProvider())); clientContext = ClientContext.create(settingsBuilder.build());
protected Builder(ClientContext clientContext) { if (clientContext == null) { this.executorProvider = InstantiatingExecutorProvider.newBuilder().build(); this.transportChannelProvider = null; this.credentialsProvider = NoCredentialsProvider.create(); this.headerProvider = new NoHeaderProvider(); this.internalHeaderProvider = new NoHeaderProvider(); this.clock = NanoClock.getDefaultClock(); this.endpoint = null; this.streamWatchdogProvider = InstantiatingWatchdogProvider.create(); this.streamWatchdogCheckInterval = Duration.ofSeconds(10); this.tracerFactory = NoopApiTracerFactory.getInstance(); } else { this.executorProvider = FixedExecutorProvider.create(clientContext.getExecutor()); this.transportChannelProvider = FixedTransportChannelProvider.create(clientContext.getTransportChannel()); this.credentialsProvider = FixedCredentialsProvider.create(clientContext.getCredentials()); this.headerProvider = FixedHeaderProvider.create(clientContext.getHeaders()); this.internalHeaderProvider = FixedHeaderProvider.create(clientContext.getInternalHeaders()); this.clock = clientContext.getClock(); this.endpoint = clientContext.getEndpoint(); this.streamWatchdogProvider = FixedWatchdogProvider.create(clientContext.getStreamWatchdog()); this.streamWatchdogCheckInterval = clientContext.getStreamWatchdogCheckInterval(); this.tracerFactory = clientContext.getTracerFactory(); } }
@Before public void setUp() { ClientContext clientContext = ClientContext.newBuilder().setDefaultCallContext(CALL_CONTEXT).build(); RetrySettings retrySettings = RetrySettings.newBuilder() .setTotalTimeout(Duration.ofMillis(100)) // Delay settings: 1 ms const .setInitialRetryDelay(Duration.ofMillis(1)) .setMaxRetryDelay(Duration.ofMillis(1)) .setRetryDelayMultiplier(1.0) // RPC timeout: ignored const 1 s .setInitialRpcTimeout(Duration.ofSeconds(1)) .setMaxRpcTimeout(Duration.ofSeconds(1)) .setRpcTimeoutMultiplier(1.0) .build(); callable = AwaitReplicationCallable.create( mockGenerateConsistencyTokenCallable, mockCheckConsistencyCallable, clientContext, retrySettings); }
/** * Creates a callable chain to handle MutateRow RPCs. The chain will: * * <ul> * <li>Convert a {@link RowMutation} into a {@link com.google.bigtable.v2.MutateRowRequest}. * </ul> */ private UnaryCallable<RowMutation, Void> createMutateRowCallable() { MutateRowCallable userFacing = new MutateRowCallable(stub.mutateRowCallable(), requestContext); return userFacing.withDefaultCallContext(clientContext.getDefaultCallContext()); }
/** * Create a callable object with grpc-specific functionality. Designed for use by generated code. * * @param grpcCallSettings the gRPC call settings */ public static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable( GrpcCallSettings<RequestT, ResponseT> grpcCallSettings, UnaryCallSettings<RequestT, ResponseT> callSettings, ClientContext clientContext) { UnaryCallable<RequestT, ResponseT> callable = createBaseUnaryCallable(grpcCallSettings, callSettings, clientContext); callable = new TracedUnaryCallable<>( callable, clientContext.getTracerFactory(), getSpanName(grpcCallSettings.getMethodDescriptor())); return callable.withDefaultCallContext(clientContext.getDefaultCallContext()); }
callable, streamingCallSettings.getRetryableCodes()); if (clientContext.getStreamWatchdog() != null) { callable = Callables.watched(callable, streamingCallSettings, clientContext); new TracedServerStreamingCallable<>( callable, clientContext.getTracerFactory(), getSpanName(grpcCallSettings.getMethodDescriptor())); return callable.withDefaultCallContext(clientContext.getDefaultCallContext());
@BetaApi("The surface for streaming is not stable yet and may change in the future.") public static <RequestT, ResponseT> ServerStreamingCallable<RequestT, ResponseT> watched( ServerStreamingCallable<RequestT, ResponseT> callable, ServerStreamingCallSettings<RequestT, ResponseT> callSettings, ClientContext clientContext) { callable = new WatchdogServerStreamingCallable<>(callable, clientContext.getStreamWatchdog()); callable = callable.withDefaultCallContext( clientContext .getDefaultCallContext() .withStreamIdleTimeout(callSettings.getIdleTimeout())); return callable; }
/** * Create a callable object with http/json-specific functionality. Designed for use by generated * code. * * @param httpJsonCallSettings the http/json call settings * @param callSettings {@link UnaryCallSettings} to configure the method-level settings with. * @param clientContext {@link ClientContext} to use to connect to the service. * @return {@link UnaryCallable} callable object. */ public static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable( HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings, UnaryCallSettings<RequestT, ResponseT> callSettings, ClientContext clientContext) { UnaryCallable<RequestT, ResponseT> innerCallable = createDirectUnaryCallable(httpJsonCallSettings); innerCallable = new TracedUnaryCallable<>( innerCallable, clientContext.getTracerFactory(), getSpanName(httpJsonCallSettings.getMethodDescriptor())); return createUnaryCallable(innerCallable, callSettings, clientContext); }
TransportChannel transportChannel = GrpcTransportChannel.create(managedChannel); clientContext = ClientContext.newBuilder() .setCredentials(null) .setExecutor(executor) settingsBuilder.setInternalHeaderProvider(headerProvider); clientContext = ClientContext.create(settingsBuilder.build());
protected Builder(ClientContext clientContext) { if (clientContext == null) { this.executorProvider = InstantiatingExecutorProvider.newBuilder().build(); this.transportChannelProvider = null; this.credentialsProvider = NoCredentialsProvider.create(); this.headerProvider = new NoHeaderProvider(); this.internalHeaderProvider = new NoHeaderProvider(); this.clock = NanoClock.getDefaultClock(); this.endpoint = null; this.streamWatchdogProvider = InstantiatingWatchdogProvider.create(); this.streamWatchdogCheckInterval = Duration.ofSeconds(10); this.tracerFactory = NoopApiTracerFactory.getInstance(); } else { this.executorProvider = FixedExecutorProvider.create(clientContext.getExecutor()); this.transportChannelProvider = FixedTransportChannelProvider.create(clientContext.getTransportChannel()); this.credentialsProvider = FixedCredentialsProvider.create(clientContext.getCredentials()); this.headerProvider = FixedHeaderProvider.create(clientContext.getHeaders()); this.internalHeaderProvider = FixedHeaderProvider.create(clientContext.getInternalHeaders()); this.clock = clientContext.getClock(); this.endpoint = clientContext.getEndpoint(); this.streamWatchdogProvider = FixedWatchdogProvider.create(clientContext.getStreamWatchdog()); this.streamWatchdogCheckInterval = clientContext.getStreamWatchdogCheckInterval(); this.tracerFactory = clientContext.getTracerFactory(); } }
@Before public void resetClock() { fakeClock = new FakeApiClock(System.nanoTime()); executor = RecordingScheduler.create(fakeClock); clientContext = ClientContext.newBuilder() .setExecutor(executor) .setClock(fakeClock) .setDefaultCallContext(HttpJsonCallContext.createDefault()) .build(); }
/** * Creates a callable chain to handle CheckAndMutateRow RPCs. THe chain will: * * <ul> * <li>Convert {@link ConditionalRowMutation}s into {@link * com.google.bigtable.v2.CheckAndMutateRowRequest}s. * </ul> */ private UnaryCallable<ConditionalRowMutation, Boolean> createCheckAndMutateRowCallable() { CheckAndMutateRowCallable userFacing = new CheckAndMutateRowCallable(stub.checkAndMutateRowCallable(), requestContext); return userFacing.withDefaultCallContext(clientContext.getDefaultCallContext()); }
/** * Create a callable object with grpc-specific functionality. Designed for use by generated code. * * @param grpcCallSettings the gRPC call settings */ public static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable( GrpcCallSettings<RequestT, ResponseT> grpcCallSettings, UnaryCallSettings<RequestT, ResponseT> callSettings, ClientContext clientContext) { UnaryCallable<RequestT, ResponseT> callable = createBaseUnaryCallable(grpcCallSettings, callSettings, clientContext); callable = new TracedUnaryCallable<>( callable, clientContext.getTracerFactory(), getSpanName(grpcCallSettings.getMethodDescriptor())); return callable.withDefaultCallContext(clientContext.getDefaultCallContext()); }
@BetaApi("The surface for streaming is not stable yet and may change in the future.") public static <RequestT, ResponseT> ServerStreamingCallable<RequestT, ResponseT> watched( ServerStreamingCallable<RequestT, ResponseT> callable, ServerStreamingCallSettings<RequestT, ResponseT> callSettings, ClientContext clientContext) { callable = new WatchdogServerStreamingCallable<>(callable, clientContext.getStreamWatchdog()); callable = callable.withDefaultCallContext( clientContext .getDefaultCallContext() .withStreamIdleTimeout(callSettings.getIdleTimeout())); return callable; }
/** * Create a callable object with http/json-specific functionality. Designed for use by generated * code. * * @param httpJsonCallSettings the http/json call settings * @param callSettings {@link UnaryCallSettings} to configure the method-level settings with. * @param clientContext {@link ClientContext} to use to connect to the service. * @return {@link UnaryCallable} callable object. */ public static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable( HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings, UnaryCallSettings<RequestT, ResponseT> callSettings, ClientContext clientContext) { UnaryCallable<RequestT, ResponseT> innerCallable = createDirectUnaryCallable(httpJsonCallSettings); innerCallable = new TracedUnaryCallable<>( innerCallable, clientContext.getTracerFactory(), getSpanName(httpJsonCallSettings.getMethodDescriptor())); return createUnaryCallable(innerCallable, callSettings, clientContext); }
public static final HttpJsonHttpsHealthCheckStub create(HttpsHealthCheckStubSettings settings) throws IOException { return new HttpJsonHttpsHealthCheckStub(settings, ClientContext.create(settings)); }
@Override public void close() throws Exception { if (closed) { return; } closed = true; configClient.close(); loggingClient.close(); metricsClient.close(); for (BackgroundResource resource : clientContext.getBackgroundResources()) { resource.close(); } executorFactory.release(executor); }