Skip to content

Commit

Permalink
ExecutionStrategy simplification deprecations for gRPC builders (#1804)
Browse files Browse the repository at this point in the history
Motivation:
9a605c2 introduced methods on the Http
Client/Server builders to set the executor in preparation for removal of
the Executor from the ExecutionStrategy. These same changes need to be
made for the gRPC builders.

Modifications:
- Add the `executor(Executor)` setters to the gRPC client/serveer
  builders.

Result:
Methods exist to set the Executor on the gRPC builders.
  • Loading branch information
Scottmitch authored Sep 7, 2021
1 parent 019c270 commit e17b021
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package io.servicetalk.grpc.api;

import io.servicetalk.buffer.api.BufferAllocator;
import io.servicetalk.concurrent.api.Executor;
import io.servicetalk.http.api.HttpProtocolConfig;
import io.servicetalk.http.api.StreamingHttpConnection;
import io.servicetalk.http.api.StreamingHttpConnectionFilterFactory;
Expand All @@ -32,6 +33,14 @@

interface BaseGrpcClientBuilder<U, R> {

/**
* Sets the {@link Executor} for all connections created from this builder.
*
* @param executor {@link Executor} to use.
* @return {@code this}.
*/
BaseGrpcClientBuilder<U, R> executor(Executor executor);

/**
* Sets the {@link IoExecutor} for all clients created from this builder.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import io.servicetalk.client.api.ServiceDiscoverer;
import io.servicetalk.client.api.ServiceDiscovererEvent;
import io.servicetalk.concurrent.api.AsyncContextMap;
import io.servicetalk.concurrent.api.Executor;
import io.servicetalk.concurrent.api.Single;
import io.servicetalk.grpc.internal.DeadlineUtils;
import io.servicetalk.http.api.FilterableStreamingHttpConnection;
Expand Down Expand Up @@ -66,6 +67,11 @@ public abstract class GrpcClientBuilder<U, R>

private boolean appendedCatchAllFilter;

@Override
public GrpcClientBuilder<U, R> executor(Executor executor) {
throw new UnsupportedOperationException("Setting Executor not yet supported by " + getClass().getSimpleName());
}

@Override
public abstract GrpcClientBuilder<U, R> ioExecutor(IoExecutor ioExecutor);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import io.servicetalk.buffer.api.BufferAllocator;
import io.servicetalk.concurrent.api.AsyncContextMap;
import io.servicetalk.concurrent.api.Executor;
import io.servicetalk.concurrent.api.Single;
import io.servicetalk.grpc.internal.DeadlineUtils;
import io.servicetalk.http.api.HttpExecutionStrategy;
Expand Down Expand Up @@ -266,6 +267,16 @@ public final GrpcServerBuilder appendHttpServiceFilter(Predicate<StreamingHttpRe
*/
public abstract GrpcServerBuilder ioExecutor(IoExecutor ioExecutor);

/**
* Sets the {@link Executor} to use.
*
* @param executor {@link Executor} to use.
* @return {@code this}.
*/
public GrpcServerBuilder executor(Executor executor) {
throw new UnsupportedOperationException("Setting Executor not yet supported by " + getClass().getSimpleName());
}

/**
* Sets the {@link BufferAllocator} to be used by this server.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import io.servicetalk.client.api.ServiceDiscoverer;
import io.servicetalk.client.api.ServiceDiscovererEvent;
import io.servicetalk.concurrent.api.BiIntPredicate;
import io.servicetalk.concurrent.api.Executor;
import io.servicetalk.concurrent.api.Single;
import io.servicetalk.http.api.FilterableStreamingHttpConnection;
import io.servicetalk.http.api.HttpLoadBalancerFactory;
Expand All @@ -44,6 +45,9 @@
interface SingleAddressGrpcClientBuilder<U, R,
SDE extends ServiceDiscovererEvent<R>> extends BaseGrpcClientBuilder<U, R> {

@Override
SingleAddressGrpcClientBuilder<U, R, SDE> executor(Executor executor);

@Override
SingleAddressGrpcClientBuilder<U, R, SDE> ioExecutor(IoExecutor ioExecutor);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import io.servicetalk.client.api.ConnectionFactoryFilter;
import io.servicetalk.client.api.ServiceDiscoverer;
import io.servicetalk.client.api.ServiceDiscovererEvent;
import io.servicetalk.concurrent.api.Executor;
import io.servicetalk.grpc.api.GrpcClientBuilder;
import io.servicetalk.grpc.api.GrpcClientCallFactory;
import io.servicetalk.grpc.api.GrpcClientSecurityConfigurator;
Expand Down Expand Up @@ -96,6 +97,12 @@ public GrpcClientBuilder<U, R> defaultTimeout(Duration defaultTimeout) {
return this;
}

@Override
public GrpcClientBuilder<U, R> executor(Executor executor) {
httpClientBuilder.executor(executor);
return this;
}

@Override
public GrpcClientBuilder<U, R> ioExecutor(final IoExecutor ioExecutor) {
httpClientBuilder.ioExecutor(ioExecutor);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import io.servicetalk.buffer.api.BufferAllocator;
import io.servicetalk.concurrent.api.AsyncContext;
import io.servicetalk.concurrent.api.Executor;
import io.servicetalk.concurrent.api.Single;
import io.servicetalk.grpc.api.GrpcExecutionStrategy;
import io.servicetalk.grpc.api.GrpcServerBuilder;
Expand Down Expand Up @@ -166,6 +167,13 @@ public GrpcServerBuilder ioExecutor(final IoExecutor ioExecutor) {
return this;
}

@Override
public GrpcServerBuilder executor(final Executor executor) {
contextBuilder.executor(executor);
httpServerBuilder.executor(executor);
return this;
}

@Override
public GrpcServerBuilder bufferAllocator(final BufferAllocator allocator) {
contextBuilder.bufferAllocator(allocator);
Expand Down

0 comments on commit e17b021

Please sign in to comment.