Skip to content

Commit 65a6b71

Browse files
authored
---
yaml --- r: 8937 b: refs/heads/lesv-patch-1 c: 0bba22a h: refs/heads/master i: 8935: 9dfd2f2
1 parent 746d1de commit 65a6b71

3 files changed

Lines changed: 79 additions & 6 deletions

File tree

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ refs/tags/v0.22.0: 18b298fe4bfe8ec2f20b0e0bf7ffdcce5cc3c5fe
6666
refs/heads/vam-google-patch-1: d0c8fee3a4074d0bf7360ce8c4f7f7223d0ee7b9
6767
refs/heads/vam-google-patch-CODEOWNERS: 2ac1616e25229e51d08a984708ef1918f91a35ee
6868
refs/heads/danoscarmike-patch-1: 7342a9916bce4ed00002c7202e2a16c5d46afaea
69-
refs/heads/lesv-patch-1: 340d6d1bb77f0f3ee0b7bafc8cbfa34ccd296a78
69+
refs/heads/lesv-patch-1: 0bba22ab469f6c865e61d183f1f76ec3bd12ab70
7070
refs/heads/ml-update-branch: 079dd6610017f5c51b9d1938c12d6d55b61513cf
7171
refs/heads/vkedia-patch-2: 7d8241388a9769a5c069334761b06c7012c878e7
7272
refs/heads/vkedia-patch-3: 4d128043acaa7db9160faf439d2ca6104e8a88cb

branches/lesv-patch-1/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Publisher.java

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.google.cloud.pubsub.v1;
1818

