Skip to content

Commit 309aef7

Browse files
chore: expose user set executor on TransportProvider
This allows service clients to reuse that executor for other transport related things in addition to gax
1 parent 06d0cde commit 309aef7

7 files changed

Lines changed: 47 additions & 0 deletions

File tree

‎java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/gaxx/grpc/BigtableTransportChannelProvider.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ public boolean needsExecutor() {
7474
return delegate.needsExecutor();
7575
}
7676

77+
@Nullable
78+
@Override
79+
public Executor getExecutor() {
80+
return delegate.getExecutor();
81+
}
82+
7783
@Override
7884
@Deprecated
7985
public BigtableTransportChannelProvider withExecutor(ScheduledExecutorService executor) {

‎sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,12 @@ public boolean needsExecutor() {
264264
return executor == null;
265265
}
266266

267+
@Nullable
268+
@Override
269+
public Executor getExecutor() {
270+
return executor;
271+
}
272+
267273
@Deprecated
268274
@Override
269275
public TransportChannelProvider withExecutor(ScheduledExecutorService executor) {

‎sdk-platform-java/gax-java/gax-grpc/src/test/java/com/google/api/gax/grpc/testing/LocalChannelProvider.java‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import java.util.concurrent.Executor;
5454
import java.util.concurrent.ScheduledExecutorService;
5555
import java.util.regex.Pattern;
56+
import javax.annotation.Nullable;
5657

5758
/** LocalChannelProvider creates channels for in-memory gRPC services. */
5859
@BetaApi
@@ -80,6 +81,12 @@ public boolean needsExecutor() {
8081
return false;
8182
}
8283

84+
@Nullable
85+
@Override
86+
public Executor getExecutor() {
87+
return null;
88+
}
89+
8390
@Deprecated
8491
@Override
8592
public TransportChannelProvider withExecutor(ScheduledExecutorService executor) {

‎sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/InstantiatingHttpJsonChannelProvider.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ public boolean needsExecutor() {
105105
return executor == null;
106106
}
107107

108+
@Nullable
109+
@Override
110+
public Executor getExecutor() {
111+
return executor;
112+
}
113+
108114
@Deprecated
109115
@Override
110116
public TransportChannelProvider withExecutor(ScheduledExecutorService executor) {

‎sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedTransportChannelProvider.java‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import java.util.Map;
3737
import java.util.concurrent.Executor;
3838
import java.util.concurrent.ScheduledExecutorService;
39+
import javax.annotation.Nullable;
3940

4041
/** An instance of TransportChannelProvider that always provides the same TransportChannel. */
4142
@InternalExtensionOnly
@@ -57,6 +58,12 @@ public boolean needsExecutor() {
5758
return false;
5859
}
5960

61+
@Nullable
62+
@Override
63+
public Executor getExecutor() {
64+
return null;
65+
}
66+
6067
@Override
6168
public FixedTransportChannelProvider withExecutor(ScheduledExecutorService executor) {
6269
return withExecutor((Executor) executor);

‎sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import java.util.Map;
3737
import java.util.concurrent.Executor;
3838
import java.util.concurrent.ScheduledExecutorService;
39+
import javax.annotation.Nullable;
3940

4041
/**
4142
* Provides an interface to either build a TransportChannel or provide a fixed TransportChannel that
@@ -70,6 +71,13 @@ public interface TransportChannelProvider {
7071
@Deprecated
7172
boolean needsExecutor();
7273

74+
/**
75+
* @return the user provided executor. This can be null if the user didn't override the executor
76+
* and the TransportProvider is using its internal executor.
77+
*/
78+
@Nullable
79+
Executor getExecutor();
80+
7381
/** Sets the executor to use when constructing a new {@link TransportChannel}. */
7482
TransportChannelProvider withExecutor(Executor executor);
7583

‎sdk-platform-java/gax-java/gax/src/test/java/com/google/api/gax/rpc/ClientContextTest.java‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
import java.util.concurrent.Executor;
7171
import java.util.concurrent.ScheduledExecutorService;
7272
import java.util.concurrent.ScheduledThreadPoolExecutor;
73+
import javax.annotation.Nullable;
7374
import org.junit.jupiter.api.Test;
7475
import org.mockito.Mockito;
7576

@@ -147,6 +148,12 @@ public boolean needsExecutor() {
147148
return executor == null;
148149
}
149150

151+
@Nullable
152+
@Override
153+
public Executor getExecutor() {
154+
return executor;
155+
}
156+
150157
@Override
151158
public TransportChannelProvider withExecutor(ScheduledExecutorService executor) {
152159
return withExecutor((Executor) executor);

0 commit comments

Comments
 (0)