diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java index 8ce8a370f..815bb9cf5 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java @@ -155,7 +155,8 @@ private Publisher(Builder builder) throws IOException { PublisherStubSettings.newBuilder() .setCredentialsProvider(builder.credentialsProvider) .setExecutorProvider(FixedExecutorProvider.create(executor)) - .setTransportChannelProvider(builder.channelProvider); + .setTransportChannelProvider(builder.channelProvider) + .setEndpoint(builder.endpoint); stubSettings .publishSettings() .setRetryableCodes( @@ -588,6 +589,7 @@ public static final class Builder { .build(); String topicName; + private String endpoint = PublisherStubSettings.getDefaultEndpoint(); // Batching options BatchingSettings batchingSettings = DEFAULT_BATCHING_SETTINGS; @@ -714,6 +716,12 @@ public Builder setTransform(ApiFunction messageTra return this; } + /** Gives the ability to override the gRPC endpoint. */ + public Builder setEndpoint(String endpoint) { + this.endpoint = endpoint; + return this; + } + public Publisher build() throws IOException { return new Publisher(this); } diff --git a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java index a3cf1ae98..8ba07fe2f 100644 --- a/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java +++ b/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java @@ -160,6 +160,7 @@ private Subscriber(Builder builder) { .setCredentialsProvider(builder.credentialsProvider) .setTransportChannelProvider(channelProvider) .setHeaderProvider(builder.headerProvider) + .setEndpoint(builder.endpoint) .applyToAllUnaryMethods( new ApiFunction, Void>() { @Override @@ -414,6 +415,7 @@ public static final class Builder { SubscriptionAdminSettings.defaultCredentialsProviderBuilder().build(); private Optional clock = Optional.absent(); private int parallelPullCount = 1; + private String endpoint = SubscriberStubSettings.getDefaultEndpoint(); Builder(String subscriptionName, MessageReceiver receiver) { this.subscriptionName = subscriptionName; @@ -524,6 +526,12 @@ public Builder setParallelPullCount(int parallelPullCount) { return this; } + /** Gives the ability to override the gRPC endpoint. */ + public Builder setEndpoint(String endpoint) { + this.endpoint = endpoint; + return this; + } + /** Gives the ability to set a custom clock. */ Builder setClock(ApiClock clock) { this.clock = Optional.of(clock);