1919
import com.google.api.core.ApiFuture;
20+
import com.google.api.core.BetaApi;
2021
import com.google.api.core.InternalApi;
2122
import com.google.api.core.SettableApiFuture;
2223
import com.google.api.gax.batching.BatchingSettings;
@@ -30,11 +31,13 @@
3031
import com.google.api.gax.rpc.ApiException;
3132
import com.google.api.gax.rpc.ApiExceptionFactory;
3233
import com.google.api.gax.rpc.HeaderProvider;
34+
import com.google.api.gax.rpc.NoHeaderProvider;
3335
import com.google.api.gax.rpc.TransportChannelProvider;
3436
import com.google.auth.Credentials;
3537
import com.google.auth.oauth2.GoogleCredentials;
3638
import com.google.common.base.Preconditions;
3739
import com.google.common.collect.ImmutableList;
40+
import com.google.common.collect.ImmutableMap;
3841
import com.google.common.util.concurrent.FutureCallback;
3942
import com.google.common.util.concurrent.Futures;
4043
import com.google.pubsub.v1.PublishRequest;
@@ -52,6 +55,7 @@
5255
import java.util.Iterator;
5356
import java.util.LinkedList;
5457
import java.util.List;
58+
import java.util.Map;
5559
import java.util.concurrent.ScheduledExecutorService;
5660
import java.util.concurrent.ScheduledFuture;
5761
import java.util.concurrent.ThreadLocalRandom;
@@ -137,7 +141,12 @@ private Publisher(Builder builder) throws IOException {
137141
channelProvider = channelProvider.withExecutor(executor);
138142
}
139143
if (channelProvider.needsHeaders()) {
140-
channelProvider = channelProvider.withHeaders(builder.headerProvider.getHeaders());
144+
Map<String, String> headers =
145+
ImmutableMap.<String, String>builder()
146+
.putAll(builder.headerProvider.getHeaders())
147+
.putAll(builder.internalHeaderProvider.getHeaders())
148+
.build();
149+
channelProvider = channelProvider.withHeaders(headers);
141150
}
142151
if (channelProvider.needsEndpoint()) {
143152
channelProvider = channelProvider.withEndpoint(TopicAdminSettings.getDefaultEndpoint());
@@ -580,7 +589,9 @@ public long nextLong(long least, long bound) {
580589

581590
TransportChannelProvider channelProvider =
582591
TopicAdminSettings.defaultGrpcTransportProviderBuilder().setChannelsPerCpu(1).build();
583-
HeaderProvider headerProvider =
592+
593+
HeaderProvider headerProvider = new NoHeaderProvider();
594+
HeaderProvider internalHeaderProvider =
584595
TopicAdminSettings.defaultApiClientHeaderProviderBuilder().build();
585596
ExecutorProvider executorProvider = DEFAULT_EXECUTOR_PROVIDER;
586597
CredentialsProvider credentialsProvider =
@@ -595,18 +606,44 @@ private Builder(TopicName topic) {
595606
* endpoint.
596607
*
597608
* <p>For performance, this client benefits from having multiple underlying connections. See
598-
* {@link InstantiatingGrpcChannelProvider#setPoolSize(int)}.
609+
* {@link com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.Builder#setPoolSize(int)}.
599610
*/
600611
public Builder setChannelProvider(TransportChannelProvider channelProvider) {
601612
this.channelProvider = Preconditions.checkNotNull(channelProvider);
602613
return this;
603614
}
604615

616+
/**
617+
* Sets the static header provider. The header provider will be called during client
618+
* construction only once. The headers returned by the provider will be cached and supplied as
619+
* is for each request issued by the constructed client. Some reserved headers can be overridden
620+
* (e.g. Content-Type) or merged with the default value (e.g. User-Agent) by the underlying
621+
* transport layer.
622+
*
623+
* @param headerProvider the header provider
624+
* @return the builder
625+
*/
626+
@BetaApi
605627
public Builder setHeaderProvider(HeaderProvider headerProvider) {
606628
this.headerProvider = Preconditions.checkNotNull(headerProvider);
607629
return this;
608630
}
609631

632+
/**
633+
* Sets the static header provider for getting internal (library-defined) headers. The header
634+
* provider will be called during client construction only once. The headers returned by the
635+
* provider will be cached and supplied as is for each request issued by the constructed client.
636+
* Some reserved headers can be overridden (e.g. Content-Type) or merged with the default value
637+
* (e.g. User-Agent) by the underlying transport layer.
638+
*
639+
* @param internalHeaderProvider the internal header provider
640+
* @return the builder
641+
*/
642+
Builder setInternalHeaderProvider(HeaderProvider internalHeaderProvider) {
643+
this.internalHeaderProvider = Preconditions.checkNotNull(internalHeaderProvider);
644+
return this;
645+
}
646+
610647
/** {@code CredentialsProvider} to use to create Credentials to authenticate calls. */
611648
public Builder setCredentialsProvider(CredentialsProvider credentialsProvider) {
612649
this.credentialsProvider = Preconditions.checkNotNull(credentialsProvider);

branches/lesv-patch-1/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/Subscriber.java

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.api.core.AbstractApiService;
2020
import com.google.api.core.ApiClock;
2121
import com.google.api.core.ApiService;
22+
import com.google.api.core.BetaApi;
2223
import com.google.api.core.CurrentMillisClock;
2324
import com.google.api.core.InternalApi;
2425
import com.google.api.gax.batching.FlowControlSettings;
@@ -31,11 +32,13 @@
3132
import com.google.api.gax.core.InstantiatingExecutorProvider;
3233
import com.google.api.gax.grpc.GrpcTransportChannel;
3334
import com.google.api.gax.rpc.HeaderProvider;
35+
import com.google.api.gax.rpc.NoHeaderProvider;
3436
import com.google.api.gax.rpc.TransportChannelProvider;
3537
import com.google.auth.Credentials;
3638
import com.google.auth.oauth2.GoogleCredentials;
3739
import com.google.common.base.Optional;
3840
import com.google.common.base.Preconditions;
41+
import com.google.common.collect.ImmutableMap;
3942
import com.google.pubsub.v1.GetSubscriptionRequest;
4043
import com.google.pubsub.v1.SubscriberGrpc;
4144
import com.google.pubsub.v1.SubscriberGrpc.SubscriberFutureStub;
@@ -50,6 +53,7 @@
5053
import java.util.Deque;
5154
import java.util.LinkedList;
5255
import java.util.List;
56+
import java.util.Map;
5357
import java.util.concurrent.ScheduledExecutorService;
5458
import java.util.concurrent.ScheduledFuture;
5559
import java.util.concurrent.TimeUnit;
@@ -177,7 +181,12 @@ public void close() throws IOException {
177181
channelProvider = channelProvider.withExecutor(executor);
178182
}
179183
if (channelProvider.needsHeaders()) {
180-
channelProvider = channelProvider.withHeaders(builder.headerProvider.getHeaders());
184+
Map<String, String> headers =
185+
ImmutableMap.<String, String>builder()
186+
.putAll(builder.headerProvider.getHeaders())
187+
.putAll(builder.internalHeaderProvider.getHeaders())
188+
.build();
189+
channelProvider = channelProvider.withHeaders(headers);
181190
}
182191
if (channelProvider.needsEndpoint()) {
183192
channelProvider = channelProvider.withEndpoint(SubscriptionAdminSettings.getDefaultEndpoint());
@@ -518,7 +527,8 @@ public static final class Builder {
518527
.setMaxInboundMessageSize(MAX_INBOUND_MESSAGE_SIZE)
519528
.setKeepAliveTime(Duration.ofMinutes(5))
520529
.build();
521-
HeaderProvider headerProvider =
530+
HeaderProvider headerProvider = new NoHeaderProvider();
531+
HeaderProvider internalHeaderProvider =
522532
SubscriptionAdminSettings.defaultApiClientHeaderProviderBuilder().build();
523533
CredentialsProvider credentialsProvider =
524534
SubscriptionAdminSettings.defaultCredentialsProviderBuilder().build();
@@ -544,11 +554,37 @@ public Builder setChannelProvider(TransportChannelProvider channelProvider) {
544554
return this;
545555
}
546556

557+
/**
558+
* Sets the static header provider. The header provider will be called during client
559+
* construction only once. The headers returned by the provider will be cached and supplied as
560+
* is for each request issued by the constructed client. Some reserved headers can be overridden
561+
* (e.g. Content-Type) or merged with the default value (e.g. User-Agent) by the underlying
562+
* transport layer.
563+
*
564+
* @param headerProvider the header provider
565+
* @return the builder
566+
*/
567+
@BetaApi
547568
public Builder setHeaderProvider(HeaderProvider headerProvider) {
548569
this.headerProvider = Preconditions.checkNotNull(headerProvider);
549570
return this;
550571
}
551572

573+
/**
574+
* Sets the static header provider for getting internal (library-defined) headers. The header
575+
* provider will be called during client construction only once. The headers returned by the
576+
* provider will be cached and supplied as is for each request issued by the constructed client.
577+
* Some reserved headers can be overridden (e.g. Content-Type) or merged with the default value
578+
* (e.g. User-Agent) by the underlying transport layer.
579+
*
580+
* @param internalHeaderProvider the internal header provider
581+
* @return the builder
582+
*/
583+
Builder setInternalHeaderProvider(HeaderProvider internalHeaderProvider) {
584+
this.internalHeaderProvider = Preconditions.checkNotNull(internalHeaderProvider);
585+
return this;
586+
}
587+
552588
/** Sets the flow control settings. */
553589
public Builder setFlowControlSettings(FlowControlSettings flowControlSettings) {
554590
this.flowControlSettings = Preconditions.checkNotNull(flowControlSettings);

0 commit comments

Comments
 (0)