com.google.code.findbugs
jsr305
diff --git a/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java b/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java
index deb8d48e35..cb0c8b2cb0 100644
--- a/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java
+++ b/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java
@@ -34,6 +34,7 @@
*
* It is similar to Guava's {@code AsyncFunction}, redeclared so that Guava can be shaded.
*/
+@FunctionalInterface
public interface ApiAsyncFunction {
/**
* Returns an output Future to use in place of the given input. The output Future need not be
diff --git a/api-common-java/src/main/java/com/google/api/core/ApiFunction.java b/api-common-java/src/main/java/com/google/api/core/ApiFunction.java
index d03d934930..ca5dfb1806 100644
--- a/api-common-java/src/main/java/com/google/api/core/ApiFunction.java
+++ b/api-common-java/src/main/java/com/google/api/core/ApiFunction.java
@@ -34,6 +34,7 @@
*
*
It is similar to Guava's {@code Function}, redeclared so that Guava can be shaded.
*/
+@FunctionalInterface
public interface ApiFunction {
T apply(F input);
}
diff --git a/api-common-java/src/main/java/com/google/api/core/ApiFutures.java b/api-common-java/src/main/java/com/google/api/core/ApiFutures.java
index 2189a5e533..4c263ce845 100644
--- a/api-common-java/src/main/java/com/google/api/core/ApiFutures.java
+++ b/api-common-java/src/main/java/com/google/api/core/ApiFutures.java
@@ -45,11 +45,16 @@
public final class ApiFutures {
private ApiFutures() {}
- /*
- * @deprecated Use {@linkplain #addCallback(ApiFuture, ApiFutureCallback, Executor) the
- * overload that requires an executor}. For identical behavior, pass {@link
- * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether
- * another executor would be safer.
+ /**
+ * Registers a callback to be run when the {@link ApiFuture}'s computation is complete or, if the
+ * computation is already complete, immediately.
+ *
+ * @param future The future attach the callback to
+ * @param callback The callback to invoke when future is completed
+ * @deprecated Use {@linkplain #addCallback(ApiFuture, ApiFutureCallback, Executor) the overload
+ * that requires an executor}. For identical behavior, pass {@link
+ * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether
+ * another executor would be safer.
*/
@Deprecated
public static void addCallback(
@@ -57,6 +62,18 @@ public static void addCallback(
addCallback(future, callback, directExecutor());
}
+ /**
+ * Registers a callback to be run when the {@link ApiFuture}'s computation is complete or, if the
+ * computation is already complete, immediately.
+ *
+ * Note that this method is a delegate of {@link Futures#addCallback(ListenableFuture,
+ * FutureCallback, Executor)}.
+ *
+ * @param future The future attach the callback to
+ * @param callback The callback to invoke when future is completed
+ * @param executor The executor to run callback when the future completes
+ * @see Futures#addCallback(ListenableFuture, FutureCallback, Executor)
+ */
public static void addCallback(
final ApiFuture future, final ApiFutureCallback super V> callback, Executor executor) {
Futures.addCallback(
@@ -75,11 +92,20 @@ public void onSuccess(V v) {
executor);
}
- /*
- * @deprecated Use {@linkplain #catching(ApiFuture, Class, ApiFunction, Executor) the
- * overload that requires an executor}. For identical behavior, pass {@link
- * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether
- * another executor would be safer.
+ /**
+ * Returns an {@link ApiFuture} whose result is taken from the given primary input or, if the
+ * primary input fails with the given exceptionType, from the result provided by the callback.
+ *
+ * @param input The primary input {@code ApiFuture}
+ * @param exceptionType The exception type that triggers use of {@code fallback}
+ * @param callback The {@link ApiFunction} to be called if input fails with the expected exception
+ * type
+ * @return A future whose result is taken either from the given {@code input} or by the {@code
+ * callback}
+ * @deprecated Use {@linkplain #catching(ApiFuture, Class, ApiFunction, Executor) the overload
+ * that requires an executor}. For identical behavior, pass {@link
+ * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether
+ * another executor would be safer.
*/
@Deprecated
public static ApiFuture catching(
@@ -89,6 +115,22 @@ public static ApiFuture catching(
return catching(input, exceptionType, callback, directExecutor());
}
+ /**
+ * Returns an {@link ApiFuture} whose result is taken from the given primary input or, if the
+ * primary input fails with the given exceptionType, from the result provided by the callback.
+ *
+ * Note that this method is a delegate of {@link Futures#catching(ListenableFuture, Class,
+ * Function, Executor)}.
+ *
+ * @param input The primary input {@code ApiFuture}
+ * @param exceptionType The exception type that triggers use of {@code fallback}
+ * @param callback The {@link ApiFunction} to be called if input fails with the expected exception
+ * type
+ * @param executor The executor that runs {@code fallback} if {@code input} fails
+ * @return A future whose result is taken either from the given {@code input} or by the {@code
+ * callback}
+ * @see Futures#catching(ListenableFuture, Class, Function, Executor)
+ */
public static ApiFuture catching(
ApiFuture extends V> input,
Class exceptionType,
@@ -103,6 +145,22 @@ public static ApiFuture catching(
return new ListenableFutureToApiFuture(catchingFuture);
}
+ /**
+ * Returns a {@link ApiFuture} whose result is taken from the given primary input or, if the
+ * primary input fails with the given exceptionType, from the result provided by the callback.
+ *
+ * Note that this method is a delegate of {@link Futures#catchingAsync(ListenableFuture, Class,
+ * AsyncFunction, Executor)}
+ *
+ * @param input The primary input {@code ApiFuture}
+ * @param exceptionType The exception type that triggers use of {@code fallback}.
+ * @param callback The {@link ApiAsyncFunction} to be called if {@code input} fails with the
+ * expected * exception type.
+ * @param executor The executor that runs {@code fallback} if {@code input} fails
+ * @return A future whose result is taken either from the given {@code input} or by the {@code
+ * callback}
+ * @see Futures#catchingAsync(ListenableFuture, Class, AsyncFunction, Executor)
+ */
@BetaApi
public static ApiFuture catchingAsync(
ApiFuture input,
@@ -124,23 +182,57 @@ public ListenableFuture apply(X exception) throws Exception {
return new ListenableFutureToApiFuture<>(catchingFuture);
}
+ /**
+ * Creates a {@code ApiFuture} which has its value set immediately upon construction.
+ *
+ * Note that this method is a delegate of {@link Futures#immediateFuture(Object)}.
+ *
+ * @param value The value set to the {@code ApiFuture} upon construction
+ * @return A future that holds {@code value}
+ * @see Futures#immediateFuture(Object)
+ */
public static ApiFuture immediateFuture(V value) {
return new ListenableFutureToApiFuture<>(Futures.immediateFuture(value));
}
+ /**
+ * Returns a {@code ApiFuture} which has an exception set immediately upon construction.
+ *
+ * Note that this method is a delegate of {@link Futures#immediateFailedFuture(Throwable)}.
+ *
+ * @param throwable The exception set to the {@code ApiFuture} upon construction
+ * @return A future that holds an exception
+ * @see Futures#immediateFailedFuture(Throwable)
+ */
public static ApiFuture immediateFailedFuture(Throwable throwable) {
return new ListenableFutureToApiFuture(Futures.immediateFailedFuture(throwable));
}
+ /**
+ * Creates a {@code ApiFuture} which is cancelled immediately upon construction, so that {@code
+ * isCancelled()} always returns {@code true}.
+ *
+ * Note that this method is a delegate of {@link Futures#immediateCancelledFuture()}.
+ *
+ * @return A cancelled future
+ * @see Futures#immediateCancelledFuture()
+ */
public static ApiFuture immediateCancelledFuture() {
return new ListenableFutureToApiFuture(Futures.immediateCancelledFuture());
}
- /*
- * @deprecated Use {@linkplain #transform(ApiFuture, ApiFunction, Executor) the
- * overload that requires an executor}. For identical behavior, pass {@link
- * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether
- * another executor would be safer.
+ /**
+ * Returns a new {@code ApiFuture} whose result is derived from the result of the given {@code
+ * ApiFuture}.
+ *
+ * @param input The future to transform
+ * @param function A Function to transform the results of the provided future to the results of
+ * the returned future
+ * @return A future that holds result of the transformation
+ * @deprecated Use {@linkplain #transform(ApiFuture, ApiFunction, Executor) the overload that
+ * requires an executor}. For identical behavior, pass {@link
+ * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether
+ * another executor would be safer.
*/
@Deprecated
public static ApiFuture transform(
@@ -148,6 +240,20 @@ public static ApiFuture transform(
return transform(input, function, directExecutor());
}
+ /**
+ * Returns a new {@code ApiFuture} whose result is derived from the result of the given {@code
+ * ApiFuture}.
+ *
+ * Note that this method is a delegate of {@link Futures#transform(ListenableFuture, Function,
+ * Executor)}.
+ *
+ * @param input The future to transform
+ * @param function A Function to transform the results of the provided future to the results of
+ * the returned future.
+ * @param executor Executor to run the function in.
+ * @return A future that holds result of the transformation
+ * @see Futures#transform(ListenableFuture, Function, Executor)
+ */
public static ApiFuture transform(
ApiFuture extends V> input,
final ApiFunction super V, ? extends X> function,
@@ -159,6 +265,18 @@ public static ApiFuture transform(
executor));
}
+ /**
+ * Creates a new {@code ApiFuture} whose value is a list containing the values of all its input
+ * futures, if all succeed.
+ *
+ * The list of results is in the same order as the input list.
+ *
+ *
Note that this method is a delegate of {@link Futures#allAsList(Iterable)}.
+ *
+ * @param futures Futures to combine
+ * @return A future that provides a list of the results of the component futures
+ * @see Futures#allAsList(Iterable)
+ */
public static ApiFuture> allAsList(
Iterable extends ApiFuture extends V>> futures) {
return new ListenableFutureToApiFuture<>(
@@ -172,6 +290,21 @@ public ListenableFuture extends V> apply(ApiFuture extends V> apiFuture) {
})));
}
+ /**
+ * Creates a new {@code ApiFuture} whose value is a list containing the values of all its
+ * successful input futures. The list of results is in the same order as the input list, and if
+ * any of the provided futures fails or is canceled, its corresponding position will contain
+ * {@code null} (which is indistinguishable from the future having a successful value of {@code
+ * null}).
+ *
+ * The list of results is in the same order as the input list.
+ *
+ *
Note that this method is a delegate of {@link Futures#successfulAsList(Iterable)}.
+ *
+ * @param futures Futures to combine
+ * @return A future that provides a list of the results of the component futures
+ * @see Futures#successfulAsList(Iterable)
+ */
@BetaApi
public static ApiFuture> successfulAsList(
Iterable extends ApiFuture extends V>> futures) {
@@ -186,11 +319,20 @@ public ListenableFuture extends V> apply(ApiFuture extends V> apiFuture) {
})));
}
- /*
- * @deprecated Use {@linkplain #transformAsync(ApiFuture, ApiFunction, Executor) the
- * overload that requires an executor}. For identical behavior, pass {@link
- * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether
- * another executor would be safer.
+ /**
+ * Returns a new {@code ApiFuture} whose result is asynchronously derived from the result of the
+ * given {@code ApiFuture}. If the given {@code Future} fails, the returned {@code ApiFuture}
+ * fails with the same exception (and the function is not invoked).
+ *
+ * @param input The future to transform
+ * @param function A function to transform the result of the input future to the result of the
+ * output future
+ * @return A future that holds result of the function (if the input succeeded) or the original
+ * input's failure (if not)
+ * @deprecated Use {@linkplain #transformAsync(ApiFuture, ApiAsyncFunction, Executor)}, the
+ * overload that requires an executor. For identical behavior, pass {@link
+ * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether
+ * another executor would be safer.
*/
@Deprecated
public static ApiFuture transformAsync(
@@ -198,6 +340,22 @@ public static ApiFuture transformAsync(
return transformAsync(input, function, directExecutor());
}
+ /**
+ * Returns a new {@code ApiFuture} whose result is asynchronously derived from the result of the
+ * given {@code ApiFuture}. If the given {@code Future} fails, the returned {@code ApiFuture}
+ * fails with the same exception (and the function is not invoked).
+ *
+ * Note that this method is a delegate of {@link Futures#transformAsync(ListenableFuture,
+ * AsyncFunction, Executor)}.
+ *
+ * @param input The future to transform
+ * @param function A function to transform the result of the input future to the result of the
+ * output future
+ * @param executor Executor to run the function in.
+ * @return A future that holds result of the function (if the input succeeded) or the original
+ * input's failure (if not)
+ * @see Futures#transformAsync(ListenableFuture, AsyncFunction, Executor)
+ */
public static ApiFuture transformAsync(
ApiFuture input, final ApiAsyncFunction function, Executor executor) {
ListenableFuture listenableInput = listenableFutureForApiFuture(input);
diff --git a/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java b/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java
index 3efa388f5d..2d778c5e95 100644
--- a/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java
+++ b/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java
@@ -39,6 +39,7 @@
*/
public class ValidationException extends IllegalArgumentException {
+ @FunctionalInterface
public interface Supplier {
T get();
}
diff --git a/coverage-report/README.md b/coverage-report/README.md
index 014a2d9f33..1cf62cc1d5 100644
--- a/coverage-report/README.md
+++ b/coverage-report/README.md
@@ -7,7 +7,7 @@ the metrics is to provide insights into how much of api-common and GAX code is b
### Unit Test Coverage
In order to view aggregate unit test coverage of api-common and GAX in `api-common`, `gax-java` and `showcase`:
-1. At the root of the repository, run `mvn clean test -DenableTestCoverage`.
+1. At the root of the repository, run `mvn clean test -DenableShowcaseTestCoverage`.
2. The metrics can be found at `gapic-generator-java/coverage-report/target/site/jacoco-aggregate/index.html`

@@ -16,7 +16,7 @@ In order to view aggregate unit test coverage of api-common and GAX in `api-comm
In order to view aggregate integration test coverage of api-common and GAX in `api-common`, `gax-java` and `showcase`:
-1. At the root of the repository, run `mvn clean verify -DskipUnitTests -DenableTestCoverage -Penable-integration-tests`.
+1. At the root of the repository, run `mvn clean verify -DskipUnitTests -DenableShowcaseTestCoverage -Penable-integration-tests`.
2. The metrics can be found at `gapic-generator-java/coverage-report/target/site/jacoco-aggregate/index.html`

\ No newline at end of file
diff --git a/coverage-report/pom.xml b/coverage-report/pom.xml
index dd6a0e57fa..45bb13b176 100644
--- a/coverage-report/pom.xml
+++ b/coverage-report/pom.xml
@@ -31,22 +31,22 @@
com.google.api
gax
- 2.24.0
+ 2.25.0
com.google.api
gax-grpc
- 2.24.0
+ 2.25.0
com.google.api
gax-httpjson
- 0.109.0
+ 0.110.0
com.google.api
api-common
- 2.7.0
+ 2.8.0
diff --git a/gapic-generator-java-bom/pom.xml b/gapic-generator-java-bom/pom.xml
index 52fcd20dc0..2d006d6b7b 100644
--- a/gapic-generator-java-bom/pom.xml
+++ b/gapic-generator-java-bom/pom.xml
@@ -4,7 +4,7 @@
com.google.api
gapic-generator-java-bom
pom
- 2.16.0
+ 2.17.0
GAPIC Generator Java BOM
BOM for the libraries in gapic-generator-java repository. Users should not
@@ -15,7 +15,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.16.0
+ 2.17.0
../gapic-generator-java-pom-parent
@@ -60,56 +60,56 @@
com.google.api
api-common
- 2.7.0
+ 2.8.0
com.google.api
gax-bom
- 2.24.0
+ 2.25.0
pom
import
com.google.api.grpc
grpc-google-common-protos
- 2.15.0
+ 2.16.0
com.google.api.grpc
proto-google-common-protos
- 2.15.0
+ 2.16.0
com.google.api.grpc
proto-google-iam-v1
- 1.10.0
+ 1.11.0
com.google.api.grpc
proto-google-iam-v2
- 1.10.0
+ 1.11.0
com.google.api.grpc
proto-google-iam-v2beta
- 1.10.0
+ 1.11.0
com.google.api.grpc
grpc-google-iam-v1
- 1.10.0
+ 1.11.0
com.google.api.grpc
grpc-google-iam-v2
- 1.10.0
+ 1.11.0
com.google.api.grpc
grpc-google-iam-v2beta
- 1.10.0
+ 1.11.0
diff --git a/gapic-generator-java-pom-parent/pom.xml b/gapic-generator-java-pom-parent/pom.xml
index cbf629d196..42756a06a1 100644
--- a/gapic-generator-java-pom-parent/pom.xml
+++ b/gapic-generator-java-pom-parent/pom.xml
@@ -5,7 +5,7 @@
4.0.0
com.google.api
gapic-generator-java-pom-parent
- 2.16.0
+ 2.17.0
pom
GAPIC Generator Java POM Parent
https://github.com/googleapis/gapic-generator-java
@@ -100,7 +100,7 @@
test-coverage
- enableTestCoverage
+ enableShowcaseTestCoverage
diff --git a/gapic-generator-java/pom.xml b/gapic-generator-java/pom.xml
index 51507b7a27..b72d5cc6da 100644
--- a/gapic-generator-java/pom.xml
+++ b/gapic-generator-java/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.google.api
gapic-generator-java
- 2.16.0
+ 2.17.0
GAPIC Generator Java
GAPIC generator Java
@@ -23,7 +23,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.16.0
+ 2.17.0
../gapic-generator-java-pom-parent
@@ -32,7 +32,7 @@
com.google.api
gapic-generator-java-bom
- 2.16.0
+ 2.17.0
pom
import
@@ -82,7 +82,7 @@
showcase-sonar-analysis
- enableTestCoverage
+ enableShowcaseTestCoverage
diff --git a/gax-java/dependencies.properties b/gax-java/dependencies.properties
index 62db47a713..8048768d4a 100644
--- a/gax-java/dependencies.properties
+++ b/gax-java/dependencies.properties
@@ -8,16 +8,16 @@
# Versions of oneself
# {x-version-update-start:gax:current}
-version.gax=2.24.0
+version.gax=2.25.0
# {x-version-update-end}
# {x-version-update-start:gax:current}
-version.gax_grpc=2.24.0
+version.gax_grpc=2.25.0
# {x-version-update-end}
# {x-version-update-start:gax:current}
-version.gax_bom=2.24.0
+version.gax_bom=2.25.0
# {x-version-update-end}
# {x-version-update-start:gax-httpjson:current}
-version.gax_httpjson=0.109.0
+version.gax_httpjson=0.110.0
# {x-version-update-end}
# Versions for dependencies which actual artifacts differ between Bazel and Gradle.
@@ -32,8 +32,8 @@ version.io_grpc=1.54.0
# It should be constructed the following way:
# 1) Take full artifact id (including the group and classifier (if any) portions) and remove version portion.
# 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:2.14.3
-maven.com_google_api_grpc_grpc_google_common_protos=com.google.api.grpc:grpc-google-common-protos:2.14.3
+maven.com_google_api_grpc_proto_google_common_protos=com.google.api.grpc:proto-google-common-protos:2.15.0
+maven.com_google_api_grpc_grpc_google_common_protos=com.google.api.grpc:grpc-google-common-protos:2.15.0
maven.com_google_auth_google_auth_library_oauth2_http=com.google.auth:google-auth-library-oauth2-http:1.16.0
maven.com_google_auth_google_auth_library_credentials=com.google.auth:google-auth-library-credentials:1.16.0
maven.io_opencensus_opencensus_api=io.opencensus:opencensus-api:0.31.1
@@ -63,10 +63,10 @@ maven.com_google_errorprone_error_prone_annotations=com.google.errorprone:error_
maven.com_google_j2objc_j2objc_annotations=com.google.j2objc:j2objc-annotations:1.3
maven.com_google_auto_value_auto_value=com.google.auto.value:auto-value:1.10.1
maven.com_google_auto_value_auto_value_annotations=com.google.auto.value:auto-value-annotations:1.10.1
-maven.com_google_api_api_common=com.google.api:api-common:2.6.3
-maven.org_threeten_threetenbp=org.threeten:threetenbp:1.6.7
-maven.com_google_api_grpc_grpc_google_iam_v1=com.google.api.grpc:grpc-google-iam-v1:1.9.3
-maven.com_google_api_grpc_proto_google_iam_v1=com.google.api.grpc:proto-google-iam-v1:1.9.3
+maven.com_google_api_api_common=com.google.api:api-common:2.7.0
+maven.org_threeten_threetenbp=org.threeten:threetenbp:1.6.8
+maven.com_google_api_grpc_grpc_google_iam_v1=com.google.api.grpc:grpc-google-iam-v1:1.10.0
+maven.com_google_api_grpc_proto_google_iam_v1=com.google.api.grpc:proto-google-iam-v1:1.10.0
maven.com_google_http_client_google_http_client=com.google.http-client:google-http-client:1.43.1
maven.com_google_http_client_google_http_client_gson=com.google.http-client:google-http-client-gson:1.43.1
maven.org_codehaus_mojo_animal_sniffer_annotations=org.codehaus.mojo:animal-sniffer-annotations:1.23
@@ -79,5 +79,5 @@ maven.org_mockito_mockito_core=org.mockito:mockito-core:2.28.2
maven.org_hamcrest_hamcrest_core=org.hamcrest:hamcrest-core:1.3
maven.com_google_truth_truth=com.google.truth:truth:1.1.3
maven.com_googlecode_java_diff_utils_diffutils=com.googlecode.java-diff-utils:diffutils:1.3.0
-maven.net_bytebuddy_byte_buddy=net.bytebuddy:byte-buddy:1.14.2
+maven.net_bytebuddy_byte_buddy=net.bytebuddy:byte-buddy:1.14.3
maven.org_objenesis_objenesis=org.objenesis:objenesis:2.6
diff --git a/gax-java/gax-bom/pom.xml b/gax-java/gax-bom/pom.xml
index 13c42153ae..8acbf1b91e 100644
--- a/gax-java/gax-bom/pom.xml
+++ b/gax-java/gax-bom/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.api
gax-bom
- 2.24.0
+ 2.25.0
pom
GAX (Google Api eXtensions) for Java (BOM)
Google Api eXtensions for Java (BOM)
@@ -43,55 +43,55 @@
com.google.api
gax
- 2.24.0
+ 2.25.0
com.google.api
gax
- 2.24.0
+ 2.25.0
test-jar
testlib
com.google.api
gax
- 2.24.0
+ 2.25.0
testlib
com.google.api
gax-grpc
- 2.24.0
+ 2.25.0
com.google.api
gax-grpc
- 2.24.0
+ 2.25.0
test-jar
testlib
com.google.api
gax-grpc
- 2.24.0
+ 2.25.0
testlib
com.google.api
gax-httpjson
- 0.109.0
+ 0.110.0
com.google.api
gax-httpjson
- 0.109.0
+ 0.110.0
test-jar
testlib
com.google.api
gax-httpjson
- 0.109.0
+ 0.110.0
testlib
diff --git a/gax-java/gax-grpc/pom.xml b/gax-java/gax-grpc/pom.xml
index e02f829009..f3c81efcc4 100644
--- a/gax-java/gax-grpc/pom.xml
+++ b/gax-java/gax-grpc/pom.xml
@@ -3,7 +3,7 @@
4.0.0
gax-grpc
- 2.24.0
+ 2.25.0
jar
GAX (Google Api eXtensions) for Java (gRPC)
Google Api eXtensions for Java (gRPC)
@@ -11,7 +11,7 @@
com.google.api
gax-parent
- 2.24.0
+ 2.25.0
diff --git a/gax-java/gax-httpjson/pom.xml b/gax-java/gax-httpjson/pom.xml
index 700bc365b5..6dc3c017b1 100644
--- a/gax-java/gax-httpjson/pom.xml
+++ b/gax-java/gax-httpjson/pom.xml
@@ -3,7 +3,7 @@
4.0.0
gax-httpjson
- 0.109.0
+ 0.110.0
jar
GAX (Google Api eXtensions) for Java (HTTP JSON)
Google Api eXtensions for Java (HTTP JSON)
@@ -11,7 +11,7 @@
com.google.api
gax-parent
- 2.24.0
+ 2.25.0
diff --git a/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java b/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java
index 024e8d3d1e..aa42604596 100644
--- a/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java
+++ b/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java
@@ -33,6 +33,7 @@
* A functional interface to be implemented for each request message to extract specific fields from
* it. For advanced usage only.
*/
+@FunctionalInterface
public interface FieldsExtractor {
ParamsT extract(RequestT request);
}
diff --git a/gax-java/gax/clirr-ignored-differences.xml b/gax-java/gax/clirr-ignored-differences.xml
new file mode 100644
index 0000000000..dcc0be350d
--- /dev/null
+++ b/gax-java/gax/clirr-ignored-differences.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ 7012
+ com/google/api/gax/paging/Page
+ * stream*(*)
+
+
diff --git a/gax-java/gax/pom.xml b/gax-java/gax/pom.xml
index 1fdfdb691f..88928168dc 100644
--- a/gax-java/gax/pom.xml
+++ b/gax-java/gax/pom.xml
@@ -3,7 +3,7 @@
4.0.0
gax
- 2.24.0
+ 2.25.0
jar
GAX (Google Api eXtensions) for Java (Core)
Google Api eXtensions for Java (Core)
@@ -11,7 +11,7 @@
com.google.api
gax-parent
- 2.24.0
+ 2.25.0
diff --git a/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java b/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java
index abacde970c..de1cbc0ab9 100644
--- a/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java
+++ b/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java
@@ -29,6 +29,9 @@
*/
package com.google.api.gax.paging;
+import java.util.stream.Stream;
+import java.util.stream.StreamSupport;
+
/**
* A Page object wraps an API list method response.
*
@@ -52,12 +55,26 @@ public interface Page {
Page getNextPage();
/**
- * Returns an iterable that traverses all of the elements of the underlying data source. The data
- * is fetched lazily page by page, where each page may contain multiple elements. A new page is
+ * Returns an iterable that traverses all the elements of the underlying data source. The data is
+ * fetched lazily page by page, where each page may contain multiple elements. A new page is
* fetched whenever the elements of any particular page are exhausted.
*/
Iterable iterateAll();
/** Returns an iterable over the elements in this page. */
Iterable getValues();
+
+ /**
+ * Returns a stream that traverses all the elements of the underlying data source. The data is
+ * fetched lazily page by page, where each page may contain multiple elements. A new page is
+ * fetched whenever the elements of any particular page are exhausted.
+ */
+ default Stream streamAll() {
+ return StreamSupport.stream(iterateAll().spliterator(), false);
+ }
+
+ /** Returns a stream over the elements in this page. */
+ default Stream streamValues() {
+ return StreamSupport.stream(getValues().spliterator(), false);
+ }
}
diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java
index c973675881..38efb2da37 100644
--- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java
+++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java
@@ -100,15 +100,7 @@ public void call(final BidiStreamObserver bidiObserver) {
/** Listens to server responses and send requests when the network is free. */
public void call(
final BidiStreamObserver bidiObserver, ApiCallContext context) {
- internalCall(
- bidiObserver,
- new ClientStreamReadyObserver() {
- @Override
- public void onReady(ClientStream stream) {
- bidiObserver.onReady(stream);
- }
- },
- context);
+ internalCall(bidiObserver, bidiObserver, context);
}
/**
@@ -183,11 +175,8 @@ public ClientStream splitCall(
ResponseObserver responseObserver, ApiCallContext context) {
return internalCall(
responseObserver,
- new ClientStreamReadyObserver() {
- @Override
- public void onReady(ClientStream stream) {
- // no op
- }
+ stream -> {
+ // no op
},
context);
}
diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java
index 0347524512..d0c9f32d5b 100644
--- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java
+++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java
@@ -30,6 +30,7 @@
package com.google.api.gax.rpc;
/** A callback used to report that the {@link ClientStream} is ready to send more messages. */
+@FunctionalInterface
public interface ClientStreamReadyObserver {
void onReady(ClientStream stream);
}
diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java
index 518c68523c..d1f9848631 100644
--- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java
+++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java
@@ -31,6 +31,8 @@
import com.google.api.core.InternalApi;
import java.util.Iterator;
+import java.util.stream.Stream;
+import java.util.stream.StreamSupport;
import javax.annotation.Nonnull;
/**
@@ -89,6 +91,15 @@ public Iterator iterator() {
return iterator;
}
+ /**
+ * Returns a sequential {@code Stream} with server responses as its source.
+ *
+ * @return a sequential {@code Stream} over the elements in server responses
+ */
+ public Stream stream() {
+ return StreamSupport.stream(this.spliterator(), false);
+ }
+
/**
* Returns true if the next call to the iterator's hasNext() or next() is guaranteed to be
* nonblocking.
diff --git a/gax-java/gax/src/test/java/com/google/api/gax/rpc/PagingTest.java b/gax-java/gax/src/test/java/com/google/api/gax/rpc/PagingTest.java
index e1655b6bf7..f7f02c0f74 100644
--- a/gax-java/gax/src/test/java/com/google/api/gax/rpc/PagingTest.java
+++ b/gax-java/gax/src/test/java/com/google/api/gax/rpc/PagingTest.java
@@ -133,6 +133,54 @@ public void pagedByPage() {
Truth.assertThat(requestCapture.getAllValues()).containsExactly(0, 2, 4).inOrder();
}
+ @Test
+ public void streamValues_streamIsCorrectPerPage() {
+ ArgumentCaptor requestCapture = ArgumentCaptor.forClass(Integer.class);
+ Mockito.when(callIntList.futureCall(requestCapture.capture(), Mockito.any()))
+ .thenReturn(ApiFutures.immediateFuture(Arrays.asList(0, 1, 2)))
+ .thenReturn(ApiFutures.immediateFuture(Arrays.asList(3, 4)))
+ .thenReturn(ApiFutures.immediateFuture(Collections.emptyList()));
+
+ Page page =
+ FakeCallableFactory.createPagedCallable(
+ callIntList,
+ PagedCallSettings.newBuilder(new ListIntegersPagedResponseFactory()).build(),
+ clientContext)
+ .call(0)
+ .getPage();
+
+ Truth.assertThat(page.streamValues().count()).isEqualTo(3);
+ Truth.assertThat(page.hasNextPage()).isTrue();
+
+ page = page.getNextPage();
+ Truth.assertThat(page.streamValues().count()).isEqualTo(2);
+ Truth.assertThat(page.hasNextPage()).isTrue();
+
+ page = page.getNextPage();
+ Truth.assertThat(page.streamValues().count()).isEqualTo(0);
+ Truth.assertThat(page.hasNextPage()).isFalse();
+ Truth.assertThat(page.getNextPage()).isNull();
+ }
+
+ @Test
+ public void streamAll_streamIsCorrectInAllPages() {
+ ArgumentCaptor requestCapture = ArgumentCaptor.forClass(Integer.class);
+ Mockito.when(callIntList.futureCall(requestCapture.capture(), Mockito.any()))
+ .thenReturn(ApiFutures.immediateFuture(Arrays.asList(0, 1, 2)))
+ .thenReturn(ApiFutures.immediateFuture(Arrays.asList(3, 4)))
+ .thenReturn(ApiFutures.immediateFuture(Collections.emptyList()));
+
+ Page page =
+ FakeCallableFactory.createPagedCallable(
+ callIntList,
+ PagedCallSettings.newBuilder(new ListIntegersPagedResponseFactory()).build(),
+ clientContext)
+ .call(0)
+ .getPage();
+
+ Truth.assertThat(page.streamAll().count()).isEqualTo(5);
+ }
+
@Test
public void pagedByFixedSizeCollection() {
ArgumentCaptor requestCapture = ArgumentCaptor.forClass(Integer.class);
diff --git a/gax-java/gax/src/test/java/com/google/api/gax/rpc/ServerStreamTest.java b/gax-java/gax/src/test/java/com/google/api/gax/rpc/ServerStreamTest.java
index b0cdc30ce1..087c64ca48 100644
--- a/gax-java/gax/src/test/java/com/google/api/gax/rpc/ServerStreamTest.java
+++ b/gax-java/gax/src/test/java/com/google/api/gax/rpc/ServerStreamTest.java
@@ -41,6 +41,7 @@
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -109,6 +110,31 @@ public List call() {
Truth.assertThat(results).containsExactly(0, 1, 2, 3, 4);
}
+ @Test
+ public void testMultipleItemStreamMethod() throws Exception {
+ Future producerFuture =
+ executor.submit(
+ () -> {
+ for (int i = 0; i < 5; i++) {
+ int requestCount = controller.popLastPull();
+
+ Truth.assertWithMessage("ServerStream should request one item at a time")
+ .that(requestCount)
+ .isEqualTo(1);
+
+ stream.observer().onResponse(i);
+ }
+ stream.observer().onComplete();
+ return null;
+ });
+ Future> consumerFuture =
+ executor.submit(() -> stream.stream().collect(Collectors.toList()));
+
+ producerFuture.get(60, TimeUnit.SECONDS);
+ List results = consumerFuture.get();
+ Truth.assertThat(results).containsExactly(0, 1, 2, 3, 4);
+ }
+
@Test
public void testEarlyTermination() throws Exception {
Future taskFuture =
diff --git a/gax-java/pom.xml b/gax-java/pom.xml
index 0fe0fcf80a..605bf19d26 100644
--- a/gax-java/pom.xml
+++ b/gax-java/pom.xml
@@ -4,14 +4,14 @@
com.google.api
gax-parent
pom
- 2.24.0
+ 2.25.0
GAX (Google Api eXtensions) for Java (Parent)
Google Api eXtensions for Java (Parent)
com.google.api
gapic-generator-java-pom-parent
- 2.16.0
+ 2.17.0
../gapic-generator-java-pom-parent
@@ -51,7 +51,7 @@
com.google.api
api-common
- 2.7.0
+ 2.8.0
com.google.auth
@@ -63,7 +63,7 @@
org.threeten
threetenbp
- 1.6.7
+ 1.6.8
com.google.code.findbugs
@@ -109,24 +109,24 @@
com.google.api
gax
- 2.24.0
+ 2.25.0
com.google.api
gax
- 2.24.0
+ 2.25.0
test-jar
testlib
com.google.api.grpc
proto-google-common-protos
- 2.15.0
+ 2.16.0
com.google.api.grpc
grpc-google-common-protos
- 2.15.0
+ 2.16.0
io.grpc
diff --git a/java-common-protos/.kokoro/build.bat b/java-common-protos/.kokoro/build.bat
deleted file mode 100644
index 067cf4a4c4..0000000000
--- a/java-common-protos/.kokoro/build.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-:: Copyright 2022 Google LLC
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-:: http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-:: Github action job to test core java library features on
-:: downstream client libraries before they are released.
-:: See documentation in type-shell-output.bat
-
-"C:\Program Files\Git\bin\bash.exe" %~dp0build.sh
diff --git a/java-common-protos/.kokoro/build.sh b/java-common-protos/.kokoro/build.sh
deleted file mode 100755
index 2740275207..0000000000
--- a/java-common-protos/.kokoro/build.sh
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/bin/bash
-# Copyright 2019 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-## Get the directory of the build script
-scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}"))
-## cd to the parent directory, i.e. the root of the git repo
-cd ${scriptDir}/..
-
-# include common functions
-source ${scriptDir}/common.sh
-
-# Print out Maven & Java version
-mvn -version
-echo ${JOB_TYPE}
-
-# attempt to install 3 times with exponential backoff (starting with 10 seconds)
-retry_with_backoff 3 10 \
- mvn install -B -V -ntp \
- -DskipTests=true \
- -Dclirr.skip=true \
- -Denforcer.skip=true \
- -Dmaven.javadoc.skip=true \
- -Dgcloud.download.skip=true \
- -T 1C
-
-# if GOOGLE_APPLICATION_CREDENTIALS is specified as a relative path, prepend Kokoro root directory onto it
-if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then
- export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS})
-fi
-
-RETURN_CODE=0
-set +e
-
-case ${JOB_TYPE} in
-test)
- mvn test -B -ntp -Dclirr.skip=true -Denforcer.skip=true
- RETURN_CODE=$?
- ;;
-lint)
- mvn com.coveo:fmt-maven-plugin:check -B -ntp
- RETURN_CODE=$?
- ;;
-javadoc)
- mvn javadoc:javadoc javadoc:test-javadoc -B -ntp
- RETURN_CODE=$?
- ;;
-integration)
- mvn -B ${INTEGRATION_TEST_ARGS} \
- -ntp \
- -Penable-integration-tests \
- -DtrimStackTrace=false \
- -Dclirr.skip=true \
- -Denforcer.skip=true \
- -fae \
- verify
- RETURN_CODE=$?
- ;;
-graalvm)
- # Run Unit and Integration Tests with Native Image
- mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test
- RETURN_CODE=$?
- ;;
-graalvm17)
- # Run Unit and Integration Tests with Native Image
- mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test
- RETURN_CODE=$?
- ;;
-samples)
- SAMPLES_DIR=samples
- # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise.
- if [[ ! -z ${KOKORO_GITHUB_PULL_REQUEST_NUMBER} ]]
- then
- SAMPLES_DIR=samples/snapshot
- fi
-
- if [[ -f ${SAMPLES_DIR}/pom.xml ]]
- then
- for FILE in ${KOKORO_GFILE_DIR}/secret_manager/*-samples-secrets; do
- [[ -f "$FILE" ]] || continue
- source "$FILE"
- done
-
- pushd ${SAMPLES_DIR}
- mvn -B \
- -ntp \
- -DtrimStackTrace=false \
- -Dclirr.skip=true \
- -Denforcer.skip=true \
- -fae \
- verify
- RETURN_CODE=$?
- popd
- else
- echo "no sample pom.xml found - skipping sample tests"
- fi
- ;;
-clirr)
- mvn -B -ntp -Denforcer.skip=true clirr:check
- RETURN_CODE=$?
- ;;
-*)
- ;;
-esac
-
-if [ "${REPORT_COVERAGE}" == "true" ]
-then
- bash ${KOKORO_GFILE_DIR}/codecov.sh
-fi
-
-# fix output location of logs
-bash .kokoro/coerce_logs.sh
-
-if [[ "${ENABLE_FLAKYBOT}" == "true" ]]
-then
- chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/flakybot
- ${KOKORO_GFILE_DIR}/linux_amd64/flakybot -repo=googleapis/java-common-protos
-fi
-
-echo "exiting with ${RETURN_CODE}"
-exit ${RETURN_CODE}
diff --git a/java-common-protos/.kokoro/coerce_logs.sh b/java-common-protos/.kokoro/coerce_logs.sh
deleted file mode 100755
index 46edbf7f2f..0000000000
--- a/java-common-protos/.kokoro/coerce_logs.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-# Copyright 2019 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This script finds and moves sponge logs so that they can be found by placer
-# and are not flagged as flaky by sponge.
-
-set -eo pipefail
-
-## Get the directory of the build script
-scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}"))
-## cd to the parent directory, i.e. the root of the git repo
-cd ${scriptDir}/..
-
-job=$(basename ${KOKORO_JOB_NAME})
-
-echo "coercing sponge logs..."
-for xml in `find . -name *-sponge_log.xml`
-do
- class=$(basename ${xml} | cut -d- -f2)
- dir=$(dirname ${xml})/${job}/${class}
- text=$(dirname ${xml})/${class}-sponge_log.txt
- mkdir -p ${dir}
- mv ${xml} ${dir}/sponge_log.xml
- mv ${text} ${dir}/sponge_log.txt
-done
diff --git a/java-common-protos/.kokoro/common.cfg b/java-common-protos/.kokoro/common.cfg
deleted file mode 100644
index 8b2d91d032..0000000000
--- a/java-common-protos/.kokoro/common.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Download trampoline resources. These will be in ${KOKORO_GFILE_DIR}
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
-
-# All builds use the trampoline script to run in docker.
-build_file: "java-common-protos/.kokoro/trampoline.sh"
-
-# Tell the trampoline which build file to use.
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/build.sh"
-}
diff --git a/java-common-protos/.kokoro/common.sh b/java-common-protos/.kokoro/common.sh
deleted file mode 100644
index f8f957af11..0000000000
--- a/java-common-protos/.kokoro/common.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-function retry_with_backoff {
- attempts_left=$1
- sleep_seconds=$2
- shift 2
- command=$@
-
-
- # store current flag state
- flags=$-
-
- # allow a failures to continue
- set +e
- ${command}
- exit_code=$?
-
- # restore "e" flag
- if [[ ${flags} =~ e ]]
- then set -e
- else set +e
- fi
-
- if [[ $exit_code == 0 ]]
- then
- return 0
- fi
-
- # failure
- if [[ ${attempts_left} > 0 ]]
- then
- echo "failure (${exit_code}), sleeping ${sleep_seconds}..."
- sleep ${sleep_seconds}
- new_attempts=$((${attempts_left} - 1))
- new_sleep=$((${sleep_seconds} * 2))
- retry_with_backoff ${new_attempts} ${new_sleep} ${command}
- fi
-
- return $exit_code
-}
-
-## Helper functionss
-function now() { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n'; }
-function msg() { println "$*" >&2; }
-function println() { printf '%s\n' "$(now) $*"; }
-
-## Helper comment to trigger updated repo dependency release
\ No newline at end of file
diff --git a/java-common-protos/.kokoro/continuous/common.cfg b/java-common-protos/.kokoro/continuous/common.cfg
deleted file mode 100644
index d8e6ffc95f..0000000000
--- a/java-common-protos/.kokoro/continuous/common.cfg
+++ /dev/null
@@ -1,25 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Build logs will be here
-action {
- define_artifacts {
- regex: "**/*sponge_log.xml"
- regex: "**/*sponge_log.txt"
- }
-}
-
-# Download trampoline resources.
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
-
-# Use the trampoline script to run in docker.
-build_file: "java-common-protos/.kokoro/trampoline.sh"
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/build.sh"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "test"
-}
diff --git a/java-common-protos/.kokoro/continuous/java8.cfg b/java-common-protos/.kokoro/continuous/java8.cfg
deleted file mode 100644
index 495cc7bacd..0000000000
--- a/java-common-protos/.kokoro/continuous/java8.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "REPORT_COVERAGE"
- value: "true"
-}
diff --git a/java-common-protos/.kokoro/nightly/common.cfg b/java-common-protos/.kokoro/nightly/common.cfg
deleted file mode 100644
index d8e6ffc95f..0000000000
--- a/java-common-protos/.kokoro/nightly/common.cfg
+++ /dev/null
@@ -1,25 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Build logs will be here
-action {
- define_artifacts {
- regex: "**/*sponge_log.xml"
- regex: "**/*sponge_log.txt"
- }
-}
-
-# Download trampoline resources.
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
-
-# Use the trampoline script to run in docker.
-build_file: "java-common-protos/.kokoro/trampoline.sh"
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/build.sh"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "test"
-}
diff --git a/java-common-protos/.kokoro/nightly/integration.cfg b/java-common-protos/.kokoro/nightly/integration.cfg
deleted file mode 100644
index a2907a257b..0000000000
--- a/java-common-protos/.kokoro/nightly/integration.cfg
+++ /dev/null
@@ -1,37 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "integration"
-}
-# TODO: remove this after we've migrated all tests and scripts
-env_vars: {
- key: "GCLOUD_PROJECT"
- value: "java-docs-samples-testing"
-}
-
-env_vars: {
- key: "GOOGLE_CLOUD_PROJECT"
- value: "java-docs-samples-testing"
-}
-
-env_vars: {
- key: "ENABLE_FLAKYBOT"
- value: "true"
-}
-
-env_vars: {
- key: "GOOGLE_APPLICATION_CREDENTIALS"
- value: "secret_manager/java-it-service-account"
-}
-
-env_vars: {
- key: "SECRET_MANAGER_KEYS"
- value: "java-it-service-account"
-}
diff --git a/java-common-protos/.kokoro/nightly/java11-integration.cfg b/java-common-protos/.kokoro/nightly/java11-integration.cfg
deleted file mode 100644
index 58049cc38f..0000000000
--- a/java-common-protos/.kokoro/nightly/java11-integration.cfg
+++ /dev/null
@@ -1,37 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-public-resources/java11014"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "integration"
-}
-# TODO: remove this after we've migrated all tests and scripts
-env_vars: {
- key: "GCLOUD_PROJECT"
- value: "gcloud-devel"
-}
-
-env_vars: {
- key: "GOOGLE_CLOUD_PROJECT"
- value: "gcloud-devel"
-}
-
-env_vars: {
- key: "ENABLE_FLAKYBOT"
- value: "true"
-}
-
-env_vars: {
- key: "GOOGLE_APPLICATION_CREDENTIALS"
- value: "secret_manager/java-it-service-account"
-}
-
-env_vars: {
- key: "SECRET_MANAGER_KEYS"
- value: "java-it-service-account"
-}
diff --git a/java-common-protos/.kokoro/nightly/java11.cfg b/java-common-protos/.kokoro/nightly/java11.cfg
deleted file mode 100644
index 709f2b4c73..0000000000
--- a/java-common-protos/.kokoro/nightly/java11.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java11"
-}
diff --git a/java-common-protos/.kokoro/nightly/java7.cfg b/java-common-protos/.kokoro/nightly/java7.cfg
deleted file mode 100644
index cb24f44eea..0000000000
--- a/java-common-protos/.kokoro/nightly/java7.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java7"
-}
diff --git a/java-common-protos/.kokoro/nightly/java8-osx.cfg b/java-common-protos/.kokoro/nightly/java8-osx.cfg
deleted file mode 100644
index a2205705c0..0000000000
--- a/java-common-protos/.kokoro/nightly/java8-osx.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-build_file: "java-common-protos/.kokoro/build.sh"
diff --git a/java-common-protos/.kokoro/nightly/java8-win.cfg b/java-common-protos/.kokoro/nightly/java8-win.cfg
deleted file mode 100644
index 55d4ada741..0000000000
--- a/java-common-protos/.kokoro/nightly/java8-win.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-build_file: "java-common-protos/.kokoro/build.bat"
diff --git a/java-common-protos/.kokoro/nightly/java8.cfg b/java-common-protos/.kokoro/nightly/java8.cfg
deleted file mode 100644
index 495cc7bacd..0000000000
--- a/java-common-protos/.kokoro/nightly/java8.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "REPORT_COVERAGE"
- value: "true"
-}
diff --git a/java-common-protos/.kokoro/nightly/samples.cfg b/java-common-protos/.kokoro/nightly/samples.cfg
deleted file mode 100644
index 9761fd8648..0000000000
--- a/java-common-protos/.kokoro/nightly/samples.cfg
+++ /dev/null
@@ -1,38 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "samples"
-}
-
-# TODO: remove this after we've migrated all tests and scripts
-env_vars: {
- key: "GCLOUD_PROJECT"
- value: "java-docs-samples-testing"
-}
-
-env_vars: {
- key: "GOOGLE_CLOUD_PROJECT"
- value: "java-docs-samples-testing"
-}
-
-env_vars: {
- key: "GOOGLE_APPLICATION_CREDENTIALS"
- value: "secret_manager/java-docs-samples-service-account"
-}
-
-env_vars: {
- key: "SECRET_MANAGER_KEYS"
- value: "java-docs-samples-service-account"
-}
-
-env_vars: {
- key: "ENABLE_FLAKYBOT"
- value: "true"
-}
diff --git a/java-common-protos/.kokoro/populate-secrets.sh b/java-common-protos/.kokoro/populate-secrets.sh
deleted file mode 100755
index f52514257e..0000000000
--- a/java-common-protos/.kokoro/populate-secrets.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-# Copyright 2020 Google LLC.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;}
-function msg { println "$*" >&2 ;}
-function println { printf '%s\n' "$(now) $*" ;}
-
-
-# Populates requested secrets set in SECRET_MANAGER_KEYS from service account:
-# kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com
-SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager"
-msg "Creating folder on disk for secrets: ${SECRET_LOCATION}"
-mkdir -p ${SECRET_LOCATION}
-for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g")
-do
- msg "Retrieving secret ${key}"
- docker run --entrypoint=gcloud \
- --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \
- gcr.io/google.com/cloudsdktool/cloud-sdk \
- secrets versions access latest \
- --project cloud-devrel-kokoro-resources \
- --secret ${key} > \
- "${SECRET_LOCATION}/${key}"
- if [[ $? == 0 ]]; then
- msg "Secret written to ${SECRET_LOCATION}/${key}"
- else
- msg "Error retrieving secret ${key}"
- fi
-done
diff --git a/java-common-protos/.kokoro/presubmit/clirr.cfg b/java-common-protos/.kokoro/presubmit/clirr.cfg
deleted file mode 100644
index ec572442e2..0000000000
--- a/java-common-protos/.kokoro/presubmit/clirr.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "clirr"
-}
\ No newline at end of file
diff --git a/java-common-protos/.kokoro/presubmit/common.cfg b/java-common-protos/.kokoro/presubmit/common.cfg
deleted file mode 100644
index 28a4e14b40..0000000000
--- a/java-common-protos/.kokoro/presubmit/common.cfg
+++ /dev/null
@@ -1,34 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Build logs will be here
-action {
- define_artifacts {
- regex: "**/*sponge_log.xml"
- regex: "**/*sponge_log.txt"
- }
-}
-
-# Download trampoline resources.
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
-
-# Use the trampoline script to run in docker.
-build_file: "java-common-protos/.kokoro/trampoline.sh"
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/build.sh"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "test"
-}
-
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 73713
- keyname: "dpebot_codecov_token"
- }
- }
-}
diff --git a/java-common-protos/.kokoro/presubmit/dependencies.cfg b/java-common-protos/.kokoro/presubmit/dependencies.cfg
deleted file mode 100644
index 5d388a2c58..0000000000
--- a/java-common-protos/.kokoro/presubmit/dependencies.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/dependencies.sh"
-}
diff --git a/java-common-protos/.kokoro/presubmit/graalvm-native-17.cfg b/java-common-protos/.kokoro/presubmit/graalvm-native-17.cfg
deleted file mode 100644
index a3f7fb9d49..0000000000
--- a/java-common-protos/.kokoro/presubmit/graalvm-native-17.cfg
+++ /dev/null
@@ -1,33 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "graalvm17"
-}
-
-# TODO: remove this after we've migrated all tests and scripts
-env_vars: {
- key: "GCLOUD_PROJECT"
- value: "gcloud-devel"
-}
-
-env_vars: {
- key: "GOOGLE_CLOUD_PROJECT"
- value: "gcloud-devel"
-}
-
-env_vars: {
- key: "GOOGLE_APPLICATION_CREDENTIALS"
- value: "secret_manager/java-it-service-account"
-}
-
-env_vars: {
- key: "SECRET_MANAGER_KEYS"
- value: "java-it-service-account"
-}
\ No newline at end of file
diff --git a/java-common-protos/.kokoro/presubmit/graalvm-native.cfg b/java-common-protos/.kokoro/presubmit/graalvm-native.cfg
deleted file mode 100644
index 4c7225ec92..0000000000
--- a/java-common-protos/.kokoro/presubmit/graalvm-native.cfg
+++ /dev/null
@@ -1,33 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/graalvm"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "graalvm"
-}
-
-# TODO: remove this after we've migrated all tests and scripts
-env_vars: {
- key: "GCLOUD_PROJECT"
- value: "gcloud-devel"
-}
-
-env_vars: {
- key: "GOOGLE_CLOUD_PROJECT"
- value: "gcloud-devel"
-}
-
-env_vars: {
- key: "GOOGLE_APPLICATION_CREDENTIALS"
- value: "secret_manager/java-it-service-account"
-}
-
-env_vars: {
- key: "SECRET_MANAGER_KEYS"
- value: "java-it-service-account"
-}
diff --git a/java-common-protos/.kokoro/presubmit/integration.cfg b/java-common-protos/.kokoro/presubmit/integration.cfg
deleted file mode 100644
index dded67a9d5..0000000000
--- a/java-common-protos/.kokoro/presubmit/integration.cfg
+++ /dev/null
@@ -1,33 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "integration"
-}
-
-# TODO: remove this after we've migrated all tests and scripts
-env_vars: {
- key: "GCLOUD_PROJECT"
- value: "gcloud-devel"
-}
-
-env_vars: {
- key: "GOOGLE_CLOUD_PROJECT"
- value: "gcloud-devel"
-}
-
-env_vars: {
- key: "GOOGLE_APPLICATION_CREDENTIALS"
- value: "secret_manager/java-it-service-account"
-}
-
-env_vars: {
- key: "SECRET_MANAGER_KEYS"
- value: "java-it-service-account"
-}
diff --git a/java-common-protos/.kokoro/presubmit/java11.cfg b/java-common-protos/.kokoro/presubmit/java11.cfg
deleted file mode 100644
index 709f2b4c73..0000000000
--- a/java-common-protos/.kokoro/presubmit/java11.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java11"
-}
diff --git a/java-common-protos/.kokoro/presubmit/java7.cfg b/java-common-protos/.kokoro/presubmit/java7.cfg
deleted file mode 100644
index cb24f44eea..0000000000
--- a/java-common-protos/.kokoro/presubmit/java7.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java7"
-}
diff --git a/java-common-protos/.kokoro/presubmit/java8-osx.cfg b/java-common-protos/.kokoro/presubmit/java8-osx.cfg
deleted file mode 100644
index a2205705c0..0000000000
--- a/java-common-protos/.kokoro/presubmit/java8-osx.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-build_file: "java-common-protos/.kokoro/build.sh"
diff --git a/java-common-protos/.kokoro/presubmit/java8-win.cfg b/java-common-protos/.kokoro/presubmit/java8-win.cfg
deleted file mode 100644
index 55d4ada741..0000000000
--- a/java-common-protos/.kokoro/presubmit/java8-win.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-build_file: "java-common-protos/.kokoro/build.bat"
diff --git a/java-common-protos/.kokoro/presubmit/java8.cfg b/java-common-protos/.kokoro/presubmit/java8.cfg
deleted file mode 100644
index 495cc7bacd..0000000000
--- a/java-common-protos/.kokoro/presubmit/java8.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "REPORT_COVERAGE"
- value: "true"
-}
diff --git a/java-common-protos/.kokoro/presubmit/linkage-monitor.cfg b/java-common-protos/.kokoro/presubmit/linkage-monitor.cfg
deleted file mode 100644
index 1ed21488fa..0000000000
--- a/java-common-protos/.kokoro/presubmit/linkage-monitor.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/linkage-monitor.sh"
-}
\ No newline at end of file
diff --git a/java-common-protos/.kokoro/presubmit/lint.cfg b/java-common-protos/.kokoro/presubmit/lint.cfg
deleted file mode 100644
index 6d323c8ae7..0000000000
--- a/java-common-protos/.kokoro/presubmit/lint.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "lint"
-}
\ No newline at end of file
diff --git a/java-common-protos/.kokoro/presubmit/samples.cfg b/java-common-protos/.kokoro/presubmit/samples.cfg
deleted file mode 100644
index 01e0960047..0000000000
--- a/java-common-protos/.kokoro/presubmit/samples.cfg
+++ /dev/null
@@ -1,33 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-env_vars: {
- key: "JOB_TYPE"
- value: "samples"
-}
-
-# TODO: remove this after we've migrated all tests and scripts
-env_vars: {
- key: "GCLOUD_PROJECT"
- value: "java-docs-samples-testing"
-}
-
-env_vars: {
- key: "GOOGLE_CLOUD_PROJECT"
- value: "java-docs-samples-testing"
-}
-
-env_vars: {
- key: "GOOGLE_APPLICATION_CREDENTIALS"
- value: "secret_manager/java-docs-samples-service-account"
-}
-
-env_vars: {
- key: "SECRET_MANAGER_KEYS"
- value: "java-docs-samples-service-account"
-}
\ No newline at end of file
diff --git a/java-common-protos/.kokoro/release/bump_snapshot.cfg b/java-common-protos/.kokoro/release/bump_snapshot.cfg
deleted file mode 100644
index 3de8138d9c..0000000000
--- a/java-common-protos/.kokoro/release/bump_snapshot.cfg
+++ /dev/null
@@ -1,53 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Build logs will be here
-action {
- define_artifacts {
- regex: "**/*sponge_log.xml"
- }
-}
-
-# Download trampoline resources.
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
-
-# Use the trampoline script to run in docker.
-build_file: "java-common-protos/.kokoro/trampoline.sh"
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user"
-}
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/release/bump_snapshot.sh"
-}
-
-# tokens used by release-please to keep an up-to-date release PR.
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 73713
- keyname: "github-magic-proxy-key-release-please"
- }
- }
-}
-
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 73713
- keyname: "github-magic-proxy-token-release-please"
- }
- }
-}
-
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 73713
- keyname: "github-magic-proxy-url-release-please"
- }
- }
-}
diff --git a/java-common-protos/.kokoro/release/common.cfg b/java-common-protos/.kokoro/release/common.cfg
deleted file mode 100644
index e676934592..0000000000
--- a/java-common-protos/.kokoro/release/common.cfg
+++ /dev/null
@@ -1,49 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Download trampoline resources.
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
-
-# Use the trampoline script to run in docker.
-build_file: "java-common-protos/.kokoro/trampoline.sh"
-
-# Configure the docker image for kokoro-trampoline.
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java8"
-}
-
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 70247
- keyname: "maven-gpg-keyring"
- }
- }
-}
-
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 70247
- keyname: "maven-gpg-passphrase"
- }
- }
-}
-
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 70247
- keyname: "maven-gpg-pubkeyring"
- }
- }
-}
-
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 70247
- keyname: "sonatype-credentials"
- }
- }
-}
diff --git a/java-common-protos/.kokoro/release/common.sh b/java-common-protos/.kokoro/release/common.sh
deleted file mode 100755
index 7f78ee414f..0000000000
--- a/java-common-protos/.kokoro/release/common.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-# Copyright 2018 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-# Get secrets from keystore and set and environment variables
-setup_environment_secrets() {
- export GPG_PASSPHRASE=$(cat ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-passphrase)
- export GPG_TTY=$(tty)
- export GPG_HOMEDIR=/gpg
- mkdir $GPG_HOMEDIR
- mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-pubkeyring $GPG_HOMEDIR/pubring.gpg
- mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-keyring $GPG_HOMEDIR/secring.gpg
- export SONATYPE_USERNAME=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f1 -d'|')
- export SONATYPE_PASSWORD=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f2 -d'|')
-}
-
-create_settings_xml_file() {
- echo "
-
-
- ossrh
- ${SONATYPE_USERNAME}
- ${SONATYPE_PASSWORD}
-
-
- sonatype-nexus-staging
- ${SONATYPE_USERNAME}
- ${SONATYPE_PASSWORD}
-
-
- sonatype-nexus-snapshots
- ${SONATYPE_USERNAME}
- ${SONATYPE_PASSWORD}
-
-
-" > $1
-}
\ No newline at end of file
diff --git a/java-common-protos/.kokoro/release/drop.cfg b/java-common-protos/.kokoro/release/drop.cfg
deleted file mode 100644
index 1faccd52ec..0000000000
--- a/java-common-protos/.kokoro/release/drop.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/release/drop.sh"
-}
diff --git a/java-common-protos/.kokoro/release/drop.sh b/java-common-protos/.kokoro/release/drop.sh
deleted file mode 100755
index 742ec1a886..0000000000
--- a/java-common-protos/.kokoro/release/drop.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-# Copyright 2018 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-# STAGING_REPOSITORY_ID must be set
-if [ -z "${STAGING_REPOSITORY_ID}" ]; then
- echo "Missing STAGING_REPOSITORY_ID environment variable"
- exit 1
-fi
-
-source $(dirname "$0")/common.sh
-pushd $(dirname "$0")/../../
-
-setup_environment_secrets
-create_settings_xml_file "settings.xml"
-
-mvn nexus-staging:drop -B \
- --settings=settings.xml \
- -DstagingRepositoryId=${STAGING_REPOSITORY_ID}
diff --git a/java-common-protos/.kokoro/release/promote.cfg b/java-common-protos/.kokoro/release/promote.cfg
deleted file mode 100644
index 240e75aa5d..0000000000
--- a/java-common-protos/.kokoro/release/promote.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/release/promote.sh"
-}
diff --git a/java-common-protos/.kokoro/release/promote.sh b/java-common-protos/.kokoro/release/promote.sh
deleted file mode 100755
index 3cac3d8a97..0000000000
--- a/java-common-protos/.kokoro/release/promote.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-# Copyright 2018 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-# STAGING_REPOSITORY_ID must be set
-if [ -z "${STAGING_REPOSITORY_ID}" ]; then
- echo "Missing STAGING_REPOSITORY_ID environment variable"
- exit 1
-fi
-
-source $(dirname "$0")/common.sh
-
-pushd $(dirname "$0")/../../
-
-setup_environment_secrets
-create_settings_xml_file "settings.xml"
-
-mvn nexus-staging:release -B \
- -DperformRelease=true \
- --settings=settings.xml \
- -DstagingRepositoryId=${STAGING_REPOSITORY_ID}
diff --git a/java-common-protos/.kokoro/release/publish_javadoc.cfg b/java-common-protos/.kokoro/release/publish_javadoc.cfg
deleted file mode 100644
index 295aa525a0..0000000000
--- a/java-common-protos/.kokoro/release/publish_javadoc.cfg
+++ /dev/null
@@ -1,23 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/doc-templates/"
-
-env_vars: {
- key: "STAGING_BUCKET"
- value: "docs-staging"
-}
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/release/publish_javadoc.sh"
-}
-
-
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 73713
- keyname: "docuploader_service_account"
- }
- }
-}
diff --git a/java-common-protos/.kokoro/release/publish_javadoc.sh b/java-common-protos/.kokoro/release/publish_javadoc.sh
deleted file mode 100755
index 9d4ce4ae34..0000000000
--- a/java-common-protos/.kokoro/release/publish_javadoc.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-# Copyright 2019 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-if [[ -z "${CREDENTIALS}" ]]; then
- CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account
-fi
-
-if [[ -z "${STAGING_BUCKET}" ]]; then
- echo "Need to set STAGING_BUCKET environment variable"
- exit 1
-fi
-
-# work from the git root directory
-pushd $(dirname "$0")/../../
-
-# install docuploader package
-python3 -m pip install --require-hashes -r .kokoro/requirements.txt
-
-# compile all packages
-mvn clean install -B -q -DskipTests=true
-
-export NAME=proto-google-common-protos
-export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3)
-
-# build the docs
-mvn site -B -q
-
-pushd target/site/apidocs
-
-# create metadata
-python3 -m docuploader create-metadata \
- --name ${NAME} \
- --version ${VERSION} \
- --language java
-
-# upload docs
-python3 -m docuploader upload . \
- --credentials ${CREDENTIALS} \
- --staging-bucket ${STAGING_BUCKET}
diff --git a/java-common-protos/.kokoro/release/publish_javadoc11.cfg b/java-common-protos/.kokoro/release/publish_javadoc11.cfg
deleted file mode 100644
index b5372c604a..0000000000
--- a/java-common-protos/.kokoro/release/publish_javadoc11.cfg
+++ /dev/null
@@ -1,30 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# cloud-rad production
-env_vars: {
- key: "STAGING_BUCKET_V2"
- value: "docs-staging-v2"
-}
-
-# Configure the docker image for kokoro-trampoline
-env_vars: {
- key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-kokoro-resources/java11"
-}
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/release/publish_javadoc11.sh"
-}
-
-before_action {
- fetch_keystore {
- keystore_resource {
- keystore_config_id: 73713
- keyname: "docuploader_service_account"
- }
- }
-}
-
-# Downloads docfx doclet resource. This will be in ${KOKORO_GFILE_DIR}/
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx"
diff --git a/java-common-protos/.kokoro/release/publish_javadoc11.sh b/java-common-protos/.kokoro/release/publish_javadoc11.sh
deleted file mode 100755
index 69c00bfb17..0000000000
--- a/java-common-protos/.kokoro/release/publish_javadoc11.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-if [[ -z "${CREDENTIALS}" ]]; then
- CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account
-fi
-
-if [[ -z "${STAGING_BUCKET_V2}" ]]; then
- echo "Need to set STAGING_BUCKET_V2 environment variable"
- exit 1
-fi
-
-# work from the git root directory
-pushd $(dirname "$0")/../../
-
-# install docuploader package
-python3 -m pip install --require-hashes -r .kokoro/requirements.txt
-
-# compile all packages
-mvn clean install -B -q -DskipTests=true
-
-export NAME=proto-google-common-protos
-export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3)
-
-# cloud RAD generation
-mvn clean javadoc:aggregate -B -q -P docFX
-# include CHANGELOG
-cp CHANGELOG.md target/docfx-yml/history.md
-
-pushd target/docfx-yml
-
-# create metadata
-python3 -m docuploader create-metadata \
- --name ${NAME} \
- --version ${VERSION} \
- --xrefs devsite://java/gax \
- --xrefs devsite://java/google-cloud-core \
- --xrefs devsite://java/api-common \
- --xrefs devsite://java/proto-google-common-protos \
- --xrefs devsite://java/google-api-client \
- --xrefs devsite://java/google-http-client \
- --xrefs devsite://java/protobuf \
- --language java
-
-# upload yml to production bucket
-python3 -m docuploader upload . \
- --credentials ${CREDENTIALS} \
- --staging-bucket ${STAGING_BUCKET_V2} \
- --destination-prefix docfx
diff --git a/java-common-protos/.kokoro/release/snapshot.cfg b/java-common-protos/.kokoro/release/snapshot.cfg
deleted file mode 100644
index 087a62896e..0000000000
--- a/java-common-protos/.kokoro/release/snapshot.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/release/snapshot.sh"
-}
\ No newline at end of file
diff --git a/java-common-protos/.kokoro/release/snapshot.sh b/java-common-protos/.kokoro/release/snapshot.sh
deleted file mode 100755
index 1f55b77024..0000000000
--- a/java-common-protos/.kokoro/release/snapshot.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-# Copyright 2019 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-source $(dirname "$0")/common.sh
-MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml
-pushd $(dirname "$0")/../../
-
-# ensure we're trying to push a snapshot (no-result returns non-zero exit code)
-grep SNAPSHOT versions.txt
-
-setup_environment_secrets
-create_settings_xml_file "settings.xml"
-
-mvn clean deploy -B \
- --settings ${MAVEN_SETTINGS_FILE} \
- -DperformRelease=true \
- -Dgpg.executable=gpg \
- -Dgpg.passphrase=${GPG_PASSPHRASE} \
- -Dgpg.homedir=${GPG_HOMEDIR}
diff --git a/java-common-protos/.kokoro/release/stage.cfg b/java-common-protos/.kokoro/release/stage.cfg
deleted file mode 100644
index 21a7e3cb58..0000000000
--- a/java-common-protos/.kokoro/release/stage.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-env_vars: {
- key: "TRAMPOLINE_BUILD_FILE"
- value: "github/java-common-protos/.kokoro/release/stage.sh"
-}
-
-# Need to save the properties file
-action {
- define_artifacts {
- regex: "github/java-common-protos/target/nexus-staging/staging/*.properties"
- strip_prefix: "github/java-common-protos"
- }
-}
-
-env_vars: {
- key: "SECRET_MANAGER_KEYS"
- value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem"
-}
diff --git a/java-common-protos/.kokoro/release/stage.sh b/java-common-protos/.kokoro/release/stage.sh
deleted file mode 100755
index 61e714d6ba..0000000000
--- a/java-common-protos/.kokoro/release/stage.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# Copyright 2018 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-# Start the releasetool reporter
-requirementsFile=$(realpath $(dirname "${BASH_SOURCE[0]}")/../requirements.txt)
-python3 -m pip install --require-hashes -r $requirementsFile
-python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script
-
-source $(dirname "$0")/common.sh
-source $(dirname "$0")/../common.sh
-MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml
-pushd $(dirname "$0")/../../
-
-setup_environment_secrets
-create_settings_xml_file "settings.xml"
-
-# attempt to stage 3 times with exponential backoff (starting with 10 seconds)
-retry_with_backoff 3 10 \
- mvn clean deploy -B \
- --settings ${MAVEN_SETTINGS_FILE} \
- -DskipTests=true \
- -Dclirr.skip=true \
- -DperformRelease=true \
- -Dgpg.executable=gpg \
- -Dgpg.passphrase=${GPG_PASSPHRASE} \
- -Dgpg.homedir=${GPG_HOMEDIR}
-
-if [[ -n "${AUTORELEASE_PR}" ]]
-then
- mvn nexus-staging:release -B \
- -DperformRelease=true \
- --settings=settings.xml
-fi
diff --git a/java-common-protos/.kokoro/requirements.in b/java-common-protos/.kokoro/requirements.in
deleted file mode 100644
index 924f94ae6f..0000000000
--- a/java-common-protos/.kokoro/requirements.in
+++ /dev/null
@@ -1,34 +0,0 @@
-gcp-docuploader==0.6.3
-google-crc32c==1.3.0
-googleapis-common-protos==1.56.3
-gcp-releasetool==1.9.1
-cryptography==38.0.3
-cachetools==4.2.4
-cffi==1.15.1
-jeepney==0.7.1
-jinja2==3.0.3
-markupsafe==2.0.1
-keyring==23.4.1
-packaging==21.3
-protobuf==3.19.5
-pyjwt==2.4.0
-pyparsing==3.0.9
-pycparser==2.21
-pyperclip==1.8.2
-python-dateutil==2.8.2
-requests==2.27.1
-certifi==2022.9.24
-importlib-metadata==4.8.3
-zipp==3.6.0
-google_api_core==2.8.2
-google-cloud-storage==2.0.0
-google-resumable-media==2.3.3
-google-cloud-core==2.3.1
-typing-extensions==4.1.1
-urllib3==1.26.12
-zipp==3.6.0
-rsa==4.9
-six==1.16.0
-attrs==22.1.0
-google-auth==2.14.1
-idna==3.4
\ No newline at end of file
diff --git a/java-common-protos/.kokoro/requirements.txt b/java-common-protos/.kokoro/requirements.txt
deleted file mode 100644
index 71fcafc703..0000000000
--- a/java-common-protos/.kokoro/requirements.txt
+++ /dev/null
@@ -1,456 +0,0 @@
-#
-# This file is autogenerated by pip-compile with python 3.10
-# To update, run:
-#
-# pip-compile --generate-hashes requirements.in
-#
-attrs==22.1.0 \
- --hash=sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6 \
- --hash=sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c
- # via
- # -r requirements.in
- # gcp-releasetool
-cachetools==4.2.4 \
- --hash=sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693 \
- --hash=sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1
- # via
- # -r requirements.in
- # google-auth
-certifi==2022.9.24 \
- --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \
- --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382
- # via
- # -r requirements.in
- # requests
-cffi==1.15.1 \
- --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \
- --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \
- --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \
- --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \
- --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \
- --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \
- --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \
- --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \
- --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \
- --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \
- --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \
- --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \
- --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \
- --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \
- --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \
- --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \
- --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \
- --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \
- --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \
- --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \
- --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \
- --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \
- --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \
- --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \
- --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \
- --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \
- --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \
- --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \
- --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \
- --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \
- --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \
- --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \
- --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \
- --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \
- --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \
- --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \
- --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \
- --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \
- --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \
- --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \
- --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \
- --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \
- --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \
- --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \
- --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \
- --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \
- --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \
- --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \
- --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \
- --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \
- --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \
- --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \
- --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \
- --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \
- --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \
- --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \
- --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \
- --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \
- --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \
- --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \
- --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \
- --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \
- --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \
- --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0
- # via
- # -r requirements.in
- # cryptography
-charset-normalizer==2.0.12 \
- --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \
- --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df
- # via requests
-click==8.0.4 \
- --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \
- --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb
- # via
- # gcp-docuploader
- # gcp-releasetool
-colorlog==6.7.0 \
- --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \
- --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5
- # via gcp-docuploader
-cryptography==38.0.3 \
- --hash=sha256:068147f32fa662c81aebab95c74679b401b12b57494872886eb5c1139250ec5d \
- --hash=sha256:06fc3cc7b6f6cca87bd56ec80a580c88f1da5306f505876a71c8cfa7050257dd \
- --hash=sha256:25c1d1f19729fb09d42e06b4bf9895212292cb27bb50229f5aa64d039ab29146 \
- --hash=sha256:402852a0aea73833d982cabb6d0c3bb582c15483d29fb7085ef2c42bfa7e38d7 \
- --hash=sha256:4e269dcd9b102c5a3d72be3c45d8ce20377b8076a43cbed6f660a1afe365e436 \
- --hash=sha256:5419a127426084933076132d317911e3c6eb77568a1ce23c3ac1e12d111e61e0 \
- --hash=sha256:554bec92ee7d1e9d10ded2f7e92a5d70c1f74ba9524947c0ba0c850c7b011828 \
- --hash=sha256:5e89468fbd2fcd733b5899333bc54d0d06c80e04cd23d8c6f3e0542358c6060b \
- --hash=sha256:65535bc550b70bd6271984d9863a37741352b4aad6fb1b3344a54e6950249b55 \
- --hash=sha256:6ab9516b85bebe7aa83f309bacc5f44a61eeb90d0b4ec125d2d003ce41932d36 \
- --hash=sha256:6addc3b6d593cd980989261dc1cce38263c76954d758c3c94de51f1e010c9a50 \
- --hash=sha256:728f2694fa743a996d7784a6194da430f197d5c58e2f4e278612b359f455e4a2 \
- --hash=sha256:785e4056b5a8b28f05a533fab69febf5004458e20dad7e2e13a3120d8ecec75a \
- --hash=sha256:78cf5eefac2b52c10398a42765bfa981ce2372cbc0457e6bf9658f41ec3c41d8 \
- --hash=sha256:7f836217000342d448e1c9a342e9163149e45d5b5eca76a30e84503a5a96cab0 \
- --hash=sha256:8d41a46251bf0634e21fac50ffd643216ccecfaf3701a063257fe0b2be1b6548 \
- --hash=sha256:984fe150f350a3c91e84de405fe49e688aa6092b3525f407a18b9646f6612320 \
- --hash=sha256:9b24bcff7853ed18a63cfb0c2b008936a9554af24af2fb146e16d8e1aed75748 \
- --hash=sha256:b1b35d9d3a65542ed2e9d90115dfd16bbc027b3f07ee3304fc83580f26e43249 \
- --hash=sha256:b1b52c9e5f8aa2b802d48bd693190341fae201ea51c7a167d69fc48b60e8a959 \
- --hash=sha256:bbf203f1a814007ce24bd4d51362991d5cb90ba0c177a9c08825f2cc304d871f \
- --hash=sha256:be243c7e2bfcf6cc4cb350c0d5cdf15ca6383bbcb2a8ef51d3c9411a9d4386f0 \
- --hash=sha256:bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd \
- --hash=sha256:c46837ea467ed1efea562bbeb543994c2d1f6e800785bd5a2c98bc096f5cb220 \
- --hash=sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c \
- --hash=sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722
- # via
- # -r requirements.in
- # gcp-releasetool
- # secretstorage
-gcp-docuploader==0.6.3 \
- --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \
- --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b
- # via -r requirements.in
-gcp-releasetool==1.9.1 \
- --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \
- --hash=sha256:d0d3c814a97c1a237517e837d8cfa668ced8df4b882452578ecef4a4e79c583b
- # via -r requirements.in
-google-api-core==2.8.2 \
- --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \
- --hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50
- # via
- # -r requirements.in
- # google-cloud-core
- # google-cloud-storage
-google-auth==2.14.1 \
- --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016
- # via
- # -r requirements.in
- # gcp-releasetool
- # google-api-core
- # google-cloud-core
- # google-cloud-storage
-google-cloud-core==2.3.1 \
- --hash=sha256:113ba4f492467d5bd442c8d724c1a25ad7384045c3178369038840ecdd19346c \
- --hash=sha256:34334359cb04187bdc80ddcf613e462dfd7a3aabbc3fe4d118517ab4b9303d53
- # via
- # -r requirements.in
- # google-cloud-storage
-google-cloud-storage==2.0.0 \
- --hash=sha256:a57a15aead0f9dfbd4381f1bfdbe8bf89818a4bd75bab846cafcefb2db846c47 \
- --hash=sha256:ec4be60bb223a3a960f0d01697d849b86d91cad815a84915a32ed3635e93a5e7
- # via
- # -r requirements.in
- # gcp-docuploader
-google-crc32c==1.3.0 \
- --hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \
- --hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \
- --hash=sha256:12674a4c3b56b706153a358eaa1018c4137a5a04635b92b4652440d3d7386206 \
- --hash=sha256:127f9cc3ac41b6a859bd9dc4321097b1a4f6aa7fdf71b4f9227b9e3ebffb4422 \
- --hash=sha256:13af315c3a0eec8bb8b8d80b8b128cb3fcd17d7e4edafc39647846345a3f003a \
- --hash=sha256:1926fd8de0acb9d15ee757175ce7242e235482a783cd4ec711cc999fc103c24e \
- --hash=sha256:226f2f9b8e128a6ca6a9af9b9e8384f7b53a801907425c9a292553a3a7218ce0 \
- --hash=sha256:276de6273eb074a35bc598f8efbc00c7869c5cf2e29c90748fccc8c898c244df \
- --hash=sha256:318f73f5484b5671f0c7f5f63741ab020a599504ed81d209b5c7129ee4667407 \
- --hash=sha256:3bbce1be3687bbfebe29abdb7631b83e6b25da3f4e1856a1611eb21854b689ea \
- --hash=sha256:42ae4781333e331a1743445931b08ebdad73e188fd554259e772556fc4937c48 \
- --hash=sha256:58be56ae0529c664cc04a9c76e68bb92b091e0194d6e3c50bea7e0f266f73713 \
- --hash=sha256:5da2c81575cc3ccf05d9830f9e8d3c70954819ca9a63828210498c0774fda1a3 \
- --hash=sha256:6311853aa2bba4064d0c28ca54e7b50c4d48e3de04f6770f6c60ebda1e975267 \
- --hash=sha256:650e2917660e696041ab3dcd7abac160b4121cd9a484c08406f24c5964099829 \
- --hash=sha256:6a4db36f9721fdf391646685ecffa404eb986cbe007a3289499020daf72e88a2 \
- --hash=sha256:779cbf1ce375b96111db98fca913c1f5ec11b1d870e529b1dc7354b2681a8c3a \
- --hash=sha256:7f6fe42536d9dcd3e2ffb9d3053f5d05221ae3bbcefbe472bdf2c71c793e3183 \
- --hash=sha256:891f712ce54e0d631370e1f4997b3f182f3368179198efc30d477c75d1f44942 \
- --hash=sha256:95c68a4b9b7828ba0428f8f7e3109c5d476ca44996ed9a5f8aac6269296e2d59 \
- --hash=sha256:96a8918a78d5d64e07c8ea4ed2bc44354e3f93f46a4866a40e8db934e4c0d74b \
- --hash=sha256:9c3cf890c3c0ecfe1510a452a165431b5831e24160c5fcf2071f0f85ca5a47cd \
- --hash=sha256:9f58099ad7affc0754ae42e6d87443299f15d739b0ce03c76f515153a5cda06c \
- --hash=sha256:a0b9e622c3b2b8d0ce32f77eba617ab0d6768b82836391e4f8f9e2074582bf02 \
- --hash=sha256:a7f9cbea4245ee36190f85fe1814e2d7b1e5f2186381b082f5d59f99b7f11328 \
- --hash=sha256:bab4aebd525218bab4ee615786c4581952eadc16b1ff031813a2fd51f0cc7b08 \
- --hash=sha256:c124b8c8779bf2d35d9b721e52d4adb41c9bfbde45e6a3f25f0820caa9aba73f \
- --hash=sha256:c9da0a39b53d2fab3e5467329ed50e951eb91386e9d0d5b12daf593973c3b168 \
- --hash=sha256:ca60076c388728d3b6ac3846842474f4250c91efbfe5afa872d3ffd69dd4b318 \
- --hash=sha256:cb6994fff247987c66a8a4e550ef374671c2b82e3c0d2115e689d21e511a652d \
- --hash=sha256:d1c1d6236feab51200272d79b3d3e0f12cf2cbb12b208c835b175a21efdb0a73 \
- --hash=sha256:dd7760a88a8d3d705ff562aa93f8445ead54f58fd482e4f9e2bafb7e177375d4 \
- --hash=sha256:dda4d8a3bb0b50f540f6ff4b6033f3a74e8bf0bd5320b70fab2c03e512a62812 \
- --hash=sha256:e0f1ff55dde0ebcfbef027edc21f71c205845585fffe30d4ec4979416613e9b3 \
- --hash=sha256:e7a539b9be7b9c00f11ef16b55486141bc2cdb0c54762f84e3c6fc091917436d \
- --hash=sha256:eb0b14523758e37802f27b7f8cd973f5f3d33be7613952c0df904b68c4842f0e \
- --hash=sha256:ed447680ff21c14aaceb6a9f99a5f639f583ccfe4ce1a5e1d48eb41c3d6b3217 \
- --hash=sha256:f52a4ad2568314ee713715b1e2d79ab55fab11e8b304fd1462ff5cccf4264b3e \
- --hash=sha256:fbd60c6aaa07c31d7754edbc2334aef50601b7f1ada67a96eb1eb57c7c72378f \
- --hash=sha256:fc28e0db232c62ca0c3600884933178f0825c99be4474cdd645e378a10588125 \
- --hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \
- --hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \
- --hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3
- # via
- # -r requirements.in
- # google-resumable-media
-google-resumable-media==2.3.3 \
- --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \
- --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5
- # via
- # -r requirements.in
- # google-cloud-storage
-googleapis-common-protos==1.56.3 \
- --hash=sha256:6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442 \
- --hash=sha256:87955d7b3a73e6e803f2572a33179de23989ebba725e05ea42f24838b792e461
- # via
- # -r requirements.in
- # google-api-core
-idna==3.4 \
- --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \
- --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2
- # via
- # -r requirements.in
- # requests
-importlib-metadata==4.8.3 \
- --hash=sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e \
- --hash=sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668
- # via
- # -r requirements.in
- # keyring
-jeepney==0.7.1 \
- --hash=sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac \
- --hash=sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f
- # via
- # -r requirements.in
- # keyring
- # secretstorage
-jinja2==3.0.3 \
- --hash=sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8 \
- --hash=sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7
- # via
- # -r requirements.in
- # gcp-releasetool
-keyring==23.4.1 \
- --hash=sha256:17e49fb0d6883c2b4445359434dba95aad84aabb29bbff044ad0ed7100232eca \
- --hash=sha256:89cbd74d4683ed164c8082fb38619341097741323b3786905c6dac04d6915a55
- # via
- # -r requirements.in
- # gcp-releasetool
-markupsafe==2.0.1 \
- --hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \
- --hash=sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64 \
- --hash=sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b \
- --hash=sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194 \
- --hash=sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567 \
- --hash=sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff \
- --hash=sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724 \
- --hash=sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74 \
- --hash=sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646 \
- --hash=sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35 \
- --hash=sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6 \
- --hash=sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a \
- --hash=sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6 \
- --hash=sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad \
- --hash=sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26 \
- --hash=sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38 \
- --hash=sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac \
- --hash=sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7 \
- --hash=sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6 \
- --hash=sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047 \
- --hash=sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75 \
- --hash=sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f \
- --hash=sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b \
- --hash=sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135 \
- --hash=sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8 \
- --hash=sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a \
- --hash=sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a \
- --hash=sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1 \
- --hash=sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9 \
- --hash=sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864 \
- --hash=sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914 \
- --hash=sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee \
- --hash=sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f \
- --hash=sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18 \
- --hash=sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8 \
- --hash=sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2 \
- --hash=sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d \
- --hash=sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b \
- --hash=sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b \
- --hash=sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86 \
- --hash=sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6 \
- --hash=sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f \
- --hash=sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb \
- --hash=sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833 \
- --hash=sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28 \
- --hash=sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e \
- --hash=sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415 \
- --hash=sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902 \
- --hash=sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f \
- --hash=sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d \
- --hash=sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9 \
- --hash=sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d \
- --hash=sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145 \
- --hash=sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066 \
- --hash=sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c \
- --hash=sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1 \
- --hash=sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a \
- --hash=sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207 \
- --hash=sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f \
- --hash=sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53 \
- --hash=sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd \
- --hash=sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134 \
- --hash=sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85 \
- --hash=sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9 \
- --hash=sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5 \
- --hash=sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94 \
- --hash=sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509 \
- --hash=sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51 \
- --hash=sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872
- # via
- # -r requirements.in
- # jinja2
-packaging==21.3 \
- --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \
- --hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522
- # via
- # -r requirements.in
- # gcp-releasetool
-protobuf==3.19.5 \
- --hash=sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3 \
- --hash=sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c \
- --hash=sha256:4ee2af7051d3b10c8a4fe6fd1a2c69f201fea36aeee7086cf202a692e1b99ee1 \
- --hash=sha256:5266c36cc0af3bb3dbf44f199d225b33da66a9a5c3bdc2b14865ad10eddf0e37 \
- --hash=sha256:5470f892961af464ae6eaf0f3099e2c1190ae8c7f36f174b89491281341f79ca \
- --hash=sha256:66d14b5b90090353efe75c9fb1bf65ef7267383034688d255b500822e37d5c2f \
- --hash=sha256:67efb5d20618020aa9596e17bfc37ca068c28ec0c1507d9507f73c93d46c9855 \
- --hash=sha256:696e6cfab94cc15a14946f2bf72719dced087d437adbd994fff34f38986628bc \
- --hash=sha256:6a02172b9650f819d01fb8e224fc69b0706458fc1ab4f1c669281243c71c1a5e \
- --hash=sha256:6eca9ae238ba615d702387a2ddea635d535d769994a9968c09a4ca920c487ab9 \
- --hash=sha256:950abd6c00e7b51f87ae8b18a0ce4d69fea217f62f171426e77de5061f6d9850 \
- --hash=sha256:9e1d74032f56ff25f417cfe84c8147047732e5059137ca42efad20cbbd25f5e0 \
- --hash=sha256:9e42b1cf2ecd8a1bd161239e693f22035ba99905ae6d7efeac8a0546c7ec1a27 \
- --hash=sha256:9f957ef53e872d58a0afd3bf6d80d48535d28c99b40e75e6634cbc33ea42fd54 \
- --hash=sha256:a89aa0c042e61e11ade320b802d6db4ee5391d8d973e46d3a48172c1597789f8 \
- --hash=sha256:c0f80876a8ff0ae7064084ed094eb86497bd5a3812e6fc96a05318b92301674e \
- --hash=sha256:c44e3282cff74ad18c7e8a0375f407f69ee50c2116364b44492a196293e08b21 \
- --hash=sha256:d249519ba5ecf5dd6b18150c9b6bcde510b273714b696f3923ff8308fc11ae49 \
- --hash=sha256:d3973a2d58aefc7d1230725c2447ce7f86a71cbc094b86a77c6ee1505ac7cdb1 \
- --hash=sha256:dca2284378a5f2a86ffed35c6ac147d14c48b525eefcd1083e5a9ce28dfa8657 \
- --hash=sha256:e63b0b3c42e51c94add62b010366cd4979cb6d5f06158bcae8faac4c294f91e1 \
- --hash=sha256:f2b599a21c9a32e171ec29a2ac54e03297736c578698e11b099d031f79da114b \
- --hash=sha256:f2bde37667b18c2b5280df83bc799204394a5d2d774e4deaf9de0eb741df6833 \
- --hash=sha256:f4f909f4dde413dec435a44b0894956d55bb928ded7d6e3c726556ca4c796e84 \
- --hash=sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7 \
- --hash=sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de
- # via
- # -r requirements.in
- # gcp-docuploader
- # gcp-releasetool
- # google-api-core
- # google-cloud-storage
- # googleapis-common-protos
-pyasn1==0.4.8 \
- --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \
- --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba
- # via
- # pyasn1-modules
- # rsa
-pyasn1-modules==0.2.8 \
- --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \
- --hash=sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74
- # via google-auth
-pycparser==2.21 \
- --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
- --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
- # via
- # -r requirements.in
- # cffi
-pyjwt==2.4.0 \
- --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \
- --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba
- # via
- # -r requirements.in
- # gcp-releasetool
-pyparsing==3.0.9 \
- --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \
- --hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc
- # via
- # -r requirements.in
- # packaging
-pyperclip==1.8.2 \
- --hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57
- # via
- # -r requirements.in
- # gcp-releasetool
-python-dateutil==2.8.2 \
- --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \
- --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9
- # via
- # -r requirements.in
- # gcp-releasetool
-requests==2.27.1 \
- --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \
- --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d
- # via
- # -r requirements.in
- # gcp-releasetool
- # google-api-core
- # google-cloud-storage
-rsa==4.9 \
- --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \
- --hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21
- # via
- # -r requirements.in
- # google-auth
-secretstorage==3.3.3 \
- --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \
- --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99
- # via keyring
-six==1.16.0 \
- --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
- --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
- # via
- # -r requirements.in
- # gcp-docuploader
- # google-auth
- # python-dateutil
-typing-extensions==4.1.1 \
- --hash=sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42 \
- --hash=sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2
- # via -r requirements.in
-urllib3==1.26.12 \
- --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \
- --hash=sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997
- # via
- # -r requirements.in
- # requests
-zipp==3.6.0 \
- --hash=sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832 \
- --hash=sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc
- # via
- # -r requirements.in
- # importlib-metadata
diff --git a/java-common-protos/.kokoro/trampoline.sh b/java-common-protos/.kokoro/trampoline.sh
deleted file mode 100644
index 8b69b793c9..0000000000
--- a/java-common-protos/.kokoro/trampoline.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-# Copyright 2018 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-set -eo pipefail
-# Always run the cleanup script, regardless of the success of bouncing into
-# the container.
-function cleanup() {
- chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh
- ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh
- echo "cleanup";
-}
-trap cleanup EXIT
-
-$(dirname $0)/populate-secrets.sh # Secret Manager secrets.
-python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py"
diff --git a/java-common-protos/grpc-google-common-protos/pom.xml b/java-common-protos/grpc-google-common-protos/pom.xml
index dcb90ba177..936db7b2d7 100644
--- a/java-common-protos/grpc-google-common-protos/pom.xml
+++ b/java-common-protos/grpc-google-common-protos/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-common-protos
- 2.15.0
+ 2.16.0
grpc-google-common-protos
GRPC library for grpc-google-common-protos
com.google.api.grpc
google-common-protos-parent
- 2.15.0
+ 2.16.0
diff --git a/java-common-protos/pom.xml b/java-common-protos/pom.xml
index 0c93145d0e..f0359b6a5f 100644
--- a/java-common-protos/pom.xml
+++ b/java-common-protos/pom.xml
@@ -4,7 +4,7 @@
com.google.api.grpc
google-common-protos-parent
pom
- 2.15.0
+ 2.16.0
Google Common Protos Parent
Java idiomatic client for Google Cloud Platform services.
@@ -13,7 +13,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.16.0
+ 2.17.0
../gapic-generator-java-pom-parent
@@ -69,7 +69,7 @@
com.google.api.grpc
grpc-google-common-protos
- 2.15.0
+ 2.16.0
io.grpc
@@ -81,7 +81,7 @@
com.google.api.grpc
proto-google-common-protos
- 2.15.0
+ 2.16.0
com.google.guava
@@ -181,7 +181,7 @@
showcase-sonar-analysis
- enableTestCoverage
+ enableShowcaseTestCoverage
diff --git a/java-common-protos/proto-google-common-protos/pom.xml b/java-common-protos/proto-google-common-protos/pom.xml
index 76a1844ce1..9d0cfbd595 100644
--- a/java-common-protos/proto-google-common-protos/pom.xml
+++ b/java-common-protos/proto-google-common-protos/pom.xml
@@ -3,13 +3,13 @@
4.0.0
com.google.api.grpc
proto-google-common-protos
- 2.15.0
+ 2.16.0
proto-google-common-protos
PROTO library for proto-google-common-protos
com.google.api.grpc
google-common-protos-parent
- 2.15.0
+ 2.16.0
diff --git a/java-core/google-cloud-core-bom/pom.xml b/java-core/google-cloud-core-bom/pom.xml
index 66dd4c42f7..bd02cc8ea0 100644
--- a/java-core/google-cloud-core-bom/pom.xml
+++ b/java-core/google-cloud-core-bom/pom.xml
@@ -3,13 +3,13 @@
4.0.0
com.google.cloud
google-cloud-core-bom
- 2.14.0
+ 2.15.0
pom
com.google.api
gapic-generator-java-pom-parent
- 2.16.0
+ 2.17.0
../../gapic-generator-java-pom-parent
@@ -23,17 +23,17 @@
com.google.cloud
google-cloud-core
- 2.14.0
+ 2.15.0
com.google.cloud
google-cloud-core-grpc
- 2.14.0
+ 2.15.0
com.google.cloud
google-cloud-core-http
- 2.14.0
+ 2.15.0
diff --git a/java-core/google-cloud-core-grpc/pom.xml b/java-core/google-cloud-core-grpc/pom.xml
index 87c2bd6ed0..9eaa1ea3d5 100644
--- a/java-core/google-cloud-core-grpc/pom.xml
+++ b/java-core/google-cloud-core-grpc/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-core-grpc
- 2.14.0
+ 2.15.0
jar
Google Cloud Core gRPC
@@ -12,7 +12,7 @@
com.google.cloud
google-cloud-core-parent
- 2.14.0
+ 2.15.0
google-cloud-core-grpc
diff --git a/java-core/google-cloud-core-http/pom.xml b/java-core/google-cloud-core-http/pom.xml
index 89c1ade9d5..28acde25ed 100644
--- a/java-core/google-cloud-core-http/pom.xml
+++ b/java-core/google-cloud-core-http/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-core-http
- 2.14.0
+ 2.15.0
jar
Google Cloud Core HTTP
@@ -12,7 +12,7 @@
com.google.cloud
google-cloud-core-parent
- 2.14.0
+ 2.15.0
google-cloud-core-http
diff --git a/java-core/google-cloud-core/pom.xml b/java-core/google-cloud-core/pom.xml
index 6bdba40ec7..f509450cc6 100644
--- a/java-core/google-cloud-core/pom.xml
+++ b/java-core/google-cloud-core/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-core
- 2.14.0
+ 2.15.0
jar
Google Cloud Core
@@ -12,7 +12,7 @@
com.google.cloud
google-cloud-core-parent
- 2.14.0
+ 2.15.0
google-cloud-core
diff --git a/java-core/pom.xml b/java-core/pom.xml
index e5bcc07300..92ffa0a5af 100644
--- a/java-core/pom.xml
+++ b/java-core/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
google-cloud-core-parent
pom
- 2.14.0
+ 2.15.0
Google Cloud Core Parent
Java idiomatic client for Google Cloud Platform services.
@@ -13,7 +13,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.16.0
+ 2.17.0
../gapic-generator-java-pom-parent
@@ -33,7 +33,7 @@
com.google.cloud
google-cloud-shared-dependencies
- 3.6.0
+ 3.7.0
pom
import
diff --git a/java-iam/grpc-google-iam-v1/pom.xml b/java-iam/grpc-google-iam-v1/pom.xml
index 965cffa0f8..77c7cb3f6a 100644
--- a/java-iam/grpc-google-iam-v1/pom.xml
+++ b/java-iam/grpc-google-iam-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-iam-v1
- 1.10.0
+ 1.11.0
grpc-google-iam-v1
GRPC library for grpc-google-iam-v1
com.google.cloud
google-iam-parent
- 1.10.0
+ 1.11.0
diff --git a/java-iam/grpc-google-iam-v2/pom.xml b/java-iam/grpc-google-iam-v2/pom.xml
index 19709ed0ec..be3cfd2c82 100644
--- a/java-iam/grpc-google-iam-v2/pom.xml
+++ b/java-iam/grpc-google-iam-v2/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-iam-v2
- 1.10.0
+ 1.11.0
grpc-google-iam-v2
GRPC library for proto-google-iam-v2
com.google.cloud
google-iam-parent
- 1.10.0
+ 1.11.0
diff --git a/java-iam/grpc-google-iam-v2beta/pom.xml b/java-iam/grpc-google-iam-v2beta/pom.xml
index 1fc9728be9..1a5a7f7941 100644
--- a/java-iam/grpc-google-iam-v2beta/pom.xml
+++ b/java-iam/grpc-google-iam-v2beta/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-iam-v2beta
- 1.10.0
+ 1.11.0
grpc-google-iam-v2beta
GRPC library for proto-google-iam-v1
com.google.cloud
google-iam-parent
- 1.10.0
+ 1.11.0
diff --git a/java-iam/pom.xml b/java-iam/pom.xml
index 1b5afe449f..79d1f97dfa 100644
--- a/java-iam/pom.xml
+++ b/java-iam/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
google-iam-parent
pom
- 1.10.0
+ 1.11.0
Google IAM Parent
Java idiomatic client for Google Cloud Platform services.
@@ -13,7 +13,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.16.0
+ 2.17.0
../gapic-generator-java-pom-parent
@@ -81,49 +81,44 @@
com.google.api
gax-bom
- 2.24.0
+ 2.25.0
pom
import
com.google.api.grpc
proto-google-iam-v2
- 1.10.0
+ 1.11.0
com.google.api.grpc
grpc-google-iam-v2
- 1.10.0
-
-
- com.google.cloud
- google-iam-policy
- 1.10.0
+ 1.11.0
com.google.api.grpc
proto-google-common-protos
- 2.15.0
+ 2.16.0
com.google.api.grpc
proto-google-iam-v2beta
- 1.10.0
+ 1.11.0
com.google.api.grpc
grpc-google-iam-v1
- 1.10.0
+ 1.11.0
com.google.api.grpc
grpc-google-iam-v2beta
- 1.10.0
+ 1.11.0
com.google.api.grpc
proto-google-iam-v1
- 1.10.0
+ 1.11.0
javax.annotation
@@ -225,7 +220,7 @@
showcase-sonar-analysis
- enableTestCoverage
+ enableShowcaseTestCoverage
diff --git a/java-iam/proto-google-iam-v1/pom.xml b/java-iam/proto-google-iam-v1/pom.xml
index 1b64e410ed..34af013692 100644
--- a/java-iam/proto-google-iam-v1/pom.xml
+++ b/java-iam/proto-google-iam-v1/pom.xml
@@ -3,13 +3,13 @@
4.0.0
com.google.api.grpc
proto-google-iam-v1
- 1.10.0
+ 1.11.0
proto-google-iam-v1
PROTO library for proto-google-iam-v1
com.google.cloud
google-iam-parent
- 1.10.0
+ 1.11.0
diff --git a/java-iam/proto-google-iam-v2/pom.xml b/java-iam/proto-google-iam-v2/pom.xml
index 93ca6a8c9c..0dfcc88000 100644
--- a/java-iam/proto-google-iam-v2/pom.xml
+++ b/java-iam/proto-google-iam-v2/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-iam-v2
- 1.10.0
+ 1.11.0
proto-google-iam-v2
Proto library for proto-google-iam-v1
com.google.cloud
google-iam-parent
- 1.10.0
+ 1.11.0
diff --git a/java-iam/proto-google-iam-v2beta/pom.xml b/java-iam/proto-google-iam-v2beta/pom.xml
index 0f6fc05550..1f694eb0a9 100644
--- a/java-iam/proto-google-iam-v2beta/pom.xml
+++ b/java-iam/proto-google-iam-v2beta/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-iam-v2beta
- 1.10.0
+ 1.11.0
proto-google-iam-v2beta
Proto library for proto-google-iam-v1
com.google.cloud
google-iam-parent
- 1.10.0
+ 1.11.0
diff --git a/java-shared-dependencies/dependency-convergence-check/pom.xml b/java-shared-dependencies/dependency-convergence-check/pom.xml
index 9c3a7a7275..12c9709b34 100644
--- a/java-shared-dependencies/dependency-convergence-check/pom.xml
+++ b/java-shared-dependencies/dependency-convergence-check/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
shared-dependencies-dependency-convergence-test
- 3.6.0
+ 3.7.0
Dependency convergence test for certain artifacts in Google Cloud Shared Dependencies
An dependency convergence test case for the shared dependencies BOM. A failure of this test case means
diff --git a/java-shared-dependencies/first-party-dependencies/pom.xml b/java-shared-dependencies/first-party-dependencies/pom.xml
index ee013af9b0..0c9b9e8124 100644
--- a/java-shared-dependencies/first-party-dependencies/pom.xml
+++ b/java-shared-dependencies/first-party-dependencies/pom.xml
@@ -6,7 +6,7 @@
com.google.cloud
first-party-dependencies
pom
- 3.6.0
+ 3.7.0
Google Cloud First-party Shared Dependencies
Shared first-party dependencies for Google Cloud Java libraries.
@@ -35,7 +35,7 @@
com.google.api
gapic-generator-java-bom
- 2.16.0
+ 2.17.0
pom
import
@@ -52,7 +52,7 @@
com.google.cloud
google-cloud-core-bom
- 2.14.0
+ 2.15.0
pom
import
@@ -83,13 +83,13 @@
com.google.cloud
google-cloud-core
- 2.14.0
+ 2.15.0
test-jar
com.google.cloud
google-cloud-core
- 2.14.0
+ 2.15.0
tests
diff --git a/java-shared-dependencies/pom.xml b/java-shared-dependencies/pom.xml
index 4353656515..41a1a6d050 100644
--- a/java-shared-dependencies/pom.xml
+++ b/java-shared-dependencies/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
google-cloud-shared-dependencies
pom
- 3.6.0
+ 3.7.0
first-party-dependencies
third-party-dependencies
@@ -17,7 +17,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.16.0
+ 2.17.0
../gapic-generator-java-pom-parent
@@ -31,14 +31,14 @@
com.google.cloud
first-party-dependencies
- 3.6.0
+ 3.7.0
pom
import
com.google.cloud
third-party-dependencies
- 3.6.0
+ 3.7.0
pom
import
diff --git a/java-shared-dependencies/third-party-dependencies/pom.xml b/java-shared-dependencies/third-party-dependencies/pom.xml
index 106c96160a..867e1011c2 100644
--- a/java-shared-dependencies/third-party-dependencies/pom.xml
+++ b/java-shared-dependencies/third-party-dependencies/pom.xml
@@ -6,7 +6,7 @@
com.google.cloud
third-party-dependencies
pom
- 3.6.0
+ 3.7.0
Google Cloud Third-party Shared Dependencies
Shared third-party dependencies for Google Cloud Java libraries.
@@ -23,7 +23,7 @@
UTF-8
${project.artifactId}
- 1.6.7
+ 1.6.8
1.3.2
1.23
0.31.1
diff --git a/java-shared-dependencies/upper-bound-check/pom.xml b/java-shared-dependencies/upper-bound-check/pom.xml
index 351d49c426..f9593e2458 100644
--- a/java-shared-dependencies/upper-bound-check/pom.xml
+++ b/java-shared-dependencies/upper-bound-check/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
shared-dependencies-upper-bound-test
pom
- 3.6.0
+ 3.7.0
Upper bound test for Google Cloud Shared Dependencies
An upper bound test case for the shared dependencies BOM. A failure of this test case means
@@ -30,7 +30,7 @@
com.google.cloud
google-cloud-shared-dependencies
- 3.6.0
+ 3.7.0
pom
import
diff --git a/pom.xml b/pom.xml
index 6e7b6713c9..93652bdbe6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,10 +81,22 @@
- activate-test-coverage
+ full-project-coverage
- enableTestCoverage
+ enableFullTestCoverage
+
+
+
+ showcase
+
+
+
+
+ activate-showcase-coverage
+
+
+ enableShowcaseTestCoverage
diff --git a/renovate.json b/renovate.json
index 2c26c37707..bd6eaae303 100644
--- a/renovate.json
+++ b/renovate.json
@@ -2,7 +2,6 @@
"extends": [
"config:base"
],
- "ignorePaths": [".kokoro/requirements.txt"],
"ignoreDeps": ["rules_pkg"],
"regexManagers": [
{
@@ -27,6 +26,16 @@
"matchStrings": ["version\\.io_grpc=(?.+?)\\n"],
"depNameTemplate": "io.grpc:grpc-core",
"datasourceTemplate": "maven"
+ },
+ {
+ "fileMatch": ["^\\.github/workflows/.*\\.yaml$"],
+ "matchStrings": ["SHOWCASE_VERSION: (?.+?)\\n"],
+ "datasourceTemplate": "go"
+ },
+ {
+ "fileMatch": ["^showcase/gapic-showcase/pom\\.xml$"],
+ "matchStrings": ["(?.+?)\\n"],
+ "datasourceTemplate": "go"
}
],
"packageRules": [
diff --git a/scripts/create_native_image_test_env.sh b/scripts/create_native_image_test_env.sh
new file mode 100644
index 0000000000..4e3689ec30
--- /dev/null
+++ b/scripts/create_native_image_test_env.sh
@@ -0,0 +1,234 @@
+#!/bin/bash
+
+# This script creates a submodule project with all the necessary repositories (forked) and changes needed to test
+# GraalVM updates with handwritten libraries (including, pubsub, bigquery, bigtable and spanner-jdbc).
+# It serves two main purposes; first, it allows for the creation of a testing environment that can be shared with
+# teammates and second, given that the submodule leverages creation of test branches in the (forked) repositories,
+# any extra configurations necessary for making the library compatible with GraalVM can easily be sent for review as a PR
+# from the branch itself.
+# At a high-level, the script will do the following:
+# - Modifies graal-sdk version in gapic-generator-java/gax
+# - Modifies the gapic-generator-bom version in java-shared-dependencies.
+# - Updates the version of native-maven-plugin in java-shared-config.
+# - Updates the java-shared-config and java-shared-dependencies versions in the handwritten libraries listed.
+# - Adds gapic-generator-java, java-shared-config and handwritten libraries listed previously
+# with the associated changes, to the submodule project.
+set -eo pipefail
+
+function modify_shared_config() {
+ xmllint --shell pom.xml <0.0.1-SNAPSHOT
+
+ 0.26.1
+
+
enable-golden-tests
@@ -106,6 +110,28 @@
(IT.*\.java)|(.*Test.java)
+
+ com.googlecode.maven-download-plugin
+ download-maven-plugin
+ 1.6.8
+
+
+ download-compliance-suite
+ generate-test-resources
+
+ wget
+
+
+
+ https://raw.githubusercontent.com/googleapis/gapic-showcase/v${gapic-showcase.version}/server/services/compliance_suite.json
+
+ src/test/resources
+
+ true
+
+
+
+
diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITBidiStreaming.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITBidiStreaming.java
new file mode 100644
index 0000000000..ad90efc71e
--- /dev/null
+++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITBidiStreaming.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.showcase.v1beta1.it;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.api.core.SettableApiFuture;
+import com.google.api.gax.rpc.ClientStream;
+import com.google.api.gax.rpc.ResponseObserver;
+import com.google.api.gax.rpc.StreamController;
+import com.google.showcase.v1beta1.EchoClient;
+import com.google.showcase.v1beta1.EchoRequest;
+import com.google.showcase.v1beta1.EchoResponse;
+import com.google.showcase.v1beta1.it.util.TestClientInitializer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ITBidiStreaming {
+
+ private EchoClient grpcClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Create gRPC Echo Client
+ grpcClient = TestClientInitializer.createGrpcEchoClient();
+ }
+
+ // The current implementation of BIDI streaming on Echo showcase server is that it would echo the
+ // request content back on every request, so this test verifies that the response content is
+ // exactly the same as request content.
+ // Ideally we should make the BIDI streaming server more generic, e.g. only respond when there are
+ // three requests, respond twice for every request etc. If that happens, the response content may
+ // not be exactly the same as request content.
+ @Test
+ public void testGrpc_splitCall_shouldListensToResponse() throws Exception {
+ // given
+ List expected = Arrays.asList("The rain in Spain stays mainly on the plain".split(" "));
+ TestResponseObserver responseObserver = new TestResponseObserver();
+
+ // when
+ ClientStream clientStream = grpcClient.chatCallable().splitCall(responseObserver);
+ expected.forEach(
+ requestContent -> {
+ EchoRequest request = EchoRequest.newBuilder().setContent(requestContent).build();
+ clientStream.send(request);
+ });
+ clientStream.closeSend();
+
+ // then
+ List actual = responseObserver.getFuture().get();
+ assertThat(actual).containsExactlyElementsIn(expected).inOrder();
+ }
+
+ private static class TestResponseObserver implements ResponseObserver {
+ private final List responses = new ArrayList<>();
+ private final SettableApiFuture> future = SettableApiFuture.create();
+
+ @Override
+ public void onStart(StreamController controller) {
+ // no-op
+ }
+
+ @Override
+ public void onResponse(EchoResponse response) {
+ responses.add(response.getContent());
+ }
+
+ @Override
+ public void onError(Throwable t) {
+ // no-op
+ }
+
+ @Override
+ public void onComplete() {
+ future.set(responses);
+ }
+
+ public SettableApiFuture> getFuture() {
+ return future;
+ }
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ grpcClient.close();
+ }
+}
diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITClientSideStreaming.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITClientSideStreaming.java
new file mode 100644
index 0000000000..93ddd876fd
--- /dev/null
+++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITClientSideStreaming.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.showcase.v1beta1.it;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.junit.Assert.assertThrows;
+
+import com.google.api.core.SettableApiFuture;
+import com.google.api.gax.rpc.ApiStreamObserver;
+import com.google.api.gax.rpc.CancelledException;
+import com.google.api.gax.rpc.StatusCode;
+import com.google.rpc.Status;
+import com.google.showcase.v1beta1.EchoClient;
+import com.google.showcase.v1beta1.EchoRequest;
+import com.google.showcase.v1beta1.EchoResponse;
+import com.google.showcase.v1beta1.it.util.TestClientInitializer;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ITClientSideStreaming {
+
+ private EchoClient grpcClient;
+
+ @Before
+ public void createClients() throws Exception {
+ // Create gRPC Echo Client
+ grpcClient = TestClientInitializer.createGrpcEchoClient();
+ }
+
+ @After
+ public void destroyClient() {
+ grpcClient.close();
+ }
+
+ @Test
+ public void testGrpc_sendStreamedContent_receiveConcatenatedResponse()
+ throws ExecutionException, InterruptedException {
+ CollectStreamObserver responseObserver = new CollectStreamObserver<>();
+ ApiStreamObserver requestObserver =
+ grpcClient.collectCallable().clientStreamingCall(responseObserver);
+ String content = "The rain in Spain stays mainly on the plain";
+ for (String message : content.split("\\s")) {
+ requestObserver.onNext(EchoRequest.newBuilder().setContent(message).build());
+ }
+ requestObserver.onCompleted();
+
+ List serverResponse = responseObserver.future().get();
+ assertThat(serverResponse).hasSize(1);
+ assertThat(serverResponse.get(0).getContent())
+ .isEqualTo("The rain in Spain stays mainly on the plain");
+ }
+
+ @Test
+ public void testGrpc_sendStreamedContent_handleServerError() {
+ CollectStreamObserver responseObserver = new CollectStreamObserver<>();
+ ApiStreamObserver requestObserver =
+ grpcClient.collectCallable().clientStreamingCall(responseObserver);
+ String content = "The rain in Spain stays mainly on the plain";
+ for (String message : content.split("\\s")) {
+ requestObserver.onNext(EchoRequest.newBuilder().setContent(message).build());
+ }
+ Status cancelledStatus =
+ Status.newBuilder().setCode(StatusCode.Code.CANCELLED.ordinal()).build();
+ requestObserver.onNext(EchoRequest.newBuilder().setError(cancelledStatus).build());
+ requestObserver.onCompleted();
+
+ ExecutionException exception =
+ assertThrows(ExecutionException.class, () -> responseObserver.future().get());
+ assertThat(exception.getCause()).isInstanceOf(CancelledException.class);
+ CancelledException cancelledException = (CancelledException) exception.getCause();
+ assertThat(cancelledException.getStatusCode().getCode()).isEqualTo(StatusCode.Code.CANCELLED);
+ }
+
+ /**
+ * Implementation of {@link ApiStreamObserver} to accumulate streamed content.
+ *
+ * @param
+ */
+ private class CollectStreamObserver implements ApiStreamObserver {
+
+ private final SettableApiFuture> future = SettableApiFuture.create();
+ private final List messages = new ArrayList<>();
+
+ @Override
+ public void onNext(T message) {
+ this.messages.add(message);
+ }
+
+ @Override
+ public void onError(Throwable throwable) {
+ this.future.setException(throwable);
+ }
+
+ @Override
+ public void onCompleted() {
+ future.set(this.messages);
+ }
+
+ public SettableApiFuture> future() {
+ return this.future;
+ }
+ }
+}
diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITHttpAnnotation.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITHttpAnnotation.java
new file mode 100644
index 0000000000..79431fbc68
--- /dev/null
+++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITHttpAnnotation.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.showcase.v1beta1.it;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.api.client.http.javanet.NetHttpTransport;
+import com.google.api.gax.core.NoCredentialsProvider;
+import com.google.common.collect.ImmutableMap;
+import com.google.protobuf.util.JsonFormat;
+import com.google.showcase.v1beta1.ComplianceClient;
+import com.google.showcase.v1beta1.ComplianceData;
+import com.google.showcase.v1beta1.ComplianceGroup;
+import com.google.showcase.v1beta1.ComplianceSettings;
+import com.google.showcase.v1beta1.ComplianceSuite;
+import com.google.showcase.v1beta1.RepeatRequest;
+import com.google.showcase.v1beta1.RepeatResponse;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.security.GeneralSecurityException;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+// This test runs from the parameters in the compliance_suite.json file
+// The file is downloaded from the gapic-showcase repo. Each compliance
+// group is a set of HttpJson behaviors we want to test for. Each group
+// tests the product of the rpc list and requests list.
+@RunWith(Parameterized.class)
+public class ITHttpAnnotation {
+
+ @Parameterized.Parameters(name = "Compliance Group Name: {0}")
+ public static String[] data() {
+ return new String[] {
+ "Fully working conversions, resources",
+ "Binding selection testing",
+ "Cases that apply to non-path requests",
+ "Fully working conversions, no resources"
+ };
+ }
+
+ @Parameterized.Parameter(0)
+ public String groupName;
+
+ private ComplianceSuite complianceSuite;
+ private ComplianceClient complianceClient;
+ private Map> validComplianceRpcMap;
+
+ @Before
+ public void createClient() throws IOException, GeneralSecurityException {
+ ComplianceSuite.Builder builder = ComplianceSuite.newBuilder();
+ JsonFormat.parser()
+ .merge(
+ new InputStreamReader(
+ ITHttpAnnotation.class
+ .getClassLoader()
+ .getResourceAsStream("compliance_suite.json")),
+ builder);
+ complianceSuite = builder.build();
+
+ ComplianceSettings httpjsonComplianceSettings =
+ ComplianceSettings.newHttpJsonBuilder()
+ .setCredentialsProvider(NoCredentialsProvider.create())
+ .setTransportChannelProvider(
+ ComplianceSettings.defaultHttpJsonTransportProviderBuilder()
+ .setHttpTransport(
+ new NetHttpTransport.Builder().doNotValidateCertificate().build())
+ .setEndpoint("http://localhost:7469")
+ .build())
+ .build();
+ complianceClient = ComplianceClient.create(httpjsonComplianceSettings);
+
+ // Mapping of Compliance Suite file RPC Names to ComplianceClient methods
+ validComplianceRpcMap =
+ ImmutableMap.of(
+ "Compliance.RepeatDataBody",
+ complianceClient::repeatDataBody,
+ "Compliance.RepeatDataBodyInfo",
+ complianceClient::repeatDataBodyInfo,
+ "Compliance.RepeatDataQuery",
+ complianceClient::repeatDataQuery,
+ "Compliance.RepeatDataSimplePath",
+ complianceClient::repeatDataSimplePath,
+ "Compliance.RepeatDataBodyPut",
+ complianceClient::repeatDataBodyPut,
+ "Compliance.RepeatDataBodyPatch",
+ complianceClient::repeatDataBodyPatch,
+ "Compliance.RepeatDataPathResource",
+ complianceClient::repeatDataPathResource);
+ }
+
+ @After
+ public void destroyClient() {
+ complianceClient.close();
+ }
+
+ // Verify that the input's info is the same as the response's info
+ // This ensures that the entire group's behavior over HttpJson
+ // works as intended
+ @Test
+ public void testComplianceGroup() {
+ Optional complianceGroupOptional =
+ complianceSuite.getGroupList().stream()
+ .filter(x -> x.getName().equals(groupName))
+ .findFirst();
+ assertThat(complianceGroupOptional.isPresent()).isTrue();
+ ComplianceGroup complianceGroup = complianceGroupOptional.get();
+ List validRpcList =
+ complianceGroup.getRpcsList().stream()
+ .filter(validComplianceRpcMap::containsKey)
+ .collect(Collectors.toList());
+ for (String rpcName : validRpcList) {
+ Function rpc = validComplianceRpcMap.get(rpcName);
+ for (RepeatRequest repeatRequest : complianceGroup.getRequestsList()) {
+ ComplianceData expectedData = repeatRequest.getInfo();
+ RepeatResponse response = rpc.apply(repeatRequest);
+ assertThat(response.getRequest().getInfo()).isEqualTo(expectedData);
+ }
+ }
+ }
+}
diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITServerSideStreaming.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITServerSideStreaming.java
index 107f4f9380..e8d22c2756 100644
--- a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITServerSideStreaming.java
+++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITServerSideStreaming.java
@@ -19,8 +19,6 @@
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows;
-import com.google.api.gax.core.NoCredentialsProvider;
-import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.api.gax.rpc.CancelledException;
import com.google.api.gax.rpc.ServerStream;
import com.google.api.gax.rpc.StatusCode;
@@ -28,38 +26,33 @@
import com.google.rpc.Status;
import com.google.showcase.v1beta1.EchoClient;
import com.google.showcase.v1beta1.EchoResponse;
-import com.google.showcase.v1beta1.EchoSettings;
import com.google.showcase.v1beta1.ExpandRequest;
-import io.grpc.ManagedChannelBuilder;
-import java.io.IOException;
-import java.security.GeneralSecurityException;
+import com.google.showcase.v1beta1.it.util.TestClientInitializer;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.stream.Collectors;
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
public class ITServerSideStreaming {
private EchoClient grpcClient;
+ private EchoClient httpjsonClient;
@Before
- public void createClients() throws IOException, GeneralSecurityException {
+ public void createClients() throws Exception {
// Create gRPC Echo Client
- EchoSettings grpcEchoSettings =
- EchoSettings.newBuilder()
- .setCredentialsProvider(NoCredentialsProvider.create())
- .setTransportChannelProvider(
- InstantiatingGrpcChannelProvider.newBuilder()
- .setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
- .build())
- .build();
- grpcClient = EchoClient.create(grpcEchoSettings);
+ grpcClient = TestClientInitializer.createGrpcEchoClient();
+ // Create Http JSON Echo Client
+ httpjsonClient = TestClientInitializer.createHttpJsonEchoClient();
}
@After
public void destroyClient() {
grpcClient.close();
+ httpjsonClient.close();
}
@Test
@@ -79,6 +72,18 @@ public void testGrpc_receiveStreamedContent() {
.inOrder();
}
+ @Test
+ public void testGrpc_receiveStreamedContentStreamAPI() {
+ String content = "The rain in Spain stays mainly on the plain!";
+ ServerStream responseStream =
+ grpcClient.expandCallable().call(ExpandRequest.newBuilder().setContent(content).build());
+ assertThat(responseStream.stream().map(EchoResponse::getContent).collect(Collectors.toList()))
+ .containsExactlyElementsIn(
+ ImmutableList.of(
+ "The", "rain", "in", "Spain", "stays", "mainly", "on", "the", "plain!"))
+ .inOrder();
+ }
+
@Test
public void testGrpc_serverError_receiveErrorAfterLastWordInStream() {
String content = "The rain in Spain";
@@ -98,4 +103,45 @@ public void testGrpc_serverError_receiveErrorAfterLastWordInStream() {
assertThrows(CancelledException.class, echoResponseIterator::next);
assertThat(cancelledException.getStatusCode().getCode()).isEqualTo(StatusCode.Code.CANCELLED);
}
+
+ @Test
+ public void testHttpJson_receiveStreamedContent() {
+ String content = "The rain in Spain stays mainly on the plain!";
+ ServerStream responseStream =
+ httpjsonClient
+ .expandCallable()
+ .call(ExpandRequest.newBuilder().setContent(content).build());
+ ArrayList responses = new ArrayList<>();
+ for (EchoResponse response : responseStream) {
+ responses.add(response.getContent());
+ }
+
+ assertThat(responses)
+ .containsExactlyElementsIn(
+ ImmutableList.of(
+ "The", "rain", "in", "Spain", "stays", "mainly", "on", "the", "plain!"))
+ .inOrder();
+ }
+
+ @Ignore(
+ value = "Ignore until https://github.com/googleapis/gapic-showcase/issues/1286 is resolved")
+ @Test
+ public void testHttpJson_serverError_receiveErrorAfterLastWordInStream() {
+ String content = "The rain in Spain";
+ Status cancelledStatus =
+ Status.newBuilder().setCode(StatusCode.Code.CANCELLED.ordinal()).build();
+ ServerStream responseStream =
+ httpjsonClient
+ .expandCallable()
+ .call(ExpandRequest.newBuilder().setContent(content).setError(cancelledStatus).build());
+ Iterator echoResponseIterator = responseStream.iterator();
+
+ assertThat(echoResponseIterator.next().getContent()).isEqualTo("The");
+ assertThat(echoResponseIterator.next().getContent()).isEqualTo("rain");
+ assertThat(echoResponseIterator.next().getContent()).isEqualTo("in");
+ assertThat(echoResponseIterator.next().getContent()).isEqualTo("Spain");
+ CancelledException cancelledException =
+ assertThrows(CancelledException.class, echoResponseIterator::next);
+ assertThat(cancelledException.getStatusCode().getCode()).isEqualTo(StatusCode.Code.CANCELLED);
+ }
}
diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITUnaryCallable.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITUnaryCallable.java
index 1d1ccd1bec..52bfddc408 100644
--- a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITUnaryCallable.java
+++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITUnaryCallable.java
@@ -19,20 +19,14 @@
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows;
-import com.google.api.client.http.javanet.NetHttpTransport;
-import com.google.api.gax.core.NoCredentialsProvider;
import com.google.api.gax.grpc.GrpcStatusCode;
-import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.api.gax.rpc.CancelledException;
import com.google.api.gax.rpc.StatusCode;
import com.google.rpc.Status;
import com.google.showcase.v1beta1.EchoClient;
import com.google.showcase.v1beta1.EchoRequest;
import com.google.showcase.v1beta1.EchoResponse;
-import com.google.showcase.v1beta1.EchoSettings;
-import io.grpc.ManagedChannelBuilder;
-import java.io.IOException;
-import java.security.GeneralSecurityException;
+import com.google.showcase.v1beta1.it.util.TestClientInitializer;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -44,30 +38,11 @@ public class ITUnaryCallable {
private EchoClient httpJsonClient;
@Before
- public void createClients() throws IOException, GeneralSecurityException {
+ public void createClients() throws Exception {
// Create gRPC Echo Client
- EchoSettings grpcEchoSettings =
- EchoSettings.newBuilder()
- .setCredentialsProvider(NoCredentialsProvider.create())
- .setTransportChannelProvider(
- InstantiatingGrpcChannelProvider.newBuilder()
- .setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
- .build())
- .build();
- grpcClient = EchoClient.create(grpcEchoSettings);
-
+ grpcClient = TestClientInitializer.createGrpcEchoClient();
// Create Http JSON Echo Client
- EchoSettings httpJsonEchoSettings =
- EchoSettings.newHttpJsonBuilder()
- .setCredentialsProvider(NoCredentialsProvider.create())
- .setTransportChannelProvider(
- EchoSettings.defaultHttpJsonTransportProviderBuilder()
- .setHttpTransport(
- new NetHttpTransport.Builder().doNotValidateCertificate().build())
- .setEndpoint("http://localhost:7469")
- .build())
- .build();
- httpJsonClient = EchoClient.create(httpJsonEchoSettings);
+ httpJsonClient = TestClientInitializer.createHttpJsonEchoClient();
}
@After
diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/util/TestClientInitializer.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/util/TestClientInitializer.java
new file mode 100644
index 0000000000..e2248ffb2e
--- /dev/null
+++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/util/TestClientInitializer.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.showcase.v1beta1.it.util;
+
+import com.google.api.client.http.javanet.NetHttpTransport;
+import com.google.api.gax.core.NoCredentialsProvider;
+import com.google.showcase.v1beta1.EchoClient;
+import com.google.showcase.v1beta1.EchoSettings;
+import io.grpc.ManagedChannelBuilder;
+
+public class TestClientInitializer {
+
+ public static EchoClient createGrpcEchoClient() throws Exception {
+ EchoSettings grpcEchoSettings =
+ EchoSettings.newBuilder()
+ .setCredentialsProvider(NoCredentialsProvider.create())
+ .setTransportChannelProvider(
+ EchoSettings.defaultGrpcTransportProviderBuilder()
+ .setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
+ .build())
+
+ .build();
+ return EchoClient.create(grpcEchoSettings);
+ }
+
+ public static EchoClient createHttpJsonEchoClient() throws Exception{
+ EchoSettings httpJsonEchoSettings =
+ EchoSettings.newHttpJsonBuilder()
+ .setCredentialsProvider(NoCredentialsProvider.create())
+ .setTransportChannelProvider(
+ EchoSettings.defaultHttpJsonTransportProviderBuilder()
+ .setHttpTransport(
+ new NetHttpTransport.Builder().doNotValidateCertificate().build())
+ .setEndpoint("http://localhost:7469")
+ .build())
+ .build();
+ return EchoClient.create(httpJsonEchoSettings);
+ }
+}
diff --git a/showcase/gapic-showcase/src/test/resources/META-INF/native-image/resource-config.json b/showcase/gapic-showcase/src/test/resources/META-INF/native-image/resource-config.json
new file mode 100644
index 0000000000..80d7bc0ea2
--- /dev/null
+++ b/showcase/gapic-showcase/src/test/resources/META-INF/native-image/resource-config.json
@@ -0,0 +1,3 @@
+{
+ "resources":[{"pattern": ".*.json"}]
+}
\ No newline at end of file
diff --git a/showcase/gapic-showcase/src/test/resources/compliance_suite.json b/showcase/gapic-showcase/src/test/resources/compliance_suite.json
new file mode 100644
index 0000000000..a458819b35
--- /dev/null
+++ b/showcase/gapic-showcase/src/test/resources/compliance_suite.json
@@ -0,0 +1,240 @@
+{
+ "group": [
+ {
+ "name": "Fully working conversions, no resources",
+ "rpcs": ["Compliance.RepeatDataBody", "Compliance.RepeatDataBodyPut", "Compliance.RepeatDataBodyPatch", "Compliance.RepeatDataQuery", "Compliance.RepeatDataSimplePath", "Compliance.RepeatDataBodyInfo"],
+ "requests": [
+ {
+ "name": "Basic data types",
+ "serverVerify": true,
+ "info": {
+ "fString": "Hello",
+ "fInt32": -1,
+ "fSint32" : -2,
+ "fSfixed32": -3,
+ "fUint32": 5,
+ "fFixed32": 7,
+ "fInt64": -11,
+ "fSint64": -13,
+ "fSfixed64": -17,
+ "fUint64": 19,
+ "fFixed64":23,
+ "fDouble": -29e4,
+ "fFloat": -31,
+ "fBool": true,
+ "fKingdom": "ANIMALIA",
+
+ "pString": "Goodbye",
+ "pInt32": -37,
+ "pDouble": -41.43,
+ "pBool": true,
+ "pKingdom": "PLANTAE",
+
+ "fChild": {
+ "fString": "second/bool/salutation"
+ }
+ },
+ "fInt32": -10,
+ "fInt64": -110,
+ "fDouble": -54e4,
+
+ "pInt32": -47,
+ "pInt64": -477,
+ "pDouble": -61.73
+ },
+ {
+ "name": "Basic types, no optional fields",
+ "serverVerify": true,
+ "info": {
+ "fString": "Hello",
+ "fInt32": -1,
+ "fSint32" : -2,
+ "fSfixed32": -3,
+ "fUint32": 5,
+ "fFixed32": 7,
+ "fInt64": -11,
+ "fSint64": -13,
+ "fSfixed64": -17,
+ "fUint64": 19,
+ "fFixed64":23,
+ "fDouble": -29e4,
+ "fFloat": -31,
+ "fBool": true,
+ "fKingdom": "ANIMALIA",
+
+ "fChild": {
+ "fString": "second/bool/salutation"
+ }
+ }
+ },
+
+ {
+ "name": "Zero values for non-string fields",
+ "serverVerify": true,
+ "info": {
+ "fString": "Hello",
+ "fInt32": 0,
+ "fSint32" : 0,
+ "fSfixed32": 0,
+ "fUint32": 0,
+ "fFixed32": 0,
+ "fInt64": 0,
+ "fSint64": 0,
+ "fSfixed64": 0,
+ "fUint64": 0,
+ "fFixed64": 0,
+ "fDouble": 0,
+ "fFloat": 0,
+ "fBool": false,
+ "fKingdom": "LIFE_KINGDOM_UNSPECIFIED",
+
+ "pString": "Goodbye",
+ "pInt32": 0,
+ "pDouble": 0,
+ "pBool": false,
+ "pKingdom": "LIFE_KINGDOM_UNSPECIFIED"
+ }
+ },
+ {
+ "name": "Extreme values",
+ "serverVerify": true,
+ "info": {
+ "fString": "non-ASCII+non-printable string ☺ → ← \"\\\/\b\f\r\t\u1234 works, not newlines yet",
+ "fInt32": 2147483647,
+ "fSint32" : 2147483647,
+ "fSfixed32": 2147483647,
+ "fUint32": 4294967295,
+ "fFixed32": 4294967295,
+ "fInt64": "9223372036854775807",
+ "fSint64": "9223372036854775807",
+ "fSfixed64": "9223372036854775807",
+ "fUint64": "18446744073709551615",
+ "fFixed64": "18446744073709551615",
+ "fDouble": 1.797693134862315708145274237317043567981e+308,
+ "fFloat": 3.40282346638528859811704183484516925440e+38,
+ "fBool": false,
+
+ "pString": "Goodbye",
+ "pInt32": 2147483647,
+ "pDouble": 1.797693134862315708145274237317043567981e+308,
+ "pBool": false
+ }
+ },
+ {
+ "name": "Strings with spaces",
+ "serverVerify": true,
+ "info": {
+ "fString": "Hello there"
+ }
+ },
+ {
+ "name": "Strings with quotes",
+ "serverVerify": true,
+ "info": {
+ "fString": "Hello \"You\""
+ }
+ },
+ {
+ "name": "Strings with percents",
+ "serverVerify": true,
+ "info": {
+ "fString": "Hello 100%"
+ }
+ }
+ ]
+ },
+ {
+ "name": "Fully working conversions, resources",
+ "rpcs": ["Compliance.RepeatDataBody", "Compliance.RepeatDataBodyPut", "Compliance.RepeatDataBodyPatch", "Compliance.RepeatDataQuery"],
+ "requests": [
+ {
+ "name": "Strings with slashes and values that resemble subsequent resource templates",
+ "serverVerify": true,
+ "info": {
+ "fString": "first/hello/second/greetings",
+ "pBool": true,
+
+ "fChild": {
+ "fString": "second/zzz/bool/true"
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "Binding selection testing",
+ "rpcs": ["Compliance.RepeatDataPathResource"],
+ "requests": [
+ {
+ "name": "Binding testing baseline no Uri verification",
+ "serverVerify": true,
+ "info": {
+ "fString": "first/hello",
+ "pBool": true,
+
+ "fChild": {
+ "fString": "second/greetings"
+ }
+ }
+ },
+ {
+ "name": "Binding testing first binding",
+ "serverVerify": true,
+ "info": {
+ "fString": "first/hello",
+ "pBool": true,
+
+ "fChild": {
+ "fString": "second/greetings"
+ }
+ },
+ "intendedBindingUri": "/v1beta1/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/*}/bool/{info.f_bool}:pathresource"
+ },
+ {
+ "name": "Binding testing additional binding",
+ "serverVerify": true,
+ "info": {
+ "fString": "second/greetings",
+ "pBool": true,
+
+ "fChild": {
+ "fString": "first/hello"
+ }
+ },
+ "intendedBindingUri": "/v1beta1/repeat/{info.f_child.f_string=first/*}/{info.f_string=second/*}/bool/{info.f_bool}:childfirstpathresource"
+ }
+ ]
+ },
+ {
+ "name": "Cases that apply to non-path requests",
+ "rpcs": ["Compliance.RepeatDataBody", "Compliance.RepeatDataBodyPut", "Compliance.RepeatDataBodyPatch", "Compliance.RepeatDataQuery"],
+ "requests": [
+ {
+ "name": "Zero values for all fields",
+ "serverVerify": true,
+ "info": {
+ "fString": "",
+ "fInt32": 0,
+ "fSint32" : 0,
+ "fSfixed32": 0,
+ "fUint32": 0,
+ "fFixed32": 0,
+ "fInt64": 0,
+ "fSint64": 0,
+ "fSfixed64": 0,
+ "fUint64": 0,
+ "fFixed64":20,
+ "fDouble": 0,
+ "fFloat": 0,
+ "fBool": false,
+
+ "pString": "",
+ "pInt32": 0,
+ "pDouble": 0,
+ "pBool": false
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/showcase/pom.xml b/showcase/pom.xml
index 121812b867..a6cc8a76c2 100644
--- a/showcase/pom.xml
+++ b/showcase/pom.xml
@@ -15,7 +15,7 @@
com.google.api
gapic-generator-java-bom
- 2.16.0
+ 2.17.0
../gapic-generator-java-bom
diff --git a/showcase/scripts/verify.sh b/showcase/scripts/verify.sh
index 41b72565c7..48026e9600 100755
--- a/showcase/scripts/verify.sh
+++ b/showcase/scripts/verify.sh
@@ -57,6 +57,6 @@ case $1 in
unzip -q -c "$BAZEL_ROOT/$GAPIC_JAR" temp-codegen.srcjar | jar x
delete_unneeded
- diff -ru "$SHOWCASE_DIR/$GAPIC_PROJECT_DIR"/src "$GAPIC_UNPACK_DIR"/src --exclude=it
+ diff -ru "$SHOWCASE_DIR/$GAPIC_PROJECT_DIR"/src "$GAPIC_UNPACK_DIR"/src --exclude=it --exclude=resources
;;
esac
diff --git a/versions.txt b/versions.txt
index d842025ecb..0a0f436b9d 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,19 +1,19 @@
# Format:
# module:released-version:current-version
-gapic-generator-java:2.16.0:2.16.0
-api-common:2.7.0:2.7.0
-gax:2.24.0:2.24.0
-gax-grpc:2.24.0:2.24.0
-gax-httpjson:0.109.0:0.109.0
-proto-google-common-protos:2.15.0:2.15.0
-grpc-google-common-protos:2.15.0:2.15.0
-proto-google-iam-v1:1.10.0:1.10.0
-grpc-google-iam-v1:1.10.0:1.10.0
-proto-google-iam-v2beta:1.10.0:1.10.0
-grpc-google-iam-v2beta:1.10.0:1.10.0
-google-iam-policy:1.10.0:1.10.0
-proto-google-iam-v2:1.10.0:1.10.0
-grpc-google-iam-v2:1.10.0:1.10.0
-google-cloud-core:2.14.0:2.14.0
-google-cloud-shared-dependencies:3.6.0:3.6.0
+gapic-generator-java:2.17.0:2.17.0
+api-common:2.8.0:2.8.0
+gax:2.25.0:2.25.0
+gax-grpc:2.25.0:2.25.0
+gax-httpjson:0.110.0:0.110.0
+proto-google-common-protos:2.16.0:2.16.0
+grpc-google-common-protos:2.16.0:2.16.0
+proto-google-iam-v1:1.11.0:1.11.0
+grpc-google-iam-v1:1.11.0:1.11.0
+proto-google-iam-v2beta:1.11.0:1.11.0
+grpc-google-iam-v2beta:1.11.0:1.11.0
+google-iam-policy:1.11.0:1.11.0
+proto-google-iam-v2:1.11.0:1.11.0
+grpc-google-iam-v2:1.11.0:1.11.0
+google-cloud-core:2.15.0:2.15.0
+google-cloud-shared-dependencies:3.7.0:3.7.0