Skip to content

Commit aa92a9c

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 aa92a9c

5 files changed

Lines changed: 37 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-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: 12 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,17 @@ 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+
* @throws UnsupportedOperationException if the TransportProvider doesn't support this method.
78+
*/
79+
@Nullable
80+
default Executor getExecutor() {
81+
throw new UnsupportedOperationException(
82+
this.getClass().getName() + " doesnt support getExecutor()");
83+
}
84+
7385
/** Sets the executor to use when constructing a new {@link TransportChannel}. */
7486
TransportChannelProvider withExecutor(Executor executor);
7587

0 commit comments

Comments
 (0)