diff --git a/.gitignore b/.gitignore
index 000e39be24..5b0eb161f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,23 @@
+#
+# 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.
+#
+
#
# This file is used for two purposes:
# 1. ignoring files in the `config` project.
@@ -9,14 +29,19 @@
*.iml
.idea/*.xml
.idea/.name
-.idea/libraries/**
-.idea/modules/**
+.idea/artifacts
+.idea/libraries
+.idea/modules
+.idea/shelf
# Do not ignore the following IDEA settings
!.idea/misc.xml
+!.idea/codeStyleSettings.xml
+!.idea/codeStyles/
+!.idea/copyright/
# Gradle interim configs
-.gradle/**
+**/.gradle/**
# Generated source code
**/generated/**
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index d1143f7669..5a399bd1a8 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -25,6 +25,27 @@
+
+
+
+
+
+
+
@@ -71,5 +92,8 @@
+
+
+
-
\ No newline at end of file
+
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
index 79ee123c2b..0f7bc519db 100644
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -2,4 +2,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 03926c8cc3..44917ef5e3 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -74,7 +74,6 @@
-
@@ -215,7 +214,6 @@
-
@@ -252,7 +250,6 @@
-
@@ -327,11 +324,7 @@
-
-
-
-
@@ -340,7 +333,6 @@
-
@@ -379,14 +371,13 @@
-
+
-
@@ -474,6 +465,7 @@
+
@@ -494,6 +486,7 @@
+
@@ -592,7 +585,6 @@
-
@@ -643,7 +635,6 @@
-
@@ -713,9 +704,6 @@
-
-
-
@@ -732,16 +720,13 @@
-
-
-
@@ -811,21 +796,13 @@
-
-
+
+
-
-
-
-
-
-
-
-
diff --git a/.idea/misc.xml b/.idea/misc.xml
index deb97c8116..e881be664a 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,12 +1,17 @@
+
+
+
+
+
-
\ No newline at end of file
+
diff --git a/README.md b/README.md
index a25e69ba25..2c7c12fbbd 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,109 @@
# Spine Dart
Components for developing Dart client-side applications based on Spine.
+
+## Prerequisites
+
+1. [JDK 1.8][openjdk].
+2. [Dart SDK][dart] or [Flutter SDK][flutter].
+
+[openjdk]: https://openjdk.java.net/install/index.html
+[dart]: https://dart.dev/get-dart
+[flutter]: https://flutter.dev/docs/get-started/install
+
+## How to configure pub
+
+[pub][pub] is a Dart package manager that is used by both Dart itself and Flutter.
+
+In order to be able to compile Protobuf messages into Dart code, one must
+configure the [Dart Protoc plugin][dart-protoc] available for install via `pub`.
+Please follow the steps below to configure the plugin.
+
+[pub]: https://dart.dev/tools/pub/cmd
+[dart-protoc]: https://pub.dev/packages/protoc_plugin
+
+### With Dart SDK
+
+If you're using Dart SDK, please execute the following steps to configure
+your local Path environment variable if not yet configured.
+
+In the snippets it is assumed that you have the Dart SDK installed at the
+`~/.dart` folder.
+
+1. Define `DART_HOME` environment variable as follows:
+
+ ```bash
+ export DART_HOME="~/.dart"
+ export PATH="$DART_HOME/bin:$PATH"
+ ```
+
+2. Define `PUB_CACHE` environment variable as follows:
+
+ The Pub cache may be available either in the user home directory or in the Dart SDK home
+ directory.
+
+ ```bash
+ export PUB_CACHE="~/.dart/.pub_cache"
+ export PATH="$PUB_CACHE/bin:$PATH"
+ ```
+
+You may want to add the above snippet to your `.bashrc` or `.zshrc` files
+in order to have the Dart in available all the time.
+
+3. Activate Dart Protoc plugin by running the following command.
+
+ ```bash
+ pub global activate protoc_plugin
+ ```
+
+### With Flutter SDK
+
+If you're using Flutter SDK, please execute the following steps to configure
+your local Path environment variable if not yet configured.
+
+In the snippets it is assumed that you have the Flutter SDK installed at the
+`~/.flutter` folder.
+
+1. Define `FLUTTER_HOME` environment variable as follows:
+
+ ```bash
+ export FLUTTER_HOME="~/.flutter"
+ export PATH="$FLUTTER_HOME/bin:$PATH"
+ ```
+
+2. Define `PUB_CACHE` environment variable as follows:
+
+ The Pub cache may be available either in the user home directory or in the Dart SDK home
+ directory.
+
+ ```bash
+ export PUB_CACHE="~/.flutter/.pub_cache"
+ export PATH="$PUB_CACHE/bin:$PATH"
+ ```
+
+3. Create `pub` alias.
+
+ By default, flutter provides its own `pub` reference available with `flutter pub`
+ command, but the tooling is expecting `pub` to be available.
+
+ ```bash
+ alias pub="flutter pub"
+ ```
+
+ On Windows, you may create a `pub.bat` script with the following content and
+ store it under `${FLUTTER_HOME}/bin` folder:
+
+ ```bat
+ @ECHO OFF
+ echo.
+ flutter pub %*
+ ```
+
+You may want to add the above snippets to your `.bashrc` or `.zshrc` files
+in order to have the Dart in available all the time.
+
+3. Activate Dart Protoc plugin by running the following command.
+
+ ```bash
+ flutter pub global activate protoc_plugin
+ ```
diff --git a/build.gradle.kts b/build.gradle.kts
index fa481aeed5..1324868fea 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -32,7 +32,7 @@ buildscript {
val deps = io.spine.gradle.internal.Deps
val spineBaseVersion: String by extra
-
+
resolution.defaultRepositories(repositories)
dependencies {
classpath(deps.build.gradlePlugins.protobuf)
diff --git a/buildSrc/src/main/kotlin/codegen.gradle.kts b/buildSrc/src/main/kotlin/codegen.gradle.kts
index 5dcad25767..92189e06fa 100644
--- a/buildSrc/src/main/kotlin/codegen.gradle.kts
+++ b/buildSrc/src/main/kotlin/codegen.gradle.kts
@@ -18,34 +18,32 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import org.apache.tools.ant.taskdefs.condition.Os
import java.io.File
+import org.apache.tools.ant.taskdefs.condition.Os
val windows = Os.isFamily(Os.FAMILY_WINDOWS)
-var pubCache: String
-var scriptExtension: String
-if (windows) {
- pubCache = "${System.getenv("LOCALAPPDATA")}/Pub/Cache/bin"
- scriptExtension = ".bat"
-} else {
- pubCache = "${System.getProperty("user.home")}/.pub-cache/bin"
- scriptExtension = ""
+var pubCache: String = System.getenv().getOrDefault("PUB_CACHE", "")
+var scriptExtension: String = if (windows) ".bat" else ""
+if (pubCache.isBlank() && windows) {
+ pubCache = "${System.getenv("LOCALAPPDATA")}/Pub/Cache"
+} else if (pubCache.isBlank()) {
+ pubCache = "${System.getProperty("user.home")}/.pub-cache"
}
-val command = "$pubCache/dart_code_gen$scriptExtension"
+val command = "$pubCache/bin/dart_code_gen$scriptExtension"
if (!file(command).exists()) {
logger.warn("Cannot locate `dart_code_gen` under `$command`.")
}
fun composeCommandLine(descriptor: File, targetDir: String, standardTypesPackage: String) =
- listOf(
- command,
- "--descriptor", "${file(descriptor)}",
- "--destination", "$targetDir/types.dart",
- "--standard-types", standardTypesPackage,
- "--import-prefix", "."
- )
+ listOf(
+ command,
+ "--descriptor", "${file(descriptor)}",
+ "--destination", "$targetDir/types.dart",
+ "--standard-types", standardTypesPackage,
+ "--import-prefix", "."
+ )
/**
* Task which launches Dart code generation from Protobuf.
@@ -54,8 +52,10 @@ open class GenerateDart : Exec() {
@Internal
var descriptor: Provider = project.objects.property(File::class.java)
+
@Internal
var target: String = ""
+
@Internal
var standardTypesPackage: String = ""
}
@@ -64,14 +64,16 @@ val generateDartName = "generateDart"
tasks.create(generateDartName, GenerateDart::class) {
@Suppress("UNCHECKED_CAST")
- descriptor = project.extensions["protoDart"].withGroovyBuilder { getProperty("mainDescriptorSet") } as Property
+ descriptor = project.extensions["protoDart"]
+ .withGroovyBuilder { getProperty("mainDescriptorSet") } as Property
target = "$projectDir/lib"
standardTypesPackage = "spine_client"
}
tasks.create("generateTestDart", GenerateDart::class) {
@Suppress("UNCHECKED_CAST")
- descriptor = project.extensions["protoDart"].withGroovyBuilder { getProperty("testDescriptorSet") } as Property
+ descriptor = project.extensions["protoDart"]
+ .withGroovyBuilder { getProperty("testDescriptorSet") } as Property
target = "$projectDir/test"
standardTypesPackage = "spine_client"
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/internal/IncrementGuard.kt b/buildSrc/src/main/kotlin/io/spine/gradle/internal/IncrementGuard.kt
index e3c729a056..406f71fd7f 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/internal/IncrementGuard.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/internal/IncrementGuard.kt
@@ -39,8 +39,8 @@ class IncrementGuard : Plugin {
*
* Only adds the check if the project is built on Travis CI and the job is a pull request.
*
- * The task will never run outside of Travis CI or when building individual branches. This is
- * done to prevent unexpected CI fails when re-building `master` multiple times, creating git
+ * The task only runs on non-master branches on GitHub Actions. This is done
+ * to prevent unexpected CI fails when re-building `master` multiple times, creating git
* tags, and in other cases that go outside of the "usual" development cycle.
*/
override fun apply(target: Project) {
@@ -50,25 +50,35 @@ class IncrementGuard : Plugin {
tasks.getByName("check").dependsOn(this)
shouldRunAfter("test")
- if (!isTravisPullRequest()) {
- logger.info("The build does not represent a Travis pull request job, the " +
- "`checkVersionIncrement` task is disabled.")
+ if (!shouldCheckVersion()) {
+ logger.info(
+ "The build does not represent a GitHub Actions feature branch job, " +
+ "the `checkVersionIncrement` task is disabled."
+ )
this.enabled = false
}
}
}
/**
- * Returns `true` if the current build is a Travis job which represents a GitHub pull request.
+ * Returns `true` if the current build is a GitHub Actions build which represents a push
+ * to a feature branch.
*
- * Implementation note: the `TRAVIS_PULL_REQUEST` environment variable contains the pull
- * request number rather than `"true"` in positive case, hence the check.
+ * Returns `false` if the associated reference is not a branch (e.g. a tag) or if it has
+ * the name which ends with `master`. So, on branches such as `master` and `2.x-jdk8-master`
+ * this method would return `false`.
*
- * @see
- * List of default environment variables provided for Travis builds
+ * @see
+ * List of default environment variables provided for GitHub Actions builds
*/
- private fun isTravisPullRequest(): Boolean {
- val isPullRequest = System.getenv("TRAVIS_PULL_REQUEST")
- return isPullRequest != null && isPullRequest != "false"
+ private fun shouldCheckVersion(): Boolean {
+ val eventName = System.getenv("GITHUB_EVENT_NAME")
+ if ("push" != eventName) {
+ return false
+ }
+ val reference = System.getenv("GITHUB_REF") ?: return false
+ val matches = Regex("refs/heads/(.+)").matchEntire(reference) ?: return false
+ val branch = matches.groupValues[1]
+ return !branch.endsWith("master")
}
}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/internal/RunBuild.kt b/buildSrc/src/main/kotlin/io/spine/gradle/internal/RunBuild.kt
index 48dd298ef5..62c3a77aa2 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/internal/RunBuild.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/internal/RunBuild.kt
@@ -70,8 +70,8 @@ open class RunBuild : DefaultTask() {
val command = mutableListOf()
command.add("${project.rootDir}/$script")
val shouldClean = project.gradle
- .taskGraph
- .hasTask(":clean")
+ .taskGraph
+ .hasTask(":clean")
if (shouldClean) {
command.add("clean")
}
@@ -83,10 +83,10 @@ open class RunBuild : DefaultTask() {
}
private fun buildProcess(command: List, errorOut: File, debugOut: File) =
- ProcessBuilder()
- .command(command)
- .directory(project.file(directory))
- .redirectError(errorOut)
- .redirectOutput(debugOut)
- .start()
+ ProcessBuilder()
+ .command(command)
+ .directory(project.file(directory))
+ .redirectError(errorOut)
+ .redirectOutput(debugOut)
+ .start()
}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/internal/deps.kt b/buildSrc/src/main/kotlin/io/spine/gradle/internal/deps.kt
index be5d1d097b..9cbdc17214 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/internal/deps.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/internal/deps.kt
@@ -32,9 +32,11 @@ import java.net.URI
* https://github.com/uber/NullAway/blob/master/gradle/dependencies.gradle
*/
-data class Repository(val releases: String,
- val snapshots: String,
- val credentials: String)
+data class Repository(
+ val releases: String,
+ val snapshots: String,
+ val credentials: String
+)
/**
* Repositories to which we may publish. Normally, only one repository will be used.
@@ -43,14 +45,14 @@ data class Repository(val releases: String,
*/
object PublishingRepos {
val mavenTeamDev = Repository(
- releases = "http://maven.teamdev.com/repository/spine",
- snapshots = "http://maven.teamdev.com/repository/spine-snapshots",
- credentials = "credentials.properties"
+ releases = "http://maven.teamdev.com/repository/spine",
+ snapshots = "http://maven.teamdev.com/repository/spine-snapshots",
+ credentials = "credentials.properties"
)
val cloudRepo = Repository(
- releases = "https://spine.mycloudrepo.io/public/repositories/releases",
- snapshots = "https://spine.mycloudrepo.io/public/repositories/snapshots",
- credentials = "cloudrepo.properties"
+ releases = "https://spine.mycloudrepo.io/public/repositories/releases",
+ snapshots = "https://spine.mycloudrepo.io/public/repositories/snapshots",
+ credentials = "cloudrepo.properties"
)
}
@@ -126,25 +128,25 @@ object GradlePlugins {
object Build {
val errorProneJavac = "com.google.errorprone:javac:${Versions.errorProneJavac}"
val errorProneAnnotations = listOf(
- "com.google.errorprone:error_prone_annotations:${Versions.errorProne}",
- "com.google.errorprone:error_prone_type_annotations:${Versions.errorProne}"
+ "com.google.errorprone:error_prone_annotations:${Versions.errorProne}",
+ "com.google.errorprone:error_prone_type_annotations:${Versions.errorProne}"
)
val errorProneCheckApi = "com.google.errorprone:error_prone_check_api:${Versions.errorProne}"
val errorProneCore = "com.google.errorprone:error_prone_core:${Versions.errorProne}"
val errorProneTestHelpers = "com.google.errorprone:error_prone_test_helpers:${Versions.errorProne}"
val checkerAnnotations = "org.checkerframework:checker-qual:${Versions.checkerFramework}"
val checkerDataflow = listOf(
- "org.checkerframework:dataflow:${Versions.checkerFramework}",
- "org.checkerframework:javacutil:${Versions.checkerFramework}"
+ "org.checkerframework:dataflow:${Versions.checkerFramework}",
+ "org.checkerframework:javacutil:${Versions.checkerFramework}"
)
val autoCommon = "com.google.auto:auto-common:${Versions.autoCommon}"
val autoService = AutoService
val jsr305Annotations = "com.google.code.findbugs:jsr305:${Versions.findBugs}"
val guava = "com.google.guava:guava:${Versions.guava}"
val flogger = "com.google.flogger:flogger:${Versions.flogger}"
- val protobuf = listOf(
- "com.google.protobuf:protobuf-java:${Versions.protobuf}",
- "com.google.protobuf:protobuf-java-util:${Versions.protobuf}"
+ val protobuf = listOf(
+ "com.google.protobuf:protobuf-java:${Versions.protobuf}",
+ "com.google.protobuf:protobuf-java-util:${Versions.protobuf}"
)
val protoc = "com.google.protobuf:protoc:${Versions.protobuf}"
val googleHttpClient = "com.google.http-client:google-http-client:${Versions.httpClient}"
@@ -224,20 +226,20 @@ object Runtime {
object Test {
val junit4 = "junit:junit:${Versions.junit4}"
- val junit5Api = listOf(
- "org.junit.jupiter:junit-jupiter-api:${Versions.junit5}",
- "org.junit.jupiter:junit-jupiter-params:${Versions.junit5}",
- "org.apiguardian:apiguardian-api:${Versions.apiguardian}"
+ val junit5Api = listOf(
+ "org.junit.jupiter:junit-jupiter-api:${Versions.junit5}",
+ "org.junit.jupiter:junit-jupiter-params:${Versions.junit5}",
+ "org.apiguardian:apiguardian-api:${Versions.apiguardian}"
)
val junit5Runner = "org.junit.jupiter:junit-jupiter-engine:${Versions.junit5}"
val junitPioneer = "org.junit-pioneer:junit-pioneer:${Versions.junitPioneer}"
val guavaTestlib = "com.google.guava:guava-testlib:${Versions.guava}"
val mockito = "org.mockito:mockito-core:2.12.0"
val hamcrest = "org.hamcrest:hamcrest-all:1.3"
- val truth = listOf(
- "com.google.truth:truth:${Versions.truth}",
- "com.google.truth.extensions:truth-java8-extension:${Versions.truth}",
- "com.google.truth.extensions:truth-proto-extension:${Versions.truth}"
+ val truth = listOf(
+ "com.google.truth:truth:${Versions.truth}",
+ "com.google.truth.extensions:truth-java8-extension:${Versions.truth}",
+ "com.google.truth.extensions:truth-proto-extension:${Versions.truth}"
)
@Deprecated("Use Flogger over SLF4J.",
replaceWith = ReplaceWith("Deps.runtime.floggerSystemBackend"))
@@ -298,36 +300,36 @@ object DependencyResolution {
cacheChangingModulesFor(0, "seconds")
@Suppress("DEPRECATION") // Force SLF4J version.
force(
- Deps.build.slf4j,
- Deps.build.errorProneAnnotations,
- Deps.build.jsr305Annotations,
- Deps.build.checkerAnnotations,
- Deps.build.autoCommon,
- Deps.build.guava,
- Deps.build.animalSniffer,
- Deps.build.protobuf,
- Deps.test.guavaTestlib,
- Deps.test.truth,
- Deps.test.junit5Api,
- Deps.test.junit4,
-
- // Transitive dependencies of 3rd party components that we don't use directly.
- "org.junit.platform:junit-platform-commons:${Versions.junitPlatform}",
- "com.google.auto.value:auto-value-annotations:1.7.4",
- "com.google.auto.service:auto-service-annotations:1.0-rc7",
- "com.google.code.gson:gson:2.8.6",
- "com.google.j2objc:j2objc-annotations:1.3",
- "org.codehaus.plexus:plexus-utils:3.3.0",
- "com.squareup.okio:okio:1.17.5", // Last version before next major.
- "commons-cli:commons-cli:1.4",
-
- // Force discontinued transitive dependency until everybody migrates off it.
- "org.checkerframework:checker-compat-qual:2.5.5",
-
- "commons-logging:commons-logging:1.2",
-
- // Force the Gradle Protobuf plugin version.
- Deps.build.gradlePlugins.protobuf
+ Deps.build.slf4j,
+ Deps.build.errorProneAnnotations,
+ Deps.build.jsr305Annotations,
+ Deps.build.checkerAnnotations,
+ Deps.build.autoCommon,
+ Deps.build.guava,
+ Deps.build.animalSniffer,
+ Deps.build.protobuf,
+ Deps.test.guavaTestlib,
+ Deps.test.truth,
+ Deps.test.junit5Api,
+ Deps.test.junit4,
+
+ // Transitive dependencies of 3rd party components that we don't use directly.
+ "org.junit.platform:junit-platform-commons:${Versions.junitPlatform}",
+ "com.google.auto.value:auto-value-annotations:1.7.4",
+ "com.google.auto.service:auto-service-annotations:1.0-rc7",
+ "com.google.code.gson:gson:2.8.6",
+ "com.google.j2objc:j2objc-annotations:1.3",
+ "org.codehaus.plexus:plexus-utils:3.3.0",
+ "com.squareup.okio:okio:1.17.5", // Last version before next major.
+ "commons-cli:commons-cli:1.4",
+
+ // Force discontinued transitive dependency until everybody migrates off it.
+ "org.checkerframework:checker-compat-qual:2.5.5",
+
+ "commons-logging:commons-logging:1.2",
+
+ // Force the Gradle Protobuf plugin version.
+ Deps.build.gradlePlugins.protobuf
)
}
}
@@ -338,10 +340,13 @@ object DependencyResolution {
excludeProtoLite(configurations, "testRuntime")
}
- private fun excludeProtoLite(configurations: ConfigurationContainer,
- configurationName: String) {
- configurations.named(configurationName).get()
- .exclude(mapOf("group" to "com.google.protobuf", "module" to "protobuf-lite"))
+ private fun excludeProtoLite(
+ configurations: ConfigurationContainer,
+ configurationName: String
+ ) {
+ configurations
+ .named(configurationName).get()
+ .exclude(mapOf("group" to "com.google.protobuf", "module" to "protobuf-lite"))
}
fun defaultRepositories(repositories: RepositoryHandler) {
diff --git a/client/build.gradle.kts b/client/build.gradle.kts
index a6893246d8..4257c06be7 100644
--- a/client/build.gradle.kts
+++ b/client/build.gradle.kts
@@ -19,7 +19,13 @@
*/
import com.google.common.io.Files
-import com.google.protobuf.gradle.*
+import com.google.protobuf.gradle.builtins
+import com.google.protobuf.gradle.generateProtoTasks
+import com.google.protobuf.gradle.id
+import com.google.protobuf.gradle.plugins
+import com.google.protobuf.gradle.protobuf
+import com.google.protobuf.gradle.remove
+import com.google.protobuf.gradle.testProtobuf
import io.spine.gradle.internal.Deps
plugins {
diff --git a/config b/config
index 8ed8f64021..767dfbc093 160000
--- a/config
+++ b/config
@@ -1 +1 @@
-Subproject commit 8ed8f64021dcd5bdfb27f6ee0d00bddad7f92275
+Subproject commit 767dfbc093bb99c44e631034b1c69cbc58bc3536
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index be52383ef4..4d9ca16491 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/integration-tests/client-test/build.gradle.kts b/integration-tests/client-test/build.gradle.kts
index 97680e16a7..7f137514cb 100644
--- a/integration-tests/client-test/build.gradle.kts
+++ b/integration-tests/client-test/build.gradle.kts
@@ -18,7 +18,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import com.google.protobuf.gradle.*
+import com.google.protobuf.gradle.builtins
+import com.google.protobuf.gradle.generateProtoTasks
+import com.google.protobuf.gradle.id
+import com.google.protobuf.gradle.plugins
+import com.google.protobuf.gradle.protobuf
+import com.google.protobuf.gradle.remove
+import com.google.protobuf.gradle.testProtobuf
import io.spine.gradle.internal.Deps
import org.apache.tools.ant.taskdefs.condition.Os
diff --git a/integration-tests/test-app/build.gradle.kts b/integration-tests/test-app/build.gradle.kts
index 5799016aa6..cee9e172d6 100644
--- a/integration-tests/test-app/build.gradle.kts
+++ b/integration-tests/test-app/build.gradle.kts
@@ -31,7 +31,7 @@ buildscript {
plugins {
java
- id("org.gretty") version ("3.0.1")
+ id("org.gretty") version ("3.0.3")
id("com.github.psxpaul.execfork") version ("0.1.13")
}
diff --git a/integration-tests/test-app/src/main/java/io/spine/web/test/given/Application.java b/integration-tests/test-app/src/main/java/io/spine/web/test/given/Application.java
index 10144d9e98..ef1b7d9a89 100644
--- a/integration-tests/test-app/src/main/java/io/spine/web/test/given/Application.java
+++ b/integration-tests/test-app/src/main/java/io/spine/web/test/given/Application.java
@@ -90,7 +90,10 @@ static Application create(BoundedContext boundedContext) {
}
private static FirebaseClient buildClient() {
- Resource googleCredentialsFile = Resource.file("spine-dev.json");
+ Resource googleCredentialsFile = Resource.file(
+ "spine-dev.json",
+ Application.class.getClassLoader()
+ );
// Same credentials but represented with different Java objects.
GoogleCredentials credentials;
diff --git a/version.gradle.kts b/version.gradle.kts
index 76e88e8208..713ba787b5 100644
--- a/version.gradle.kts
+++ b/version.gradle.kts
@@ -29,6 +29,6 @@
* already in the root directory.
*/
-val spineBaseVersion: String by extra("1.6.11")
-val spineWebVersion: String by extra("1.6.6")
+val spineBaseVersion: String by extra("1.6.16")
+val spineWebVersion: String by extra("1.6.16")
val versionToPublish: String by extra(spineBaseVersion)