From 1bcb72e841f99debb5321f25daa35505dee82cc7 Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 11:49:09 +0300 Subject: [PATCH 01/11] Do ignore nested .gradle folders --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b18ee9b69..3f33da063 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ !/.idea/codeStyleSettings.xml # Gradle interim configs -.gradle/* +*/.gradle/* # Generated source code */generated/* From dd3de39b2f4c33116d8f0c599b407fe85f291395 Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 13:12:08 +0300 Subject: [PATCH 02/11] Bump version --- version.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version.gradle.kts b/version.gradle.kts index 12a6eb2aa..5f7debbae 100644 --- a/version.gradle.kts +++ b/version.gradle.kts @@ -25,6 +25,6 @@ * `.config/gradle/dependencies.gradle`. */ -val spineCoreVersion: String by extra("1.5.21") -val versionToPublish: String by extra(spineCoreVersion) val spineBaseVersion: String by extra("1.5.21") +val spineCoreVersion: String by extra("1.5.21") +val versionToPublish: String by extra("1.5.22") From 9881504bf55d12908f9cd521ab3f160c3fa2ef9e Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 13:12:21 +0300 Subject: [PATCH 03/11] Add new module --- pubsub/build.gradle.kts | 32 ++++++++++++++++++++++++++++++++ settings.gradle.kts | 1 + 2 files changed, 33 insertions(+) create mode 100644 pubsub/build.gradle.kts diff --git a/pubsub/build.gradle.kts b/pubsub/build.gradle.kts new file mode 100644 index 000000000..1e005faa7 --- /dev/null +++ b/pubsub/build.gradle.kts @@ -0,0 +1,32 @@ +/* + * Copyright 2020, TeamDev. All rights reserved. + * + * Redistribution and use in source and/or binary forms, with or without + * modification, must retain the above copyright notice and the following + * disclaimer. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import io.spine.gradle.internal.IncrementGuard + +plugins { + `java-library` +} + +apply() + +dependencies { + // Google Cloud Pubsub protos + api("com.google.api.grpc:proto-google-cloud-pubsub-v1:1.89.0") +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 337ce19a7..97d55a74b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -23,3 +23,4 @@ rootProject.name = "spine-gcloud-java" include("datastore") include("stackdriver-trace") include("testutil-gcloud") +include("pubsub") From ea99e488a0eb1a986fb45c233950845163feb87e Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 13:12:39 +0300 Subject: [PATCH 04/11] Define Pubsub push request proto --- .../spine/messaging/pubsub/pubsub_push.proto | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 pubsub/src/main/proto/spine/messaging/pubsub/pubsub_push.proto diff --git a/pubsub/src/main/proto/spine/messaging/pubsub/pubsub_push.proto b/pubsub/src/main/proto/spine/messaging/pubsub/pubsub_push.proto new file mode 100644 index 000000000..63a2f5043 --- /dev/null +++ b/pubsub/src/main/proto/spine/messaging/pubsub/pubsub_push.proto @@ -0,0 +1,66 @@ +/* + * Copyright 2020, TeamDev. All rights reserved. + * + * Redistribution and use in source and/or binary forms, with or without + * modification, must retain the above copyright notice and the following + * disclaimer. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +syntax = "proto3"; + +package spine.messaging.pubsub; + +import "spine/options.proto"; + +option java_outer_classname = "PubsubPushProto"; +option java_package = "io.spine.pubsub"; +option java_multiple_files = true; +option java_generate_equals_and_hash = true; + +import "google/pubsub/v1/pubsub.proto"; + +// The definition of the Pub/Sub push request message +// that is sent by the Pub/Sub service when used with push subscriptions. +// +// The push request looks like the example below in its canonical form. +// +// ``` +// { +// "message": { +// "attributes": { +// "key": "value" +// }, +// "data": "U3BpbmUgbG92ZXMgUHViL1N1YiE=", +// "messageId": "136969346945", +// "publishTime": "2020-06-24T13:05:36.021Z" +// }, +// "subscription": "projects/myproject/subscriptions/mysubscription" +// } +// ``` +// +// See +// receiving messages using Push for more information. +// +message PubsubPushRequest { + + // The Pub/Sub message payload of the push request. + google.pubsub.v1.PubsubMessage message = 1 [(required) = true]; + + // The name of the Pub/Sub subscription that pushed the current request. + // + // Format is `projects/{project}/subscriptions/{subscription}`. + // + string subscription = 2 [(required) = true, (pattern).regex = "projects/.+/subscriptions/.+"]; +} From 1e2f69931f38d9abefe14dd5552fd0ad11dfd00a Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 13:26:24 +0300 Subject: [PATCH 05/11] Add `pubsub` to published projects --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 79cf04809..fd89a2a50 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -63,7 +63,7 @@ allprojects { } extra["credentialsPropertyFile"] = PublishingRepos.cloudRepo.credentials -extra["projectsToPublish"] = listOf("datastore", "stackdriver-trace", "testutil-gcloud") +extra["projectsToPublish"] = listOf("datastore", "stackdriver-trace", "testutil-gcloud", "pubsub") subprojects { apply { From cb8945b98117e1de2b08b96713b70a9b2c68e224 Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 13:27:38 +0300 Subject: [PATCH 06/11] Reformat docs. Add `pubsub` to the artifacts --- README.md | 64 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index d49852cf2..f5a3c8c9f 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,41 @@ # gcloud-java -[![codecov](https://codecov.io/gh/SpineEventEngine/gcloud-java/branch/master/graph/badge.svg)](https://codecov.io/gh/SpineEventEngine/gcloud-java) -[![Build Status](https://travis-ci.com/SpineEventEngine/gcloud-java.svg?branch=master)](https://travis-ci.com/SpineEventEngine/gcloud-java) +[![codecov][codecov-badge]][codecov] [![Build Status][travis-badge]][travis] +[codecov]: https://codecov.io/gh/SpineEventEngine/gcloud-java +[codecov-badge]: https://codecov.io/gh/SpineEventEngine/gcloud-java/branch/master/graph/badge.svg +[travis]: https://travis-ci.com/SpineEventEngine/gcloud-java +[travis-badge]: https://travis-ci.com/SpineEventEngine/gcloud-java.svg?branch=master + Support for Spine-based Java apps running at Google Cloud. ### Artifacts Gradle: -```groovy +```kotlin dependencies { - implementation ( - - // Datastore Storage support library. - "io.spine.gcloud:spine-datastore:1.5.0", - - // Stackdriver Trace support library. - "io.spine.gcloud:spine-stackdriver-trace:1.5.0", - - // Datastore-related test utilities (if needed). - "io.spine.gcloud:testutil-gcloud:1.5.0" - ) + // Datastore Storage support library. + implementation("io.spine.gcloud:spine-datastore:1.5.0") + + // Pub/Sub messaging support library. + implementation("io.spine.gcloud:spine-pubsub:1.5") + + // Stackdriver Trace support library. + implementation("io.spine.gcloud:spine-stackdriver-trace:1.5.0") + + // Datastore-related test utilities (if needed). + implementation("io.spine.gcloud:testutil-gcloud:1.5.0") } ``` These artifacts should be used as a part of the Spine server application. -For the details on setting up the server environment please refer to [Spine Bootstrap Gradle plugin](https://github.com/SpineEventEngine/bootstrap/) -and [Spine `core` modules](https://github.com/SpineEventEngine/core-java/) documentation. +For the details on setting up the server environment please refer to +[Spine Bootstrap Gradle plugin][bootstrap] and [Spine `core` modules][core-java] documentation. + +[bootstrap]: https://github.com/SpineEventEngine/bootstrap/ +[core-java]: https://github.com/SpineEventEngine/core-java/ ### Configuring Datastore @@ -40,8 +47,9 @@ be set. Please notice a special index configuration for your custom `Aggregate` The configuration file is located at `./datastore/config/index.yaml`. -Please see the [Google Cloud Platform documentation](https://cloud.google.com/datastore/docs/tools/indexconfig) -for the details. +Please see the [Google Cloud Platform documentation][datastore-index] for the details. + +[datastore-index]: https://cloud.google.com/datastore/docs/tools/indexconfig ##### Custom indexes @@ -51,9 +59,10 @@ Such an approach is useful to optimize read-side querying. In this case more Dat __Example:__ Assuming you have a Projection type called `CustomerProjection`. Its state is declared in -the Protobuf type `my.company.Customer`. It has Entity Columns `country` and -`companySize`. Once you try to make a query in those Columns, the Datastore will fail with +the Protobuf type `my.company.Customer`. It has Entity Columns `country` and `companySize`. +Once you try to make a query in those Columns, the Datastore will fail with an internal Exception. To prevent this, you should create an index for your `CustomerProjection`: + ```yaml - kind: my.company.Customer ancestor: no @@ -69,11 +78,12 @@ This section describes testing the `gcloud-java` library itself. ##### Preconditions To run the task successfully, you must have `gcloud` tool properly installed and configured: - - install gcloud of the last version; + - [install][gcloud-install] `gcloud` of the last version; - login under a Google account when initializing the `gcloud`; - to run tests you should select `spine-dev` Google Cloud Console project; - skip Google App Engine setup if not required. +[gcloud-install]: https://cloud.google.com/sdk/docs/downloads-interactive ##### Running the tests @@ -83,16 +93,20 @@ To start a local emulator and run test against it, run `./gradlew check`. To start an emulator without running tests `./gradlew startDatastore`. -To stop the Datastore emulator, just terminate the emulator process (e.g. `kill -9 $(lsof -i:8080)` or just close the terminal window on Windows). +To stop the Datastore emulator, just terminate the emulator process (e.g. `kill -9 $(lsof -i:8080)` +or just close the terminal window on Windows). The launched emulator will run at `localhost:8080` and will not have any persistence. To change the configuration see `./scripts/start-datastore.*` scripts. The datastore is cleaned up after each test. -See test classes under `./datastore/src/test/java/...` and `io.spine.server.storage.datastore.TestDatastoreStorageFactory#clear`. +See test classes under `./datastore/src/test/java/...` and +`io.spine.server.storage.datastore.TestDatastoreStorageFactory#clear`. *Stackdriver-Trace* -The test are launched in a scope of Gradle `test` phase. However, they rely upon an Google Cloud credentials file located at `/stackdriver-trace/src/test/resources/spine-dev.json`. +The test are launched in a scope of Gradle `test` phase. However, they rely on a Google Cloud +credentials file located at `/stackdriver-trace/src/test/resources/spine-dev.json`. -To run the tests, obtain the service account file for your environment and make it available to the test code in the specified location. +To run the tests, obtain the service account file for your environment and make it available +to the test code in the specified location. From 7db986f811a61bed39c8657f99235390fab96232 Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 13:33:11 +0300 Subject: [PATCH 07/11] Update reports --- license-report.md | 465 +++++++++++++++++++++++++++++++++++++++++++--- pom.xml | 16 +- 2 files changed, 451 insertions(+), 30 deletions(-) diff --git a/license-report.md b/license-report.md index f9af57f8d..b7f124253 100644 --- a/license-report.md +++ b/license-report.md @@ -1,6 +1,6 @@ -# Dependencies of `io.spine.gcloud:spine-datastore:1.5.14` +# Dependencies of `io.spine.gcloud:spine-datastore:1.5.22` ## Runtime 1. **Group:** androidx.annotation **Name:** annotation **Version:** 1.1.0 @@ -459,10 +459,10 @@ * **POM Project URL:** [https://javacc.dev.java.net/](https://javacc.dev.java.net/) * **POM License: Berkeley Software Distribution (BSD) License** - [http://www.opensource.org/licenses/bsd-license.html](http://www.opensource.org/licenses/bsd-license.html) -1. **Group:** net.sourceforge.pmd **Name:** pmd-core **Version:** 6.20.0 +1. **Group:** net.sourceforge.pmd **Name:** pmd-core **Version:** 6.24.0 * **POM License: BSD-style** - [http://pmd.sourceforge.net/license.html](http://pmd.sourceforge.net/license.html) -1. **Group:** net.sourceforge.pmd **Name:** pmd-java **Version:** 6.20.0 +1. **Group:** net.sourceforge.pmd **Name:** pmd-java **Version:** 6.24.0 * **POM License: BSD-style** - [http://pmd.sourceforge.net/license.html](http://pmd.sourceforge.net/license.html) 1. **Group:** net.sourceforge.saxon **Name:** saxon **Version:** 9.1.0.8 @@ -535,7 +535,6 @@ 1. **Group:** org.hamcrest **Name:** hamcrest-core **Version:** 1.3 * **POM License: New BSD License** - [http://www.opensource.org/licenses/bsd-license.php](http://www.opensource.org/licenses/bsd-license.php) -1. **Group:** org.junit **Name:** junit-bom **Version:** 5.6.2 **No license information found** 1. **Group:** org.junit.jupiter **Name:** junit-jupiter-api **Version:** 5.6.2 * **POM Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **POM License: Eclipse Public License v2.0** - [https://www.eclipse.org/legal/epl-v20.html](https://www.eclipse.org/legal/epl-v20.html) @@ -561,10 +560,11 @@ * **POM Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **POM License: The Apache License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group:** org.ow2.asm **Name:** asm **Version:** 7.1 +1. **Group:** org.ow2.asm **Name:** asm **Version:** 7.3.1 * **Manifest Project URL:** [http://asm.ow2.org](http://asm.ow2.org) - * **POM Project URL:** [http://asm.ow2.org/](http://asm.ow2.org/) - * **POM License: BSD** - [http://asm.ow2.org/license.html](http://asm.ow2.org/license.html) + * **Manifest License:** BSD-3-Clause;link=https://asm.ow2.io/LICENSE.txt (Not packaged) + * **POM Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) + * **POM License: BSD-3-Clause** - [https://asm.ow2.io/license.html](https://asm.ow2.io/license.html) * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) 1. **Group:** org.pcollections **Name:** pcollections **Version:** 2.1.2 @@ -593,12 +593,428 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Jun 02 15:29:01 EEST 2020** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE). +This report was generated on **Wed Jun 24 13:30:07 EEST 2020** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE). -# Dependencies of `io.spine.gcloud:spine-stackdriver-trace:1.5.14` +# Dependencies of `io.spine.gcloud:spine-pubsub:1.5.22` + +## Runtime +1. **Group:** com.google.android **Name:** annotations **Version:** 4.1.1.4 + * **POM Project URL:** [http://source.android.com/](http://source.android.com/) + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +1. **Group:** com.google.api **Name:** api-common **Version:** 1.9.1 + * **POM Project URL:** [https://github.com/googleapis/api-common-java](https://github.com/googleapis/api-common-java) + * **POM License: BSD** - [https://github.com/googleapis/api-common-java/blob/master/LICENSE](https://github.com/googleapis/api-common-java/blob/master/LICENSE) + +1. **Group:** com.google.api.grpc **Name:** proto-google-cloud-pubsub-v1 **Version:** 1.89.0 + * **POM License: Apache-2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.api.grpc **Name:** proto-google-common-protos **Version:** 1.18.0 + * **POM Project URL:** [https://github.com/googleapis/java-iam/proto-google-common-protos](https://github.com/googleapis/java-iam/proto-google-common-protos) + * **POM License: Apache-2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.auto.value **Name:** auto-value-annotations **Version:** 1.7.2 + * **POM Project URL:** [https://github.com/google/auto/tree/master/value](https://github.com/google/auto/tree/master/value) + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.code.findbugs **Name:** jsr305 **Version:** 3.0.2 + * **POM Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.code.gson **Name:** gson **Version:** 2.8.6 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.errorprone **Name:** error_prone_annotations **Version:** 2.3.4 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.errorprone **Name:** error_prone_type_annotations **Version:** 2.3.4 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.flogger **Name:** flogger **Version:** 0.5.1 + * **POM Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) + * **POM License: Apache 2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.flogger **Name:** flogger-system-backend **Version:** 0.5.1 + * **POM Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) + * **POM License: Apache 2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.guava **Name:** failureaccess **Version:** 1.0.1 + * **Manifest Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.guava **Name:** guava **Version:** 29.0-jre + * **Manifest Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) + * **POM License: Apache License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.guava **Name:** listenablefuture **Version:** 9999.0-empty-to-avoid-conflict-with-guava + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.j2objc **Name:** j2objc-annotations **Version:** 1.3 + * **POM Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.protobuf **Name:** protobuf-java **Version:** 3.12.2 + * **Manifest Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) + * **POM License: 3-Clause BSD License** - [https://opensource.org/licenses/BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) + +1. **Group:** com.google.protobuf **Name:** protobuf-java-util **Version:** 3.11.4 + * **Manifest Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) + * **POM License: 3-Clause BSD License** - [https://opensource.org/licenses/BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) + +1. **Group:** io.grpc **Name:** grpc-api **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-context **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-core **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-protobuf **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-protobuf-lite **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-stub **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.perfmark **Name:** perfmark-api **Version:** 0.19.0 + * **POM Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** javax.annotation **Name:** javax.annotation-api **Version:** 1.3.2 + * **Manifest Project URL:** [https://javaee.github.io/glassfish](https://javaee.github.io/glassfish) + * **POM Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) + * **POM License: CDDL + GPLv2 with classpath exception** - [https://github.com/javaee/javax.annotation/blob/master/LICENSE](https://github.com/javaee/javax.annotation/blob/master/LICENSE) + +1. **Group:** org.checkerframework **Name:** checker-compat-qual **Version:** 2.5.3 + * **POM Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **POM License: GNU General Public License, version 2 (GPL2), with the classpath exception** - [http://www.gnu.org/software/classpath/license.html](http://www.gnu.org/software/classpath/license.html) + * **POM License: The MIT License** - [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) + +1. **Group:** org.checkerframework **Name:** checker-qual **Version:** 3.3.0 + * **Manifest License:** MIT (Not packaged) + * **POM Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **POM License: The MIT License** - [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) + +1. **Group:** org.codehaus.mojo **Name:** animal-sniffer-annotations **Version:** 1.18 + * **POM License: MIT license** - [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +## Compile, tests and tooling +1. **Group:** com.beust **Name:** jcommander **Version:** 1.72 + * **POM Project URL:** [http://jcommander.org](http://jcommander.org) + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +1. **Group:** com.github.ben-manes.caffeine **Name:** caffeine **Version:** 2.7.0 + * **POM Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) + * **POM License: Apache License, Version 2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.github.kevinstern **Name:** software-and-algorithms **Version:** 1.0 + * **POM Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) + * **POM License: MIT License** - [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php) + +1. **Group:** com.google.android **Name:** annotations **Version:** 4.1.1.4 + * **POM Project URL:** [http://source.android.com/](http://source.android.com/) + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +1. **Group:** com.google.api **Name:** api-common **Version:** 1.9.1 + * **POM Project URL:** [https://github.com/googleapis/api-common-java](https://github.com/googleapis/api-common-java) + * **POM License: BSD** - [https://github.com/googleapis/api-common-java/blob/master/LICENSE](https://github.com/googleapis/api-common-java/blob/master/LICENSE) + +1. **Group:** com.google.api.grpc **Name:** proto-google-cloud-pubsub-v1 **Version:** 1.89.0 + * **POM License: Apache-2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.api.grpc **Name:** proto-google-common-protos **Version:** 1.18.0 + * **POM Project URL:** [https://github.com/googleapis/java-iam/proto-google-common-protos](https://github.com/googleapis/java-iam/proto-google-common-protos) + * **POM License: Apache-2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.auto **Name:** auto-common **Version:** 0.10 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.auto.value **Name:** auto-value-annotations **Version:** 1.7.2 + * **POM Project URL:** [https://github.com/google/auto/tree/master/value](https://github.com/google/auto/tree/master/value) + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.code.findbugs **Name:** jFormatString **Version:** 3.0.0 + * **POM Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) + * **POM License: GNU Lesser Public License** - [http://www.gnu.org/licenses/lgpl.html](http://www.gnu.org/licenses/lgpl.html) + +1. **Group:** com.google.code.findbugs **Name:** jsr305 **Version:** 3.0.2 + * **POM Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.code.gson **Name:** gson **Version:** 2.8.5 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.code.gson **Name:** gson **Version:** 2.8.6 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.errorprone **Name:** error_prone_annotation **Version:** 2.3.4 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.errorprone **Name:** error_prone_annotations **Version:** 2.3.4 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.errorprone **Name:** error_prone_check_api **Version:** 2.3.4 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.errorprone **Name:** error_prone_core **Version:** 2.3.4 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.errorprone **Name:** error_prone_type_annotations **Version:** 2.3.4 + * **POM License: Apache 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.errorprone **Name:** javac **Version:** 9+181-r4173-1 + * **POM Project URL:** [https://github.com/google/error-prone-javac](https://github.com/google/error-prone-javac) + * **POM License: GNU General Public License, version 2, with the Classpath Exception** - [http://openjdk.java.net/legal/gplv2+ce.html](http://openjdk.java.net/legal/gplv2+ce.html) + +1. **Group:** com.google.flogger **Name:** flogger **Version:** 0.5.1 + * **POM Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) + * **POM License: Apache 2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.flogger **Name:** flogger-system-backend **Version:** 0.5.1 + * **POM Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) + * **POM License: Apache 2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.guava **Name:** failureaccess **Version:** 1.0.1 + * **Manifest Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.guava **Name:** guava **Version:** 29.0-jre + * **Manifest Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) + * **POM License: Apache License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.guava **Name:** guava-testlib **Version:** 29.0-jre + * **POM License: Apache License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.guava **Name:** listenablefuture **Version:** 9999.0-empty-to-avoid-conflict-with-guava + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.j2objc **Name:** j2objc-annotations **Version:** 1.3 + * **POM Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.protobuf **Name:** protobuf-java **Version:** 3.12.2 + * **Manifest Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) + * **POM License: 3-Clause BSD License** - [https://opensource.org/licenses/BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) + +1. **Group:** com.google.protobuf **Name:** protobuf-java **Version:** 3.4.0 + * **Manifest Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) + * **POM License: 3-Clause BSD License** - [https://opensource.org/licenses/BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.protobuf **Name:** protobuf-java-util **Version:** 3.11.4 + * **Manifest Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) + * **POM License: 3-Clause BSD License** - [https://opensource.org/licenses/BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) + +1. **Group:** com.google.protobuf **Name:** protoc **Version:** 3.11.4 + * **POM Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) + * **POM License: 3-Clause BSD License** - [https://opensource.org/licenses/BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.truth **Name:** truth **Version:** 1.0.1 + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.truth.extensions **Name:** truth-java8-extension **Version:** 1.0.1 + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.truth.extensions **Name:** truth-liteproto-extension **Version:** 1.0.1 + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.google.truth.extensions **Name:** truth-proto-extension **Version:** 1.0.1 + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** com.googlecode.java-diff-utils **Name:** diffutils **Version:** 1.3.0 + * **POM Project URL:** [http://code.google.com/p/java-diff-utils/](http://code.google.com/p/java-diff-utils/) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** commons-io **Name:** commons-io **Version:** 2.6 + * **Project URL:** [http://commons.apache.org/proper/commons-io/](http://commons.apache.org/proper/commons-io/) + * **POM License: Apache License, Version 2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** io.grpc **Name:** grpc-api **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-context **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-core **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-protobuf **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-protobuf-lite **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** grpc-stub **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.grpc **Name:** protoc-gen-grpc-java **Version:** 1.28.1 + * **POM Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** io.perfmark **Name:** perfmark-api **Version:** 0.19.0 + * **POM Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) + * **POM License: Apache 2.0** - [https://opensource.org/licenses/Apache-2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group:** javax.annotation **Name:** javax.annotation-api **Version:** 1.3.2 + * **Manifest Project URL:** [https://javaee.github.io/glassfish](https://javaee.github.io/glassfish) + * **POM Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) + * **POM License: CDDL + GPLv2 with classpath exception** - [https://github.com/javaee/javax.annotation/blob/master/LICENSE](https://github.com/javaee/javax.annotation/blob/master/LICENSE) + +1. **Group:** junit **Name:** junit **Version:** 4.13 + * **POM Project URL:** [http://junit.org](http://junit.org) + * **POM License: Eclipse Public License 1.0** - [http://www.eclipse.org/legal/epl-v10.html](http://www.eclipse.org/legal/epl-v10.html) + +1. **Group:** net.java.dev.javacc **Name:** javacc **Version:** 5.0 + * **POM Project URL:** [https://javacc.dev.java.net/](https://javacc.dev.java.net/) + * **POM License: Berkeley Software Distribution (BSD) License** - [http://www.opensource.org/licenses/bsd-license.html](http://www.opensource.org/licenses/bsd-license.html) + +1. **Group:** net.sourceforge.pmd **Name:** pmd-core **Version:** 6.24.0 + * **POM License: BSD-style** - [http://pmd.sourceforge.net/license.html](http://pmd.sourceforge.net/license.html) + +1. **Group:** net.sourceforge.pmd **Name:** pmd-java **Version:** 6.24.0 + * **POM License: BSD-style** - [http://pmd.sourceforge.net/license.html](http://pmd.sourceforge.net/license.html) + +1. **Group:** net.sourceforge.saxon **Name:** saxon **Version:** 9.1.0.8 + * **POM Project URL:** [http://saxon.sourceforge.net/](http://saxon.sourceforge.net/) + * **POM License: Mozilla Public License Version 1.0** - [http://www.mozilla.org/MPL/MPL-1.0.txt](http://www.mozilla.org/MPL/MPL-1.0.txt) + +1. **Group:** org.antlr **Name:** antlr4-runtime **Version:** 4.7 + * **Manifest Project URL:** [http://www.antlr.org](http://www.antlr.org) + * **POM License: The BSD License** - [http://www.antlr.org/license.html](http://www.antlr.org/license.html) + +1. **Group:** org.apache.commons **Name:** commons-lang3 **Version:** 3.8.1 + * **Project URL:** [http://commons.apache.org/proper/commons-lang/](http://commons.apache.org/proper/commons-lang/) + * **POM License: Apache License, Version 2.0** - [https://www.apache.org/licenses/LICENSE-2.0.txt](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** org.apiguardian **Name:** apiguardian-api **Version:** 1.1.0 + * **POM Project URL:** [https://github.com/apiguardian-team/apiguardian](https://github.com/apiguardian-team/apiguardian) + * **POM License: The Apache License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** org.checkerframework **Name:** checker-compat-qual **Version:** 2.5.3 + * **POM Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **POM License: GNU General Public License, version 2 (GPL2), with the classpath exception** - [http://www.gnu.org/software/classpath/license.html](http://www.gnu.org/software/classpath/license.html) + * **POM License: The MIT License** - [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) + +1. **Group:** org.checkerframework **Name:** checker-compat-qual **Version:** 2.5.5 + * **POM Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **POM License: GNU General Public License, version 2 (GPL2), with the classpath exception** - [http://www.gnu.org/software/classpath/license.html](http://www.gnu.org/software/classpath/license.html) + * **POM License: The MIT License** - [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) + +1. **Group:** org.checkerframework **Name:** checker-qual **Version:** 2.11.1 + * **POM Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **POM License: The MIT License** - [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) + +1. **Group:** org.checkerframework **Name:** checker-qual **Version:** 3.0.0 + * **Manifest License:** MIT (Not packaged) + * **POM Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **POM License: The MIT License** - [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) + +1. **Group:** org.checkerframework **Name:** checker-qual **Version:** 3.3.0 + * **Manifest License:** MIT (Not packaged) + * **POM Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **POM License: The MIT License** - [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) + +1. **Group:** org.checkerframework **Name:** dataflow **Version:** 3.0.0 + * **Manifest License:** (GPL-2.0-only WITH Classpath-exception-2.0) (Not packaged) + * **POM Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **POM License: GNU General Public License, version 2 (GPL2), with the classpath exception** - [http://www.gnu.org/software/classpath/license.html](http://www.gnu.org/software/classpath/license.html) + * **POM License: The MIT License** - [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) + +1. **Group:** org.checkerframework **Name:** javacutil **Version:** 3.0.0 + * **Manifest License:** (GPL-2.0-only WITH Classpath-exception-2.0) (Not packaged) + * **POM Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **POM License: GNU General Public License, version 2 (GPL2), with the classpath exception** - [http://www.gnu.org/software/classpath/license.html](http://www.gnu.org/software/classpath/license.html) + * **POM License: The MIT License** - [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT) + +1. **Group:** org.codehaus.mojo **Name:** animal-sniffer-annotations **Version:** 1.18 + * **POM License: MIT license** - [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** org.hamcrest **Name:** hamcrest-all **Version:** 1.3 + * **POM License: New BSD License** - [http://www.opensource.org/licenses/bsd-license.php](http://www.opensource.org/licenses/bsd-license.php) + +1. **Group:** org.hamcrest **Name:** hamcrest-core **Version:** 1.3 + * **POM License: New BSD License** - [http://www.opensource.org/licenses/bsd-license.php](http://www.opensource.org/licenses/bsd-license.php) + +1. **Group:** org.junit.jupiter **Name:** junit-jupiter-api **Version:** 5.6.2 + * **POM Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **POM License: Eclipse Public License v2.0** - [https://www.eclipse.org/legal/epl-v20.html](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group:** org.junit.jupiter **Name:** junit-jupiter-engine **Version:** 5.6.2 + * **POM Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **POM License: Eclipse Public License v2.0** - [https://www.eclipse.org/legal/epl-v20.html](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group:** org.junit.jupiter **Name:** junit-jupiter-params **Version:** 5.6.2 + * **POM Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **POM License: Eclipse Public License v2.0** - [https://www.eclipse.org/legal/epl-v20.html](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group:** org.junit.platform **Name:** junit-platform-commons **Version:** 1.6.2 + * **POM Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **POM License: Eclipse Public License v2.0** - [https://www.eclipse.org/legal/epl-v20.html](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group:** org.junit.platform **Name:** junit-platform-engine **Version:** 1.6.2 + * **POM Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **POM License: Eclipse Public License v2.0** - [https://www.eclipse.org/legal/epl-v20.html](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group:** org.opentest4j **Name:** opentest4j **Version:** 1.2.0 + * **Manifest License:** The Apache License, Version 2.0 (Not packaged) + * **POM Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) + * **POM License: The Apache License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** org.ow2.asm **Name:** asm **Version:** 7.3.1 + * **Manifest Project URL:** [http://asm.ow2.org](http://asm.ow2.org) + * **Manifest License:** BSD-3-Clause;link=https://asm.ow2.io/LICENSE.txt (Not packaged) + * **POM Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) + * **POM License: BSD-3-Clause** - [https://asm.ow2.io/license.html](https://asm.ow2.io/license.html) + * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group:** org.pcollections **Name:** pcollections **Version:** 2.1.2 + * **POM Project URL:** [http://pcollections.org](http://pcollections.org) + * **POM License: The MIT License** - [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php) + +1. **Group:** org.plumelib **Name:** plume-util **Version:** 1.0.6 + * **POM Project URL:** [https://github.com/plume-lib/plume-util](https://github.com/plume-lib/plume-util) + * **POM License: MIT License** - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +1. **Group:** org.plumelib **Name:** reflection-util **Version:** 0.0.2 + * **POM Project URL:** [https://github.com/plume-lib/reflection-util](https://github.com/plume-lib/reflection-util) + * **POM License: MIT License** - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + +1. **Group:** org.plumelib **Name:** require-javadoc **Version:** 0.1.0 + * **POM Project URL:** [https://github.com/plume-lib/require-javadoc](https://github.com/plume-lib/require-javadoc) + * **POM License: MIT License** - [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT) + + + + The dependencies distributed under several licenses, are used according their commercial-use-friendly license. + + +This report was generated on **Wed Jun 24 13:30:15 EEST 2020** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE). + + + + +# Dependencies of `io.spine.gcloud:spine-stackdriver-trace:1.5.22` ## Runtime 1. **Group:** com.fasterxml.jackson.core **Name:** jackson-core **Version:** 2.9.9 @@ -1053,10 +1469,10 @@ This report was generated on **Tue Jun 02 15:29:01 EEST 2020** using [Gradle-Lic * **POM Project URL:** [https://javacc.dev.java.net/](https://javacc.dev.java.net/) * **POM License: Berkeley Software Distribution (BSD) License** - [http://www.opensource.org/licenses/bsd-license.html](http://www.opensource.org/licenses/bsd-license.html) -1. **Group:** net.sourceforge.pmd **Name:** pmd-core **Version:** 6.20.0 +1. **Group:** net.sourceforge.pmd **Name:** pmd-core **Version:** 6.24.0 * **POM License: BSD-style** - [http://pmd.sourceforge.net/license.html](http://pmd.sourceforge.net/license.html) -1. **Group:** net.sourceforge.pmd **Name:** pmd-java **Version:** 6.20.0 +1. **Group:** net.sourceforge.pmd **Name:** pmd-java **Version:** 6.24.0 * **POM License: BSD-style** - [http://pmd.sourceforge.net/license.html](http://pmd.sourceforge.net/license.html) 1. **Group:** net.sourceforge.saxon **Name:** saxon **Version:** 9.1.0.8 @@ -1137,7 +1553,6 @@ This report was generated on **Tue Jun 02 15:29:01 EEST 2020** using [Gradle-Lic 1. **Group:** org.hamcrest **Name:** hamcrest-core **Version:** 1.3 * **POM License: New BSD License** - [http://www.opensource.org/licenses/bsd-license.php](http://www.opensource.org/licenses/bsd-license.php) -1. **Group:** org.junit **Name:** junit-bom **Version:** 5.6.2 **No license information found** 1. **Group:** org.junit.jupiter **Name:** junit-jupiter-api **Version:** 5.6.2 * **POM Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **POM License: Eclipse Public License v2.0** - [https://www.eclipse.org/legal/epl-v20.html](https://www.eclipse.org/legal/epl-v20.html) @@ -1163,10 +1578,11 @@ This report was generated on **Tue Jun 02 15:29:01 EEST 2020** using [Gradle-Lic * **POM Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **POM License: The Apache License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group:** org.ow2.asm **Name:** asm **Version:** 7.1 +1. **Group:** org.ow2.asm **Name:** asm **Version:** 7.3.1 * **Manifest Project URL:** [http://asm.ow2.org](http://asm.ow2.org) - * **POM Project URL:** [http://asm.ow2.org/](http://asm.ow2.org/) - * **POM License: BSD** - [http://asm.ow2.org/license.html](http://asm.ow2.org/license.html) + * **Manifest License:** BSD-3-Clause;link=https://asm.ow2.io/LICENSE.txt (Not packaged) + * **POM Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) + * **POM License: BSD-3-Clause** - [https://asm.ow2.io/license.html](https://asm.ow2.io/license.html) * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) 1. **Group:** org.pcollections **Name:** pcollections **Version:** 2.1.2 @@ -1195,12 +1611,12 @@ This report was generated on **Tue Jun 02 15:29:01 EEST 2020** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Jun 02 15:25:46 EEST 2020** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE). +This report was generated on **Wed Jun 24 13:30:24 EEST 2020** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE). -# Dependencies of `io.spine.gcloud:spine-testutil-gcloud:1.5.14` +# Dependencies of `io.spine.gcloud:spine-testutil-gcloud:1.5.22` ## Runtime 1. **Group:** androidx.annotation **Name:** annotation **Version:** 1.1.0 @@ -1403,7 +1819,6 @@ This report was generated on **Tue Jun 02 15:25:46 EEST 2020** using [Gradle-Lic * **POM License: MIT license** - [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php) * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group:** org.junit **Name:** junit-bom **Version:** 5.6.2 **No license information found** 1. **Group:** org.junit.jupiter **Name:** junit-jupiter-api **Version:** 5.6.2 * **POM Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **POM License: Eclipse Public License v2.0** - [https://www.eclipse.org/legal/epl-v20.html](https://www.eclipse.org/legal/epl-v20.html) @@ -1681,10 +2096,10 @@ This report was generated on **Tue Jun 02 15:25:46 EEST 2020** using [Gradle-Lic * **POM Project URL:** [https://javacc.dev.java.net/](https://javacc.dev.java.net/) * **POM License: Berkeley Software Distribution (BSD) License** - [http://www.opensource.org/licenses/bsd-license.html](http://www.opensource.org/licenses/bsd-license.html) -1. **Group:** net.sourceforge.pmd **Name:** pmd-core **Version:** 6.20.0 +1. **Group:** net.sourceforge.pmd **Name:** pmd-core **Version:** 6.24.0 * **POM License: BSD-style** - [http://pmd.sourceforge.net/license.html](http://pmd.sourceforge.net/license.html) -1. **Group:** net.sourceforge.pmd **Name:** pmd-java **Version:** 6.20.0 +1. **Group:** net.sourceforge.pmd **Name:** pmd-java **Version:** 6.24.0 * **POM License: BSD-style** - [http://pmd.sourceforge.net/license.html](http://pmd.sourceforge.net/license.html) 1. **Group:** net.sourceforge.saxon **Name:** saxon **Version:** 9.1.0.8 @@ -1757,7 +2172,6 @@ This report was generated on **Tue Jun 02 15:25:46 EEST 2020** using [Gradle-Lic 1. **Group:** org.hamcrest **Name:** hamcrest-core **Version:** 1.3 * **POM License: New BSD License** - [http://www.opensource.org/licenses/bsd-license.php](http://www.opensource.org/licenses/bsd-license.php) -1. **Group:** org.junit **Name:** junit-bom **Version:** 5.6.2 **No license information found** 1. **Group:** org.junit.jupiter **Name:** junit-jupiter-api **Version:** 5.6.2 * **POM Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **POM License: Eclipse Public License v2.0** - [https://www.eclipse.org/legal/epl-v20.html](https://www.eclipse.org/legal/epl-v20.html) @@ -1783,10 +2197,11 @@ This report was generated on **Tue Jun 02 15:25:46 EEST 2020** using [Gradle-Lic * **POM Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **POM License: The Apache License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group:** org.ow2.asm **Name:** asm **Version:** 7.1 +1. **Group:** org.ow2.asm **Name:** asm **Version:** 7.3.1 * **Manifest Project URL:** [http://asm.ow2.org](http://asm.ow2.org) - * **POM Project URL:** [http://asm.ow2.org/](http://asm.ow2.org/) - * **POM License: BSD** - [http://asm.ow2.org/license.html](http://asm.ow2.org/license.html) + * **Manifest License:** BSD-3-Clause;link=https://asm.ow2.io/LICENSE.txt (Not packaged) + * **POM Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) + * **POM License: BSD-3-Clause** - [https://asm.ow2.io/license.html](https://asm.ow2.io/license.html) * **POM License: The Apache Software License, Version 2.0** - [http://www.apache.org/licenses/LICENSE-2.0.txt](http://www.apache.org/licenses/LICENSE-2.0.txt) 1. **Group:** org.pcollections **Name:** pcollections **Version:** 2.1.2 @@ -1815,4 +2230,4 @@ This report was generated on **Tue Jun 02 15:25:46 EEST 2020** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Jun 02 15:25:50 EEST 2020** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE). \ No newline at end of file +This report was generated on **Wed Jun 24 13:30:28 EEST 2020** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE). \ No newline at end of file diff --git a/pom.xml b/pom.xml index fa455ff57..90624eb3a 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ all modules and does not describe the project structure per-subproject. io.spine.gcloud spine-gcloud-java -1.5.14 +1.5.22 2015 @@ -25,6 +25,12 @@ all modules and does not describe the project structure per-subproject. + + com.google.api.grpc + proto-google-cloud-pubsub-v1 + 1.89.0 + compile + com.google.cloud google-cloud-datastore @@ -40,7 +46,7 @@ all modules and does not describe the project structure per-subproject. io.spine spine-server - 1.5.14 + 1.5.21 compile @@ -52,7 +58,7 @@ all modules and does not describe the project structure per-subproject. io.spine spine-testutil-server - 1.5.14 + 1.5.21 test @@ -108,12 +114,12 @@ all modules and does not describe the project structure per-subproject. io.spine.tools spine-protoc-plugin - 1.5.12 + 1.5.21 net.sourceforge.pmd pmd-java - 6.20.0 + 6.24.0 org.jacoco From b690419d29307004c90347e3a0af56fbb80d174e Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 13:39:16 +0300 Subject: [PATCH 08/11] Bump versions --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f5a3c8c9f..4241cb951 100644 --- a/README.md +++ b/README.md @@ -16,16 +16,16 @@ Gradle: ```kotlin dependencies { // Datastore Storage support library. - implementation("io.spine.gcloud:spine-datastore:1.5.0") + implementation("io.spine.gcloud:spine-datastore:1.5.22") // Pub/Sub messaging support library. - implementation("io.spine.gcloud:spine-pubsub:1.5") + implementation("io.spine.gcloud:spine-pubsub:1.5.22") // Stackdriver Trace support library. - implementation("io.spine.gcloud:spine-stackdriver-trace:1.5.0") + implementation("io.spine.gcloud:spine-stackdriver-trace:1.5.22") // Datastore-related test utilities (if needed). - implementation("io.spine.gcloud:testutil-gcloud:1.5.0") + implementation("io.spine.gcloud:testutil-gcloud:1.5.22") } ``` From 133d0bf57cc2b7315066698d3d9d2066962016e8 Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 14:02:04 +0300 Subject: [PATCH 09/11] Allow bypassing the increment check for repos without present metadata --- .../gradle/internal/CheckVersionIncrement.kt | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/internal/CheckVersionIncrement.kt b/buildSrc/src/main/kotlin/io/spine/gradle/internal/CheckVersionIncrement.kt index 45e02672d..1e7faedca 100644 --- a/buildSrc/src/main/kotlin/io/spine/gradle/internal/CheckVersionIncrement.kt +++ b/buildSrc/src/main/kotlin/io/spine/gradle/internal/CheckVersionIncrement.kt @@ -27,6 +27,7 @@ import org.gradle.api.GradleException import org.gradle.api.Project import org.gradle.api.tasks.Input import org.gradle.api.tasks.TaskAction +import java.io.FileNotFoundException import java.net.URL /** @@ -52,13 +53,13 @@ open class CheckVersionIncrement : DefaultTask() { val artifact = "${project.artifactPath()}/${MavenMetadata.FILE_NAME}" val repoUrl = repository.releases val metadata = fetch(repoUrl, artifact) - val versions = metadata.versioning.versions - val versionExists = versions.contains(version) + val versions = metadata?.versioning?.versions + val versionExists = versions?.contains(version) ?: false if (versionExists) { throw GradleException(""" Version `$version` is already published to maven repository `$repoUrl`. Try incrementing the library version. - All available versions are: ${versions.joinToString(separator = ", ")}. + All available versions are: ${versions?.joinToString(separator = ", ")}. To disable this check, run Gradle with `-x $name`. """.trimIndent() @@ -66,7 +67,7 @@ open class CheckVersionIncrement : DefaultTask() { } } - private fun fetch(repository: String, artifact: String): MavenMetadata { + private fun fetch(repository: String, artifact: String): MavenMetadata? { val url = URL("$repository/$artifact") return MavenMetadata.fetchAndParse(url) } @@ -94,9 +95,19 @@ private data class MavenMetadata(var versioning: Versioning = Versioning()) { mapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false) } - fun fetchAndParse(url: URL): MavenMetadata { - val metadata = mapper.readValue(url, MavenMetadata::class.java) - return metadata + /** + * Fetches the metadata for the repository and parses the document. + * + *

