Skip to content

Commit db0fdb1

Browse files
authored
Add support for custom static headers (#2690)
Note, PubSub is supported only partially. Full support is dependent on migration of PubSub from Grpc stubs to Gapic stubs Usage: ```java // For manual/semi-manual clients: // Resource Manager // Translate // Compute // Storage // Datastore // Dns // BigQuery // // Logging // Firestore // Spanner HeaderProvider headerProvider = FixedHeaderProvider.create("user-agent", "my-client-name", "custom-header", "custom stuff"); DatastoreOptions options = DatastoreOptions.newBuilder().setHeaderProvider(headerProvider).build(); Datastore datastore = options.getService(); // For generated clients: // All others, except Pub/Sub HeaderProvider headerProvider = FixedHeaderProvider.create("user-agent", "my-client-name", "custom-header", "custom stuff"); LanguageServiceSettings settings = LanguageServiceSettings.newBuilder().setHeaderProvider(headerProvider).build(); LanguageServiceClient client = LanguageServiceClient.create(settings); // Note, PubSub is supported only partially. Full support is dependent on migration of PubSub from Grpc stubs to Gapic stubs ```
1 parent 973ffc1 commit db0fdb1

79 files changed

Lines changed: 624 additions & 1828 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

google-cloud-bigquery/pom.xml

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
</parent>
1717
<properties>
1818
<site.installationModule>google-cloud-bigquery</site.installationModule>
19-
<artifact.version>${project.version}</artifact.version>
2019
</properties>
2120
<dependencies>
2221
<dependency>
@@ -71,15 +70,6 @@
7170
</dependency>
7271
</dependencies>
7372
<build>
74-
<resources>
75-
<resource>
76-
<directory>./..</directory>
77-
<filtering>true</filtering>
78-
<includes>
79-
<include>project.properties</include>
80-
</includes>
81-
</resource>
82-
</resources>
8373
<plugins>
8474
<plugin>
8575
<!-- Allow script to run, so we can run benchmarks. -->
@@ -89,25 +79,6 @@
8979
<cleanupDaemonThreads>false</cleanupDaemonThreads>
9080
<skip>false</skip>
9181
</configuration>
92-
</plugin>
93-
<plugin>
94-
<artifactId>maven-antrun-plugin</artifactId>
95-
<version>1.4</version>
96-
<executions>
97-
<execution>
98-
<phase>process-resources</phase>
99-
<configuration>
100-
<tasks>
101-
<copy file="${project.build.outputDirectory}/project.properties"
102-
toFile="${project.build.outputDirectory}/com/google/cloud/bigquery/project.properties"
103-
overwrite="true" />
104-
</tasks>
105-
</configuration>
106-
<goals>
107-
<goal>run</goal>
108-
</goals>
109-
</execution>
110-
</executions>
11182
</plugin>
11283
<plugin>
11384
<groupId>org.codehaus.mojo</groupId>

google-cloud-bigquerydatatransfer/pom.xml

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -102,35 +102,7 @@
102102
</profile>
103103
</profiles>
104104
<build>
105-
<resources>
106-
<resource>
107-
<directory>./..</directory>
108-
<filtering>true</filtering>
109-
<includes>
110-
<include>project.properties</include>
111-
</includes>
112-
</resource>
113-
</resources>
114105
<plugins>
115-
<plugin>
116-
<artifactId>maven-antrun-plugin</artifactId>
117-
<version>1.4</version>
118-
<executions>
119-
<execution>
120-
<phase>process-resources</phase>
121-
<configuration>
122-
<tasks>
123-
<copy file="${project.build.outputDirectory}/project.properties"
124-
toFile="${project.build.outputDirectory}/com/google/cloud/bigquerydatatransfer/project.properties"
125-
overwrite="true" />
126-
</tasks>
127-
</configuration>
128-
<goals>
129-
<goal>run</goal>
130-
</goals>
131-
</execution>
132-
</executions>
133-
</plugin>
134106
<plugin>
135107
<groupId>org.codehaus.mojo</groupId>
136108
<artifactId>build-helper-maven-plugin</artifactId>

google-cloud-bigquerydatatransfer/src/main/java/com/google/cloud/bigquery/datatransfer/v1/DataTransferServiceSettings.java

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@
2323
import com.google.api.core.ApiFunction;
2424
import com.google.api.core.ApiFuture;
2525
import com.google.api.core.BetaApi;
26+
import com.google.api.gax.core.GaxProperties;
2627
import com.google.api.gax.core.GoogleCredentialsProvider;
2728
import com.google.api.gax.core.InstantiatingExecutorProvider;
28-
import com.google.api.gax.core.PropertiesProvider;
29-
import com.google.api.gax.grpc.GrpcExtraHeaderData;
29+
import com.google.api.gax.grpc.GaxGrpcProperties;
3030
import com.google.api.gax.grpc.GrpcTransportChannel;
3131
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
3232
import com.google.api.gax.retrying.RetrySettings;
@@ -92,15 +92,6 @@ public class DataTransferServiceSettings extends ClientSettings<DataTransferServ
9292
.add("https://www.googleapis.com/auth/cloud-platform.read-only")
9393
.build();
9494

95-
private static final String DEFAULT_GAPIC_NAME = "gapic";
96-
private static final String DEFAULT_GAPIC_VERSION = "";
97-
98-
private static final String PROPERTIES_FILE =
99-
"/com/google/cloud/bigquery/datatransfer/project.properties";
100-
private static final String META_VERSION_KEY = "artifact.version";
101-
102-
private static String gapicVersion;
103-
10495
private final UnaryCallSettings<GetDataSourceRequest, DataSource> getDataSourceSettings;
10596
private final PagedCallSettings<
10697
ListDataSourcesRequest, ListDataSourcesResponse, ListDataSourcesPagedResponse>
@@ -249,19 +240,10 @@ public static TransportChannelProvider defaultTransportChannelProvider() {
249240
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
250241
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
251242
return ApiClientHeaderProvider.newBuilder()
252-
.setGeneratorHeader(DEFAULT_GAPIC_NAME, getGapicVersion())
253-
.setApiClientHeaderLineKey("x-goog-api-client")
254-
.addApiClientHeaderLineData(GrpcExtraHeaderData.getXGoogApiClientData());
255-
}
256-
257-
private static String getGapicVersion() {
258-
if (gapicVersion == null) {
259-
gapicVersion =
260-
PropertiesProvider.loadProperty(
261-
DataTransferServiceSettings.class, PROPERTIES_FILE, META_VERSION_KEY);
262-
gapicVersion = gapicVersion == null ? DEFAULT_GAPIC_VERSION : gapicVersion;
263-
}
264-
return gapicVersion;
243+
.setGeneratedLibToken(
244+
"gapic", GaxProperties.getLibraryVersion(DataTransferServiceSettings.class))
245+
.setTransportToken(
246+
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
265247
}
266248

267249
/** Returns a new builder for this class. */

google-cloud-bigtable/pom.xml

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
</parent>
1717
<properties>
1818
<site.installationModule>google-cloud-bigtable</site.installationModule>
19-
<artifact.version>${project.version}</artifact.version>
2019
</properties>
2120
<dependencies>
2221
<dependency>
@@ -107,35 +106,7 @@
107106
</profile>
108107
</profiles>
109108
<build>
110-
<resources>
111-
<resource>
112-
<directory>./..</directory>
113-
<filtering>true</filtering>
114-
<includes>
115-
<include>project.properties</include>
116-
</includes>
117-
</resource>
118-
</resources>
119109
<plugins>
120-
<plugin>
121-
<artifactId>maven-antrun-plugin</artifactId>
122-
<version>1.4</version>
123-
<executions>
124-
<execution>
125-
<phase>process-resources</phase>
126-
<configuration>
127-
<tasks>
128-
<copy file="${project.build.outputDirectory}/project.properties"
129-
toFile="${project.build.outputDirectory}/com/google/cloud/bigtable/project.properties"
130-
overwrite="true" />
131-
</tasks>
132-
</configuration>
133-
<goals>
134-
<goal>run</goal>
135-
</goals>
136-
</execution>
137-
</executions>
138-
</plugin>
139110
<plugin>
140111
<groupId>org.codehaus.mojo</groupId>
141112
<artifactId>build-helper-maven-plugin</artifactId>

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717

1818
import com.google.api.core.ApiFunction;
1919
import com.google.api.core.BetaApi;
20+
import com.google.api.gax.core.GaxProperties;
2021
import com.google.api.gax.core.GoogleCredentialsProvider;
2122
import com.google.api.gax.core.InstantiatingExecutorProvider;
22-
import com.google.api.gax.core.PropertiesProvider;
23-
import com.google.api.gax.grpc.GrpcExtraHeaderData;
23+
import com.google.api.gax.grpc.GaxGrpcProperties;
2424
import com.google.api.gax.grpc.GrpcTransportChannel;
2525
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
2626
import com.google.api.gax.grpc.ProtoOperationTransformers;
@@ -105,15 +105,6 @@ public class BigtableInstanceAdminSettings extends ClientSettings<BigtableInstan
105105
.add("https://www.googleapis.com/auth/cloud-platform.read-only")
106106
.build();
107107

108-
private static final String DEFAULT_GAPIC_NAME = "gapic";
109-
private static final String DEFAULT_GAPIC_VERSION = "";
110-
111-
private static final String PROPERTIES_FILE =
112-
"/com/google/cloud/bigtable/admin/project.properties";
113-
private static final String META_VERSION_KEY = "artifact.version";
114-
115-
private static String gapicVersion;
116-
117108
private final UnaryCallSettings<CreateInstanceRequest, Operation> createInstanceSettings;
118109
private final OperationCallSettings<CreateInstanceRequest, Instance, CreateInstanceMetadata>
119110
createInstanceOperationSettings;
@@ -244,19 +235,10 @@ public static TransportChannelProvider defaultTransportChannelProvider() {
244235
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
245236
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
246237
return ApiClientHeaderProvider.newBuilder()
247-
.setGeneratorHeader(DEFAULT_GAPIC_NAME, getGapicVersion())
248-
.setApiClientHeaderLineKey("x-goog-api-client")
249-
.addApiClientHeaderLineData(GrpcExtraHeaderData.getXGoogApiClientData());
250-
}
251-
252-
private static String getGapicVersion() {
253-
if (gapicVersion == null) {
254-
gapicVersion =
255-
PropertiesProvider.loadProperty(
256-
BigtableInstanceAdminSettings.class, PROPERTIES_FILE, META_VERSION_KEY);
257-
gapicVersion = gapicVersion == null ? DEFAULT_GAPIC_VERSION : gapicVersion;
258-
}
259-
return gapicVersion;
238+
.setGeneratedLibToken(
239+
"gapic", GaxProperties.getLibraryVersion(BigtableInstanceAdminSettings.class))
240+
.setTransportToken(
241+
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
260242
}
261243

262244
/** Returns a new builder for this class. */
@@ -408,7 +390,7 @@ private static Builder createDefault() {
408390
Builder builder = new Builder((ClientContext) null);
409391
builder.setTransportChannelProvider(defaultTransportChannelProvider());
410392
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
411-
builder.setHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
393+
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
412394
builder.setEndpoint(getDefaultEndpoint());
413395
return initDefaults(builder);
414396
}

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import com.google.api.core.ApiFunction;
2121
import com.google.api.core.ApiFuture;
2222
import com.google.api.core.BetaApi;
23+
import com.google.api.gax.core.GaxProperties;
2324
import com.google.api.gax.core.GoogleCredentialsProvider;
2425
import com.google.api.gax.core.InstantiatingExecutorProvider;
25-
import com.google.api.gax.core.PropertiesProvider;
26-
import com.google.api.gax.grpc.GrpcExtraHeaderData;
26+
import com.google.api.gax.grpc.GaxGrpcProperties;
2727
import com.google.api.gax.grpc.GrpcTransportChannel;
2828
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
2929
import com.google.api.gax.retrying.RetrySettings;
@@ -102,15 +102,6 @@ public class BigtableTableAdminSettings extends ClientSettings<BigtableTableAdmi
102102
.add("https://www.googleapis.com/auth/cloud-platform.read-only")
103103
.build();
104104

105-
private static final String DEFAULT_GAPIC_NAME = "gapic";
106-
private static final String DEFAULT_GAPIC_VERSION = "";
107-
108-
private static final String PROPERTIES_FILE =
109-
"/com/google/cloud/bigtable/admin/project.properties";
110-
private static final String META_VERSION_KEY = "artifact.version";
111-
112-
private static String gapicVersion;
113-
114105
private final UnaryCallSettings<CreateTableRequest, Table> createTableSettings;
115106
private final PagedCallSettings<ListTablesRequest, ListTablesResponse, ListTablesPagedResponse>
116107
listTablesSettings;
@@ -194,19 +185,10 @@ public static TransportChannelProvider defaultTransportChannelProvider() {
194185
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
195186
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
196187
return ApiClientHeaderProvider.newBuilder()
197-
.setGeneratorHeader(DEFAULT_GAPIC_NAME, getGapicVersion())
198-
.setApiClientHeaderLineKey("x-goog-api-client")
199-
.addApiClientHeaderLineData(GrpcExtraHeaderData.getXGoogApiClientData());
200-
}
201-
202-
private static String getGapicVersion() {
203-
if (gapicVersion == null) {
204-
gapicVersion =
205-
PropertiesProvider.loadProperty(
206-
BigtableTableAdminSettings.class, PROPERTIES_FILE, META_VERSION_KEY);
207-
gapicVersion = gapicVersion == null ? DEFAULT_GAPIC_VERSION : gapicVersion;
208-
}
209-
return gapicVersion;
188+
.setGeneratedLibToken(
189+
"gapic", GaxProperties.getLibraryVersion(BigtableTableAdminSettings.class))
190+
.setTransportToken(
191+
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
210192
}
211193

212194
/** Returns a new builder for this class. */
@@ -371,7 +353,7 @@ private static Builder createDefault() {
371353
Builder builder = new Builder((ClientContext) null);
372354
builder.setTransportChannelProvider(defaultTransportChannelProvider());
373355
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
374-
builder.setHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
356+
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
375357
builder.setEndpoint(getDefaultEndpoint());
376358
return initDefaults(builder);
377359
}

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/v2/BigtableSettings.java

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717

1818
import com.google.api.core.ApiFunction;
1919
import com.google.api.core.BetaApi;
20+
import com.google.api.gax.core.GaxProperties;
2021
import com.google.api.gax.core.GoogleCredentialsProvider;
2122
import com.google.api.gax.core.InstantiatingExecutorProvider;
22-
import com.google.api.gax.core.PropertiesProvider;
23-
import com.google.api.gax.grpc.GrpcExtraHeaderData;
23+
import com.google.api.gax.grpc.GaxGrpcProperties;
2424
import com.google.api.gax.grpc.GrpcTransportChannel;
2525
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
2626
import com.google.api.gax.retrying.RetrySettings;
@@ -94,14 +94,6 @@ public class BigtableSettings extends ClientSettings<BigtableSettings> {
9494
.add("https://www.googleapis.com/auth/cloud-platform.read-only")
9595
.build();
9696

97-
private static final String DEFAULT_GAPIC_NAME = "gapic";
98-
private static final String DEFAULT_GAPIC_VERSION = "";
99-
100-
private static final String PROPERTIES_FILE = "/com/google/cloud/bigtable/project.properties";
101-
private static final String META_VERSION_KEY = "artifact.version";
102-
103-
private static String gapicVersion;
104-
10597
private final StreamingCallSettings<ReadRowsRequest, ReadRowsResponse> readRowsSettings;
10698
private final StreamingCallSettings<SampleRowKeysRequest, SampleRowKeysResponse>
10799
sampleRowKeysSettings;
@@ -189,19 +181,9 @@ public static TransportChannelProvider defaultTransportChannelProvider() {
189181
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
190182
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
191183
return ApiClientHeaderProvider.newBuilder()
192-
.setGeneratorHeader(DEFAULT_GAPIC_NAME, getGapicVersion())
193-
.setApiClientHeaderLineKey("x-goog-api-client")
194-
.addApiClientHeaderLineData(GrpcExtraHeaderData.getXGoogApiClientData());
195-
}
196-
197-
private static String getGapicVersion() {
198-
if (gapicVersion == null) {
199-
gapicVersion =
200-
PropertiesProvider.loadProperty(
201-
BigtableSettings.class, PROPERTIES_FILE, META_VERSION_KEY);
202-
gapicVersion = gapicVersion == null ? DEFAULT_GAPIC_VERSION : gapicVersion;
203-
}
204-
return gapicVersion;
184+
.setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(BigtableSettings.class))
185+
.setTransportToken(
186+
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
205187
}
206188

207189
/** Returns a new builder for this class. */
@@ -309,7 +291,7 @@ private static Builder createDefault() {
309291
Builder builder = new Builder((ClientContext) null);
310292
builder.setTransportChannelProvider(defaultTransportChannelProvider());
311293
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
312-
builder.setHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
294+
builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
313295
builder.setEndpoint(getDefaultEndpoint());
314296
return initDefaults(builder);
315297
}

0 commit comments

Comments
 (0)