From 8defc9c0b585a8dc7ba3bd1c68e08a81c182e86a Mon Sep 17 00:00:00 2001 From: Olav Loite Date: Thu, 5 Mar 2020 15:59:03 +0100 Subject: [PATCH 01/17] feat: add QueryOptions to Spanner samples --- .../com/example/spanner/SpannerSample.java | 48 +++++++++++++++++++ .../com/example/spanner/SpannerSampleIT.java | 7 ++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java b/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java index d2207bb3320..a143a13746e 100644 --- a/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java +++ b/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java @@ -45,6 +45,7 @@ import com.google.common.io.BaseEncoding; import com.google.spanner.admin.database.v1.CreateDatabaseMetadata; import com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata; +import com.google.spanner.v1.ExecuteSqlRequest.QueryOptions; import java.sql.Timestamp; import java.time.Instant; import java.util.ArrayList; @@ -1433,6 +1434,45 @@ static void queryWithTimestampParameter(DatabaseClient dbClient) { } // [END spanner_query_with_timestamp_parameter] + // [START spanner_create_client_with_query_options] + static void clientWithQueryOptions(DatabaseId db) { + SpannerOptions options = + SpannerOptions.newBuilder() + .setDefaultQueryOptions( + db, QueryOptions.newBuilder().setOptimizerVersion("latest").build()) + .build(); + Spanner spanner = options.getService(); + DatabaseClient dbClient = spanner.getDatabaseClient(db); + try (ResultSet resultSet = + dbClient + .singleUse() + .executeQuery(Statement.of("SELECT SingerId, AlbumId, AlbumTitle FROM Albums"))) { + while (resultSet.next()) { + System.out.printf( + "%d %d %s\n", resultSet.getLong(0), resultSet.getLong(1), resultSet.getString(2)); + } + } + } + // [END spanner_create_client_with_query_options] + + // [START spanner_query_with_query_options] + static void queryWithQueryOptions(DatabaseClient dbClient) { + try (ResultSet resultSet = + dbClient + .singleUse() + .executeQuery( + Statement + .newBuilder("SELECT SingerId, AlbumId, AlbumTitle FROM Albums") + .withQueryOptions(QueryOptions.newBuilder().setOptimizerVersion("latest").build()) + .build())) { + while (resultSet.next()) { + System.out.printf( + "%d %d %s\n", resultSet.getLong(0), resultSet.getLong(1), resultSet.getString(2)); + } + } + } + // [END spanner_query_with_query_options] + static void run( DatabaseClient dbClient, DatabaseAdminClient dbAdminClient, @@ -1589,6 +1629,12 @@ static void run( case "querywithtimestampparameter": queryWithTimestampParameter(dbClient); break; + case "clientwithqueryoptions": + clientWithQueryOptions(database); + break; + case "querywithqueryoptions": + queryWithQueryOptions(dbClient); + break; default: printUsageAndExit(); } @@ -1649,6 +1695,8 @@ static void printUsageAndExit() { System.err.println(" SpannerExample querywithint my-instance example-db"); System.err.println(" SpannerExample querywithstring my-instance example-db"); System.err.println(" SpannerExample querywithtimestampparameter my-instance example-db"); + System.err.println(" SpannerExample clientwithqueryoptions my-instance example-db"); + System.err.println(" SpannerExample querywithqueryoptions my-instance example-db"); System.exit(1); } diff --git a/spanner/cloud-client/src/test/java/com/example/spanner/SpannerSampleIT.java b/spanner/cloud-client/src/test/java/com/example/spanner/SpannerSampleIT.java index b04caffd515..0bf458ee201 100644 --- a/spanner/cloud-client/src/test/java/com/example/spanner/SpannerSampleIT.java +++ b/spanner/cloud-client/src/test/java/com/example/spanner/SpannerSampleIT.java @@ -216,7 +216,7 @@ public void testSample() throws Exception { out = runSample("querywithbytes"); assertThat(out).contains("4 Venue 4"); - + out = runSample("querywithdate"); assertThat(out).contains("4 Venue 4 2018-09-02"); assertThat(out).contains("42 Venue 42 2018-10-01"); @@ -236,6 +236,11 @@ public void testSample() throws Exception { assertThat(out).contains("4 Venue 4"); assertThat(out).contains("19 Venue 19"); assertThat(out).contains("42 Venue 42"); + + out = runSample("clientwithqueryoptions"); + assertThat(out).contains("1 1 Total Junk"); + out = runSample("querywithqueryoptions"); + assertThat(out).contains("1 1 Total Junk"); } private String formatForTest(String name) { From 706b5dc841b13b9b690f5e61d18278796c81543e Mon Sep 17 00:00:00 2001 From: Olav Loite Date: Sun, 15 Mar 2020 08:48:13 +0100 Subject: [PATCH 02/17] fix: review comments + dependencies --- spanner/cloud-client/pom.xml | 41 ++++++++----------- .../com/example/spanner/SpannerSample.java | 4 +- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/spanner/cloud-client/pom.xml b/spanner/cloud-client/pom.xml index 6f2a244ac8a..57ed7f61bcf 100644 --- a/spanner/cloud-client/pom.xml +++ b/spanner/cloud-client/pom.xml @@ -34,6 +34,7 @@ limitations under the License. 1.8 UTF-8 0.26.0 + 1.51.0 @@ -42,7 +43,7 @@ limitations under the License. com.google.cloud google-cloud-bom - 0.84.0-alpha + 0.122.4-alpha pom import @@ -51,34 +52,26 @@ limitations under the License. - com.google.cloud google-cloud-spanner - - - com.google.guava - guava-jdk5 - - - io.opencensus - opencensus-api - - - io.grpc - grpc-netty-shaded - - - io.grpc - grpc-core - - + ${spanner.version} + + + com.google.api.grpc + proto-google-cloud-spanner-admin-instance-v1 + ${spanner.version} - - com.google.guava - guava - 28.2-jre + com.google.api.grpc + proto-google-cloud-spanner-v1 + ${spanner.version} + + com.google.api.grpc + proto-google-cloud-spanner-admin-database-v1 + ${spanner.version} + + io.opencensus opencensus-api diff --git a/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java b/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java index a143a13746e..50ab77550a6 100644 --- a/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java +++ b/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java @@ -1439,7 +1439,7 @@ static void clientWithQueryOptions(DatabaseId db) { SpannerOptions options = SpannerOptions.newBuilder() .setDefaultQueryOptions( - db, QueryOptions.newBuilder().setOptimizerVersion("latest").build()) + db, QueryOptions.newBuilder().setOptimizerVersion("1").build()) .build(); Spanner spanner = options.getService(); DatabaseClient dbClient = spanner.getDatabaseClient(db); @@ -1463,7 +1463,7 @@ static void queryWithQueryOptions(DatabaseClient dbClient) { .executeQuery( Statement .newBuilder("SELECT SingerId, AlbumId, AlbumTitle FROM Albums") - .withQueryOptions(QueryOptions.newBuilder().setOptimizerVersion("latest").build()) + .withQueryOptions(QueryOptions.newBuilder().setOptimizerVersion("1").build()) .build())) { while (resultSet.next()) { System.out.printf( From 611dae9efc74981d896c239a1aeffdbda05426a4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 19 Mar 2020 17:12:37 +0100 Subject: [PATCH 03/17] chore(deps): update dependency io.ktor:ktor-bom to v1.3.2 (#2382) Co-authored-by: Averi Kitsch --- appengine-java11/kotlin-ktor/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appengine-java11/kotlin-ktor/pom.xml b/appengine-java11/kotlin-ktor/pom.xml index 51229e286f2..9837a29fc5d 100644 --- a/appengine-java11/kotlin-ktor/pom.xml +++ b/appengine-java11/kotlin-ktor/pom.xml @@ -59,7 +59,7 @@ limitations under the License. io.ktor ktor-bom - 1.3.1 + 1.3.2 pom import From a4412b7ae45ae08a0762fee4a835fb108371930d Mon Sep 17 00:00:00 2001 From: Dane Zeke Liergaard Date: Thu, 19 Mar 2020 13:35:00 -0700 Subject: [PATCH 04/17] Correct path to task queues sample. (#2444) --- .../main/java/com/example/appengine/taskqueue/push/Enqueue.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appengine-java8/taskqueues-push/src/main/java/com/example/appengine/taskqueue/push/Enqueue.java b/appengine-java8/taskqueues-push/src/main/java/com/example/appengine/taskqueue/push/Enqueue.java index 9acebe51934..c39094e6e6e 100644 --- a/appengine-java8/taskqueues-push/src/main/java/com/example/appengine/taskqueue/push/Enqueue.java +++ b/appengine-java8/taskqueues-push/src/main/java/com/example/appengine/taskqueue/push/Enqueue.java @@ -44,7 +44,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) // Add the task to the default queue. // [START addQueue] Queue queue = QueueFactory.getDefaultQueue(); - queue.add(TaskOptions.Builder.withUrl("/worker").param("key", key)); + queue.add(TaskOptions.Builder.withUrl("/taskqueues/worker").param("key", key)); // [END addQueue] response.sendRedirect("/"); From 29294d0a76fa5e88d57cdd43e4df349e45187188 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 19 Mar 2020 22:08:05 +0100 Subject: [PATCH 05/17] chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.748 (#2446) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.amazonaws:aws-java-sdk-s3](https://aws.amazon.com/sdkforjava) | patch | `1.11.747` -> `1.11.748` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#GoogleCloudPlatform/java-docs-samples). --- storage/s3-sdk/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/s3-sdk/pom.xml b/storage/s3-sdk/pom.xml index 29ac0f46f77..2f1a83450ac 100644 --- a/storage/s3-sdk/pom.xml +++ b/storage/s3-sdk/pom.xml @@ -38,7 +38,7 @@ com.amazonaws aws-java-sdk-s3 - 1.11.747 + 1.11.748 From 4f55144e1f6d6bdd33e012a9c189511453ab1f7f Mon Sep 17 00:00:00 2001 From: Dane Zeke Liergaard Date: Thu, 19 Mar 2020 15:09:57 -0700 Subject: [PATCH 06/17] Correct error message for unset GOOGLE_CLOUD_PROJECT. (#2448) --- .../src/main/java/com/example/spanner/SpannerSample.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java b/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java index 50ab77550a6..2db5d649a25 100644 --- a/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java +++ b/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java @@ -1715,8 +1715,8 @@ public static void main(String[] args) throws Exception { String clientProject = spanner.getOptions().getProjectId(); if (!db.getInstanceId().getProject().equals(clientProject)) { System.err.println( - "Invalid project specified. Project in the database id should match" - + "the project name set in the environment variable GCLOUD_PROJECT. Expected: " + "Invalid project specified. Project in the database id should match the" + + "project name set in the environment variable GOOGLE_CLOUD_PROJECT. Expected: " + clientProject); printUsageAndExit(); } From df9e9cc3029958c0fcec14bbad7b556a7198897a Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Mar 2020 23:19:52 +0000 Subject: [PATCH 07/17] chore(deps): update dependency com.google.apis:google-api-services-storagetransfer to v1-rev20200316-1.30.9 --- storage/storage-transfer/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/storage-transfer/pom.xml b/storage/storage-transfer/pom.xml index e6e8b8569af..4fd13ae2865 100644 --- a/storage/storage-transfer/pom.xml +++ b/storage/storage-transfer/pom.xml @@ -43,7 +43,7 @@ com.google.apis google-api-services-storagetransfer - v1-rev20200310-1.30.9 + v1-rev20200316-1.30.9 com.google.guava From 9352d2c61d1e0dffb69b850f430ef4b170f7a472 Mon Sep 17 00:00:00 2001 From: Olav Loite Date: Fri, 20 Mar 2020 09:26:02 +0100 Subject: [PATCH 08/17] deps: upgrade to spanner 1.52 --- spanner/cloud-client/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spanner/cloud-client/pom.xml b/spanner/cloud-client/pom.xml index 57ed7f61bcf..da1c33b395a 100644 --- a/spanner/cloud-client/pom.xml +++ b/spanner/cloud-client/pom.xml @@ -34,7 +34,7 @@ limitations under the License. 1.8 UTF-8 0.26.0 - 1.51.0 + 1.52.0 From 7464e858bde9ba7e839d354ac6af08086f43c4dd Mon Sep 17 00:00:00 2001 From: Averi Kitsch Date: Fri, 20 Mar 2020 08:47:17 -0700 Subject: [PATCH 09/17] Maven GAE plugin config updates (#2442) * Maven config updates * lint * lint * lint --- cloud-sql/mysql/servlet/README.md | 2 +- cloud-sql/mysql/servlet/pom.xml | 2 +- cloud-sql/postgres/servlet/README.md | 2 +- cloud-sql/postgres/servlet/pom.xml | 2 +- memorystore/redis/pom.xml | 2 +- storage/cloud-client/pom.xml | 2 +- storage/json-api/pom.xml | 2 +- storage/s3-sdk/pom.xml | 2 +- .../s3-sdk/src/main/java/ListGcsBuckets.java | 12 +- .../s3-sdk/src/main/java/ListGcsObjects.java | 15 +- .../src/test/java/ListGcsBucketsTest.java | 1 - .../src/test/java/ListGcsObjectsTest.java | 1 - storage/storage-transfer/pom.xml | 2 +- storage/xml-api/cmdline-sample/pom.xml | 2 +- .../src/main/java/StorageSample.java | 2 - .../serviceaccount-appengine-sample/README.md | 2 +- .../serviceaccount-appengine-sample/pom.xml | 10 +- .../serviceaccount/StorageSample.java | 24 +-- unittests/pom.xml | 190 +++++++++--------- 19 files changed, 133 insertions(+), 144 deletions(-) diff --git a/cloud-sql/mysql/servlet/README.md b/cloud-sql/mysql/servlet/README.md index 163d75b1cb7..026a10ae974 100644 --- a/cloud-sql/mysql/servlet/README.md +++ b/cloud-sql/mysql/servlet/README.md @@ -62,7 +62,7 @@ environment variables into the runtime. Next, the following command will deploy the application to your Google Cloud project: ```bash -mvn appengine:deploy +mvn clean package appengine:deploy ``` ### Deploy to Cloud Run diff --git a/cloud-sql/mysql/servlet/pom.xml b/cloud-sql/mysql/servlet/pom.xml index e3f6b708659..f6181b29c38 100644 --- a/cloud-sql/mysql/servlet/pom.xml +++ b/cloud-sql/mysql/servlet/pom.xml @@ -27,7 +27,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 diff --git a/cloud-sql/postgres/servlet/README.md b/cloud-sql/postgres/servlet/README.md index ed7db785dac..1a4c47d02a5 100644 --- a/cloud-sql/postgres/servlet/README.md +++ b/cloud-sql/postgres/servlet/README.md @@ -62,5 +62,5 @@ environment variables into the runtime. Next, the following command will deploy the application to your Google Cloud project: ```bash -mvn appengine:deploy +mvn clean package appengine:deploy ``` diff --git a/cloud-sql/postgres/servlet/pom.xml b/cloud-sql/postgres/servlet/pom.xml index 68ca76f7a0d..606d230bcbe 100644 --- a/cloud-sql/postgres/servlet/pom.xml +++ b/cloud-sql/postgres/servlet/pom.xml @@ -27,7 +27,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 diff --git a/memorystore/redis/pom.xml b/memorystore/redis/pom.xml index b242c9aed96..e700ba320a6 100644 --- a/memorystore/redis/pom.xml +++ b/memorystore/redis/pom.xml @@ -27,7 +27,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 diff --git a/storage/cloud-client/pom.xml b/storage/cloud-client/pom.xml index 7cc50f03ab6..5320f73b981 100644 --- a/storage/cloud-client/pom.xml +++ b/storage/cloud-client/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 diff --git a/storage/json-api/pom.xml b/storage/json-api/pom.xml index 4f56cda0b34..80978bf5485 100644 --- a/storage/json-api/pom.xml +++ b/storage/json-api/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 diff --git a/storage/s3-sdk/pom.xml b/storage/s3-sdk/pom.xml index 2f1a83450ac..ce533f16e55 100644 --- a/storage/s3-sdk/pom.xml +++ b/storage/s3-sdk/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 diff --git a/storage/s3-sdk/src/main/java/ListGcsBuckets.java b/storage/s3-sdk/src/main/java/ListGcsBuckets.java index f31ee2126c3..14c0cff8f3a 100644 --- a/storage/s3-sdk/src/main/java/ListGcsBuckets.java +++ b/storage/s3-sdk/src/main/java/ListGcsBuckets.java @@ -21,24 +21,23 @@ import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.Bucket; - import java.util.List; public class ListGcsBuckets { - public static void listGcsBuckets(String googleAccessKeyId, - String googleAccessKeySecret) { + public static void listGcsBuckets(String googleAccessKeyId, String googleAccessKeySecret) { // String googleAccessKeyId = "your-google-access-key-id"; // String googleAccessKeySecret = "your-google-access-key-secret"; // Create a BasicAWSCredentials using Cloud Storage HMAC credentials. - BasicAWSCredentials googleCreds = new BasicAWSCredentials(googleAccessKeyId, - googleAccessKeySecret); + BasicAWSCredentials googleCreds = + new BasicAWSCredentials(googleAccessKeyId, googleAccessKeySecret); // Create a new client and do the following: // 1. Change the endpoint URL to use the Google Cloud Storage XML API endpoint. // 2. Use Cloud Storage HMAC Credentials. - AmazonS3 interopClient = AmazonS3ClientBuilder.standard() + AmazonS3 interopClient = + AmazonS3ClientBuilder.standard() .withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://storage.googleapis.com", "auto")) @@ -59,4 +58,3 @@ public static void listGcsBuckets(String googleAccessKeyId, } // [END storage_s3_sdk_list_buckets] } - diff --git a/storage/s3-sdk/src/main/java/ListGcsObjects.java b/storage/s3-sdk/src/main/java/ListGcsObjects.java index e50ce02c01b..85e47dd32fd 100644 --- a/storage/s3-sdk/src/main/java/ListGcsObjects.java +++ b/storage/s3-sdk/src/main/java/ListGcsObjects.java @@ -14,35 +14,32 @@ * limitations under the License. */ - // [START storage_s3_sdk_list_objects] import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; - import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ObjectListing; import com.amazonaws.services.s3.model.S3ObjectSummary; -import java.util.List; - public class ListGcsObjects { - public static void listGcsObjects(String googleAccessKeyId, - String googleAccessKeySecret, String bucketName) { + public static void listGcsObjects( + String googleAccessKeyId, String googleAccessKeySecret, String bucketName) { // String googleAccessKeyId = "your-google-access-key-id"; // String googleAccessKeySecret = "your-google-access-key-secret"; // String bucketName = "bucket-name"; // Create a BasicAWSCredentials using Cloud Storage HMAC credentials. - BasicAWSCredentials googleCreds = new BasicAWSCredentials(googleAccessKeyId, - googleAccessKeySecret); + BasicAWSCredentials googleCreds = + new BasicAWSCredentials(googleAccessKeyId, googleAccessKeySecret); // Create a new client and do the following: // 1. Change the endpoint URL to use the Google Cloud Storage XML API endpoint. // 2. Use Cloud Storage HMAC Credentials. - AmazonS3 interopClient = AmazonS3ClientBuilder.standard() + AmazonS3 interopClient = + AmazonS3ClientBuilder.standard() .withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://storage.googleapis.com", "auto")) diff --git a/storage/s3-sdk/src/test/java/ListGcsBucketsTest.java b/storage/s3-sdk/src/test/java/ListGcsBucketsTest.java index d63e2cf4cc4..bad343bb3e1 100644 --- a/storage/s3-sdk/src/test/java/ListGcsBucketsTest.java +++ b/storage/s3-sdk/src/test/java/ListGcsBucketsTest.java @@ -18,7 +18,6 @@ import static org.junit.Assert.assertThat; import com.amazonaws.services.s3.model.Bucket; - import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.List; diff --git a/storage/s3-sdk/src/test/java/ListGcsObjectsTest.java b/storage/s3-sdk/src/test/java/ListGcsObjectsTest.java index 9c15a9b6d0c..2b77dbc56d9 100644 --- a/storage/s3-sdk/src/test/java/ListGcsObjectsTest.java +++ b/storage/s3-sdk/src/test/java/ListGcsObjectsTest.java @@ -19,7 +19,6 @@ import com.amazonaws.services.s3.model.Bucket; import com.amazonaws.services.s3.model.ObjectListing; - import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.List; diff --git a/storage/storage-transfer/pom.xml b/storage/storage-transfer/pom.xml index 4fd13ae2865..838cb552f3a 100644 --- a/storage/storage-transfer/pom.xml +++ b/storage/storage-transfer/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 diff --git a/storage/xml-api/cmdline-sample/pom.xml b/storage/xml-api/cmdline-sample/pom.xml index b5bc3d91efc..ee80b67da14 100644 --- a/storage/xml-api/cmdline-sample/pom.xml +++ b/storage/xml-api/cmdline-sample/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 diff --git a/storage/xml-api/cmdline-sample/src/main/java/StorageSample.java b/storage/xml-api/cmdline-sample/src/main/java/StorageSample.java index b0cd953b729..b0382e5225e 100644 --- a/storage/xml-api/cmdline-sample/src/main/java/StorageSample.java +++ b/storage/xml-api/cmdline-sample/src/main/java/StorageSample.java @@ -22,14 +22,12 @@ import com.google.api.client.http.HttpResponse; import com.google.api.client.http.HttpTransport; import com.google.api.client.util.Preconditions; - import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.net.URLEncoder; import java.security.GeneralSecurityException; import java.util.Collections; - import javax.xml.transform.OutputKeys; import javax.xml.transform.Source; import javax.xml.transform.Transformer; diff --git a/storage/xml-api/serviceaccount-appengine-sample/README.md b/storage/xml-api/serviceaccount-appengine-sample/README.md index 8114f0aa4d5..b79ebafa575 100644 --- a/storage/xml-api/serviceaccount-appengine-sample/README.md +++ b/storage/xml-api/serviceaccount-appengine-sample/README.md @@ -33,7 +33,7 @@ Running and Deploying Your Application from the Command Line To run your application locally on a development server: - mvn appengine:devserver + mvn appengine:run To deploy your application to appspot.com: diff --git a/storage/xml-api/serviceaccount-appengine-sample/pom.xml b/storage/xml-api/serviceaccount-appengine-sample/pom.xml index ceac61b6a4d..f97eebcc5b6 100644 --- a/storage/xml-api/serviceaccount-appengine-sample/pom.xml +++ b/storage/xml-api/serviceaccount-appengine-sample/pom.xml @@ -23,7 +23,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 com.google.apis-samples @@ -82,14 +82,16 @@ - com.google.appengine + com.google.cloud.tools appengine-maven-plugin - 1.9.77 + 2.2.0 + GCLOUD_CONFIG + gaeinfo 8888 diff --git a/storage/xml-api/serviceaccount-appengine-sample/src/main/java/com/google/api/client/sample/storage/appengine/serviceaccount/StorageSample.java b/storage/xml-api/serviceaccount-appengine-sample/src/main/java/com/google/api/client/sample/storage/appengine/serviceaccount/StorageSample.java index 54daa10313e..41796b7824d 100644 --- a/storage/xml-api/serviceaccount-appengine-sample/src/main/java/com/google/api/client/sample/storage/appengine/serviceaccount/StorageSample.java +++ b/storage/xml-api/serviceaccount-appengine-sample/src/main/java/com/google/api/client/sample/storage/appengine/serviceaccount/StorageSample.java @@ -23,12 +23,10 @@ import com.google.api.client.http.HttpResponse; import com.google.api.client.http.HttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; - import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.Arrays; - import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -46,8 +44,7 @@ public class StorageSample extends HttpServlet { private static final int HTTP_OK = 200; /** The base endpoint for Google Cloud Storage api calls. */ - private static final String GCS_URI = - "http://commondatastorage.googleapis.com"; + private static final String GCS_URI = "http://commondatastorage.googleapis.com"; /** Global configuration of Google Cloud Storage OAuth 2.0 scope. */ private static final String STORAGE_SCOPE = @@ -65,35 +62,30 @@ protected void doGet(final HttpServletRequest req, final HttpServletResponse res throws IOException { try { - AppIdentityCredential credential = new AppIdentityCredential( - Arrays.asList(STORAGE_SCOPE)); + AppIdentityCredential credential = new AppIdentityCredential(Arrays.asList(STORAGE_SCOPE)); // Set up and execute Google Cloud Storage request. String bucketName = req.getRequestURI(); if (bucketName.equals("/")) { resp.sendError( - HTTP_NOT_FOUND, - "No bucket specified - append /bucket-name to the URL and retry."); + HTTP_NOT_FOUND, "No bucket specified - append /bucket-name to the URL and retry."); return; } // Remove any trailing slashes, if found. - //[START snippet] + // [START snippet] String cleanBucketName = bucketName.replaceAll("/$", ""); String uri = GCS_URI + cleanBucketName; - HttpRequestFactory requestFactory = - HTTP_TRANSPORT.createRequestFactory(credential); + HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory(credential); GenericUrl url = new GenericUrl(uri); HttpRequest request = requestFactory.buildGetRequest(url); HttpResponse response = request.execute(); String content = response.parseAsString(); - //[END snippet] + // [END snippet] // Display the output XML. resp.setContentType("text/xml"); - BufferedWriter writer = new BufferedWriter( - new OutputStreamWriter(resp.getOutputStream())); - String formattedContent = content.replaceAll( - "( - 4.0.0 - war - 1.0-SNAPSHOT - com.google.appengine.samples - unittests-appengine-local-testing-samples + 4.0.0 + war + 1.0-SNAPSHOT + com.google.appengine.samples + unittests-appengine-local-testing-samples - - - com.google.cloud.samples - shared-configuration - 1.0.11 - + + + com.google.cloud.samples + shared-configuration + 1.0.12 + - - 1.8 - 1.8 - + + 1.8 + 1.8 + - - - - com.google.appengine - appengine-api-1.0-sdk - 1.9.78 - - - javax.servlet - servlet-api - 2.5 - provided - - - jstl - jstl - 1.2 - + + + + com.google.appengine + appengine-api-1.0-sdk + 1.9.78 + + + javax.servlet + servlet-api + 2.5 + provided + + + jstl + jstl + 1.2 + - - - junit - junit - 4.13 - test - - - com.google.appengine - appengine-testing - 1.9.78 - test - - - com.google.appengine - appengine-api-stubs - 1.9.78 - test - - - com.google.appengine - appengine-tools-sdk - 1.9.78 - test - - - com.google.api-client - google-api-client-appengine - 1.30.9 - test - - + + + junit + junit + 4.13 + test + + + com.google.appengine + appengine-testing + 1.9.78 + test + + + com.google.appengine + appengine-api-stubs + 1.9.78 + test + + + com.google.appengine + appengine-tools-sdk + 1.9.78 + test + + + com.google.api-client + google-api-client-appengine + 1.30.9 + test + + - - - - org.apache.maven.plugins - maven-war-plugin - 3.2.3 - - true - - - - ${basedir}/src/main/webapp/WEB-INF - true - WEB-INF - - - - + + + + org.apache.maven.plugins + maven-war-plugin + 3.2.3 + + true + + + + ${basedir}/src/main/webapp/WEB-INF + true + WEB-INF + + + + - - com.google.appengine - appengine-maven-plugin - $1.9.60 - - - + + com.google.cloud.tools + appengine-maven-plugin + 2.2.0 + + GCLOUD_CONFIG + gaeinfo + + + + From 29f3c4d48d1079a78e06503acf4bdd6487be48fb Mon Sep 17 00:00:00 2001 From: Averi Kitsch Date: Fri, 20 Mar 2020 11:28:05 -0700 Subject: [PATCH 10/17] Update Maven config GAE 11 (#2441) --- .../appengine-simple-jetty-main/pom.xml | 8 +- appengine-java11/cloudsql/README.md | 2 +- appengine-java11/cloudsql/pom.xml | 3 +- appengine-java11/gaeinfo/README.md | 2 +- appengine-java11/gaeinfo/pom.xml | 5 +- .../guestbook-cloud-firestore/README.md | 2 +- .../guestbook-cloud-firestore/pom.xml | 3 +- appengine-java11/helloworld-servlet/README.md | 2 +- appengine-java11/helloworld-servlet/pom.xml | 3 +- appengine-java11/http-server/README.md | 2 +- appengine-java11/http-server/pom.xml | 5 +- appengine-java11/kotlin-ktor/README.md | 2 +- appengine-java11/kotlin-ktor/pom.xml | 327 +++++++++--------- .../micronaut-helloworld/README.md | 2 +- appengine-java11/micronaut-helloworld/pom.xml | 3 +- appengine-java11/oauth2/README.md | 2 +- appengine-java11/oauth2/pom.xml | 3 +- appengine-java11/quarkus-helloworld/README.md | 2 +- appengine-java11/quarkus-helloworld/pom.xml | 31 +- appengine-java11/spanner/README.md | 2 +- appengine-java11/spanner/pom.xml | 3 +- .../sparkjava-helloworld/README.md | 2 +- appengine-java11/sparkjava-helloworld/pom.xml | 5 +- .../springboot-helloworld/README.md | 2 +- .../springboot-helloworld/pom.xml | 3 +- appengine-java11/tasks-handler/pom.xml | 161 ++++----- appengine-java11/tasks/README.md | 2 +- appengine-java11/tasks/pom.xml | 2 +- appengine-java11/vertx-helloworld/README.md | 2 +- appengine-java11/vertx-helloworld/pom.xml | 5 +- 30 files changed, 308 insertions(+), 290 deletions(-) diff --git a/appengine-java11/appengine-simple-jetty-main/pom.xml b/appengine-java11/appengine-simple-jetty-main/pom.xml index 78bbad106a9..f2703611b48 100644 --- a/appengine-java11/appengine-simple-jetty-main/pom.xml +++ b/appengine-java11/appengine-simple-jetty-main/pom.xml @@ -14,7 +14,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -66,7 +66,11 @@ exec-maven-plugin 1.6.0 - java + + + java + + com.example.appengine.demo.jettymain.Main diff --git a/appengine-java11/cloudsql/README.md b/appengine-java11/cloudsql/README.md index cc5cbff7043..51ed1b24b3b 100644 --- a/appengine-java11/cloudsql/README.md +++ b/appengine-java11/cloudsql/README.md @@ -62,7 +62,7 @@ cp ../../../appengine-java11/cloudsql/pom.xml ./ The following command will deploy the application to your Google Cloud project: ``` -mvn clean package appengine:deploy -Dapp.deploy.projectId= +mvn clean package appengine:deploy ``` View your application: diff --git a/appengine-java11/cloudsql/pom.xml b/appengine-java11/cloudsql/pom.xml index a3b872097c4..5c802bb84be 100644 --- a/appengine-java11/cloudsql/pom.xml +++ b/appengine-java11/cloudsql/pom.xml @@ -29,7 +29,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -139,6 +139,7 @@ appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG cloudsql diff --git a/appengine-java11/gaeinfo/README.md b/appengine-java11/gaeinfo/README.md index 4117413536b..f3f3a82b466 100644 --- a/appengine-java11/gaeinfo/README.md +++ b/appengine-java11/gaeinfo/README.md @@ -44,7 +44,7 @@ Main class to your classpath: - Deploy to App Engine standard environment using the following Maven command. ``` - mvn appengine:deploy -Dapp.deploy.projectId= + mvn clean package appengine:deploy ``` - Direct your browser to `https://.appspot.com`. - View more in-depth metrics data on the [StackDriver Monitoring Dashboard][dashboard] diff --git a/appengine-java11/gaeinfo/pom.xml b/appengine-java11/gaeinfo/pom.xml index 537717a2300..14ec525c878 100644 --- a/appengine-java11/gaeinfo/pom.xml +++ b/appengine-java11/gaeinfo/pom.xml @@ -27,7 +27,7 @@ Copyright 2019 Google LLC com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -86,10 +86,11 @@ Copyright 2019 Google LLC appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG gaeinfo - + org.apache.maven.plugins maven-war-plugin diff --git a/appengine-java11/guestbook-cloud-firestore/README.md b/appengine-java11/guestbook-cloud-firestore/README.md index 8f1e068ebb5..b46d96fdff3 100644 --- a/appengine-java11/guestbook-cloud-firestore/README.md +++ b/appengine-java11/guestbook-cloud-firestore/README.md @@ -67,7 +67,7 @@ from the Select a database service screen: Deploy your application using the maven plugin: ``` -mvn clean package appengine:deploy -Dapp.deploy.projectId= +mvn clean package appengine:deploy ``` View your application: diff --git a/appengine-java11/guestbook-cloud-firestore/pom.xml b/appengine-java11/guestbook-cloud-firestore/pom.xml index c509b26a512..6dbef1675a3 100644 --- a/appengine-java11/guestbook-cloud-firestore/pom.xml +++ b/appengine-java11/guestbook-cloud-firestore/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -96,6 +96,7 @@ appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG guestbook diff --git a/appengine-java11/helloworld-servlet/README.md b/appengine-java11/helloworld-servlet/README.md index 260f045c581..cd81dab1ebf 100644 --- a/appengine-java11/helloworld-servlet/README.md +++ b/appengine-java11/helloworld-servlet/README.md @@ -94,6 +94,6 @@ Then visit: http://localhost:8080/hello While in the `helloworld-servlet` directory, use the `appengine-maven-plugin` to deploy your app: ``` -mvn clean package appengine:deploy -Dapp.deploy.projectId= +mvn clean package appengine:deploy ``` Then visit: https://YOUR-PROJECT-ID.appspot.com/hello diff --git a/appengine-java11/helloworld-servlet/pom.xml b/appengine-java11/helloworld-servlet/pom.xml index 507bb616793..5713429c9a7 100644 --- a/appengine-java11/helloworld-servlet/pom.xml +++ b/appengine-java11/helloworld-servlet/pom.xml @@ -28,7 +28,7 @@ limitations under the License. com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -72,6 +72,7 @@ limitations under the License. appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG helloworld diff --git a/appengine-java11/http-server/README.md b/appengine-java11/http-server/README.md index b27ea236705..e9551b1c81e 100644 --- a/appengine-java11/http-server/README.md +++ b/appengine-java11/http-server/README.md @@ -11,7 +11,7 @@ See [Prerequisites](../README.md#Prerequisites). ## Deploy to App Engine Standard ``` -mvn clean package appengine:deploy -Dapp.deploy.projectId= +mvn clean package appengine:deploy ``` To view your app, use command: diff --git a/appengine-java11/http-server/pom.xml b/appengine-java11/http-server/pom.xml index c57d7af722d..b6e49edc728 100644 --- a/appengine-java11/http-server/pom.xml +++ b/appengine-java11/http-server/pom.xml @@ -11,7 +11,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -34,12 +34,13 @@ - + com.google.cloud.tools appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG http-server diff --git a/appengine-java11/kotlin-ktor/README.md b/appengine-java11/kotlin-ktor/README.md index 8405870bcd4..07642d80cba 100644 --- a/appengine-java11/kotlin-ktor/README.md +++ b/appengine-java11/kotlin-ktor/README.md @@ -10,7 +10,7 @@ See [Prerequisites](../README.md#Prerequisites). ## Deploying ```bash - mvn clean package appengine:deploy -Dapp.deploy.projectId= + mvn clean package appengine:deploy ``` To view your app, use command: diff --git a/appengine-java11/kotlin-ktor/pom.xml b/appengine-java11/kotlin-ktor/pom.xml index 9837a29fc5d..4caec2c2c95 100644 --- a/appengine-java11/kotlin-ktor/pom.xml +++ b/appengine-java11/kotlin-ktor/pom.xml @@ -6,7 +6,7 @@ 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 +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, @@ -15,173 +15,174 @@ See the License for the specific language governing permissions and limitations under the License. --> - 4.0.0 - com.example.appengine - kotlin-ktor - 0.0.1 + 4.0.0 + com.example.appengine + kotlin-ktor + 0.0.1 - - - com.google.cloud.samples - shared-configuration - 1.0.11 - + + + com.google.cloud.samples + shared-configuration + 1.0.12 + - - official - UTF-8 - true - io.ktor.server.netty.EngineMain - 11 - 11 - + + official + UTF-8 + true + io.ktor.server.netty.EngineMain + 11 + 11 + - - - repo1 - https://jcenter.bintray.com - true - true - - - repo2 - https://kotlin.bintray.com/ktor - true - true - - - - - - - io.ktor - ktor-bom - 1.3.2 - pom - import - - - + + + repo1 + https://jcenter.bintray.com + true + false + + + repo2 + https://kotlin.bintray.com/ktor + true + false + + + - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - 1.3.70 - - - io.ktor - ktor-server-netty - - - ch.qos.logback - logback-classic - 1.3.0-alpha4 - - - io.ktor - ktor-server-core - - - io.ktor - ktor-server-host-common - - - io.ktor - ktor-server-tests - test - + + io.ktor + ktor-bom + 1.3.2 + pom + import + + + + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + 1.3.70 + + + io.ktor + ktor-server-netty + + + ch.qos.logback + logback-classic + 1.3.0-alpha4 + + + io.ktor + ktor-server-core + + + io.ktor + ktor-server-host-common + + + io.ktor + ktor-server-tests + test + + - - ${project.basedir}/src - ${project.basedir}/test - - - ${project.basedir}/resources - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - maven-compiler-plugin - 1.81.8 - - - kotlin-maven-plugin - org.jetbrains.kotlin - 1.3.70 - - - compile - compile - - enable - - - - test-compile - test-compile - - enable - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - - true - ${main.class} - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.2.0 - - - make-assembly - package - single - - - - ${main.class} - - - - jar-with-dependencies - - - - - - - - com.google.cloud.tools - appengine-maven-plugin - 2.2.0 - - kotlin-ktor - - ./ - - ${project.build.directory}/${project.build.finalName}-jar-with-dependencies.jar - - - - + + ${project.basedir}/src + ${project.basedir}/test + + + ${project.basedir}/resources + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + maven-compiler-plugin + 1.81.8 + + + kotlin-maven-plugin + org.jetbrains.kotlin + 1.3.70 + + + compile + compile + + enable + + + + test-compile + test-compile + + enable + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + true + ${main.class} + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.2.0 + + + make-assembly + package + single + + + + ${main.class} + + + + jar-with-dependencies + + + + + + + + com.google.cloud.tools + appengine-maven-plugin + 2.2.0 + + GCLOUD_CONFIG + kotlin-ktor + + ./ + + ${project.build.directory}/${project.build.finalName}-jar-with-dependencies.jar + + + + diff --git a/appengine-java11/micronaut-helloworld/README.md b/appengine-java11/micronaut-helloworld/README.md index 975875c96e4..ab62c4e6c42 100644 --- a/appengine-java11/micronaut-helloworld/README.md +++ b/appengine-java11/micronaut-helloworld/README.md @@ -10,7 +10,7 @@ See [Prerequisites](../README.md#Prerequisites). ## Deploying ```bash - mvn clean package appengine:deploy -Dapp.deploy.projectId= + mvn clean package appengine:deploy ``` To view your app, use command: diff --git a/appengine-java11/micronaut-helloworld/pom.xml b/appengine-java11/micronaut-helloworld/pom.xml index 85a71279526..10e99594244 100644 --- a/appengine-java11/micronaut-helloworld/pom.xml +++ b/appengine-java11/micronaut-helloworld/pom.xml @@ -25,7 +25,7 @@ @@ -114,6 +114,7 @@ appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG micronaut-helloworld diff --git a/appengine-java11/oauth2/README.md b/appengine-java11/oauth2/README.md index 00d3c12c603..26369e67a9c 100644 --- a/appengine-java11/oauth2/README.md +++ b/appengine-java11/oauth2/README.md @@ -49,7 +49,7 @@ origin: `https://.appspot.com/oauth2callback`. ## Deploy to App Engine Standard ``` -mvn clean package appengine:deploy -Dapp.deploy.projectId= +mvn clean package appengine:deploy ``` To view your app, use command: diff --git a/appengine-java11/oauth2/pom.xml b/appengine-java11/oauth2/pom.xml index 49eb3092098..c2a7701dc65 100644 --- a/appengine-java11/oauth2/pom.xml +++ b/appengine-java11/oauth2/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -101,6 +101,7 @@ appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG oauth2 diff --git a/appengine-java11/quarkus-helloworld/README.md b/appengine-java11/quarkus-helloworld/README.md index facd1c43536..54c3f7c1a74 100644 --- a/appengine-java11/quarkus-helloworld/README.md +++ b/appengine-java11/quarkus-helloworld/README.md @@ -10,7 +10,7 @@ See [Prerequisites](../README.md#Prerequisites). ## Deploying ```bash - mvn clean package appengine:deploy -Dapp.deploy.projectId= + mvn clean package appengine:deploy ``` To view your app, use command: diff --git a/appengine-java11/quarkus-helloworld/pom.xml b/appengine-java11/quarkus-helloworld/pom.xml index 096f8de36d0..9e2b4b7e207 100644 --- a/appengine-java11/quarkus-helloworld/pom.xml +++ b/appengine-java11/quarkus-helloworld/pom.xml @@ -1,18 +1,18 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 com.example.appengine.quarkus quarkus-helloworld @@ -23,9 +23,9 @@ Removing or replacing it should not affect the execution of the samples in anyway. --> - com.google.cloud.samples - shared-configuration - 1.0.11 + com.google.cloud.samples + shared-configuration + 1.0.12 @@ -88,12 +88,13 @@ - + com.google.cloud.tools appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG quarkus-helloworld ${project.build.directory}/quarkus-helloworld-1.0-SNAPSHOT-runner.jar diff --git a/appengine-java11/spanner/README.md b/appengine-java11/spanner/README.md index 9e28e213349..a16ea39f680 100644 --- a/appengine-java11/spanner/README.md +++ b/appengine-java11/spanner/README.md @@ -52,7 +52,7 @@ Note : by default all the spanner example operations run in order, this operatio ## Deploying ``` -mvn clean package appengine:deploy -Dapp.deploy.projectId= +mvn clean package appengine:deploy ``` To see the results of the deployed sample application, open diff --git a/appengine-java11/spanner/pom.xml b/appengine-java11/spanner/pom.xml index 7bd390795e2..44fc829f985 100644 --- a/appengine-java11/spanner/pom.xml +++ b/appengine-java11/spanner/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -110,6 +110,7 @@ appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG spanner diff --git a/appengine-java11/sparkjava-helloworld/README.md b/appengine-java11/sparkjava-helloworld/README.md index c76adc4171e..a4af6bccd47 100644 --- a/appengine-java11/sparkjava-helloworld/README.md +++ b/appengine-java11/sparkjava-helloworld/README.md @@ -10,7 +10,7 @@ See [Prerequisites](../README.md#Prerequisites). ## Deploying ```bash - mvn clean package appengine:deploy -Dapp.deploy.projectId= + mvn clean package appengine:deploy ``` To view your app, use command: diff --git a/appengine-java11/sparkjava-helloworld/pom.xml b/appengine-java11/sparkjava-helloworld/pom.xml index 4dfbda14238..331c9d520e5 100644 --- a/appengine-java11/sparkjava-helloworld/pom.xml +++ b/appengine-java11/sparkjava-helloworld/pom.xml @@ -29,7 +29,7 @@ limitations under the License. com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -102,7 +102,8 @@ limitations under the License. com.google.cloud.tools appengine-maven-plugin 2.2.0 - + + GCLOUD_CONFIG ${project.build.directory}/sparkjava-helloworld-1.0-jar-with-dependencies.jar sparkjava-helloworld diff --git a/appengine-java11/springboot-helloworld/README.md b/appengine-java11/springboot-helloworld/README.md index a466d9a13e1..33caf449dbd 100644 --- a/appengine-java11/springboot-helloworld/README.md +++ b/appengine-java11/springboot-helloworld/README.md @@ -10,7 +10,7 @@ See [Prerequisites](../README.md#Prerequisites). ## Deploying ```bash - mvn clean package appengine:deploy -Dapp.deploy.projectId= + mvn clean package appengine:deploy ``` To view your app, use command: diff --git a/appengine-java11/springboot-helloworld/pom.xml b/appengine-java11/springboot-helloworld/pom.xml index 175544b6e2b..3644531546b 100644 --- a/appengine-java11/springboot-helloworld/pom.xml +++ b/appengine-java11/springboot-helloworld/pom.xml @@ -25,7 +25,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -94,6 +94,7 @@ appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG springboot-helloworld diff --git a/appengine-java11/tasks-handler/pom.xml b/appengine-java11/tasks-handler/pom.xml index 025df30a4de..7bb899a900d 100644 --- a/appengine-java11/tasks-handler/pom.xml +++ b/appengine-java11/tasks-handler/pom.xml @@ -15,94 +15,95 @@ See the License for the specific language governing permissions and limitations under the License. --> - 4.0.0 - com.example.appengine - task-handler-j11 - 0.0.1-SNAPSHOT + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + com.example.appengine + task-handler-j11 + 0.0.1-SNAPSHOT - - - com.google.cloud.samples - shared-configuration - 1.0.11 - + + + com.google.cloud.samples + shared-configuration + 1.0.12 + - - 11 - 11 - + + 11 + 11 + - - - - - org.springframework.boot - spring-boot-dependencies - 2.2.5.RELEASE - pom - import - + + + + + org.springframework.boot + spring-boot-dependencies + 2.2.5.RELEASE + pom + import + - - org.springframework.cloud - spring-cloud-dependencies - Hoxton.SR3 - pom - import - - - + + org.springframework.cloud + spring-cloud-dependencies + Hoxton.SR3 + pom + import + + + - + - - org.springframework.boot - spring-boot-starter-web - 2.2.5.RELEASE - - - - org.springframework.boot - spring-boot-starter-tomcat - - - - - org.springframework.boot - spring-boot-starter-jetty - 2.2.5.RELEASE - + + org.springframework.boot + spring-boot-starter-web + 2.2.5.RELEASE + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + org.springframework.boot + spring-boot-starter-jetty + 2.2.5.RELEASE + - + - - - - org.springframework.boot - spring-boot-maven-plugin - 2.2.5.RELEASE - - - - repackage - - - - - - com.google.cloud.tools - appengine-maven-plugin - 2.2.0 - - task-handler - - - + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.5.RELEASE + + + + repackage + + + + + + com.google.cloud.tools + appengine-maven-plugin + 2.2.0 + + GCLOUD_CONFIG + task-handler + + + - + diff --git a/appengine-java11/tasks/README.md b/appengine-java11/tasks/README.md index e4b0812dbb2..8a75733771f 100644 --- a/appengine-java11/tasks/README.md +++ b/appengine-java11/tasks/README.md @@ -51,7 +51,7 @@ cd java-docs-samples/appengine-java11/task-handler - Deploy the app ``` -mvn clean package appengine:deploy -Dapp.deploy.projectId= +mvn clean package appengine:deploy ``` ## Run the Sample Using the Command Line diff --git a/appengine-java11/tasks/pom.xml b/appengine-java11/tasks/pom.xml index ab4632b4819..b2f6072f12b 100644 --- a/appengine-java11/tasks/pom.xml +++ b/appengine-java11/tasks/pom.xml @@ -30,7 +30,7 @@ Copyright 2019 Google LLC com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 diff --git a/appengine-java11/vertx-helloworld/README.md b/appengine-java11/vertx-helloworld/README.md index 6f3d1dac3d4..6e0b0d7a6f5 100644 --- a/appengine-java11/vertx-helloworld/README.md +++ b/appengine-java11/vertx-helloworld/README.md @@ -10,7 +10,7 @@ See [Prerequisites](../README.md#Prerequisites). ## Deploying ```bash - mvn clean package appengine:deploy -Dapp.deploy.projectId= + mvn clean package appengine:deploy ``` ## See the application page diff --git a/appengine-java11/vertx-helloworld/pom.xml b/appengine-java11/vertx-helloworld/pom.xml index 148e2821f3a..02a5ffc5a92 100644 --- a/appengine-java11/vertx-helloworld/pom.xml +++ b/appengine-java11/vertx-helloworld/pom.xml @@ -29,7 +29,7 @@ limitations under the License. com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 @@ -99,8 +99,9 @@ limitations under the License. appengine-maven-plugin 2.2.0 + GCLOUD_CONFIG ${project.build.directory}/vertx-hello-j11-1.0-jar-with-dependencies.jar - vertx-hello-java11 + vertx-hello-java11 From 4ae9e6cb9f25e1afe046117b651e2b44a36d6e93 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 20 Mar 2020 20:12:07 +0100 Subject: [PATCH 11/17] chore(deps): update dependency com.google.cloud:google-cloud-spanner to v1.52.0 (#2452) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-spanner](https://togithub.com/googleapis/java-spanner) | minor | `1.51.0` -> `1.52.0` | --- ### Release Notes
googleapis/java-spanner ### [`v1.52.0`](https://togithub.com/googleapis/java-spanner/blob/master/CHANGELOG.md#​1520httpswwwgithubcomgoogleapisjava-spannercomparev1510v1520-2020-03-20) [Compare Source](https://togithub.com/googleapis/java-spanner/compare/v1.51.0...v1.52.0) ##### Features - add backup support ([#​100](https://www.github.com/googleapis/java-spanner/issues/100)) ([ed3874a](https://www.github.com/googleapis/java-spanner/commit/ed3874afcf55fe7381354e03dab3a3b97d7eb520)) - add Backups protos and APIs ([#​97](https://www.github.com/googleapis/java-spanner/issues/97)) ([5643c22](https://www.github.com/googleapis/java-spanner/commit/5643c22a4531dac75b9fac5b128eb714a27920a0)) ##### Bug Fixes - add client id to metrics to avoid collisions ([#​117](https://www.github.com/googleapis/java-spanner/issues/117)) ([338e136](https://www.github.com/googleapis/java-spanner/commit/338e136508edc6745f9371e8a5d66638021bc8d7)), closes [#​106](https://www.github.com/googleapis/java-spanner/issues/106) - ignore added interface methods for generated code ([#​101](https://www.github.com/googleapis/java-spanner/issues/101)) ([402cfa1](https://www.github.com/googleapis/java-spanner/commit/402cfa1e1e2994f7bb1b783cf823021b54fb175e)), closes [#​99](https://www.github.com/googleapis/java-spanner/issues/99) - use grpc 1.27.2 to prevent version conflicts ([#​105](https://www.github.com/googleapis/java-spanner/issues/105)) ([37b7c88](https://www.github.com/googleapis/java-spanner/commit/37b7c8859e5f35d85bd14ef72662614fd185c020)) ##### Dependencies - update core dependencies ([#​94](https://www.github.com/googleapis/java-spanner/issues/94)) ([f3ca4c9](https://www.github.com/googleapis/java-spanner/commit/f3ca4c99c3d54f64c5eda11e4a4c076140fdbc6a)) - update opencensus.version to v0.26.0 ([#​116](https://www.github.com/googleapis/java-spanner/issues/116)) ([1b8db0b](https://www.github.com/googleapis/java-spanner/commit/1b8db0b407429e02bb1e4c9af839afeed21dac5d))
--- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#GoogleCloudPlatform/java-docs-samples). --- appengine-java8/spanner/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appengine-java8/spanner/pom.xml b/appengine-java8/spanner/pom.xml index c02eb7426d6..23f15eac9c0 100644 --- a/appengine-java8/spanner/pom.xml +++ b/appengine-java8/spanner/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-spanner - 1.51.0 + 1.52.0 javax.servlet From 93f282f63a60db09b48d113db4d38576fa18f529 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 20 Mar 2020 17:27:54 +0000 Subject: [PATCH 12/17] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.109.0 --- appengine-java8/bigquery/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appengine-java8/bigquery/pom.xml b/appengine-java8/bigquery/pom.xml index 2b453d89da1..d4ef032868d 100644 --- a/appengine-java8/bigquery/pom.xml +++ b/appengine-java8/bigquery/pom.xml @@ -52,7 +52,7 @@ com.google.cloud google-cloud-bigquery - 1.108.1 + 1.109.0 com.google.cloud From 7098d528cfbc37d35f3e59c5bd75355923da8c8b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 20 Mar 2020 20:48:05 +0100 Subject: [PATCH 13/17] chore(deps): update appengine packages to v1.9.79 (#2453) This PR contains the following updates: | Package | Update | Change | |---|---|---| | com.google.appengine:appengine-api-1.0-sdk | patch | `1.9.78` -> `1.9.79` | | com.google.appengine:appengine-tools-sdk | patch | `1.9.78` -> `1.9.79` | | com.google.appengine:appengine-api-stubs | patch | `1.9.78` -> `1.9.79` | | com.google.appengine:appengine-testing | patch | `1.9.78` -> `1.9.79` | | com.google.appengine:appengine-remote-api | patch | `1.9.78` -> `1.9.79` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#GoogleCloudPlatform/java-docs-samples). --- appengine-java8/analytics/pom.xml | 6 +++--- appengine-java8/appidentity/pom.xml | 8 ++++---- appengine-java8/bigquery/pom.xml | 8 ++++---- appengine-java8/cloudsql-postgres/pom.xml | 2 +- appengine-java8/cloudsql/pom.xml | 2 +- appengine-java8/datastore-indexes-exploding/pom.xml | 8 ++++---- appengine-java8/datastore-indexes-perfect/pom.xml | 8 ++++---- appengine-java8/datastore-indexes/pom.xml | 8 ++++---- appengine-java8/datastore-schedule-export/pom.xml | 4 ++-- appengine-java8/datastore/pom.xml | 8 ++++---- appengine-java8/endpoints-v2-backend/pom.xml | 2 +- appengine-java8/endpoints-v2-guice/pom.xml | 2 +- appengine-java8/endpoints-v2-migration/pom.xml | 2 +- appengine-java8/endpoints-v2-skeleton/pom.xml | 2 +- appengine-java8/firebase-event-proxy/pom.xml | 6 +++--- appengine-java8/firebase-tictactoe/pom.xml | 8 ++++---- appengine-java8/gaeinfo/pom.xml | 2 +- appengine-java8/guestbook-cloud-datastore/pom.xml | 8 ++++---- appengine-java8/images/pom.xml | 2 +- appengine-java8/mail/pom.xml | 2 +- appengine-java8/memcache/pom.xml | 2 +- appengine-java8/multitenancy/pom.xml | 8 ++++---- appengine-java8/oauth2/pom.xml | 2 +- appengine-java8/remote-client/pom.xml | 4 ++-- appengine-java8/remote-server/pom.xml | 2 +- appengine-java8/requests/pom.xml | 6 +++--- appengine-java8/search/pom.xml | 8 ++++---- appengine-java8/spanner/pom.xml | 2 +- appengine-java8/taskqueues-deferred/pom.xml | 6 +++--- appengine-java8/taskqueues-pull/pom.xml | 6 +++--- appengine-java8/taskqueues-push/pom.xml | 8 ++++---- appengine-java8/users/pom.xml | 8 ++++---- flexible/gaeinfo/pom.xml | 2 +- flexible/pubsub/pom.xml | 4 ++-- storage/xml-api/serviceaccount-appengine-sample/pom.xml | 2 +- unittests/pom.xml | 8 ++++---- 36 files changed, 88 insertions(+), 88 deletions(-) diff --git a/appengine-java8/analytics/pom.xml b/appengine-java8/analytics/pom.xml index 9752578a97a..8cda8c97d13 100644 --- a/appengine-java8/analytics/pom.xml +++ b/appengine-java8/analytics/pom.xml @@ -33,7 +33,7 @@ 1.8 1.8 - 1.9.78 + 1.9.79 @@ -41,7 +41,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 @@ -74,7 +74,7 @@ com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/appidentity/pom.xml b/appengine-java8/appidentity/pom.xml index 546d62b42a8..b90741a66de 100644 --- a/appengine-java8/appidentity/pom.xml +++ b/appengine-java8/appidentity/pom.xml @@ -39,7 +39,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 @@ -66,13 +66,13 @@ com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test @@ -91,7 +91,7 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/bigquery/pom.xml b/appengine-java8/bigquery/pom.xml index d4ef032868d..05a25cb5a8f 100644 --- a/appengine-java8/bigquery/pom.xml +++ b/appengine-java8/bigquery/pom.xml @@ -39,7 +39,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet @@ -75,13 +75,13 @@ com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test @@ -100,7 +100,7 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/cloudsql-postgres/pom.xml b/appengine-java8/cloudsql-postgres/pom.xml index 9f615710c65..889f355d90a 100644 --- a/appengine-java8/cloudsql-postgres/pom.xml +++ b/appengine-java8/cloudsql-postgres/pom.xml @@ -52,7 +52,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 diff --git a/appengine-java8/cloudsql/pom.xml b/appengine-java8/cloudsql/pom.xml index a4abfef755d..01176ed5d9c 100644 --- a/appengine-java8/cloudsql/pom.xml +++ b/appengine-java8/cloudsql/pom.xml @@ -54,7 +54,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 diff --git a/appengine-java8/datastore-indexes-exploding/pom.xml b/appengine-java8/datastore-indexes-exploding/pom.xml index b36e49da5a8..30ec34c6351 100644 --- a/appengine-java8/datastore-indexes-exploding/pom.xml +++ b/appengine-java8/datastore-indexes-exploding/pom.xml @@ -39,7 +39,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet @@ -65,19 +65,19 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/datastore-indexes-perfect/pom.xml b/appengine-java8/datastore-indexes-perfect/pom.xml index 2ffa57d0cea..d521d7ad7ff 100644 --- a/appengine-java8/datastore-indexes-perfect/pom.xml +++ b/appengine-java8/datastore-indexes-perfect/pom.xml @@ -39,7 +39,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet @@ -65,19 +65,19 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/datastore-indexes/pom.xml b/appengine-java8/datastore-indexes/pom.xml index 0cff767b0bf..24d7f6286fa 100644 --- a/appengine-java8/datastore-indexes/pom.xml +++ b/appengine-java8/datastore-indexes/pom.xml @@ -39,7 +39,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 @@ -66,19 +66,19 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/datastore-schedule-export/pom.xml b/appengine-java8/datastore-schedule-export/pom.xml index 5420d2a72d0..63c242c27ef 100644 --- a/appengine-java8/datastore-schedule-export/pom.xml +++ b/appengine-java8/datastore-schedule-export/pom.xml @@ -31,7 +31,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 com.google.guava @@ -55,7 +55,7 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/datastore/pom.xml b/appengine-java8/datastore/pom.xml index b2285f10bf4..ce0059e2d20 100644 --- a/appengine-java8/datastore/pom.xml +++ b/appengine-java8/datastore/pom.xml @@ -39,7 +39,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 @@ -98,19 +98,19 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/endpoints-v2-backend/pom.xml b/appengine-java8/endpoints-v2-backend/pom.xml index 71507f81ddf..62c5068e4ae 100644 --- a/appengine-java8/endpoints-v2-backend/pom.xml +++ b/appengine-java8/endpoints-v2-backend/pom.xml @@ -64,7 +64,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet diff --git a/appengine-java8/endpoints-v2-guice/pom.xml b/appengine-java8/endpoints-v2-guice/pom.xml index 149d86e0acc..28410077aec 100644 --- a/appengine-java8/endpoints-v2-guice/pom.xml +++ b/appengine-java8/endpoints-v2-guice/pom.xml @@ -68,7 +68,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet diff --git a/appengine-java8/endpoints-v2-migration/pom.xml b/appengine-java8/endpoints-v2-migration/pom.xml index fdf0490cbac..8940cae6ba2 100644 --- a/appengine-java8/endpoints-v2-migration/pom.xml +++ b/appengine-java8/endpoints-v2-migration/pom.xml @@ -52,7 +52,7 @@ limitations under the License. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet diff --git a/appengine-java8/endpoints-v2-skeleton/pom.xml b/appengine-java8/endpoints-v2-skeleton/pom.xml index 067893050ec..ff5726bbb08 100644 --- a/appengine-java8/endpoints-v2-skeleton/pom.xml +++ b/appengine-java8/endpoints-v2-skeleton/pom.xml @@ -49,7 +49,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet diff --git a/appengine-java8/firebase-event-proxy/pom.xml b/appengine-java8/firebase-event-proxy/pom.xml index 82d37cce1dc..3623cb97f4e 100644 --- a/appengine-java8/firebase-event-proxy/pom.xml +++ b/appengine-java8/firebase-event-proxy/pom.xml @@ -45,7 +45,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet @@ -80,13 +80,13 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/firebase-tictactoe/pom.xml b/appengine-java8/firebase-tictactoe/pom.xml index 24ca69b07b5..e135aabb533 100644 --- a/appengine-java8/firebase-tictactoe/pom.xml +++ b/appengine-java8/firebase-tictactoe/pom.xml @@ -39,7 +39,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 @@ -88,19 +88,19 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/gaeinfo/pom.xml b/appengine-java8/gaeinfo/pom.xml index b96f68a2938..32167a47181 100644 --- a/appengine-java8/gaeinfo/pom.xml +++ b/appengine-java8/gaeinfo/pom.xml @@ -42,7 +42,7 @@ Copyright 2017 Google Inc. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 diff --git a/appengine-java8/guestbook-cloud-datastore/pom.xml b/appengine-java8/guestbook-cloud-datastore/pom.xml index f709f650b57..9c0b6bd4341 100644 --- a/appengine-java8/guestbook-cloud-datastore/pom.xml +++ b/appengine-java8/guestbook-cloud-datastore/pom.xml @@ -45,7 +45,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 @@ -90,19 +90,19 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test
diff --git a/appengine-java8/images/pom.xml b/appengine-java8/images/pom.xml index fbc9536a145..239598699b4 100644 --- a/appengine-java8/images/pom.xml +++ b/appengine-java8/images/pom.xml @@ -39,7 +39,7 @@ Copyright 2015 Google Inc. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 diff --git a/appengine-java8/mail/pom.xml b/appengine-java8/mail/pom.xml index 0bcff101b89..69df35d4389 100644 --- a/appengine-java8/mail/pom.xml +++ b/appengine-java8/mail/pom.xml @@ -47,7 +47,7 @@ Copyright 2016 Google Inc. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.mail diff --git a/appengine-java8/memcache/pom.xml b/appengine-java8/memcache/pom.xml index a6ed930b1c9..c7009b0f7a3 100644 --- a/appengine-java8/memcache/pom.xml +++ b/appengine-java8/memcache/pom.xml @@ -48,7 +48,7 @@ Copyright 2015 Google Inc. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 com.googlecode.xmemcached diff --git a/appengine-java8/multitenancy/pom.xml b/appengine-java8/multitenancy/pom.xml index a3ec82a1098..91cc83488fd 100644 --- a/appengine-java8/multitenancy/pom.xml +++ b/appengine-java8/multitenancy/pom.xml @@ -42,7 +42,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 @@ -88,19 +88,19 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/oauth2/pom.xml b/appengine-java8/oauth2/pom.xml index a43821e04c2..9facfa24b6e 100644 --- a/appengine-java8/oauth2/pom.xml +++ b/appengine-java8/oauth2/pom.xml @@ -38,7 +38,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 diff --git a/appengine-java8/remote-client/pom.xml b/appengine-java8/remote-client/pom.xml index a4087bdc1c6..87ec2c6f97f 100644 --- a/appengine-java8/remote-client/pom.xml +++ b/appengine-java8/remote-client/pom.xml @@ -39,12 +39,12 @@ com.google.appengine appengine-remote-api - 1.9.78 + 1.9.79 com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 diff --git a/appengine-java8/remote-server/pom.xml b/appengine-java8/remote-server/pom.xml index aabe51882ea..913a8c2b7d3 100644 --- a/appengine-java8/remote-server/pom.xml +++ b/appengine-java8/remote-server/pom.xml @@ -39,7 +39,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 org.apache.httpcomponents diff --git a/appengine-java8/requests/pom.xml b/appengine-java8/requests/pom.xml index a1837b12c95..cd0c7523012 100644 --- a/appengine-java8/requests/pom.xml +++ b/appengine-java8/requests/pom.xml @@ -78,19 +78,19 @@ Copyright 2016 Google Inc. com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/search/pom.xml b/appengine-java8/search/pom.xml index e23cfb4f301..84a7cd51319 100644 --- a/appengine-java8/search/pom.xml +++ b/appengine-java8/search/pom.xml @@ -39,7 +39,7 @@ Copyright 2015 Google Inc. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet @@ -65,19 +65,19 @@ Copyright 2015 Google Inc. com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/spanner/pom.xml b/appengine-java8/spanner/pom.xml index 23f15eac9c0..1f2627b40be 100644 --- a/appengine-java8/spanner/pom.xml +++ b/appengine-java8/spanner/pom.xml @@ -55,7 +55,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 diff --git a/appengine-java8/taskqueues-deferred/pom.xml b/appengine-java8/taskqueues-deferred/pom.xml index 57e5412282d..d2d3848fb2a 100644 --- a/appengine-java8/taskqueues-deferred/pom.xml +++ b/appengine-java8/taskqueues-deferred/pom.xml @@ -40,7 +40,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 @@ -71,12 +71,12 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 diff --git a/appengine-java8/taskqueues-pull/pom.xml b/appengine-java8/taskqueues-pull/pom.xml index 559ff3b5291..5b225b10ebb 100644 --- a/appengine-java8/taskqueues-pull/pom.xml +++ b/appengine-java8/taskqueues-pull/pom.xml @@ -43,7 +43,7 @@ Copyright 2016 Google Inc. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet @@ -62,13 +62,13 @@ Copyright 2016 Google Inc. com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/taskqueues-push/pom.xml b/appengine-java8/taskqueues-push/pom.xml index 17cde8c4c2a..504afdc61b2 100644 --- a/appengine-java8/taskqueues-push/pom.xml +++ b/appengine-java8/taskqueues-push/pom.xml @@ -53,7 +53,7 @@ Copyright 2016 Google Inc. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 @@ -71,19 +71,19 @@ Copyright 2016 Google Inc. com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/appengine-java8/users/pom.xml b/appengine-java8/users/pom.xml index ecac996f8c6..b0f89eaf64b 100644 --- a/appengine-java8/users/pom.xml +++ b/appengine-java8/users/pom.xml @@ -40,7 +40,7 @@ Copyright 2015 Google Inc. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 com.google.guava @@ -78,19 +78,19 @@ Copyright 2015 Google Inc. com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/flexible/gaeinfo/pom.xml b/flexible/gaeinfo/pom.xml index 3214b8581c4..c70fe651390 100644 --- a/flexible/gaeinfo/pom.xml +++ b/flexible/gaeinfo/pom.xml @@ -39,7 +39,7 @@ Copyright 2017 Google Inc. com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 diff --git a/flexible/pubsub/pom.xml b/flexible/pubsub/pom.xml index 792fb672867..bdbd42c4ce4 100644 --- a/flexible/pubsub/pom.xml +++ b/flexible/pubsub/pom.xml @@ -76,13 +76,13 @@ com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test diff --git a/storage/xml-api/serviceaccount-appengine-sample/pom.xml b/storage/xml-api/serviceaccount-appengine-sample/pom.xml index f97eebcc5b6..2888377b146 100644 --- a/storage/xml-api/serviceaccount-appengine-sample/pom.xml +++ b/storage/xml-api/serviceaccount-appengine-sample/pom.xml @@ -114,7 +114,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 diff --git a/unittests/pom.xml b/unittests/pom.xml index b920e06d0ac..8b0ef762fa0 100644 --- a/unittests/pom.xml +++ b/unittests/pom.xml @@ -29,7 +29,7 @@ com.google.appengine appengine-api-1.0-sdk - 1.9.78 + 1.9.79 javax.servlet @@ -53,19 +53,19 @@ com.google.appengine appengine-testing - 1.9.78 + 1.9.79 test com.google.appengine appengine-api-stubs - 1.9.78 + 1.9.79 test com.google.appengine appengine-tools-sdk - 1.9.78 + 1.9.79 test From 3b9e37b393a1201e83ccd73775c6a4d37c480ee0 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 20 Mar 2020 20:53:14 +0000 Subject: [PATCH 14/17] chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.749 --- storage/s3-sdk/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/s3-sdk/pom.xml b/storage/s3-sdk/pom.xml index ce533f16e55..82a0414872f 100644 --- a/storage/s3-sdk/pom.xml +++ b/storage/s3-sdk/pom.xml @@ -38,7 +38,7 @@ com.amazonaws aws-java-sdk-s3 - 1.11.748 + 1.11.749 From f482c4d3dda1d0c7736773b8c11ada923157471c Mon Sep 17 00:00:00 2001 From: Shubha Rajan Date: Fri, 20 Mar 2020 16:29:06 -0700 Subject: [PATCH 15/17] Fix Flaky DLP tests (#2447) * modified tests to cancel job * added delay to tests * added comment --- .../test/java/dlp/snippets/InspectTests.java | 41 ++++++++++++++++--- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/dlp/src/test/java/dlp/snippets/InspectTests.java b/dlp/src/test/java/dlp/snippets/InspectTests.java index a767ed72dbc..d42ea7c758a 100644 --- a/dlp/src/test/java/dlp/snippets/InspectTests.java +++ b/dlp/src/test/java/dlp/snippets/InspectTests.java @@ -20,10 +20,13 @@ import static org.hamcrest.core.StringContains.containsString; import static org.junit.Assert.assertNotNull; +import com.google.cloud.dlp.v2.DlpServiceClient; +import com.google.privacy.dlp.v2.CancelDlpJobRequest; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintStream; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -100,31 +103,59 @@ public void testInspectImageFile() { @Test public void testInspectGcsFile() throws InterruptedException, ExecutionException, IOException { + InspectGcsFile.inspectGcsFile(PROJECT_ID, GCS_PATH, TOPIC_ID, SUBSCRIPTION_ID); + // Await job creation + TimeUnit.SECONDS.sleep(3); String output = bout.toString(); - assertThat(output, containsString("Info type: PHONE_NUMBER")); - assertThat(output, containsString("Info type: EMAIL_ADDRESS")); + assertThat(output, containsString("Job created: ")); + + // Cancelling the job early to conserve quota + String jobId = output.split("Job created: ")[1].split("\n")[0]; + CancelDlpJobRequest request = CancelDlpJobRequest.newBuilder().setName(jobId).build(); + try (DlpServiceClient client = DlpServiceClient.create()) { + client.cancelDlpJob(request); + } } @Test public void testInspectDatastoreEntity() throws InterruptedException, ExecutionException, IOException { + InspectDatastoreEntity.insepctDatastoreEntity( PROJECT_ID, datastoreNamespace, datastoreKind, TOPIC_ID, SUBSCRIPTION_ID); + // Await job creation + TimeUnit.SECONDS.sleep(3); String output = bout.toString(); - assertThat(output, containsString("Info type: PHONE_NUMBER")); - assertThat(output, containsString("Info type: EMAIL_ADDRESS")); + assertThat(output, containsString("Job created: ")); + + // Cancelling the job early to conserve quota + String jobId = output.split("Job created: ")[1].split("\n")[0]; + CancelDlpJobRequest request = CancelDlpJobRequest.newBuilder().setName(jobId).build(); + try (DlpServiceClient client = DlpServiceClient.create()) { + client.cancelDlpJob(request); + } } @Test public void testInspectBigQueryTable() throws InterruptedException, ExecutionException, IOException { + InspectBigQueryTable.inspectBigQueryTable( PROJECT_ID, DATASET_ID, TABLE_ID, TOPIC_ID, SUBSCRIPTION_ID); + // Await job creation + TimeUnit.SECONDS.sleep(3); String output = bout.toString(); - assertThat(output, containsString("Info type: PHONE_NUMBER")); + assertThat(output, containsString("Job created: ")); + + // Cancelling the job early to conserve quota + String jobId = output.split("Job created: ")[1].split("\n")[0]; + CancelDlpJobRequest request = CancelDlpJobRequest.newBuilder().setName(jobId).build(); + try (DlpServiceClient client = DlpServiceClient.create()) { + client.cancelDlpJob(request); + } } } From e3ee897a3cd1a85d7b6684b41e8c88d29f57c0cd Mon Sep 17 00:00:00 2001 From: Ace Nassri Date: Fri, 20 Mar 2020 17:45:00 -0700 Subject: [PATCH 16/17] GCF: Add Slack sample + clean up imports (#2394) * Add Slack sample + clean up imports * Address comments * Remove excess gcloudignore + actually disable tests * Simplify tests + run them on Kokoro. ALSO bugfix unused shellchecks. * Remove extra file * HACK: resolve surefire issue via file presence * HACK take 2: use a different filepath * HACK take 3: use env var not used by local Cloud Build * Remove gitignore now that config.json isnt used * DBG: print defined env vars * DBG take 2 * DBG take 3 * DBG take 4 * DBG take 5 * DBG take 6 * DBG take 7 * Fix tests...? * Revert dbg commits + fix tests --- .kokoro/tests/run_tests.sh | 8 +- functions/snippets/.gcloudignore | 8 - functions/snippets/pom.xml | 44 ++++- .../example/functions/SlackSlashCommand.java | 163 +++++++++++++++++ .../functions/SlackSlashCommandTest.java | 171 ++++++++++++++++++ .../com/example/functions/SnippetsTests.java | 18 -- 6 files changed, 380 insertions(+), 32 deletions(-) delete mode 100644 functions/snippets/.gcloudignore create mode 100644 functions/snippets/src/main/java/com/example/functions/SlackSlashCommand.java create mode 100644 functions/snippets/src/test/java/com/example/functions/SlackSlashCommandTest.java diff --git a/.kokoro/tests/run_tests.sh b/.kokoro/tests/run_tests.sh index c1b9336427d..24f8a6d1335 100755 --- a/.kokoro/tests/run_tests.sh +++ b/.kokoro/tests/run_tests.sh @@ -65,12 +65,14 @@ if [[ "$SCRIPT_DEBUG" != "true" ]]; then source "${KOKORO_GFILE_DIR}/aws-secrets.sh" # shellcheck source=src/storage-hmac-credentials.sh source "${KOKORO_GFILE_DIR}/storage-hmac-credentials.sh" - # shellcheck source=src/dlp_secrets.sh + # shellcheck source=src/dlp_secrets.txt source "${KOKORO_GFILE_DIR}/dlp_secrets.txt" - # shellcheck source=src/bigtable_secrets.sh + # shellcheck source=src/bigtable_secrets.txt source "${KOKORO_GFILE_DIR}/bigtable_secrets.txt" - # shellcheck source=src/automl_secrets.sh + # shellcheck source=src/automl_secrets.txt source "${KOKORO_GFILE_DIR}/automl_secrets.txt" + # shellcheck source=src/functions_secrets.txt + source "${KOKORO_GFILE_DIR}/functions_secrets.txt" # Activate service account gcloud auth activate-service-account \ --key-file="$GOOGLE_APPLICATION_CREDENTIALS" \ diff --git a/functions/snippets/.gcloudignore b/functions/snippets/.gcloudignore deleted file mode 100644 index 0ac51e7dd4e..00000000000 --- a/functions/snippets/.gcloudignore +++ /dev/null @@ -1,8 +0,0 @@ -# Don't run tests when deploying a function using gcloud -# Comment out (with a leading '#') or remove the line below -# if you want to run tests upon deployment with 'gcloud' -src/test/ - -# If you want your code to be automatically tested and -# deployed to Cloud Functions, we recommend using -# a continuous integration pipeline to enable this. \ No newline at end of file diff --git a/functions/snippets/pom.xml b/functions/snippets/pom.xml index d9097416e54..42f8895c54c 100644 --- a/functions/snippets/pom.xml +++ b/functions/snippets/pom.xml @@ -26,20 +26,32 @@ - + com.google.code.gson gson 2.8.6 - + com.google.cloud google-cloud-logging 1.100.0 + + + com.google.apis + google-api-services-kgsearch + v1-rev253-1.25.0 + + + com.github.seratch + jslack + 3.4.1 + + junit @@ -102,10 +114,36 @@ - + + + + + + + + + env.NEW_BUILD + + + + true + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M3 + + ${skipTests} + sponge_log + false + + + org.apache.maven.plugins maven-compiler-plugin diff --git a/functions/snippets/src/main/java/com/example/functions/SlackSlashCommand.java b/functions/snippets/src/main/java/com/example/functions/SlackSlashCommand.java new file mode 100644 index 00000000000..e4991da499c --- /dev/null +++ b/functions/snippets/src/main/java/com/example/functions/SlackSlashCommand.java @@ -0,0 +1,163 @@ +/* + * 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. + */ + +package com.example.functions; + +import com.github.seratch.jslack.app_backend.SlackSignature; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.services.kgsearch.v1.Kgsearch; +import com.google.cloud.functions.HttpFunction; +import com.google.cloud.functions.HttpRequest; +import com.google.cloud.functions.HttpResponse; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import java.io.BufferedWriter; +import java.io.IOException; +import java.net.HttpURLConnection; +import java.security.GeneralSecurityException; +import java.util.HashMap; +import java.util.List; +import java.util.logging.Logger; +import java.util.stream.Collectors; + +public class SlackSlashCommand implements HttpFunction { + + private Kgsearch kgClient; + private static final String API_KEY = System.getenv("KG_API_KEY"); + private static final String SLACK_SECRET = System.getenv("SLACK_SECRET"); + private static final Logger LOGGER = Logger.getLogger(SlackSlashCommand.class.getName()); + private SlackSignature.Verifier verifier; + private Gson gson = new Gson(); + + public SlackSlashCommand() throws IOException, GeneralSecurityException { + kgClient = new Kgsearch.Builder( + GoogleNetHttpTransport.newTrustedTransport(), new JacksonFactory(), null).build(); + + verifier = new SlackSignature.Verifier(new SlackSignature.Generator(SLACK_SECRET)); + } + + boolean isValidSlackWebhook(HttpRequest request, String requestBody) throws IOException { + + // Check for headers + HashMap> headers = new HashMap(request.getHeaders()); + if (!headers.containsKey("X-Slack-Request-Timestamp") + || !headers.containsKey("X-Slack-Signature")) { + return false; + } + return verifier.isValid( + headers.get("X-Slack-Request-Timestamp").get(0), + requestBody, + headers.get("X-Slack-Signature").get(0), + 1L); + } + + void addPropertyIfPresent( + JsonObject target, String targetName, JsonObject source, String sourceName) { + if (source.has(sourceName)) { + target.addProperty(targetName, source.get(sourceName).getAsString()); + } + } + + String formatSlackMessage(JsonObject kgResponse, String query) { + JsonObject attachmentJson = new JsonObject(); + JsonArray attachments = new JsonArray(); + + JsonObject responseJson = new JsonObject(); + responseJson.addProperty("response_type", "in_channel"); + responseJson.addProperty("text", String.format("Query: %s", query)); + + JsonArray entityList = kgResponse.getAsJsonArray("itemListElement"); + + // Extract the first entity from the result list, if any + if (entityList.size() == 0) { + attachmentJson.addProperty("text","No results match your query..."); + + attachments.add(attachmentJson); + responseJson.add("attachments", attachmentJson); + + return gson.toJson(responseJson); + } + + JsonObject entity = entityList.get(0).getAsJsonObject().getAsJsonObject("result"); + + // Construct Knowledge Graph response attachment + String title = entity.get("name").getAsString(); + if (entity.has("description")) { + title = String.format("%s: %s", title, entity.get("description").getAsString()); + } + attachmentJson.addProperty("title", title); + + if (entity.has("detailedDescription")) { + JsonObject detailedDescJson = entity.getAsJsonObject("detailedDescription"); + addPropertyIfPresent(attachmentJson, "title_link", detailedDescJson, "url"); + addPropertyIfPresent(attachmentJson, "text", detailedDescJson, "articleBody"); + } + + if (entity.has("image")) { + JsonObject imageJson = entity.getAsJsonObject("image"); + addPropertyIfPresent(attachmentJson, "image_url", imageJson, "contentUrl"); + } + + // Construct top level response + attachments.add(attachmentJson); + responseJson.add("attachments", attachmentJson); + + return gson.toJson(responseJson); + } + + JsonObject searchKnowledgeGraph(String query) throws IOException { + Kgsearch.Entities.Search kgRequest = kgClient.entities().search(); + kgRequest.setQuery(query); + kgRequest.setKey(API_KEY); + + return gson.fromJson(kgRequest.execute().toString(), JsonObject.class); + } + + @Override + public void service(HttpRequest request, HttpResponse response) throws IOException { + + // Validate request + if (request.getMethod() != "POST") { + response.setStatusCode(HttpURLConnection.HTTP_BAD_METHOD); + return; + } + + // reader can only be read once per request, so we preserve its contents + String bodyString = request.getReader().lines().collect(Collectors.joining()); + JsonObject body = (new Gson()).fromJson(bodyString, JsonObject.class); + + if (body == null || !body.has("text")) { + response.setStatusCode(HttpURLConnection.HTTP_BAD_REQUEST); + return; + } + + if (!isValidSlackWebhook(request, bodyString)) { + response.setStatusCode(HttpURLConnection.HTTP_UNAUTHORIZED); + return; + } + + String query = body.get("text").getAsString(); + + // Call knowledge graph API + JsonObject kgResponse = searchKnowledgeGraph(query); + + // Format response to Slack + BufferedWriter writer = response.getWriter(); + writer.write(formatSlackMessage(kgResponse, query)); + } +} diff --git a/functions/snippets/src/test/java/com/example/functions/SlackSlashCommandTest.java b/functions/snippets/src/test/java/com/example/functions/SlackSlashCommandTest.java new file mode 100644 index 00000000000..9b4eaad6fb0 --- /dev/null +++ b/functions/snippets/src/test/java/com/example/functions/SlackSlashCommandTest.java @@ -0,0 +1,171 @@ +/* + * 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. + */ + +package com.example.functions; + +import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import com.github.seratch.jslack.app_backend.SlackSignature; +import com.google.api.client.googleapis.json.GoogleJsonResponseException; +import com.google.cloud.functions.HttpRequest; +import com.google.cloud.functions.HttpResponse; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.StringReader; +import java.io.StringWriter; +import java.net.HttpURLConnection; +import java.security.GeneralSecurityException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import org.junit.Before; +import org.junit.Test; +import org.mockito.ArgumentMatchers; +import org.mockito.Mock; +import org.powermock.reflect.Whitebox; + +public class SlackSlashCommandTest { + + private BufferedWriter writerOut; + private StringWriter responseOut; + + @Mock private HttpRequest request; + @Mock private HttpResponse response; + + @Mock private SlackSignature.Verifier alwaysValidVerifier; + + @Before + public void beforeTest() throws IOException { + request = mock(HttpRequest.class); + when(request.getReader()).thenReturn(new BufferedReader(new StringReader(""))); + + response = mock(HttpResponse.class); + + responseOut = new StringWriter(); + + writerOut = new BufferedWriter(responseOut); + when(response.getWriter()).thenReturn(writerOut); + + alwaysValidVerifier = mock(SlackSignature.Verifier.class); + when(alwaysValidVerifier.isValid( + ArgumentMatchers.any(), + ArgumentMatchers.any(), + ArgumentMatchers.any(), + ArgumentMatchers.anyLong()) + ).thenReturn(true); + + // Construct valid header list + HashMap> validHeaders = new HashMap>(); + String validSlackSignature = System.getenv("SLACK_TEST_SIGNATURE"); + String timestamp = "0"; // start of Unix epoch + + validHeaders.put("X-Slack-Signature", Arrays.asList(validSlackSignature)); + validHeaders.put("X-Slack-Request-Timestamp", Arrays.asList(timestamp)); + + when(request.getHeaders()).thenReturn(validHeaders); + + // Reset knowledge graph API key + Whitebox.setInternalState(SlackSlashCommand.class, "API_KEY", System.getenv("KG_API_KEY")); + } + + @Test + public void onlyAcceptsPostRequestsTest() throws IOException, GeneralSecurityException { + when(request.getMethod()).thenReturn("GET"); + new SlackSlashCommand().service(request, response); + + writerOut.flush(); + verify(response, times(1)).setStatusCode(HttpURLConnection.HTTP_BAD_METHOD); + } + + @Test + public void requiresSlackAuthHeadersTest() throws IOException, GeneralSecurityException { + StringReader requestReadable = new StringReader("{ \"text\": \"foo\" }\n"); + + when(request.getMethod()).thenReturn("POST"); + when(request.getReader()).thenReturn(new BufferedReader(requestReadable)); + + new SlackSlashCommand().service(request, response); + + // Do NOT look for HTTP_BAD_REQUEST here (that means the request WAS authorized)! + verify(response, times(1)).setStatusCode(HttpURLConnection.HTTP_UNAUTHORIZED); + } + + @Test + public void recognizesValidSlackTokenTest() throws IOException, GeneralSecurityException { + StringReader requestReadable = new StringReader("{}"); + + when(request.getReader()).thenReturn(new BufferedReader(requestReadable)); + when(request.getMethod()).thenReturn("POST"); + + new SlackSlashCommand().service(request, response); + + verify(response, times(1)).setStatusCode(HttpURLConnection.HTTP_BAD_REQUEST); + } + + @Test(expected = GoogleJsonResponseException.class) + public void handlesSearchErrorTest() throws IOException, GeneralSecurityException { + StringReader requestReadable = new StringReader("{ \"text\": \"foo\" }\n"); + + when(request.getReader()).thenReturn(new BufferedReader(requestReadable)); + when(request.getMethod()).thenReturn("POST"); + + SlackSlashCommand functionInstance = new SlackSlashCommand(); + Whitebox.setInternalState(functionInstance, "verifier", alwaysValidVerifier); + Whitebox.setInternalState(SlackSlashCommand.class, "API_KEY", "gibberish"); + + // Should throw a GoogleJsonResponseException (due to invalid API key) + functionInstance.service(request, response); + } + + @Test + public void handlesEmptyKgResultsTest() throws IOException, GeneralSecurityException { + StringReader requestReadable = new StringReader("{ \"text\": \"asdfjkl13579\" }\n"); + + when(request.getReader()).thenReturn(new BufferedReader(requestReadable)); + when(request.getMethod()).thenReturn("POST"); + + SlackSlashCommand functionInstance = new SlackSlashCommand(); + Whitebox.setInternalState(functionInstance, "verifier", alwaysValidVerifier); + + + functionInstance.service(request, response); + + writerOut.flush(); + assertThat(responseOut.toString()).contains("No results match your query..."); + } + + @Test + public void handlesPopulatedKgResultsTest() throws IOException, GeneralSecurityException { + StringReader requestReadable = new StringReader("{ \"text\": \"lion\" }\n"); + + when(request.getReader()).thenReturn(new BufferedReader(requestReadable)); + when(request.getMethod()).thenReturn("POST"); + + SlackSlashCommand functionInstance = new SlackSlashCommand(); + Whitebox.setInternalState(functionInstance, "verifier", alwaysValidVerifier); + + + functionInstance.service(request, response); + + writerOut.flush(); + assertThat(responseOut.toString()).contains("https://en.wikipedia.org/wiki/Lion"); + } +} diff --git a/functions/snippets/src/test/java/com/example/functions/SnippetsTests.java b/functions/snippets/src/test/java/com/example/functions/SnippetsTests.java index ecdf7af7a7f..c13a6aa3b9e 100644 --- a/functions/snippets/src/test/java/com/example/functions/SnippetsTests.java +++ b/functions/snippets/src/test/java/com/example/functions/SnippetsTests.java @@ -20,24 +20,6 @@ import static org.powermock.api.mockito.PowerMockito.mock; import static org.powermock.api.mockito.PowerMockito.when; -import com.example.functions.CorsEnabled; -import com.example.functions.EnvVars; -import com.example.functions.ExecutionCount; -import com.example.functions.FileSystem; -import com.example.functions.FirebaseAuth; -import com.example.functions.HelloBackground; -import com.example.functions.HelloGcs; -import com.example.functions.HelloHttp; -import com.example.functions.HelloPubSub; -import com.example.functions.HelloWorld; -import com.example.functions.LazyFields; -import com.example.functions.LogHelloWorld; -import com.example.functions.ParseContentType; -import com.example.functions.PubSubMessage; -import com.example.functions.RetrieveLogs; -import com.example.functions.Scopes; -import com.example.functions.SendHttpRequest; -import com.example.functions.StackdriverLogging; import com.google.cloud.functions.HttpRequest; import com.google.cloud.functions.HttpResponse; import com.google.common.testing.TestLogHandler; From c29d87915637463c38aa048e426349bde4dc5087 Mon Sep 17 00:00:00 2001 From: Ace Nassri Date: Fri, 20 Mar 2020 20:48:08 -0700 Subject: [PATCH 17/17] functions/logging: add stdout/stderr + ignored logs severity note (#2422) ~@vinod-at-google @labtopia IIRC the lack of log severity info is a known issue. (If it's not, let me know so I can hold off on merging this PR.)~ --- .../src/main/java/com/example/functions/LogHelloWorld.java | 4 ++++ .../src/test/java/com/example/functions/SnippetsTests.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/functions/snippets/src/main/java/com/example/functions/LogHelloWorld.java b/functions/snippets/src/main/java/com/example/functions/LogHelloWorld.java index 64457523ce4..944330f348e 100644 --- a/functions/snippets/src/main/java/com/example/functions/LogHelloWorld.java +++ b/functions/snippets/src/main/java/com/example/functions/LogHelloWorld.java @@ -32,6 +32,10 @@ public class LogHelloWorld implements HttpFunction { @Override public void service(HttpRequest request, HttpResponse response) throws IOException { + System.out.println("I am a log to stdout!"); + System.err.println("I am a log to stderr!"); + + // Stackdriver does not detect severity from Cloud Functions log output LOGGER.info("I am an info log!"); LOGGER.warning("I am a warning log!"); diff --git a/functions/snippets/src/test/java/com/example/functions/SnippetsTests.java b/functions/snippets/src/test/java/com/example/functions/SnippetsTests.java index c13a6aa3b9e..e1736f63bbc 100644 --- a/functions/snippets/src/test/java/com/example/functions/SnippetsTests.java +++ b/functions/snippets/src/test/java/com/example/functions/SnippetsTests.java @@ -90,7 +90,7 @@ public void beforeTest() throws IOException { @After public void afterTest() { - System.setOut(null); + System.out.flush(); logHandler.flush(); }