If the document could not be found, assumes that the module was never + * previously released and thus has no metadata. + */ + fun fetchAndParse(url: URL): MavenMetadata? { + return try { + val metadata = mapper.readValue(url, MavenMetadata::class.java) + metadata + } catch (e: FileNotFoundException) { + null + } } } } From 06920542505165f519a837c9dd7f43537e4fed21 Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 14:43:14 +0300 Subject: [PATCH 10/11] bump config module --- .../kotlin/io/spine/gradle/internal/CheckVersionIncrement.kt | 2 +- config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/internal/CheckVersionIncrement.kt b/buildSrc/src/main/kotlin/io/spine/gradle/internal/CheckVersionIncrement.kt index 1e7faedca..8f33cde90 100644 --- a/buildSrc/src/main/kotlin/io/spine/gradle/internal/CheckVersionIncrement.kt +++ b/buildSrc/src/main/kotlin/io/spine/gradle/internal/CheckVersionIncrement.kt @@ -99,7 +99,7 @@ private data class MavenMetadata(var versioning: Versioning = Versioning()) { * Fetches the metadata for the repository and parses the document. * *

If the document could not be found, assumes that the module was never - * previously released and thus has no metadata. + * released and thus has no metadata. */ fun fetchAndParse(url: URL): MavenMetadata? { return try { diff --git a/config b/config index 9799ecc52..e6245ae7f 160000 --- a/config +++ b/config @@ -1 +1 @@ -Subproject commit 9799ecc527ee27429415daf76893f6fae2e2da52 +Subproject commit e6245ae7f7e11d46c529d94023bdbeade527ab67 From 430dbee95fc2326b01780f6191695c57d466026b Mon Sep 17 00:00:00 2001 From: Yuri Sergiichuk Date: Wed, 24 Jun 2020 14:53:48 +0300 Subject: [PATCH 11/11] Rename to `push.proto` --- .../spine/messaging/pubsub/{pubsub_push.proto => push.proto} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename pubsub/src/main/proto/spine/messaging/pubsub/{pubsub_push.proto => push.proto} (100%) diff --git a/pubsub/src/main/proto/spine/messaging/pubsub/pubsub_push.proto b/pubsub/src/main/proto/spine/messaging/pubsub/push.proto similarity index 100% rename from pubsub/src/main/proto/spine/messaging/pubsub/pubsub_push.proto rename to pubsub/src/main/proto/spine/messaging/pubsub/push.proto