diff --git a/README.md b/README.md index 6d377d4ea..756ae7752 100644 --- a/README.md +++ b/README.md @@ -31,27 +31,27 @@ If you are using Maven, add this to your pom.xml file com.google.api gax - 1.51.0 + 1.52.0 com.google.api gax-grpc - 1.51.0 + 1.52.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.api:gax:1.51.0', - 'com.google.api:gax-grpc:1.51.0' +compile 'com.google.api:gax:1.52.0', + 'com.google.api:gax-grpc:1.52.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.api" % "gax" % "1.51.0" -libraryDependencies += "com.google.api" % "gax-grpc" % "1.51.0" +libraryDependencies += "com.google.api" % "gax" % "1.52.0" +libraryDependencies += "com.google.api" % "gax-grpc" % "1.52.0" ``` [//]: # ({x-version-update-end}) diff --git a/benchmark/build.gradle b/benchmark/build.gradle index 4d26f2ced..c3d6a90e0 100644 --- a/benchmark/build.gradle +++ b/benchmark/build.gradle @@ -1,4 +1,4 @@ -project.version = "0.53.0" // {x-version-update:benchmark:current} +project.version = "0.54.0" // {x-version-update:benchmark:current} buildscript { repositories { diff --git a/build.gradle b/build.gradle index e02ffc0a1..134142714 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ apply plugin: 'com.github.sherter.google-java-format' apply plugin: 'io.codearte.nexus-staging' // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "1.51.0" // {x-version-update:gax:current} +project.version = "1.52.0" // {x-version-update:gax:current} ext { // Project names not used for release diff --git a/dependencies.properties b/dependencies.properties index dc09c4399..46daddf5a 100644 --- a/dependencies.properties +++ b/dependencies.properties @@ -8,16 +8,16 @@ # Versions of oneself # {x-version-update-start:gax:current} -version.gax=1.51.0 +version.gax=1.52.0 # {x-version-update-end} # {x-version-update-start:gax:current} -version.gax_grpc=1.51.0 +version.gax_grpc=1.52.0 # {x-version-update-end} # {x-version-update-start:gax:current} -version.gax_bom=1.51.0 +version.gax_bom=1.52.0 # {x-version-update-end} # {x-version-update-start:gax-httpjson:current} -version.gax_httpjson=0.68.0 +version.gax_httpjson=0.69.0 # {x-version-update-end} # Versions for dependencies which actual artifacts differ between Bazel and Gradle. @@ -34,8 +34,8 @@ version.io_grpc=1.25.0 # 2) Replace all characters which are neither alphabetic nor digits with the underscore ('_') character maven.com_google_api_grpc_proto_google_common_protos=com.google.api.grpc:proto-google-common-protos:1.15.0 maven.com_google_api_grpc_grpc_google_common_protos=com.google.api.grpc:grpc-google-common-protos:1.15.0 -maven.com_google_auth_google_auth_library_oauth2_http=com.google.auth:google-auth-library-oauth2-http:0.18.0 -maven.com_google_auth_google_auth_library_credentials=com.google.auth:google-auth-library-credentials:0.18.0 +maven.com_google_auth_google_auth_library_oauth2_http=com.google.auth:google-auth-library-oauth2-http:0.19.0 +maven.com_google_auth_google_auth_library_credentials=com.google.auth:google-auth-library-credentials:0.19.0 maven.io_opencensus_opencensus_api=io.opencensus:opencensus-api:0.24.0 maven.io_opencensus_opencensus_contrib_grpc_metrics=io.opencensus:opencensus-contrib-grpc-metrics:0.24.0 maven.io_opencensus_opencensus_contrib_http_util=io.opencensus:opencensus-contrib-http-util:0.24.0 diff --git a/gax-bom/build.gradle b/gax-bom/build.gradle index 1a180c850..8f1ef567a 100644 --- a/gax-bom/build.gradle +++ b/gax-bom/build.gradle @@ -12,7 +12,7 @@ buildscript { archivesBaseName = "gax-bom" -project.version = "1.51.0" // {x-version-update:gax-bom:current} +project.version = "1.52.0" // {x-version-update:gax-bom:current} ext { mavenJavaDir = "$project.buildDir/publications/mavenJava" diff --git a/gax-bom/pom.xml b/gax-bom/pom.xml index ebf14d885..60eba2416 100644 --- a/gax-bom/pom.xml +++ b/gax-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.api gax-bom - 1.51.0 + 1.52.0 pom GAX (Google Api eXtensions) for Java Google Api eXtensions for Java @@ -33,34 +33,34 @@ com.google.api gax - 1.51.0 + 1.52.0 com.google.api gax - 1.51.0 + 1.52.0 testlib com.google.api gax-grpc - 1.51.0 + 1.52.0 com.google.api gax-grpc - 1.51.0 + 1.52.0 testlib com.google.api gax-httpjson - 0.68.0 + 0.69.0 com.google.api gax-httpjson - 0.68.0 + 0.69.0 testlib diff --git a/gax-grpc/build.gradle b/gax-grpc/build.gradle index c937ffcc1..43560a3a4 100644 --- a/gax-grpc/build.gradle +++ b/gax-grpc/build.gradle @@ -1,7 +1,7 @@ archivesBaseName = "gax-grpc" // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "1.51.0" // {x-version-update:gax-grpc:current} +project.version = "1.52.0" // {x-version-update:gax-grpc:current} dependencies { compile project(':gax'), diff --git a/gax-httpjson/build.gradle b/gax-httpjson/build.gradle index 4ff16cb03..7165d1159 100644 --- a/gax-httpjson/build.gradle +++ b/gax-httpjson/build.gradle @@ -1,7 +1,7 @@ archivesBaseName = "gax-httpjson" // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "0.68.0" // {x-version-update:gax-httpjson:current} +project.version = "0.69.0" // {x-version-update:gax-httpjson:current} dependencies { compile project(':gax'), diff --git a/gax/build.gradle b/gax/build.gradle index dd73aec4f..8dbec537c 100644 --- a/gax/build.gradle +++ b/gax/build.gradle @@ -1,7 +1,7 @@ archivesBaseName = "gax" // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "1.51.0" // {x-version-update:gax:current} +project.version = "1.52.0" // {x-version-update:gax:current} dependencies { compile libraries['maven.com_google_guava_guava'], diff --git a/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java b/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java index be7c67d40..ddba0331d 100644 --- a/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java +++ b/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java @@ -84,6 +84,7 @@ public Credentials getCredentials() throws IOException { .setClientId(serviceAccount.getClientId()) .setPrivateKey(serviceAccount.getPrivateKey()) .setPrivateKeyId(serviceAccount.getPrivateKeyId()) + .setQuotaProjectId(serviceAccount.getQuotaProjectId()) .build(); } diff --git a/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java b/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java index 3bd76460a..1c0ba4f79 100644 --- a/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java +++ b/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java @@ -42,6 +42,7 @@ @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") public class ApiClientHeaderProvider implements HeaderProvider, Serializable { private static final long serialVersionUID = -8876627296793342119L; + static final String QUOTA_PROJECT_ID_HEADER_KEY = "x-goog-user-project"; private final Map headers; @@ -65,6 +66,10 @@ protected ApiClientHeaderProvider(Builder builder) { headersBuilder.put(builder.getResourceHeaderKey(), builder.getResourceToken()); } + if (builder.getQuotaProjectIdToken() != null) { + headersBuilder.put(QUOTA_PROJECT_ID_HEADER_KEY, builder.getQuotaProjectIdToken()); + } + this.headers = headersBuilder.build(); } @@ -101,6 +106,7 @@ public static class Builder { private String generatedLibToken; private String generatedRuntimeToken; private String transportToken; + private String quotaProjectIdToken; private String resourceHeaderKey; private String resourceToken; @@ -113,6 +119,7 @@ protected Builder() { generatedLibToken = null; setClientRuntimeToken(GaxProperties.getGaxVersion()); transportToken = null; + quotaProjectIdToken = null; resourceHeaderKey = getDefaultResourceHeaderKey(); resourceToken = null; @@ -172,6 +179,17 @@ public Builder setTransportToken(String name, String version) { return this; } + /** @return the quotaProjectIdToken used for quota and billing purposes. */ + public String getQuotaProjectIdToken() { + return quotaProjectIdToken; + } + + /** Sets the project ID used for quota and billing purposes. */ + public Builder setQuotaProjectIdToken(String quotaProjectIdToken) { + this.quotaProjectIdToken = quotaProjectIdToken; + return this; + } + public String getResourceHeaderKey() { return resourceHeaderKey; } diff --git a/gax/src/test/java/com/google/api/gax/rpc/ApiClientHeaderProviderTest.java b/gax/src/test/java/com/google/api/gax/rpc/ApiClientHeaderProviderTest.java index bc35a2091..f60c3c076 100644 --- a/gax/src/test/java/com/google/api/gax/rpc/ApiClientHeaderProviderTest.java +++ b/gax/src/test/java/com/google/api/gax/rpc/ApiClientHeaderProviderTest.java @@ -123,4 +123,19 @@ public void testCustomHeaderKeys() { .matches("^gl-java/.* gapic/4\\.5\\.6 gax/.* grpc/1\\.2\\.3$"); assertThat(provider.getHeaders().get("custom-header2")).isEqualTo("test-prefix"); } + + @Test + public void testQuotaProjectHeader() { + String quotaProjectHeaderValue = "quota-project-id-value"; + ApiClientHeaderProvider provider = + ApiClientHeaderProvider.newBuilder() + .setClientLibToken("gccl", "1.2.3") + .setQuotaProjectIdToken(quotaProjectHeaderValue) + .build(); + assertThat(provider.getHeaders().size()).isEqualTo(2); + assertThat(provider.getHeaders().get(X_GOOG_API_CLIENT)) + .matches("^gl-java/.* gccl/1\\.2\\.3 gax/.*$"); + assertThat(provider.getHeaders().get(ApiClientHeaderProvider.QUOTA_PROJECT_ID_HEADER_KEY)) + .matches(quotaProjectHeaderValue); + } } diff --git a/samples/pom.xml b/samples/pom.xml index 8268d93b4..672e27e24 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -14,13 +14,13 @@ com.google.api gax - 1.51.0 + 1.52.0 com.google.api gax-grpc - 1.51.0 + 1.52.0 com.google.auto.value diff --git a/versions.txt b/versions.txt index 680d81a35..e500fd01c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,8 +1,8 @@ # Format: # module:released-version:current-version -gax:1.51.0:1.51.0 -gax-bom:1.51.0:1.51.0 -gax-grpc:1.51.0:1.51.0 -gax-httpjson:0.68.0:0.68.0 -benchmark:0.53.0:0.53.0 +gax:1.52.0:1.52.0 +gax-bom:1.52.0:1.52.0 +gax-grpc:1.52.0:1.52.0 +gax-httpjson:0.69.0:0.69.0 +benchmark:0.54.0:0.54.0