diff --git a/.github/workflows/build-on-ubuntu.yml b/.github/workflows/build-on-ubuntu.yml index 55bb482f644..028e583577b 100644 --- a/.github/workflows/build-on-ubuntu.yml +++ b/.github/workflows/build-on-ubuntu.yml @@ -8,11 +8,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'true' - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: 11 distribution: zulu @@ -31,7 +31,8 @@ jobs: require_tests: true # will fail workflow if test reports not found - name: Upload code coverage report - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: + token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false verbose: true diff --git a/.github/workflows/build-on-windows.yml b/.github/workflows/build-on-windows.yml index 47fefa69164..3627bbff8b2 100644 --- a/.github/workflows/build-on-windows.yml +++ b/.github/workflows/build-on-windows.yml @@ -8,15 +8,16 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'true' - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: 11 distribution: zulu cache: gradle + # See: https://github.com/al-cheb/configure-pagefile-action - name: Configure Pagefile uses: al-cheb/configure-pagefile-action@v1.3 diff --git a/.github/workflows/ensure-reports-updated.yml b/.github/workflows/ensure-reports-updated.yml index f16798e12ab..fdd8b8e6739 100644 --- a/.github/workflows/ensure-reports-updated.yml +++ b/.github/workflows/ensure-reports-updated.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: # Configure the checkout of all branches, so that it is possible to run the comparison. fetch-depth: 0 diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 47e2938e179..a13b191195d 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout latest code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/increment-guard.yml b/.github/workflows/increment-guard.yml index b33fd74a274..a1c90c3120f 100644 --- a/.github/workflows/increment-guard.yml +++ b/.github/workflows/increment-guard.yml @@ -14,11 +14,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'true' - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: 11 distribution: zulu diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index cadc62cc61e..73a0a69f238 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,11 +8,11 @@ jobs: publish: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'true' - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: 11 distribution: zulu diff --git a/.idea/copyright/TeamDev_Open_Source.xml b/.idea/copyright/TeamDev_Open_Source.xml index 14d7385efba..cea7fede32d 100644 --- a/.idea/copyright/TeamDev_Open_Source.xml +++ b/.idea/copyright/TeamDev_Open_Source.xml @@ -1,6 +1,6 @@ - diff --git a/build.gradle.kts b/build.gradle.kts index 2659d7c0995..112bc8a4b15 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -65,14 +65,13 @@ buildscript { val spine = io.spine.internal.dependency.Spine @Suppress("DEPRECATION") // To force `Kotlin.stdLibJdk7`. force( + io.spine.internal.dependency.Grpc.api, io.spine.internal.dependency.Kotlin.stdLibJdk7, spine.base, spine.toolBase, spine.server, spine.reflect, io.spine.internal.dependency.Spine.Logging.lib, - io.spine.internal.dependency.Spine.Logging.middleware, - io.spine.internal.dependency.Spine.Logging.floggerApi, io.spine.internal.dependency.Validation.runtime, ) } @@ -80,7 +79,7 @@ buildscript { } dependencies { - classpath(io.spine.internal.dependency.Spine.McJava.pluginLib) + classpath(mcJava.pluginLib) } } @@ -111,7 +110,6 @@ spinePublishing { destinations = with(PublishingRepos) { setOf( - cloudRepo, gitHub("core-java"), cloudArtifactRegistry ) @@ -349,8 +347,6 @@ fun Subproject.forceConfigurations() { Validation.runtime, Spine.time, Spine.Logging.lib, - Spine.Logging.middleware, - Spine.Logging.floggerApi, Spine.baseTypes, Spine.change, Spine.reflect, diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index d5e76bfd3aa..aba23be74f6 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -5,7 +5,7 @@ * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -36,7 +36,7 @@ plugins { `kotlin-dsl` // https://github.com/jk1/Gradle-License-Report/releases - id("com.github.jk1.dependency-license-report").version("2.1") + id("com.github.jk1.dependency-license-report").version("2.7") // https://github.com/johnrengelman/shadow/releases id("com.github.johnrengelman.shadow").version("7.1.2") @@ -51,8 +51,8 @@ repositories { /** * The version of Jackson used by `buildSrc`. * - * Please keep this value in sync. with `io.spine.internal.dependency.Jackson.version`. - * It's not a requirement, but would be good in terms of consistency. + * Please keep this value in sync with [io.spine.internal.dependency.Jackson.version]. + * It is not a requirement but would be good in terms of consistency. */ val jacksonVersion = "2.15.3" @@ -66,7 +66,7 @@ val jacksonVersion = "2.15.3" */ val googleAuthToolVersion = "2.1.5" -val licenseReportVersion = "2.1" +val licenseReportVersion = "2.7" val grGitVersion = "4.1.1" @@ -114,7 +114,7 @@ val protobufPluginVersion = "0.9.4" * @see * Dokka Releases */ -val dokkaVersion = "1.9.10" +val dokkaVersion = "1.9.20" /** * The version of Detekt Gradle Plugin. diff --git a/buildSrc/src/main/kotlin/BuildExtensions.kt b/buildSrc/src/main/kotlin/BuildExtensions.kt index 9e51bca3c03..35faf3efb1d 100644 --- a/buildSrc/src/main/kotlin/BuildExtensions.kt +++ b/buildSrc/src/main/kotlin/BuildExtensions.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -30,23 +30,19 @@ import io.spine.internal.dependency.ErrorProne import io.spine.internal.dependency.GradleDoctor import io.spine.internal.dependency.Kotest import io.spine.internal.dependency.Kover +import io.spine.internal.dependency.Ksp +import io.spine.internal.dependency.McJava import io.spine.internal.dependency.ProtoData +import io.spine.internal.dependency.ProtoTap import io.spine.internal.dependency.Protobuf -import io.spine.internal.dependency.Spine import io.spine.internal.gradle.standardToSpineSdk import org.gradle.api.Project import org.gradle.api.Task +import org.gradle.api.tasks.JavaExec import org.gradle.kotlin.dsl.ScriptHandlerScope import org.gradle.plugin.use.PluginDependenciesSpec import org.gradle.plugin.use.PluginDependencySpec -/** - * Applies [standard][standardToSpineSdk] repositories to this `buildscript`. - */ -fun ScriptHandlerScope.standardSpineSdkRepositories() { - repositories.standardToSpineSdk() -} - /** * Provides shortcuts to reference our dependency objects. * @@ -61,28 +57,48 @@ fun ScriptHandlerScope.standardSpineSdkRepositories() { * get() = id(GradleDoctor.pluginId).version(GradleDoctor.version) * ``` * - * But for some plugins, it's impossible to apply them directly to a project. + * But for some plugins, it is impossible to apply them directly to a project. * For example, when a plugin is not published to Gradle Portal, it can only be - * applied with buildscript's classpath. Thus, it's needed to leave some freedom + * applied with the buildscript's classpath. Thus, it is necessary to leave some freedom * upon how to apply them. In such cases, just a shortcut to a dependency object - * can be declared, without applying of the plugin in-place. + * can be declared without applying the plugin in-place. */ private const val ABOUT_DEPENDENCY_EXTENSIONS = "" /** - * Shortcut to [Spine.McJava] dependency object. + * Applies [standard][standardToSpineSdk] repositories to this `buildscript`. + */ +fun ScriptHandlerScope.standardSpineSdkRepositories() { + repositories.standardToSpineSdk() +} + +/** + * Shortcut to [McJava] dependency object for using under `buildScript`. + */ +val ScriptHandlerScope.mcJava: McJava + get() = McJava + +/** + * Shortcut to [McJava] dependency object. * * This plugin is not published to Gradle Portal and cannot be applied directly to a project. * Firstly, it should be put to buildscript's classpath and then applied by ID only. */ -val PluginDependenciesSpec.mcJava: Spine.McJava - get() = Spine.McJava +val PluginDependenciesSpec.mcJava: McJava + get() = McJava + +/** + * Shortcut to [ProtoData] dependency object for using under `buildscript`. + */ +val ScriptHandlerScope.protoData: ProtoData + get() = ProtoData /** * Shortcut to [ProtoData] dependency object. * - * This plugin is in Gradle Portal. But when used in pair with [mcJava], it cannot be applied - * directly to a project. It is so, because [mcJava] uses [protoData] as its dependency. + * This plugin is published at Gradle Plugin Portal. + * But when used in a pair with [mcJava], it cannot be applied directly to a project. + * It is so, because [mcJava] uses [protoData] as its dependency. * And buildscript's classpath ends up with both of them. */ val PluginDependenciesSpec.protoData: ProtoData @@ -95,8 +111,8 @@ val PluginDependenciesSpec.protoData: ProtoData * declared in auto-generated `org.gradle.kotlin.dsl.PluginAccessors.kt` file. * It conflicts with our own declarations. * - * Declaring of top-level shortcuts eliminates need in applying plugins - * using fully-qualified name of dependency objects. + * Declaring of top-level shortcuts eliminates the need in applying plugins + * using fully qualified name of dependency objects. * * It is still possible to apply a plugin with a custom version, if needed. * Just declare a version again on the returned [PluginDependencySpec]. @@ -117,6 +133,9 @@ val PluginDependenciesSpec.errorprone: PluginDependencySpec val PluginDependenciesSpec.protobuf: PluginDependencySpec get() = id(Protobuf.GradlePlugin.id) +val PluginDependenciesSpec.prototap: PluginDependencySpec + get() = id(ProtoTap.gradlePluginId).version(ProtoTap.version) + val PluginDependenciesSpec.`gradle-doctor`: PluginDependencySpec get() = id(GradleDoctor.pluginId).version(GradleDoctor.version) @@ -128,13 +147,16 @@ val PluginDependenciesSpec.kotest: PluginDependencySpec val PluginDependenciesSpec.kover: PluginDependencySpec get() = id(Kover.id).version(Kover.version) +val PluginDependenciesSpec.ksp: PluginDependencySpec + get() = id(Ksp.id).version(Ksp.version) + /** * Configures the dependencies between third-party Gradle tasks * and those defined via ProtoData and Spine Model Compiler. * - * It is required in order to avoid warnings in build logs, detecting the undeclared + * It is required to avoid warnings in build logs, detecting the undeclared * usage of Spine-specific task output by other tasks, - * e.g. the output of `launchProtoData` is used by `compileKotlin`. + * e.g., the output of `launchProtoData` is used by `compileKotlin`. */ @Suppress("unused") fun Project.configureTaskDependencies() { @@ -176,3 +198,50 @@ fun Project.configureTaskDependencies() { "publishPluginJar".dependOn(createVersionFile) } } + +/** + * Obtains all modules names of which do not have `"-tests"` as the suffix. + * + * By convention, such modules are for integration tests and should be treated differently. + */ +val Project.productionModules: Iterable + get() = rootProject.subprojects.filter { !it.name.contains("-tests") } + + +/** + * Sets the remote debug option for this task. + * + * The port number is [5566][BuildSettings.REMOTE_DEBUG_PORT]. + * + * @param enabled If `true` the task will be suspended. + */ +fun Task.remoteDebug(enabled: Boolean = true) { this as JavaExec + debugOptions { + this@debugOptions.enabled.set(enabled) + port.set(BuildSettings.REMOTE_DEBUG_PORT) + server.set(true) + suspend.set(true) + } +} + +/** + * Sets remote debug options for the `launchProtoData` task. + * + * @param enabled if `true` the task will be suspended. + * + * @see remoteDebug + */ +fun Project.protoDataRemoteDebug(enabled: Boolean = true) { + tasks.findByName("launchProtoData")?.remoteDebug(enabled) +} + +/** + * Sets remote debug options for the `launchTestProtoData` task. + * + * @param enabled if `true` the task will be suspended. + * + * @see remoteDebug + */ +fun Project.testProtoDataRemoteDebug(enabled: Boolean = true) { + tasks.findByName("launchTestProtoData")?.remoteDebug(enabled) +} diff --git a/buildSrc/src/main/kotlin/BuildSettings.kt b/buildSrc/src/main/kotlin/BuildSettings.kt index 1adbb92b947..0e3eb977d66 100644 --- a/buildSrc/src/main/kotlin/BuildSettings.kt +++ b/buildSrc/src/main/kotlin/BuildSettings.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -27,10 +27,11 @@ import org.gradle.jvm.toolchain.JavaLanguageVersion /** - * This object provides high-level constants, like version of JVM, to be used + * This object provides high-level constants, like the version of JVM, to be used * throughout the project. */ object BuildSettings { private const val JVM_VERSION = 11 val javaVersion: JavaLanguageVersion = JavaLanguageVersion.of(JVM_VERSION) + const val REMOTE_DEBUG_PORT = 5566 } diff --git a/buildSrc/src/main/kotlin/DependencyResolution.kt b/buildSrc/src/main/kotlin/DependencyResolution.kt index 3fa0440d9d2..fd41c25d27a 100644 --- a/buildSrc/src/main/kotlin/DependencyResolution.kt +++ b/buildSrc/src/main/kotlin/DependencyResolution.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -36,7 +36,6 @@ import io.spine.internal.dependency.CommonsLogging import io.spine.internal.dependency.Dokka import io.spine.internal.dependency.ErrorProne import io.spine.internal.dependency.FindBugs -import io.spine.internal.dependency.Grpc import io.spine.internal.dependency.Gson import io.spine.internal.dependency.Guava import io.spine.internal.dependency.Hamcrest @@ -51,14 +50,18 @@ import io.spine.internal.dependency.OpenTest4J import io.spine.internal.dependency.Plexus import io.spine.internal.dependency.Protobuf import io.spine.internal.dependency.Slf4J +import io.spine.internal.dependency.Spine import io.spine.internal.dependency.Truth import org.gradle.api.NamedDomainObjectContainer +import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurationContainer +import org.gradle.api.artifacts.ModuleDependency import org.gradle.api.artifacts.ResolutionStrategy +import org.gradle.kotlin.dsl.exclude /** - * The function to be used in `buildscript` when a fully-qualified call must be made. + * The function to be used in `buildscript` when a fully qualified call must be made. */ @Suppress("unused") fun doForceVersions(configurations: ConfigurationContainer) { @@ -93,7 +96,6 @@ private fun ResolutionStrategy.forceProductionDependencies() { FindBugs.annotations, Gson.lib, Guava.lib, - Grpc.api, Kotlin.reflect, Kotlin.stdLib, Kotlin.stdLibCommon, @@ -124,6 +126,10 @@ private fun ResolutionStrategy.forceTestDependencies() { private fun ResolutionStrategy.forceTransitiveDependencies() { force( Asm.lib, + Asm.tree, + Asm.analysis, + Asm.util, + Asm.commons, AutoValue.annotations, CommonsCli.lib, CommonsCodec.lib, @@ -164,3 +170,37 @@ fun NamedDomainObjectContainer.excludeProtobufLite() { excludeProtoLite("runtimeOnly") excludeProtoLite("testRuntimeOnly") } + +/** + * Excludes `spine-base` from the dependencies. + */ +@Suppress("unused") +fun ModuleDependency.excludeSpineBase() { + exclude(group = Spine.group, module = "spine-base") +} + +/** + * Forces the version of [Spine.base] in the given project. + */ +@Suppress("unused") +fun Project.forceSpineBase() { + configurations.all { + resolutionStrategy { + force(Spine.base) + } + } +} + +/** + * Forces configurations containing `"proto"` in their names (disregarding the case) to + * use [Spine.baseForBuildScript]. + */ +fun Project.forceBaseInProtoTasks() { + configurations.configureEach { + if (name.toLowerCase().contains("proto")) { + resolutionStrategy { + force(Spine.baseForBuildScript) + } + } + } +} diff --git a/buildSrc/src/main/kotlin/DokkaExts.kt b/buildSrc/src/main/kotlin/DokkaExts.kt index 1214f4d6de1..c6d619c404b 100644 --- a/buildSrc/src/main/kotlin/DokkaExts.kt +++ b/buildSrc/src/main/kotlin/DokkaExts.kt @@ -5,7 +5,7 @@ * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -40,6 +40,8 @@ import org.gradle.kotlin.dsl.DependencyHandlerScope import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.DokkaBaseConfiguration +import org.jetbrains.dokka.gradle.AbstractDokkaLeafTask +import org.jetbrains.dokka.gradle.AbstractDokkaTask import org.jetbrains.dokka.gradle.DokkaTask import org.jetbrains.dokka.gradle.GradleDokkaSourceSetBuilder @@ -56,7 +58,7 @@ fun DependencyHandlerScope.useDokkaForKotlinAsJava() { /** * To exclude pieces of code annotated with `@Internal` from the documentation - * a custom plugin is added to the Dokka's classpath. + * a custom plugin is added to the Dokka classpath. * * @see * Custom Dokka Plugins @@ -71,12 +73,35 @@ private fun DependencyHandler.dokkaPlugin(dependencyNotation: Any): Dependency? private fun Project.dokkaOutput(language: String): File = buildDir.resolve("docs/dokka${language.capitalized()}") -private fun Project.dokkaConfigFile(file: String): File { +fun Project.dokkaConfigFile(file: String): File { val dokkaConfDir = project.rootDir.resolve("buildSrc/src/main/resources/dokka") return dokkaConfDir.resolve(file) } -private fun DokkaTask.configureFor(language: String) { +/** + * Configures the presentation style, logo, and footer message. + * + * Dokka Base plugin allows setting a few properties to customize the output: + * - `customStyleSheets` property to which CSS files are passed overriding + * styles generated by Dokka; + * - `customAssets` property to provide resources. The image with the name + * "logo-icon.svg" is passed to override the default logo used by Dokka; + * - `separateInheritedMembers` when set to `true`, creates a separate tab in + * type-documentation for inherited members. + * + * @see + * Dokka modifying frontend assets + */ +fun AbstractDokkaTask.configureStyle() { + pluginConfiguration { + customStyleSheets = listOf(project.dokkaConfigFile("styles/custom-styles.css")) + customAssets = listOf(project.dokkaConfigFile("assets/logo-icon.svg")) + separateInheritedMembers = true + footerMessage = "Copyright ${LocalDate.now().year}, TeamDev" + } +} + +private fun AbstractDokkaLeafTask.configureFor(language: String) { dokkaSourceSets.configureEach { /** * Configures links to the external Java documentation. @@ -85,6 +110,8 @@ private fun DokkaTask.configureFor(language: String) { skipEmptyPackages.set(true) + includeNonPublic.set(true) + documentedVisibilities.set( setOf( DokkaConfiguration.Visibility.PUBLIC, @@ -95,38 +122,20 @@ private fun DokkaTask.configureFor(language: String) { outputDirectory.set(project.dokkaOutput(language)) - /** - * Dokka Base plugin allows to set a few properties to customize the output: - * - * - `customStyleSheets` property to which CSS files are passed overriding - * styles generated by Dokka; - * - `customAssets` property to provide resources. The image with the name - * "logo-icon.svg" is passed to override the default logo used by Dokka; - * - `separateInheritedMembers` when set to `true`, creates a separate tab in - * type-documentation for inherited members. - * - * @see - * Dokka modifying frontend assets - */ - pluginConfiguration { - customStyleSheets = listOf(project.dokkaConfigFile("styles/custom-styles.css")) - customAssets = listOf(project.dokkaConfigFile("assets/logo-icon.svg")) - separateInheritedMembers = true - footerMessage = "Copyright ${LocalDate.now().year}, TeamDev" - } + configureStyle() } /** * Configures this [DokkaTask] to accept only Kotlin files. */ -fun DokkaTask.configureForKotlin() { +fun AbstractDokkaLeafTask.configureForKotlin() { configureFor("kotlin") } /** * Configures this [DokkaTask] to accept only Java files. */ -fun DokkaTask.configureForJava() { +fun AbstractDokkaLeafTask.configureForJava() { configureFor("java") } @@ -143,6 +152,7 @@ fun TaskContainer.dokkaHtmlTask(): DokkaTask? = this.findByName("dokkaHtml") as * Dokka can properly generate documentation for either Kotlin or Java depending on * the configuration, but not both. */ +@Suppress("unused") internal fun GradleDokkaSourceSetBuilder.onlyJavaSources(): FileCollection { return sourceRoots.filter(File::isJavaSourceDirectory) } @@ -167,6 +177,19 @@ fun Project.dokkaKotlinJar(): TaskProvider = tasks.getOrCreate("dokkaKotlin } } +/** + * Tells if this task belongs to the execution graph which contains publishing tasks. + * + * The task `"publishToMavenLocal"` is excluded from the check because it is a part of + * the local testing workflow. + */ +fun DokkaTask.isInPublishingGraph(): Boolean = + project.gradle.taskGraph.allTasks.any { + with(it.name) { + startsWith("publish") && !startsWith("publishToMavenLocal") + } + } + /** * Locates or creates `dokkaJavaJar` task in this [Project]. * diff --git a/buildSrc/src/main/kotlin/compile-protobuf.gradle.kts b/buildSrc/src/main/kotlin/compile-protobuf.gradle.kts index baffe25165f..c5be445a2c8 100644 --- a/buildSrc/src/main/kotlin/compile-protobuf.gradle.kts +++ b/buildSrc/src/main/kotlin/compile-protobuf.gradle.kts @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following diff --git a/buildSrc/src/main/kotlin/config-tester.gradle.kts b/buildSrc/src/main/kotlin/config-tester.gradle.kts index 14a236c63bc..faf3113df01 100644 --- a/buildSrc/src/main/kotlin/config-tester.gradle.kts +++ b/buildSrc/src/main/kotlin/config-tester.gradle.kts @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following diff --git a/buildSrc/src/main/kotlin/detekt-code-analysis.gradle.kts b/buildSrc/src/main/kotlin/detekt-code-analysis.gradle.kts index 89151fb0fe4..503114d7a96 100644 --- a/buildSrc/src/main/kotlin/detekt-code-analysis.gradle.kts +++ b/buildSrc/src/main/kotlin/detekt-code-analysis.gradle.kts @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following diff --git a/buildSrc/src/main/kotlin/dokka-for-java.gradle.kts b/buildSrc/src/main/kotlin/dokka-for-java.gradle.kts index 0e5087a1f91..8dc4df464f1 100644 --- a/buildSrc/src/main/kotlin/dokka-for-java.gradle.kts +++ b/buildSrc/src/main/kotlin/dokka-for-java.gradle.kts @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -37,4 +37,7 @@ dependencies { tasks.withType().configureEach { configureForJava() + onlyIf { + (it as DokkaTask).isInPublishingGraph() + } } diff --git a/buildSrc/src/main/kotlin/dokka-for-kotlin.gradle.kts b/buildSrc/src/main/kotlin/dokka-for-kotlin.gradle.kts index 0b12a0ddc77..5f20e007140 100644 --- a/buildSrc/src/main/kotlin/dokka-for-kotlin.gradle.kts +++ b/buildSrc/src/main/kotlin/dokka-for-kotlin.gradle.kts @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -36,4 +36,7 @@ dependencies { tasks.withType().configureEach { configureForKotlin() + onlyIf { + (it as DokkaTask).isInPublishingGraph() + } } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Aedile.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Aedile.kt new file mode 100644 index 00000000000..95292dd6379 --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Aedile.kt @@ -0,0 +1,38 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +package io.spine.internal.dependency + +/** + * A Kotlin wrapper over [Caffeine]. + * + * @see Aedile at GitHub + */ +@Suppress("unused") +object Aedile { + private const val version = "1.3.1" + const val lib = "com.sksamuel.aedile:aedile-core:$version" +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Asm.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Asm.kt index 82550efe3ca..a6339fb54e8 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Asm.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Asm.kt @@ -29,6 +29,14 @@ package io.spine.internal.dependency // https://asm.ow2.io/ @Suppress("unused", "ConstPropertyName") object Asm { - private const val version = "9.2" + private const val version = "9.6" const val lib = "org.ow2.asm:asm:$version" + + // We use the following artifacts only to force the versions + // of the dependencies which are transitive for us. + // + const val tree = "org.ow2.asm:asm-tree:$version" + const val analysis = "org.ow2.asm:asm-analysis:$version" + const val util = "org.ow2.asm:asm-util:$version" + const val commons = "org.ow2.asm:asm-commons:$version" } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Auto.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Auto.kt index 21674394ceb..9a6a0edb984 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Auto.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Auto.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -31,13 +31,13 @@ package io.spine.internal.dependency // https://github.com/google/auto object AutoCommon { private const val version = "1.2.2" - const val lib = "com.google.auto:auto-common:${version}" + const val lib = "com.google.auto:auto-common:$version" } // https://github.com/google/auto object AutoService { private const val version = "1.1.1" - const val annotations = "com.google.auto.service:auto-service-annotations:${version}" + const val annotations = "com.google.auto.service:auto-service-annotations:$version" @Suppress("unused") const val processor = "com.google.auto.service:auto-service:${version}" } @@ -45,5 +45,16 @@ object AutoService { // https://github.com/google/auto object AutoValue { private const val version = "1.10.2" - const val annotations = "com.google.auto.value:auto-value-annotations:${version}" + const val annotations = "com.google.auto.value:auto-value-annotations:$version" +} + +// https://github.com/ZacSweers/auto-service-ksp +object AutoServiceKsp { + /** + * The latest version compatible with Kotlin 1.8.22. + * + * @see Ksp.version + */ + private const val version = "1.1.0" + const val processor = "dev.zacsweers.autoservice:auto-service-ksp:$version" } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Caffeine.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Caffeine.kt new file mode 100644 index 00000000000..ae5240e3b64 --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Caffeine.kt @@ -0,0 +1,41 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +package io.spine.internal.dependency + +/** + * A [high performance](https://github.com/ben-manes/caffeine/wiki/Benchmarks), + * [near optimal](https://github.com/ben-manes/caffeine/wiki/Efficiency) caching library. + * + * This library is a transitive dependency for us via ErrorProne. + * + * @see Caffeine at GitHub + */ +@Suppress("unused") +object Caffeine { + private const val version = "3.0.5" + const val lib = "com.github.ben-manes.caffeine:caffeine:$version" +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Clikt.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Clikt.kt new file mode 100644 index 00000000000..f1515e4cee0 --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Clikt.kt @@ -0,0 +1,33 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +package io.spine.internal.dependency + +// https://ajalt.github.io/clikt/ +object Clikt { + private const val version = "3.5.2" + const val lib = "com.github.ajalt.clikt:clikt:$version" +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Dokka.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Dokka.kt index 6158c678eb2..d0209d2a089 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Dokka.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Dokka.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -35,7 +35,7 @@ object Dokka { * When changing the version, also change the version used in the * `buildSrc/build.gradle.kts`. */ - const val version = "1.9.10" + const val version = "1.9.20" object GradlePlugin { const val id = "org.jetbrains.dokka" diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/GradleDoctor.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/GradleDoctor.kt index 707fac33cc6..323162f4d0e 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/GradleDoctor.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/GradleDoctor.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -33,6 +33,6 @@ package io.spine.internal.dependency */ @Suppress("unused", "ConstPropertyName") object GradleDoctor { - const val version = "0.8.1" + const val version = "0.10.0" const val pluginId = "com.osacky.doctor" } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Jacoco.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Jacoco.kt new file mode 100644 index 00000000000..5077241848a --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Jacoco.kt @@ -0,0 +1,37 @@ +/* + * Copyright 2023, TeamDev. All rights reserved. + * + * 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 + * + * 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. + */ + +package io.spine.internal.dependency + +/** + * Code coverage library for Java. + * + * @see Releases + */ +@Suppress("ConstPropertyName") +object Jacoco { + const val version = "0.8.12" +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/KotlinX.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/KotlinX.kt index a3a867f4578..f10eb450cd5 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/KotlinX.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/KotlinX.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * Copyright 2023, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Kover.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Kover.kt index 30f81f5c737..a4dca1f7eb6 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Kover.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Kover.kt @@ -29,7 +29,7 @@ package io.spine.internal.dependency // https://github.com/Kotlin/kotlinx-kover @Suppress("unused", "ConstPropertyName") object Kover { - const val version = "0.7.4" + const val version = "0.7.6" const val id = "org.jetbrains.kotlinx.kover" const val classpath = "org.jetbrains.kotlinx:kover-gradle-plugin:$version" } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Ksp.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Ksp.kt new file mode 100644 index 00000000000..ae44a40cda3 --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Ksp.kt @@ -0,0 +1,40 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +package io.spine.internal.dependency + +/** + * Kotlin Symbol Processing API. + * + * @see KSP GitHub repository + */ +object Ksp { + /** + * The latest version compatible with Kotlin v1.8.22, which is bundled with Gradle 7.6.4. + */ + const val version = "1.8.22-1.0.11" + const val id = "com.google.devtools.ksp" +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/LicenseReport.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/LicenseReport.kt new file mode 100644 index 00000000000..353bcb9a569 --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/LicenseReport.kt @@ -0,0 +1,40 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +package io.spine.internal.dependency + +// https://github.com/jk1/Gradle-License-Report +@Suppress("unused") +object LicenseReport { + private const val version = "1.16" + const val lib = "com.github.jk1:gradle-license-report:${version}" + + object GradlePlugin { + const val version = LicenseReport.version + const val id = "com.github.jk1.dependency-license-report" + const val lib = LicenseReport.lib + } +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Log4j2.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Log4j2.kt new file mode 100644 index 00000000000..1da0d72c819 --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Log4j2.kt @@ -0,0 +1,42 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * 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 + * + * 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. + */ + +package io.spine.internal.dependency + +/** + * An open-source logging framework. + * + * Spine uses its own [logging library][Spine.Logging], but also + * provides a backend implementation for [Log4j2]. This is why + * this dependency is needed. + * + * @see Log4j2 releases at GitHub + */ +@Suppress("unused", "ConstPropertyName") +object Log4j2 { + private const val version = "2.20.0" + const val core = "org.apache.logging.log4j:log4j-core:$version" +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/McJava.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/McJava.kt new file mode 100644 index 00000000000..18d2976650b --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/McJava.kt @@ -0,0 +1,58 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +package io.spine.internal.dependency + +/** + * Dependencies on Spine Model Compiler for Java. + * + * See [mc-java](https://github.com/SpineEventEngine/mc-java). + */ +@Suppress( + "MemberVisibilityCanBePrivate" /* `pluginLib()` is used by subprojects. */, + "ConstPropertyName" +) +object McJava { + const val group = Spine.toolsGroup + + /** The version used to in the build classpath. */ + const val dogfoodingVersion = "2.0.0-SNAPSHOT.244" + + /** The version to be used for integration tests. */ + const val version = "2.0.0-SNAPSHOT.244" + + const val pluginId = "io.spine.mc-java" + + val pluginLib = pluginLib(dogfoodingVersion) + fun pluginLib(version: String): String = "$group:spine-mc-java-plugins:$version:all" + + /** The artifact reference for forcing in configurations. */ + @Suppress("unused") + const val pluginsArtifact: String = "$group:spine-mc-java-plugins:$version" + + val base = base(version) + fun base(version: String): String = "$group:spine-mc-java-base:$version" +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/ProtoData.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/ProtoData.kt index 7d91dec872f..577e746f262 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/ProtoData.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/ProtoData.kt @@ -5,7 +5,7 @@ * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -58,14 +58,22 @@ package io.spine.internal.dependency "KDocUnresolvedReference" /* Referencing private properties in constructor KDoc. */ ) object ProtoData { + const val pluginGroup = Spine.group const val group = "io.spine.protodata" const val pluginId = "io.spine.protodata" + /** + * Identifies ProtoData as a `classpath` dependency under `buildScript` block. + * + * The dependency is obtained from https://plugins.gradle.org/m2/. + */ + const val module = "io.spine:protodata" + /** * The version of ProtoData dependencies. */ val version: String - private const val fallbackVersion = "0.19.1" + private const val fallbackVersion = "0.61.5" /** * The distinct version of ProtoData used by other build tools. @@ -74,14 +82,19 @@ object ProtoData { * transitional dependencies, this is the version used to build the project itself. */ val dogfoodingVersion: String - private const val fallbackDfVersion = "0.91.1" + private const val fallbackDfVersion = "0.61.5" /** * The artifact for the ProtoData Gradle plugin. */ val pluginLib: String - fun pluginLib(version: String): String = + /** + * The artifact to be used during experiments when publishing locally. + * + * @see ProtoData + */ + private fun pluginLib(version: String): String = "$group:gradle-plugin:$version" fun api(version: String): String = @@ -90,8 +103,11 @@ object ProtoData { val api get() = api(version) - val compiler - get() = "$group:protodata-compiler:$version" + val backend + get() = "$group:protodata-backend:$version" + + val protocPlugin + get() = "$group:protodata-protoc:$version" val gradleApi get() = "$group:protodata-gradle-api:$version" @@ -99,15 +115,18 @@ object ProtoData { val cliApi get() = "$group:protodata-cli-api:$version" - fun codegenJava(version: String): String = - "$group:protodata-codegen-java:$version" + fun java(version: String): String = + "$group:protodata-java:$version" - val codegenJava - get() = codegenJava(version) + val java + get() = java(version) val fatCli get() = "$group:protodata-fat-cli:$version" + val testlib + get() = "$group:protodata-testlib:$version" + /** * An env variable storing a custom [version]. */ @@ -149,7 +168,7 @@ object ProtoData { } else { version = fallbackVersion dogfoodingVersion = fallbackDfVersion - pluginLib = "${Spine.group}:protodata:$version" + pluginLib = "$pluginGroup:protodata:$version" } } } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/ProtoTap.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/ProtoTap.kt new file mode 100644 index 00000000000..470f550d2ef --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/ProtoTap.kt @@ -0,0 +1,46 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +package io.spine.internal.dependency + +/** + * Dependencies on ProtoTap plugins. + * + * See [`SpineEventEngine/ProtoTap`](https://github.com/SpineEventEngine/ProtoTap/). + */ +@Suppress( + "unused" /* Some subprojects do not use ProtoData directly. */, + "ConstPropertyName" /* We use custom convention for artifact properties. */, + "MemberVisibilityCanBePrivate" /* The properties are used directly by other subprojects. */, +) +object ProtoTap { + const val group = "io.spine.tools" + const val version = "0.8.7" + const val gradlePluginId = "io.spine.prototap" + const val api = "$group:prototap-api:$version" + const val gradlePlugin = "$group:prototap-gradle-plugin:$version" + const val protocPlugin = "$group:prototap-protoc-plugin:$version" +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Protobuf.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Protobuf.kt index be80d2dfbc1..de40557a434 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Protobuf.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Protobuf.kt @@ -34,12 +34,23 @@ package io.spine.internal.dependency object Protobuf { private const val group = "com.google.protobuf" const val version = "3.25.1" + + /** + * The Java library with Protobuf data types. + */ + const val javaLib = "${group}:protobuf-java:${version}" + + /** + * The Java library containing proto definitions of Google Protobuf types. + */ + @Suppress("unused") + const val protoSrcLib = javaLib + /** - * The Java library containing proto definitions of Google Protobuf. + * All Java and Kotlin libraries we depend on. */ - const val protoSrcLib = "${group}:protobuf-java:${version}" val libs = listOf( - protoSrcLib, + javaLib, "${group}:protobuf-java-util:${version}", "${group}:protobuf-kotlin:${version}" ) diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Roaster.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Roaster.kt index af524da3dee..c7d537420b4 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Roaster.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Roaster.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -33,7 +33,7 @@ object Roaster { /** * This is the last version build with Java 11. * - * Starting from version + * Starting from the version * [2.29.0.Final](https://github.com/forge/roaster/releases/tag/2.29.0.Final), * Roaster requires Java 17. */ diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Spine.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Spine.kt index 616aaae6c77..08fab738566 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Spine.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Spine.kt @@ -5,7 +5,7 @@ * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -45,17 +45,18 @@ object Spine { * * @see spine-base */ - const val base = "2.0.0-SNAPSHOT.198" + const val base = "2.0.0-SNAPSHOT.212" + const val baseForBuildScript = "2.0.0-SNAPSHOT.212" /** * The version of [Spine.reflect]. * * @see spine-reflect */ - const val reflect = "2.0.0-SNAPSHOT.183" + const val reflect = "2.0.0-SNAPSHOT.188" /** - * The version of [Spine.logging]. + * The version of [Spine.Logging]. * * @see spine-logging */ @@ -75,7 +76,7 @@ object Spine { * @see [Spine.CoreJava.server] * @see core-java */ - const val core = "2.0.0-SNAPSHOT.175" + const val core = "2.0.0-SNAPSHOT.176" /** * The version of [Spine.modelCompiler]. @@ -84,13 +85,6 @@ object Spine { */ const val mc = "2.0.0-SNAPSHOT.133" - /** - * The version of [McJava]. - * - * @see spine-mc-java - */ - const val mcJava = "2.0.0-SNAPSHOT.172" - /** * The version of [Spine.baseTypes]. * @@ -124,10 +118,10 @@ object Spine { * * @see spine-tool-base */ - const val toolBase = "2.0.0-SNAPSHOT.192" + const val toolBase = "2.0.0-SNAPSHOT.226" /** - * The version of [Spine.javadocTools]. + * The version of [Spine.javadocFilter]. * * @see spine-javadoc-tools */ @@ -135,13 +129,7 @@ object Spine { } const val base = "$group:spine-base:${ArtifactVersion.base}" - - @Deprecated("Use `Logging.lib` instead.", ReplaceWith("Logging.lib")) - const val logging = "$group:spine-logging:${ArtifactVersion.logging}" - @Deprecated("Use `Logging.context` instead.", ReplaceWith("Logging.context")) - const val loggingContext = "$group:spine-logging-context:${ArtifactVersion.logging}" - @Deprecated("Use `Logging.backend` instead.", ReplaceWith("Logging.backend")) - const val loggingBackend = "$group:spine-logging-backend:${ArtifactVersion.logging}" + const val baseForBuildScript = "$group:spine-base:${ArtifactVersion.baseForBuildScript}" const val reflect = "$group:spine-reflect:${ArtifactVersion.reflect}" const val baseTypes = "$group:spine-base-types:${ArtifactVersion.baseTypes}" @@ -151,11 +139,16 @@ object Spine { const val testlib = "$toolsGroup:spine-testlib:${ArtifactVersion.testlib}" const val testUtilTime = "$toolsGroup:spine-testutil-time:${ArtifactVersion.time}" + const val psiJava = "$toolsGroup:spine-psi-java:${ArtifactVersion.toolBase}" + const val psiJavaBundle = "$toolsGroup:spine-psi-java-bundle:${ArtifactVersion.toolBase}" const val toolBase = "$toolsGroup:spine-tool-base:${ArtifactVersion.toolBase}" const val pluginBase = "$toolsGroup:spine-plugin-base:${ArtifactVersion.toolBase}" const val pluginTestlib = "$toolsGroup:spine-plugin-testlib:${ArtifactVersion.toolBase}" const val modelCompiler = "$toolsGroup:spine-model-compiler:${ArtifactVersion.mc}" + @Deprecated(message = "Please use top level `McJava` object instead.") + val McJava = io.spine.internal.dependency.McJava + /** * Dependencies on the artifacts of the Spine Logging library. * @@ -173,38 +166,11 @@ object Spine { // Transitive dependencies. // Make `public` and use them to force a version in a particular repository, if needed. internal const val julBackend = "$group:spine-logging-jul-backend:$version" - const val middleware = "$group:spine-logging-middleware:$version" + internal const val middleware = "$group:spine-logging-middleware:$version" internal const val platformGenerator = "$group:spine-logging-platform-generator:$version" internal const val jvmDefaultPlatform = "$group:spine-logging-jvm-default-platform:$version" - - @Deprecated( - message = "Please use `Logging.lib` instead.", - replaceWith = ReplaceWith("lib") - ) - const val floggerApi = "$group:spine-flogger-api:$version" - - @Deprecated( - message = "Please use `grpcContext` instead.", - replaceWith = ReplaceWith("grpcContext") - ) - const val floggerGrpcContext = "$group:spine-flogger-grpc-context:$version" - } - - /** - * Dependencies on Spine Model Compiler for Java. - * - * See [mc-java](https://github.com/SpineEventEngine/mc-java). - */ - @Suppress("MemberVisibilityCanBePrivate") // `pluginLib()` is used by subprojects. - object McJava { - const val version = ArtifactVersion.mcJava - const val pluginId = "io.spine.mc-java" - val pluginLib = pluginLib(version) - fun pluginLib(version: String): String = "$toolsGroup:spine-mc-java-plugins:$version:all" } - @Deprecated("Please use `javadocFilter` instead.", ReplaceWith("javadocFilter")) - const val javadocTools = "$toolsGroup::${ArtifactVersion.javadocTools}" const val javadocFilter = "$toolsGroup:spine-javadoc-filter:${ArtifactVersion.javadocTools}" const val client = CoreJava.client // Added for brevity. diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/SystemLambda.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/SystemLambda.kt new file mode 100644 index 00000000000..593c3ae2d0e --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/SystemLambda.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * 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 + * + * 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. + */ + +package io.spine.internal.dependency + +// https://github.com/stefanbirkner/system-lambda +@Suppress("unused", "ConstPropertyName") +object SystemLambda { + const val version = "1.2.1" + const val group = "com.github.stefanbirkner" + const val lib = "$group:system-lambda:$version" +} diff --git a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Validation.kt b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Validation.kt index d83370b3a25..1dc0eef0b5f 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/dependency/Validation.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/dependency/Validation.kt @@ -5,7 +5,7 @@ * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -33,11 +33,22 @@ package io.spine.internal.dependency */ @Suppress("unused", "ConstPropertyName") object Validation { - const val version = "2.0.0-SNAPSHOT.110" + /** + * The version of the Validation library artifacts. + */ + const val version = "2.0.0-SNAPSHOT.161" + const val group = "io.spine.validation" - const val runtime = "$group:spine-validation-java-runtime:$version" - const val java = "$group:spine-validation-java:$version" - const val javaBundle = "$group:spine-validation-java-bundle:$version" - const val model = "$group:spine-validation-model:$version" - const val config = "$group:spine-validation-configuration:$version" + private const val prefix = "spine-validation" + + const val runtime = "$group:$prefix-java-runtime:$version" + const val java = "$group:$prefix-java:$version" + + /** Obtains the artifact for the `java-bundle` artifact of the given version. */ + fun javaBundle(version: String) = "$group:$prefix-java-bundle:$version" + + val javaBundle = javaBundle(version) + + const val model = "$group:$prefix-model:$version" + const val config = "$group:$prefix-configuration:$version" } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/ProjectExtensions.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/ProjectExtensions.kt index 2ef4bd8e19a..13535b8e7a2 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/ProjectExtensions.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/ProjectExtensions.kt @@ -27,6 +27,7 @@ package io.spine.internal.gradle import io.spine.internal.gradle.publish.SpinePublishing +import java.io.File import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.Task @@ -91,3 +92,9 @@ val Project.artifactId: String val artifactId = spinePublishing?.artifactId(this) return artifactId ?: name } + +/** + * Returns project's build directory as [File]. + */ +val Project.buildDirectory: File + get() = layout.buildDirectory.get().asFile diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/Repositories.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/Repositories.kt index 4a880351e27..5b87a36ec1b 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/Repositories.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/Repositories.kt @@ -5,7 +5,7 @@ * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/dokka/DokkaExtensions.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/dokka/DokkaExtensions.kt index a912d50b648..f8a3541a55a 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/dokka/DokkaExtensions.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/dokka/DokkaExtensions.kt @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -38,6 +38,7 @@ import org.jetbrains.dokka.gradle.GradleDokkaSourceSetBuilder * Dokka can properly generate documentation for either Kotlin or Java depending on * the configuration, but not both. */ +@Suppress("unused") internal fun GradleDokkaSourceSetBuilder.onlyJavaSources(): FileCollection { return sourceRoots.filter(File::isJavaSourceDirectory) } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/dokka/TaskContainerExtensions.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/dokka/TaskContainerExtensions.kt index 058eb992deb..60cdeaa8865 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/dokka/TaskContainerExtensions.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/dokka/TaskContainerExtensions.kt @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -32,4 +32,5 @@ import org.jetbrains.dokka.gradle.DokkaTask /** * Finds the `dokkaHtml` Gradle task. */ +@Suppress("unused") fun TaskContainer.dokkaHtmlTask() = this.getByName("dokkaHtml") as DokkaTask diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/kotlin/KotlinConfig.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/kotlin/KotlinConfig.kt index b2964cee2a4..955a546469c 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/kotlin/KotlinConfig.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/kotlin/KotlinConfig.kt @@ -51,19 +51,24 @@ fun KotlinJvmProjectExtension.applyJvmToolchain(version: String) = /** * Opts-in to experimental features that we use in our codebase. */ -@Suppress("unused") +@Suppress("unused", "MagicNumber" /* Kotlin Compiler version. */) fun KotlinCompile.setFreeCompilerArgs() { + // Avoid the "unsupported flag warning" for Kotlin compilers pre 1.9.20. + // See: https://youtrack.jetbrains.com/issue/KT-61573 + val expectActualClasses = + if (KotlinVersion.CURRENT.isAtLeast(1, 9, 20)) "-Xexpect-actual-classes" else "" kotlinOptions { freeCompilerArgs = listOf( "-Xskip-prerelease-check", "-Xjvm-default=all", "-Xinline-classes", + expectActualClasses, "-opt-in=" + "kotlin.contracts.ExperimentalContracts," + "kotlin.io.path.ExperimentalPathApi," + "kotlin.ExperimentalUnsignedTypes," + "kotlin.ExperimentalStdlibApi," + "kotlin.experimental.ExperimentalTypeInference", - ) + ).filter { it.isNotBlank() } } } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/protobuf/ProtoTaskExtensions.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/protobuf/ProtoTaskExtensions.kt index 0c4c8b419c2..de78a5ec81c 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/protobuf/ProtoTaskExtensions.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/protobuf/ProtoTaskExtensions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -134,7 +134,8 @@ private fun GenerateProtoTask.setupDescriptorSetFileCreation() { // The name of the generated file reflects project's Maven coordinates. val ssn = sourceSet.name generateDescriptorSet = true - val descriptorsDir = "${project.buildDir}/descriptors/${ssn}" + val buildDir = project.layout.buildDirectory.asFile.get().path + val descriptorsDir = "$buildDir/descriptors/${ssn}" val descriptorName = project.descriptorSetName(sourceSet) with(descriptorSetOptions) { path = "$descriptorsDir/$descriptorName" diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/GitHubPackages.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/GitHubPackages.kt index fef0682198f..68b68a2bfd1 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/GitHubPackages.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/GitHubPackages.kt @@ -28,6 +28,7 @@ package io.spine.internal.gradle.publish import io.spine.internal.gradle.Credentials import io.spine.internal.gradle.Repository +import io.spine.internal.gradle.buildDirectory import net.lingala.zip4j.ZipFile import org.gradle.api.Project @@ -90,7 +91,7 @@ private fun Project.readGitHubToken(): String { * use such a workaround. */ private fun Project.readTokenFromArchive(): String { - val targetDir = "${buildDir}/token" + val targetDir = "$buildDirectory/token" file(targetDir).mkdirs() val fileToUnzip = "${rootDir}/buildSrc/aus.weis" diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/IncrementGuard.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/IncrementGuard.kt index b97a5ee50fa..4dfb641896e 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/IncrementGuard.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/IncrementGuard.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -45,19 +45,20 @@ class IncrementGuard : Plugin { /** * Adds the [CheckVersionIncrement] task to the project. * - * Only adds the check if the project is built on Travis CI and the job is a pull request. + * The task is created anyway, but it is enabled only if: + * 1. The project is built on GitHub CI, and + * 2. The job is a pull request. * - * 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. + * 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 the "usual" development cycle. */ override fun apply(target: Project) { val tasks = target.tasks tasks.register(taskName, CheckVersionIncrement::class.java) { - repository = CloudRepo.published + repository = CloudArtifactRegistry.repository tasks.getByName("check").dependsOn(this) - shouldRunAfter("test") if (!shouldCheckVersion()) { logger.info( "The build does not represent a GitHub Actions feature branch job, " + @@ -72,7 +73,7 @@ class IncrementGuard : Plugin { * Returns `true` if the current build is a GitHub Actions build which represents a push * to a feature branch. * - * Returns `false` if the associated reference is not a branch (e.g. a tag) or if it has + * Returns `false` if the associated reference is not a branch (e.g., a tag) or if it has * the name which ends with `master` or `main`. * * For example, on the following branches the method would return `false`: diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/Publications.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/Publications.kt index 12c05631601..0b4d24bebee 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/Publications.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/Publications.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -90,6 +90,9 @@ internal sealed class PublicationHandler( * Also, this function adds the [artifactPrefix][SpinePublishing.artifactPrefix] to * the [artifactId][MavenPublication.setArtifactId] of this publication, * if the prefix is not added yet. + * + * Finally, the Apache Software License 2.0 is set as the only license + * under which the published artifact is distributed. */ protected fun MavenPublication.copyProjectAttributes() { groupId = project.group.toString() @@ -99,6 +102,13 @@ internal sealed class PublicationHandler( } version = project.version.toString() pom.description.set(project.description) + + pom.licenses { + license { + name.set("The Apache Software License, Version 2.0") + url.set("https://www.apache.org/licenses/LICENSE-2.0.txt") + } + } } } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingExts.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingExts.kt index 78e73954488..fc985ccecbe 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingExts.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingExts.kt @@ -38,11 +38,11 @@ import org.gradle.api.publish.PublishingExtension import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.bundling.Jar +import org.gradle.kotlin.dsl.findByType import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.named import org.gradle.kotlin.dsl.register -import org.gradle.kotlin.dsl.the import org.gradle.kotlin.dsl.withType /** @@ -58,10 +58,23 @@ internal val Project.publications: PublicationContainer get() = publishingExtension.publications /** - * Obtains [SpinePublishing] extension from the root project. + * Obtains [SpinePublishing] extension from this [Project]. + * + * If this [Project] doesn't have one, it returns [SpinePublishing] + * declared in the root project. */ internal val Project.spinePublishing: SpinePublishing - get() = this.rootProject.the() + get() { + val local = this.extensions.findByType() + if (local != null) { + return local + } + val fromRoot = this.rootProject.extensions.findByType() + if (fromRoot != null) { + return fromRoot + } + error("`SpinePublishing` is not found in `${project.name}`.") + } /** * Tells if this project has custom publishing. @@ -212,7 +225,8 @@ internal fun Project.testJar(): TaskProvider = tasks.getOrCreate("testJar") */ fun Project.javadocJar(): TaskProvider = tasks.getOrCreate("javadocJar") { archiveClassifier.set("javadoc") - from(files("$buildDir/docs/javadoc")) + val javadocFiles = layout.buildDirectory.files("/docs/javadoc") + from(javadocFiles) dependsOn("javadoc") } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingRepos.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingRepos.kt index 36fcac4da5f..0de3080d589 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingRepos.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingRepos.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -33,8 +33,6 @@ import io.spine.internal.gradle.Repository */ object PublishingRepos { - val cloudRepo = CloudRepo.destination - val cloudArtifactRegistry = CloudArtifactRegistry.repository /** diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/SpinePublishing.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/SpinePublishing.kt index f55b85f37c6..fb9203717d0 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/SpinePublishing.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/SpinePublishing.kt @@ -24,6 +24,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +@file:Suppress("TooManyFunctions") + package io.spine.internal.gradle.publish import dokkaJavaJar @@ -152,6 +154,22 @@ open class SpinePublishing(private val project: Project) { */ var modules: Set = emptySet() + /** + * Controls whether the published module needs standard publications. + * + * If `true`, the module should configure publications on its own. + * Otherwise, the extension will configure standard [ones][StandardJavaPublicationHandler]. + * + * This property is analogue of [modulesWithCustomPublishing] for projects, + * for which [spinePublishing] is configured individually. + * + * Setting of this property and having a non-empty [modules] will lead + * to an exception. + * + * Default value is `false`. + */ + var customPublishing = false + /** * Set of modules that have custom publications and do not need standard ones. * @@ -299,7 +317,8 @@ open class SpinePublishing(private val project: Project) { internal fun configured() { ensureProtoJarExclusionsArePublished() ensureTestJarInclusionsArePublished() - ensuresModulesNotDuplicated() + ensureModulesNotDuplicated() + ensureCustomPublishingNotMisused() val projectsToPublish = projectsToPublish() projectsToPublish.forEach { project -> @@ -352,7 +371,7 @@ open class SpinePublishing(private val project: Project) { * we configure publishing for it. */ private fun Project.setUpPublishing(jarFlags: JarFlags) { - val customPublishing = modulesWithCustomPublishing.contains(name) + val customPublishing = modulesWithCustomPublishing.contains(name) || customPublishing val handler = if (customPublishing) { CustomPublicationHandler(project, destinations) } else { @@ -409,7 +428,7 @@ open class SpinePublishing(private val project: Project) { * We allow configuration of publishing from two places - a root project and module itself. * Here we verify that publishing of a module is not configured in both places simultaneously. */ - private fun ensuresModulesNotDuplicated() { + private fun ensureModulesNotDuplicated() { val rootProject = project.rootProject if (rootProject == project) { return @@ -425,4 +444,11 @@ open class SpinePublishing(private val project: Project) { } } } + + private fun ensureCustomPublishingNotMisused() { + if (modules.isNotEmpty() && customPublishing) { + error("`customPublishing` property can be set only if `spinePublishing` extension " + + "is open in an individual module, so `modules` property should be empty.") + } + } } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/JacocoConfig.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/JacocoConfig.kt index 4d789a5962d..36a4c204337 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/JacocoConfig.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/JacocoConfig.kt @@ -26,6 +26,7 @@ package io.spine.internal.gradle.report.coverage +import io.spine.internal.dependency.Jacoco import io.spine.internal.gradle.applyPlugin import io.spine.internal.gradle.findTask import io.spine.internal.gradle.report.coverage.TaskName.check @@ -36,7 +37,6 @@ import io.spine.internal.gradle.sourceSets import java.io.File import java.util.* import org.gradle.api.Project -import org.gradle.api.Task import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.plugins.BasePlugin import org.gradle.api.tasks.Copy @@ -45,7 +45,9 @@ import org.gradle.api.tasks.SourceSetOutput import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskProvider import org.gradle.kotlin.dsl.get +import org.gradle.kotlin.dsl.the import org.gradle.testing.jacoco.plugins.JacocoPlugin +import org.gradle.testing.jacoco.plugins.JacocoPluginExtension import org.gradle.testing.jacoco.tasks.JacocoReport /** @@ -90,7 +92,8 @@ class JacocoConfig( fun applyTo(project: Project) { project.applyPlugin(BasePlugin::class.java) val javaProjects: Iterable = eligibleProjects(project) - val reportsDir = project.rootProject.buildDir.resolve(reportsDirSuffix) + val reportsDir = project.rootProject.layout + .buildDirectory.dir(reportsDirSuffix).get().asFile JacocoConfig(project.rootProject, reportsDir, javaProjects).configure() } @@ -117,12 +120,22 @@ class JacocoConfig( } private fun configure() { + configureVersion() + configureTask() + } + + private fun configureVersion() { + val jacoco = rootProject.the() + jacoco.toolVersion = Jacoco.version + } + + private fun configureTask() { val tasks = rootProject.tasks val copyReports = registerCopy(tasks) val rootReport = registerRootReport(tasks, copyReports) - rootProject - .findTask(check.name) - .dependsOn(rootReport) + tasks.named(check.name) { + dependsOn(rootReport) + } } private fun registerRootReport( diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/LicenseReporter.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/LicenseReporter.kt index f7f1a312c60..d8c4ab1e662 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/LicenseReporter.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/LicenseReporter.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -80,11 +80,17 @@ object LicenseReporter { */ fun generateReportIn(project: Project) { project.applyPlugin(LicenseReportPlugin::class.java) - val reportOutputDir = project.buildDir.resolve(Paths.relativePath) + val reportOutputDir = project.layout.buildDirectory.dir(Paths.relativePath).get().asFile with(project.the()) { outputDir = reportOutputDir.absolutePath - excludeGroups = arrayOf("io.spine", "io.spine.tools", "io.spine.gcloud") + excludeGroups = arrayOf( + "io.spine", + "io.spine.gcloud", + "io.spine.protodata", + "io.spine.tools", + "io.spine.validation" + ) configurations = ALL renderers = arrayOf(MarkdownReportRenderer(Paths.outputFilename)) @@ -146,7 +152,8 @@ object LicenseReporter { rootProject: Project ) { val paths = sourceProjects.map { - "${it.buildDir}/${Paths.relativePath}/${Paths.outputFilename}" + val buildDir = it.layout.buildDirectory.asFile.get() + "$buildDir/${Paths.relativePath}/${Paths.outputFilename}" } println("Merging the license reports from the all projects.") val mergedContent = paths.joinToString("\n\n\n") { (File(it)).readText() } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/MarkdownReportRenderer.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/MarkdownReportRenderer.kt index e1cd8afdec1..fff4540e6ab 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/MarkdownReportRenderer.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/MarkdownReportRenderer.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -54,9 +54,8 @@ internal class MarkdownReportRenderer( } private fun outputFile(project: Project): File { - val config = - project.extensions.findByName("licenseReport") as LicenseReportExtension - return File(config.outputDir).resolve(filename) + val ext = project.extensions.findByName("licenseReport") as LicenseReportExtension + return File(ext.outputDir).resolve(filename) } } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/DependencyWriter.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/DependencyWriter.kt index fb1920b43ad..42eb455c63a 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/DependencyWriter.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/DependencyWriter.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,6 +31,7 @@ import java.io.Writer import java.util.* import kotlin.reflect.full.isSubclassOf import org.gradle.api.Project +import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency import org.gradle.api.internal.artifacts.dependencies.AbstractExternalModuleDependency import org.gradle.kotlin.dsl.withGroovyBuilder @@ -126,13 +127,34 @@ private fun Project.depsFromAllConfigurations(): Set { } configuration.dependencies.filter { it.isExternal() } .forEach { dependency -> - val moduleDependency = ModuleDependency(project, configuration, dependency) + val forcedVersion = configuration.forcedVersionOf(dependency) + val moduleDependency = + if (forcedVersion != null) { + ModuleDependency(project, configuration, dependency, forcedVersion) + } else { + ModuleDependency(project, configuration, dependency) + } result.add(moduleDependency) } } return result } +/** + * Searches for a forced version of given [dependency] in this [Configuration]. + * + * Returns `null`, if it wasn't forced. + */ +private fun Configuration.forcedVersionOf(dependency: Dependency): String? { + val forcedModules = resolutionStrategy.forcedModules + val maybeForced = forcedModules.firstOrNull { + it.group == dependency.group + && it.name == dependency.name + && it.version != null + } + return maybeForced?.version +} + /** * Tells whether the dependency is an external module dependency. */ @@ -160,7 +182,7 @@ private fun Project.deduplicate(dependencies: Set): List - group.value.maxByOrNull { dep -> dep.version!! }!! + group.value.maxByOrNull { dep -> dep.version }!! } return filtered } @@ -177,7 +199,7 @@ private fun Project.logDuplicate(dependency: String, versions: List { companion object { - private val COMPARATOR = compareBy { it.module } + private val COMPARATOR = compareBy { it.project } .thenBy { it.configuration.name } .thenBy { it.group } .thenBy { it.name } - .thenBy { it.version } + .thenBy { it.factualVersion } } + override fun getVersion(): String = factualVersion + /** * A project dependency with its [scope][DependencyScope]. * * Doesn't contain any info about an origin module and configuration. */ - val scoped = ScopedDependency.of(dependency, configuration) + val scoped = ScopedDependency.of(this, configuration) /** * GAV coordinates of this dependency. * * Gradle's [Dependency] is a mutable object. Its properties can change their - * values with time. In parcticular, the version can be changed as more + * values with time. In particular, the version can be changed as more * configurations are getting resolved. This is why this property is calculated. */ val gav: String - get() = "$group:$name:$version" + get() = "$group:$name:$factualVersion" override fun compareTo(other: ModuleDependency): Int = COMPARATOR.compare(this, other) @@ -76,17 +79,17 @@ internal class ModuleDependency( other as ModuleDependency - if (module != other.module) return false + if (project != other.project) return false if (configuration != other.configuration) return false - if (dependency != other.dependency) return false + if (gav != other.gav) return false return true } override fun hashCode(): Int { - var result = module.hashCode() + var result = project.hashCode() result = 31 * result + configuration.hashCode() - result = 31 * result + dependency.hashCode() + result = 31 * result + gav.hashCode() return result } } diff --git a/buildSrc/src/main/kotlin/io/spine/internal/gradle/testing/Tasks.kt b/buildSrc/src/main/kotlin/io/spine/internal/gradle/testing/Tasks.kt index 1d7a656e9b1..f501940c196 100644 --- a/buildSrc/src/main/kotlin/io/spine/internal/gradle/testing/Tasks.kt +++ b/buildSrc/src/main/kotlin/io/spine/internal/gradle/testing/Tasks.kt @@ -75,7 +75,7 @@ private const val SLOW_TAG = "slow" /** * Executes JUnit tests filtering out the ones tagged as `slow`. */ -private open class FastTest : Test() { +private abstract class FastTest : Test() { init { description = "Executes all JUnit tests but the ones tagged as `slow`." group = "Verification" @@ -89,7 +89,7 @@ private open class FastTest : Test() { /** * Executes JUnit tests tagged as `slow`. */ -private open class SlowTest : Test() { +private abstract class SlowTest : Test() { init { description = "Executes JUnit tests tagged as `slow`." group = "Verification" diff --git a/buildSrc/src/main/kotlin/jacoco-kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/jacoco-kotlin-jvm.gradle.kts index b6b4932697d..64c11a48ae2 100644 --- a/buildSrc/src/main/kotlin/jacoco-kotlin-jvm.gradle.kts +++ b/buildSrc/src/main/kotlin/jacoco-kotlin-jvm.gradle.kts @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,11 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.io.File -import org.gradle.kotlin.dsl.getValue -import org.gradle.kotlin.dsl.getting -import org.gradle.kotlin.dsl.jacoco -import org.gradle.testing.jacoco.tasks.JacocoReport +import io.spine.internal.gradle.buildDirectory plugins { jacoco @@ -53,9 +49,10 @@ private val about = "" /** * Configure Jacoco task with custom input from this Kotlin Multiplatform project. */ +@Suppress("unused") val jacocoTestReport: JacocoReport by tasks.getting(JacocoReport::class) { - val classFiles = File("${buildDir}/classes/kotlin/jvm/") + val classFiles = File("$buildDirectory/classes/kotlin/jvm/") .walkBottomUp() .toSet() classDirectories.setFrom(classFiles) @@ -66,5 +63,5 @@ val jacocoTestReport: JacocoReport by tasks.getting(JacocoReport::class) { ) sourceDirectories.setFrom(files(coverageSourceDirs)) - executionData.setFrom(files("${buildDir}/jacoco/jvmTest.exec")) + executionData.setFrom(files("$buildDirectory/jacoco/jvmTest.exec")) } diff --git a/buildSrc/src/main/kotlin/jvm-module.gradle.kts b/buildSrc/src/main/kotlin/jvm-module.gradle.kts index 4f7b9d0937e..86290834e27 100644 --- a/buildSrc/src/main/kotlin/jvm-module.gradle.kts +++ b/buildSrc/src/main/kotlin/jvm-module.gradle.kts @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -30,6 +30,7 @@ import io.spine.internal.dependency.Dokka import io.spine.internal.dependency.ErrorProne import io.spine.internal.dependency.Guava import io.spine.internal.dependency.JUnit +import io.spine.internal.dependency.Jacoco import io.spine.internal.dependency.JavaX import io.spine.internal.dependency.Kotest import io.spine.internal.dependency.Protobuf @@ -119,7 +120,7 @@ fun Module.configureKotlin(javaVersion: JavaLanguageVersion) { } kover { - useJacoco() + useJacoco(version = Jacoco.version) } koverReport { @@ -171,7 +172,8 @@ fun Module.forceConfigurations() { force( JUnit.bom, JUnit.runner, - Dokka.BasePlugin.lib + Dokka.BasePlugin.lib, + Spine.reflect ) } } diff --git a/buildSrc/src/main/kotlin/pmd-settings.gradle.kts b/buildSrc/src/main/kotlin/pmd-settings.gradle.kts index a718b1f6bd4..6a15aa02cb1 100644 --- a/buildSrc/src/main/kotlin/pmd-settings.gradle.kts +++ b/buildSrc/src/main/kotlin/pmd-settings.gradle.kts @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following diff --git a/buildSrc/src/main/kotlin/write-manifest.gradle.kts b/buildSrc/src/main/kotlin/write-manifest.gradle.kts index 14c8ec16293..5cec1278807 100644 --- a/buildSrc/src/main/kotlin/write-manifest.gradle.kts +++ b/buildSrc/src/main/kotlin/write-manifest.gradle.kts @@ -5,7 +5,7 @@ * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -91,7 +91,8 @@ val manifestAttributes = mapOf( "Build-OS" to buildOs(), IMPLEMENTATION_TITLE.toString() to implementationTitle(), IMPLEMENTATION_VERSION.toString() to project.version, - IMPLEMENTATION_VENDOR.toString() to "TeamDev" + IMPLEMENTATION_VENDOR.toString() to "TeamDev", + "Bundle-License" to "https://www.apache.org/licenses/LICENSE-2.0.txt" ) /** diff --git a/config b/config index 86b1a93df63..555817ec6e4 160000 --- a/config +++ b/config @@ -1 +1 @@ -Subproject commit 86b1a93df63f83876602fd5f75a2e3f43b934b76 +Subproject commit 555817ec6e4344d131fbfbfe8437834621694ca2 diff --git a/dependencies.md b/dependencies.md index 8d583b321ec..ba2e039d826 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1,6 +1,6 @@ -# Dependencies of `io.spine:spine-client:2.0.0-SNAPSHOT.176` +# Dependencies of `io.spine:spine-client:2.0.0-SNAPSHOT.177` ## Runtime 1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. @@ -85,7 +85,6 @@ * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** 1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0. * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) * **License:** [The MIT License](http://opensource.org/licenses/MIT) @@ -106,7 +105,10 @@ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -115,7 +117,7 @@ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -133,7 +135,11 @@ * **Project URL:** [https://jcommander.org](https://jcommander.org) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.**No license information found** +1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -153,6 +159,11 @@ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -167,6 +178,10 @@ * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. + * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) @@ -264,7 +279,7 @@ 1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.24.1. +1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.25.1. * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -285,7 +300,11 @@ * **Project URL:** [https://checkstyle.org/](https://checkstyle.org/) * **License:** [LGPL-2.1+](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) -1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 2.7.0. +1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. + * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) + * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) @@ -313,7 +332,10 @@ * **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0.**No license information found** +1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0. + * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.4.0. * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -453,22 +475,34 @@ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-assertions-api-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) @@ -477,15 +511,10 @@ * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.protodata. **Name** : protodata-codegen-java. **Version** : 0.14.2.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-fat-cli. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-protoc. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-configuration. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-context. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-bundle. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-model. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** +1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12. + * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + 1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) @@ -561,7 +590,7 @@ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The BSD License](http://www.opensource.org/licenses/bsd-license.php) -1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.31. +1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.32. * **Project URL:** [https://freemarker.apache.org/](https://freemarker.apache.org/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -603,32 +632,35 @@ * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.3.1.**No license information found** -1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.3.1. +1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2. + * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2. * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -688,7 +720,10 @@ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -701,11 +736,19 @@ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.6.3.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.6.3.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.6.3. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.3. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -713,33 +756,50 @@ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.7.5. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.9.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.15.3. +1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.16.1. * **Project URL:** [https://jsoup.org/](https://jsoup.org/) * **License:** [The MIT License](https://jsoup.org/license) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.**No license information found** +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. + * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + 1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -764,22 +824,17 @@ * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-analysis. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -801,15 +856,19 @@ * **Project URL:** [https://github.com/xmlresolver/xmlresolver](https://github.com/xmlresolver/xmlresolver) * **License:** [Apache License version 2.0](https://www.apache.org/licenses/LICENSE-2.0) +1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. + * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Mar 18 11:51:57 WET 2024** 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 Oct 09 21:23:33 WEST 2024** 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:spine-core:2.0.0-SNAPSHOT.176` +# Dependencies of `io.spine:spine-core:2.0.0-SNAPSHOT.177` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -850,7 +909,6 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice 1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** 1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0. * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) * **License:** [The MIT License](http://opensource.org/licenses/MIT) @@ -867,7 +925,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -876,7 +937,7 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -894,7 +955,11 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://jcommander.org](https://jcommander.org) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.**No license information found** +1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -914,6 +979,11 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -928,6 +998,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. + * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) @@ -1025,7 +1099,7 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice 1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.24.1. +1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.25.1. * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1046,7 +1120,11 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://checkstyle.org/](https://checkstyle.org/) * **License:** [LGPL-2.1+](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) -1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 2.7.0. +1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. + * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) + * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) @@ -1074,7 +1152,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0.**No license information found** +1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0. + * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.4.0. * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1214,22 +1295,34 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-assertions-api-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) @@ -1238,15 +1331,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.protodata. **Name** : protodata-codegen-java. **Version** : 0.14.2.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-fat-cli. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-protoc. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-configuration. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-context. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-bundle. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-model. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** +1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12. + * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + 1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) @@ -1322,7 +1410,7 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The BSD License](http://www.opensource.org/licenses/bsd-license.php) -1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.31. +1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.32. * **Project URL:** [https://freemarker.apache.org/](https://freemarker.apache.org/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1364,32 +1452,35 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.3.1.**No license information found** -1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.3.1. +1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2. * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.10. +1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2. + * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1449,7 +1540,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1462,11 +1556,19 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.6.3.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.6.3.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.6.3. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.3. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1474,33 +1576,50 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.7.5. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.9.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.15.3. +1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.16.1. * **Project URL:** [https://jsoup.org/](https://jsoup.org/) * **License:** [The MIT License](https://jsoup.org/license) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.**No license information found** +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. + * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + 1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -1525,22 +1644,17 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-analysis. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1562,15 +1676,19 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/xmlresolver/xmlresolver](https://github.com/xmlresolver/xmlresolver) * **License:** [Apache License version 2.0](https://www.apache.org/licenses/LICENSE-2.0) +1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. + * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Mar 18 11:51:57 WET 2024** 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 Oct 09 21:23:33 WEST 2024** 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:spine-server:2.0.0-SNAPSHOT.176` +# Dependencies of `io.spine:spine-server:2.0.0-SNAPSHOT.177` ## Runtime 1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. @@ -1655,7 +1773,6 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** 1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0. * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) * **License:** [The MIT License](http://opensource.org/licenses/MIT) @@ -1676,7 +1793,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1685,7 +1805,7 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1703,7 +1823,11 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://jcommander.org](https://jcommander.org) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.**No license information found** +1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1723,6 +1847,11 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1737,6 +1866,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. + * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) @@ -1838,7 +1971,7 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice 1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.24.1. +1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.25.1. * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1859,7 +1992,11 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://checkstyle.org/](https://checkstyle.org/) * **License:** [LGPL-2.1+](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) -1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 2.7.0. +1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. + * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) + * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) @@ -1887,7 +2024,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0.**No license information found** +1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0. + * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.4.0. * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2031,22 +2171,34 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-assertions-api-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.8.0.**No license information found** +1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.8.0. + * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) + * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 5.8.0. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) @@ -2055,15 +2207,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.protodata. **Name** : protodata-codegen-java. **Version** : 0.14.2.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-fat-cli. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-protoc. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-configuration. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-context. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-bundle. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-model. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** +1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12. + * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + 1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) @@ -2139,7 +2286,7 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The BSD License](http://www.opensource.org/licenses/bsd-license.php) -1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.31. +1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.32. * **Project URL:** [https://freemarker.apache.org/](https://freemarker.apache.org/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2181,32 +2328,35 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.3.1.**No license information found** -1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.3.1. +1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2. * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.10. +1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2. + * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2266,7 +2416,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2279,11 +2432,19 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.6.3.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.6.3.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.6.3. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.3. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2291,33 +2452,50 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.7.5. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.9.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.15.3. +1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.16.1. * **Project URL:** [https://jsoup.org/](https://jsoup.org/) * **License:** [The MIT License](https://jsoup.org/license) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.**No license information found** +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. + * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + 1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -2342,22 +2520,17 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-analysis. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2379,15 +2552,19 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/xmlresolver/xmlresolver](https://github.com/xmlresolver/xmlresolver) * **License:** [Apache License version 2.0](https://www.apache.org/licenses/LICENSE-2.0) +1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. + * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Mar 18 11:51:57 WET 2024** 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 Oct 09 21:23:33 WEST 2024** 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.tools:spine-testutil-client:2.0.0-SNAPSHOT.176` +# Dependencies of `io.spine.tools:spine-testutil-client:2.0.0-SNAPSHOT.177` ## Runtime 1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. @@ -2534,7 +2711,6 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** 1. **Group** : junit. **Name** : junit. **Version** : 4.13.1. * **Project URL:** [http://junit.org](http://junit.org) * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html) @@ -2576,7 +2752,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2585,7 +2764,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2598,7 +2780,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.**No license information found** +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. + * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + 1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -2615,7 +2800,7 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2633,7 +2818,11 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://jcommander.org](https://jcommander.org) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.**No license information found** +1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2653,6 +2842,11 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2667,6 +2861,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. + * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) @@ -2764,7 +2962,7 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice 1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.24.1. +1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.25.1. * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2785,7 +2983,11 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://checkstyle.org/](https://checkstyle.org/) * **License:** [LGPL-2.1+](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) -1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 2.7.0. +1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. + * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) + * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) @@ -2813,7 +3015,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0.**No license information found** +1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0. + * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.4.0. * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2989,15 +3194,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.protodata. **Name** : protodata-codegen-java. **Version** : 0.14.2.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-fat-cli. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-protoc. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-configuration. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-context. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-bundle. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-model. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** +1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12. + * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + 1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) @@ -3073,7 +3273,7 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The BSD License](http://www.opensource.org/licenses/bsd-license.php) -1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.31. +1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.32. * **Project URL:** [https://freemarker.apache.org/](https://freemarker.apache.org/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3115,32 +3315,35 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.3.1.**No license information found** -1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.3.1. +1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2. + * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2. * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3200,7 +3403,10 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3213,14 +3419,19 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.6.3.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.6.3.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.6.3. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.3. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3228,33 +3439,50 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.7.5. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.9.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.15.3. +1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.16.1. * **Project URL:** [https://jsoup.org/](https://jsoup.org/) * **License:** [The MIT License](https://jsoup.org/license) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.**No license information found** +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. + * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + 1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -3279,22 +3507,17 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-analysis. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.2. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3316,15 +3539,19 @@ This report was generated on **Mon Mar 18 11:51:57 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/xmlresolver/xmlresolver](https://github.com/xmlresolver/xmlresolver) * **License:** [Apache License version 2.0](https://www.apache.org/licenses/LICENSE-2.0) +1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. + * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Mar 18 11:51:58 WET 2024** 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 Oct 09 21:23:33 WEST 2024** 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.tools:spine-testutil-core:2.0.0-SNAPSHOT.176` +# Dependencies of `io.spine.tools:spine-testutil-core:2.0.0-SNAPSHOT.177` ## Runtime 1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. @@ -3471,7 +3698,6 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** 1. **Group** : junit. **Name** : junit. **Version** : 4.13.1. * **Project URL:** [http://junit.org](http://junit.org) * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html) @@ -3513,7 +3739,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3522,7 +3751,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3535,7 +3767,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.**No license information found** +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. + * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + 1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -3552,7 +3787,7 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3570,7 +3805,11 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://jcommander.org](https://jcommander.org) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.**No license information found** +1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3590,6 +3829,11 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3604,6 +3848,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. + * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) @@ -3701,7 +3949,7 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice 1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.24.1. +1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.25.1. * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3722,7 +3970,11 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://checkstyle.org/](https://checkstyle.org/) * **License:** [LGPL-2.1+](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) -1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 2.7.0. +1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. + * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) + * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) @@ -3750,7 +4002,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0.**No license information found** +1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0. + * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.4.0. * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -3926,15 +4181,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.protodata. **Name** : protodata-codegen-java. **Version** : 0.14.2.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-fat-cli. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-protoc. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-configuration. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-context. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-bundle. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-model. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** +1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12. + * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + 1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) @@ -4010,7 +4260,7 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The BSD License](http://www.opensource.org/licenses/bsd-license.php) -1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.31. +1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.32. * **Project URL:** [https://freemarker.apache.org/](https://freemarker.apache.org/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4052,32 +4302,35 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.3.1.**No license information found** -1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.3.1. +1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2. + * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2. * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4137,7 +4390,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4150,14 +4406,19 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.6.3.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.6.3.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.6.3. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.3. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4165,33 +4426,50 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.7.5. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.9.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.15.3. +1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.16.1. * **Project URL:** [https://jsoup.org/](https://jsoup.org/) * **License:** [The MIT License](https://jsoup.org/license) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.**No license information found** +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. + * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + 1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -4216,22 +4494,17 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-analysis. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4253,15 +4526,19 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/xmlresolver/xmlresolver](https://github.com/xmlresolver/xmlresolver) * **License:** [Apache License version 2.0](https://www.apache.org/licenses/LICENSE-2.0) +1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. + * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Mar 18 11:51:58 WET 2024** 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 Oct 09 21:23:34 WEST 2024** 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.tools:spine-testutil-server:2.0.0-SNAPSHOT.176` +# Dependencies of `io.spine.tools:spine-testutil-server:2.0.0-SNAPSHOT.177` ## Runtime 1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. @@ -4408,7 +4685,6 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** 1. **Group** : junit. **Name** : junit. **Version** : 4.13.1. * **Project URL:** [http://junit.org](http://junit.org) * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html) @@ -4450,7 +4726,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4459,7 +4738,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4472,7 +4754,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.**No license information found** +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. + * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + 1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -4489,7 +4774,7 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4507,7 +4792,11 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://jcommander.org](https://jcommander.org) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.**No license information found** +1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4527,6 +4816,11 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. + * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4541,6 +4835,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. + * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) @@ -4638,7 +4936,7 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice 1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.24.1. +1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.25.1. * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4659,7 +4957,11 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://checkstyle.org/](https://checkstyle.org/) * **License:** [LGPL-2.1+](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) -1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 2.7.0. +1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. + * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) + * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) @@ -4687,7 +4989,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0.**No license information found** +1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0. + * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.4.0. * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -4911,15 +5216,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.spine.protodata. **Name** : protodata-codegen-java. **Version** : 0.14.2.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-fat-cli. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.protodata. **Name** : protodata-protoc. **Version** : 0.13.1.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-configuration. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-context. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-bundle. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-java-runtime. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** -1. **Group** : io.spine.validation. **Name** : spine-validation-model. **Version** : 2.0.0-SNAPSHOT.110.**No license information found** +1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12. + * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + 1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) @@ -4995,7 +5295,7 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The BSD License](http://www.opensource.org/licenses/bsd-license.php) -1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.31. +1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.32. * **Project URL:** [https://freemarker.apache.org/](https://freemarker.apache.org/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -5037,32 +5337,35 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.3.1.**No license information found** -1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.3.1. +1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2. + * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2. * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.10. +1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.20. * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -5122,7 +5425,10 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.**No license information found** +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -5135,14 +5441,19 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.6.3.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0.**No license information found** -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.6.3.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.6.3. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.7.3. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -5150,33 +5461,50 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.0. * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.7.5. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.7.3. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.9.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1.**No license information found** +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json-jvm. **Version** : 1.4.1. * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.15.3. +1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.16.1. * **Project URL:** [https://jsoup.org/](https://jsoup.org/) * **License:** [The MIT License](https://jsoup.org/license) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.**No license information found** +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. + * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + 1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -5201,22 +5529,17 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-analysis. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.2. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.2. +1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -5238,7 +5561,11 @@ This report was generated on **Mon Mar 18 11:51:58 WET 2024** using [Gradle-Lice * **Project URL:** [https://github.com/xmlresolver/xmlresolver](https://github.com/xmlresolver/xmlresolver) * **License:** [Apache License version 2.0](https://www.apache.org/licenses/LICENSE-2.0) +1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. + * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Mar 18 11:51:59 WET 2024** 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 Oct 09 21:23:34 WEST 2024** 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/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b1624c473c4..c7d437bbb47 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/pom.xml b/pom.xml index bd11be6fd0c..ea0b2c46fc8 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ all modules and does not describe the project structure per-subproject. --> io.spine spine-core-java -2.0.0-SNAPSHOT.176 +2.0.0-SNAPSHOT.177 2015 @@ -68,7 +68,7 @@ all modules and does not describe the project structure per-subproject. io.spine spine-base - 2.0.0-SNAPSHOT.198 + 2.0.0-SNAPSHOT.212 compile @@ -98,7 +98,7 @@ all modules and does not describe the project structure per-subproject. io.spine spine-reflect - 2.0.0-SNAPSHOT.183 + 2.0.0-SNAPSHOT.188 compile @@ -110,7 +110,7 @@ all modules and does not describe the project structure per-subproject. io.spine.validation spine-validation-java-runtime - 2.0.0-SNAPSHOT.110 + 2.0.0-SNAPSHOT.161 compile @@ -128,7 +128,7 @@ all modules and does not describe the project structure per-subproject. org.jetbrains.kotlin kotlin-stdlib-jdk8 - 1.8.22 + 1.9.23 compile @@ -198,7 +198,7 @@ all modules and does not describe the project structure per-subproject. com.google.protobuf protoc - 3.24.1 + 3.25.1 com.puppycrawl.tools @@ -213,63 +213,43 @@ all modules and does not describe the project structure per-subproject. io.grpc protoc-gen-grpc-java - 1.57.2 + 1.59.0 io.spine.protodata protodata-fat-cli - 0.13.1 + 0.61.5 io.spine.protodata protodata-protoc - 0.13.1 + 0.61.5 io.spine.tools spine-dokka-extensions 2.0.0-SNAPSHOT.4 - - io.spine.tools - spine-mc-java-annotation - 2.0.0-SNAPSHOT.172 - - - io.spine.tools - spine-mc-java-base - 2.0.0-SNAPSHOT.172 - io.spine.tools spine-mc-java-checks - 2.0.0-SNAPSHOT.172 + 2.0.0-SNAPSHOT.244 provided io.spine.tools spine-mc-java-plugins - 2.0.0-SNAPSHOT.172 - - - io.spine.tools - spine-mc-java-rejection - 2.0.0-SNAPSHOT.172 - - - io.spine.tools - spine-tool-base - 2.0.0-SNAPSHOT.186 + 2.0.0-SNAPSHOT.244 io.spine.validation spine-validation-java - 2.0.0-SNAPSHOT.110 + 2.0.0-SNAPSHOT.161 io.spine.validation spine-validation-java-bundle - 2.0.0-SNAPSHOT.110 + 2.0.0-SNAPSHOT.161 net.sourceforge.pmd @@ -289,27 +269,27 @@ all modules and does not describe the project structure per-subproject. org.jetbrains.dokka analysis-kotlin-descriptors - 1.9.10 + 1.9.20 org.jetbrains.dokka dokka-base - 1.9.10 + 1.9.20 org.jetbrains.dokka dokka-core - 1.9.10 + 1.9.20 org.jetbrains.dokka javadoc-plugin - 1.9.10 + 1.9.20 org.jetbrains.dokka kotlin-as-java-plugin - 1.9.10 + 1.9.20 org.jetbrains.kotlin diff --git a/server/src/main/java/io/spine/server/EventProducer.java b/server/src/main/java/io/spine/server/EventProducer.java index 18dce79d0e5..7dae7aece3e 100644 --- a/server/src/main/java/io/spine/server/EventProducer.java +++ b/server/src/main/java/io/spine/server/EventProducer.java @@ -29,6 +29,7 @@ import com.google.common.collect.ImmutableSet; import com.google.protobuf.Any; import io.spine.core.Version; +import io.spine.server.event.NoReaction; import io.spine.server.model.Nothing; import io.spine.server.type.EventClass; @@ -56,15 +57,30 @@ public interface EventProducer { ImmutableSet producedEvents(); /** - * Obtains the {@link io.spine.server.model.Nothing} event message. + * Obtains the {@link Nothing} event message. * *

This event should be returned if there is no value for the domain to produce an actual - * event. Note that a {@link io.spine.server.model.Nothing} event is never actually posted into + * event. Note that a {@link Nothing} event is never actually posted into * the {@link io.spine.server.event.EventBus EventBus}. * - * @return the default instance of {@link io.spine.server.model.Nothing} + * @return the default instance of {@link Nothing} + * @deprecated please use {@link #noReaction()} instead. */ + @Deprecated default Nothing nothing() { return Nothing.getDefaultInstance(); } + + /** + * Obtains the {@link NoReaction} event message. + * + *

This event should be returned if there is no value for the domain to produce an actual + * event. Note that a {@link NoReaction} event is never actually posted into + * the {@link io.spine.server.event.EventBus EventBus}. + * + * @return the default instance of {@link NoReaction} + */ + default NoReaction noReaction() { + return NoReaction.getDefaultInstance(); + } } diff --git a/server/src/main/java/io/spine/server/command/Commander.java b/server/src/main/java/io/spine/server/command/Commander.java index f8e86951839..3a612d5c7d7 100644 --- a/server/src/main/java/io/spine/server/command/Commander.java +++ b/server/src/main/java/io/spine/server/command/Commander.java @@ -27,10 +27,9 @@ package io.spine.server.command; import io.spine.server.event.EventReceiver; -import io.spine.server.model.DoNothing; /** - * An interface common for objects that post one or more command in response to an incoming message. + * An interface common for objects posting one or more commands in response to an incoming message. * *

Example of use case scenarios: *

    @@ -46,7 +45,7 @@ public interface Commander extends CommandReceiver, EventReceiver { /** - * Obtains the {@link io.spine.server.model.DoNothing} command message. + * Obtains the {@link DoNothing} command message. * *

    This command should be returned if there is no value for the domain to produce an actual * command in response to an event. @@ -54,7 +53,7 @@ public interface Commander extends CommandReceiver, EventReceiver { *

    This command is never posted into the {@link io.spine.server.commandbus.CommandBus * CommandBus}. * - * @return the default instance of {@link io.spine.server.model.DoNothing} + * @return the default instance of {@link DoNothing} */ default DoNothing doNothing() { return DoNothing.getDefaultInstance(); diff --git a/server/src/main/java/io/spine/server/delivery/CatchUpProcess.java b/server/src/main/java/io/spine/server/delivery/CatchUpProcess.java index c6103504bbe..0d31fc21c71 100644 --- a/server/src/main/java/io/spine/server/delivery/CatchUpProcess.java +++ b/server/src/main/java/io/spine/server/delivery/CatchUpProcess.java @@ -56,8 +56,8 @@ import io.spine.server.event.EventStore; import io.spine.server.event.EventStreamQuery; import io.spine.server.event.EventStreamQuery.Limit; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.projection.ProjectionRepository; import io.spine.server.stand.Stand; import io.spine.server.tuple.EitherOf2; @@ -186,7 +186,7 @@ * See {@link CatchUpStation} for more details. * *

    The historical data pushed by the catch-up is dispatched through a number of shards, - * each processed by the {@code Delivery} independently from each other. Starting to dispatch + * each processed by the {@code Delivery} independently of each other. Starting to dispatch * the events from a shard, {@code Delivery} reads the details of the ongoing catch-up processes. * By interpreting the status of each catch-up, {@code Delivery} decides on the actions to apply * to the historical events. For instance, the historical events dispatched from a catch-up which @@ -201,7 +201,7 @@ * potentially by different application nodes. Therefore, in order to switch to the * {@code COMPLETED} status, a catch-up process must ensure that each shard was processed * by the {@code Delivery} which witnessed the catch-up process in its {@code FINALIZING} state. - * Such an evidence would mean that this {@code Delivery} run is at the point in time by which + * Such evidence would mean that this {@code Delivery} run is at the point in time by which * three things already happened: * *

      @@ -272,7 +272,7 @@ * impossible to register the process managers with the same state in * a multi-{@code BoundedContext} application. */ -@SuppressWarnings({"OverlyCoupledClass", "ClassWithTooManyMethods"}) // It does a lot. +@SuppressWarnings("ClassWithTooManyMethods") // It does a lot. public final class CatchUpProcess extends AbstractStatefulReactor { @@ -344,7 +344,7 @@ public CatchUpId startCatchUp(Timestamp since, @Nullable Set ids) /** * Moves the process from {@code Not Started} to {@code STARTED} state. * - * Several important things happen at this stage: + *

      Several important things happen at this stage: *

        *
      1. The reading timestamp of the process is set to the one specified in the request. * However, people are used to say "I want to catch-up since 1 PM" meaning "counting @@ -369,7 +369,7 @@ public CatchUpId startCatchUp(Timestamp since, @Nullable Set ids) * directly to the inboxes of the catching-up projections. */ @React - Nothing handle(CatchUpRequested e, EventContext ctx) { + NoReaction handle(CatchUpRequested e, EventContext ctx) { var id = e.getId(); var request = e.getRequest(); @@ -383,7 +383,7 @@ Nothing handle(CatchUpRequested e, EventContext ctx) { flushState(); dispatchCatchUpStarted(started, ctx); - return nothing(); + return noReaction(); } private void dispatchCatchUpStarted(CatchUpStarted started, EventContext ctx) { @@ -405,12 +405,12 @@ private void dispatchCatchUpStarted(CatchUpStarted started, EventContext ctx) { * {@code HistoryEventsRecalled} by which it triggers the next round of history reading. */ @React - EitherOf3 + EitherOf3 handle(EntityPreparedForCatchUp event) { var leftToClear = builder().getInstancesToClear() - 1; builder().setInstancesToClear(leftToClear); if (leftToClear > 0) { - return EitherOf3.withC(nothing()); + return EitherOf3.withC(noReaction()); } builder().setStatus(IN_PROGRESS); @@ -538,10 +538,10 @@ List handle(LiveEventsPickedUp event, EventContext con *

        See the class-level documentation for more details and the big picture. */ @React - EitherOf3 handle(ShardProcessed event) { + EitherOf3 handle(ShardProcessed event) { var builder = builder(); if (builder.getStatus() == COMPLETED) { - return EitherOf3.withC(nothing()); + return EitherOf3.withC(noReaction()); } var id = builder.getId(); @@ -558,7 +558,7 @@ EitherOf3 handle(ShardProce var completed = completeProcess(builder.getId()); return EitherOf3.withA(completed); } - return EitherOf3.withC(nothing()); + return EitherOf3.withC(noReaction()); } } var stillRequested = shardProcessingRequested(id, event.getIndex()); @@ -687,7 +687,7 @@ private Set dispatchAll(List events) { * the set of identifiers of the targets to dispatch the events to; * if empty, no particular targets are selected, so the target repository will * decide on its own - * @return the list of the identifiers to which the dispatching has been made in fact + * @return the set of the identifiers to which the dispatching has been made in fact */ @CanIgnoreReturnValue private Set dispatchAll(List events, Set targets) { diff --git a/server/src/main/java/io/spine/server/delivery/InboxPart.java b/server/src/main/java/io/spine/server/delivery/InboxPart.java index 11b36776475..8a528c5fc18 100644 --- a/server/src/main/java/io/spine/server/delivery/InboxPart.java +++ b/server/src/main/java/io/spine/server/delivery/InboxPart.java @@ -30,7 +30,7 @@ import io.spine.base.Time; import io.spine.server.ServerEnvironment; import io.spine.server.dispatch.DispatchOutcome; -import io.spine.server.model.Nothing; +import io.spine.server.event.NoReaction; import io.spine.server.tenant.TenantAwareRunner; import io.spine.server.type.SignalEnvelope; import io.spine.type.TypeUrl; @@ -130,12 +130,12 @@ DispatchOutcome doInvoke(MessageEndpoint endpoint, I targetId, M envelope) * Notifies the message endpoint of the duplicate. */ void notifyOfDuplicated(InboxMessage message) { - var call = new EndpointCall(message) { + var call = new EndpointCall(message) { @Override - Nothing doInvoke(MessageEndpoint endpoint, I targetId, M envelope) { + NoReaction doInvoke(MessageEndpoint endpoint, I targetId, M envelope) { endpoint.onDuplicate(targetId, envelope); - return Nothing.getDefaultInstance(); + return NoReaction.getDefaultInstance(); } }; call.invoke(); diff --git a/server/src/main/java/io/spine/server/model/MethodResult.java b/server/src/main/java/io/spine/server/model/MethodResult.java index 89a86406fe6..36116729354 100644 --- a/server/src/main/java/io/spine/server/model/MethodResult.java +++ b/server/src/main/java/io/spine/server/model/MethodResult.java @@ -31,6 +31,8 @@ import com.google.protobuf.Empty; import com.google.protobuf.Message; import io.spine.base.RejectionMessage; +import io.spine.server.event.NoReaction; +import io.spine.server.command.DoNothing; import io.spine.type.TypeName; import org.checkerframework.checker.nullness.qual.Nullable; @@ -57,9 +59,13 @@ final class MethodResult { * *

        Messages of these types should not be posted to the system. */ + @SuppressWarnings("deprecation") /* keeping `Nothing` and `io.spine.server.model.DoNothing` + for backward compatibility. */ private static final ImmutableSet IGNORED_MESSAGES = ImmutableSet.of( Nothing.getDefaultInstance(), + NoReaction.getDefaultInstance(), DoNothing.getDefaultInstance(), + io.spine.server.model.DoNothing.getDefaultInstance(), Empty.getDefaultInstance() ); diff --git a/server/src/main/java/io/spine/server/model/MethodResults.java b/server/src/main/java/io/spine/server/model/MethodResults.java index acc11185fad..25dddc8205c 100644 --- a/server/src/main/java/io/spine/server/model/MethodResults.java +++ b/server/src/main/java/io/spine/server/model/MethodResults.java @@ -32,6 +32,7 @@ import io.spine.base.CommandMessage; import io.spine.base.EventMessage; import io.spine.reflect.Types; +import io.spine.server.event.NoReaction; import io.spine.server.type.CommandClass; import io.spine.server.type.EventClass; import io.spine.type.MessageClass; @@ -95,11 +96,12 @@ static

        > ImmutableSet

        collectMessageClasses(Method * Checks if the class is a concrete {@linkplain CommandMessage command} or * {@linkplain EventMessage event}. */ + @SuppressWarnings("deprecation") // Handling of `Nothing` is kept for backward compatibility. private static boolean isCommandOrEvent(Class cls) { if (cls.isInterface()) { return false; } - if (Nothing.class.equals(cls)) { + if (Nothing.class.equals(cls) || NoReaction.class.equals(cls)) { return false; } var isCommandOrEvent = CommandMessage.class.isAssignableFrom(cls) diff --git a/server/src/main/java/io/spine/server/tuple/Element.java b/server/src/main/java/io/spine/server/tuple/Element.java index bcbbbb28958..855d282a1fd 100644 --- a/server/src/main/java/io/spine/server/tuple/Element.java +++ b/server/src/main/java/io/spine/server/tuple/Element.java @@ -30,6 +30,7 @@ import com.google.protobuf.GeneratedMessageV3; import com.google.protobuf.Message; import io.spine.base.EventMessage; +import io.spine.server.event.NoReaction; import io.spine.server.model.Nothing; import java.io.IOException; @@ -60,7 +61,10 @@ final class Element implements Serializable { * Creates a tuple element with a value which can be {@link GeneratedMessageV3}, * {@link Optional}, or {@link Either}. */ - @SuppressWarnings("ChainOfInstanceofChecks") + @SuppressWarnings({ + "ChainOfInstanceofChecks", + "deprecation" /* Keep using `Nothing` for backward compatibility. */ + }) Element(Object value) { if (value instanceof Either) { this.type = Type.EITHER; @@ -68,9 +72,9 @@ final class Element implements Serializable { this.type = Type.OPTIONAL; } else if (value instanceof GeneratedMessageV3) { var messageV3 = (GeneratedMessageV3) value; - // Treat `Nothing` as a special case, allowing its default instance - // so that `Just` is possible. - if (!(value instanceof Nothing)) { + // Treat `NoReaction` as a special case, allowing its default instance + // so that `Just` is possible. + if (!(value instanceof Nothing || value instanceof NoReaction)) { checkNotDefault(messageV3); } this.type = Type.MESSAGE; diff --git a/server/src/main/kotlin/io/spine/server/event/EventMessageExts.kt b/server/src/main/kotlin/io/spine/server/event/EventMessageExts.kt new file mode 100644 index 00000000000..8b5eeb5450b --- /dev/null +++ b/server/src/main/kotlin/io/spine/server/event/EventMessageExts.kt @@ -0,0 +1,40 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + */ + +package io.spine.server.event + +import io.spine.base.EventMessage +import io.spine.server.tuple.EitherOf2 + +/** + * Converts this [EventMessage] into [EitherOf2], placing it into the slot of the type `A`. + */ +public fun E.asA(): EitherOf2 = EitherOf2.withA(this) + +/** + * Converts this [EventMessage] into [EitherOf2], placing it into the slot of the type `B`. + */ +public fun E.asB(): EitherOf2 = EitherOf2.withB(this) diff --git a/server/src/main/kotlin/io/spine/server/event/Just.kt b/server/src/main/kotlin/io/spine/server/event/Just.kt index 5a256804b2b..1f5a36517f9 100644 --- a/server/src/main/kotlin/io/spine/server/event/Just.kt +++ b/server/src/main/kotlin/io/spine/server/event/Just.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -27,7 +27,6 @@ package io.spine.server.event import io.spine.base.EventMessage -import io.spine.server.model.Nothing import io.spine.server.tuple.Tuple /** @@ -36,7 +35,7 @@ import io.spine.server.tuple.Tuple * Used when returning an `Iterable` from a handler method for better readability over * `Iterable` or `List`. * - * @param E the type of the event. + * @param E The type of the event. */ public class Just(event: E) : Tuple(event) { @@ -45,11 +44,23 @@ public class Just(event: E) : Tuple(event) { @Suppress("ConstPropertyName") // Following Java conventions. private const val serialVersionUID: Long = 0L + /** + * The instance of `Just`. + */ + public val noReaction: Just by lazy { + Just(NoReaction.getDefaultInstance()) + } + /** * The instance of `Just`. */ - public val nothing: Just by lazy { - Just(Nothing.getDefaultInstance()) + @Deprecated( + message = "Please use `noReaction` instead.", + replaceWith = ReplaceWith("noReaction") + ) + @Suppress("DEPRECATION") // propagating it by the annotation above. + public val nothing: Just by lazy { + Just(io.spine.server.model.Nothing.getDefaultInstance()) } /** @@ -62,12 +73,25 @@ public class Just(event: E) : Tuple(event) { @JvmStatic public fun just(event: E): Just = Just(event) + /** + * Obtains the instance of `Just` for Java code. + * + * Prefer the [noReaction] property of the companion object in Kotlin. + */ + @JvmStatic + public fun noReaction(): Just = noReaction + /** * Obtains the instance of `Just` for Java code. * * Prefer the [nothing] property of the companion object in Kotlin. */ @JvmStatic - public fun nothing(): Just = nothing + @Deprecated( + message = "Please use `noReaction()` instead.", + replaceWith = ReplaceWith("noReaction()") + ) + @Suppress("DEPRECATION") // propagating it by the annotation above. + public fun nothing(): Just = nothing } } diff --git a/server/src/main/kotlin/io/spine/server/event/Policy.kt b/server/src/main/kotlin/io/spine/server/event/Policy.kt index f762c8e622d..dc1c27c1320 100644 --- a/server/src/main/kotlin/io/spine/server/event/Policy.kt +++ b/server/src/main/kotlin/io/spine/server/event/Policy.kt @@ -66,8 +66,7 @@ import io.spine.string.joinBackticked * from your Kotlin method, or `Just.nothing()` from Java. * * If you need to avoid the naming collision with [kotlin.Nothing], consider using - * type aliases [NothingHappened][io.spine.server.model.NothingHappened] or - * [NoReaction][io.spine.server.model.NoReaction]. + * the [NoReaction][io.spine.server.event.NoReaction] type alias. * * ### Returning one event * To return one event, declare `Just` as the return type of the [whenever] method. @@ -90,9 +89,7 @@ import io.spine.string.joinBackticked * @see [io.spine.server.tuple.Triplet] * @see [io.spine.server.tuple.Quartet] * @see [io.spine.server.tuple.Quintet] - * @see [io.spine.server.model.Nothing] - * @see [io.spine.server.model.NothingHappened] - * @see [io.spine.server.model.NoReaction] + * @see [io.spine.server.event.NoReaction] */ public abstract class Policy : AbstractEventReactor(), WithLogging { diff --git a/server/src/main/kotlin/io/spine/server/model/EventExts.kt b/server/src/main/kotlin/io/spine/server/model/EventExts.kt index c81668eea02..569ac5df5d1 100644 --- a/server/src/main/kotlin/io/spine/server/model/EventExts.kt +++ b/server/src/main/kotlin/io/spine/server/model/EventExts.kt @@ -24,17 +24,25 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +@file:Suppress("DEPRECATION") /* We do not want the deprecation warning in Kotlin because of + our `Nothing` type deprecated in Java. We want deprecation warnings in Kotlin code + that are caused by deprecations in this file. */ + package io.spine.server.model /** * The alias for cases of naming collisions between * [io.spine.server.model.Nothing] and [kotlin.Nothing]. */ +@Deprecated(message = "Please use `NoReaction` instead", replaceWith = ReplaceWith("NoReaction")) public typealias NothingHappened = Nothing /** * The alias for cases of naming collisions between * [io.spine.server.model.Nothing] and [kotlin.Nothing]. */ +@Deprecated( + message = "Please use `io.spine.server.event.NoReaction` instead", + replaceWith = ReplaceWith("NoReaction", "io.spine.server.event"), +) public typealias NoReaction = Nothing - diff --git a/server/src/main/proto/spine/server/command/standard_commands.proto b/server/src/main/proto/spine/server/command/standard_commands.proto new file mode 100644 index 00000000000..b3a145b18f9 --- /dev/null +++ b/server/src/main/proto/spine/server/command/standard_commands.proto @@ -0,0 +1,50 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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.server.command; + +import "spine/options.proto"; + +option (type_url_prefix) = "type.spine.io"; +option java_package = "io.spine.server.command"; +option java_outer_classname = "DoNothingProto"; +option java_multiple_files = true; + +// A system command that implies no action. +// +// Use this command type when a commanding method does not produce any output in response to +// an event. +// +// This type is treated by the framework in a special way. A `DoNothing` command is never posted +// for processing after being emitted. Neither is it stored. +// +// There can be no handlers for a `DoNothing` command. +// +// Deprecated: please use `spine.server.command.DoNothing` instead. +// +message DoNothing { +} diff --git a/server/src/main/proto/spine/server/event/standard_events.proto b/server/src/main/proto/spine/server/event/standard_events.proto new file mode 100644 index 00000000000..d3bc8cb5327 --- /dev/null +++ b/server/src/main/proto/spine/server/event/standard_events.proto @@ -0,0 +1,47 @@ +/* + * Copyright 2024, TeamDev. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * 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.server.event; + +import "spine/options.proto"; + +option (type_url_prefix) = "type.spine.io"; +option java_package = "io.spine.server.event"; +option java_outer_classname = "NoReactionProto"; +option java_multiple_files = true; + +// An empty event. +// +// Use this event type when a message processing does not produce any output. +// +// This type is treated by the framework in a special way. +// A `NoReaction` event is never posted for processing after being emitted. Neither is it stored. +// +// An applier for a `NoReaction` event is never called. +// +message NoReaction { +} diff --git a/server/src/main/proto/spine/server/model/standard_commands.proto b/server/src/main/proto/spine/server/model/standard_commands.proto index 7ee35f2d8fc..2456bc7698f 100644 --- a/server/src/main/proto/spine/server/model/standard_commands.proto +++ b/server/src/main/proto/spine/server/model/standard_commands.proto @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -44,5 +44,8 @@ option java_multiple_files = true; // // There can be no handlers for a `DoNothing` command. // +// Deprecated: please use `spine.server.command.DoNothing` instead. +// message DoNothing { + option deprecated = true; } diff --git a/server/src/main/proto/spine/server/model/standard_events.proto b/server/src/main/proto/spine/server/model/standard_events.proto index 7cfcb0a5f0e..0210f258954 100644 --- a/server/src/main/proto/spine/server/model/standard_events.proto +++ b/server/src/main/proto/spine/server/model/standard_events.proto @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * Copyright 2024, TeamDev. All rights reserved. * * 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 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -42,6 +42,9 @@ option java_multiple_files = true; // for processing after being emitted. Neither is it stored. // // An applier for a `Nothing` event is never called. + +// Deprecated: please use `spine.server.event.NoReaction` instead. // message Nothing { + option deprecated = true; } diff --git a/server/src/test/java/io/spine/server/aggregate/AggregateStorageTest.java b/server/src/test/java/io/spine/server/aggregate/AggregateStorageTest.java index 0221ed71aa1..ddac5ac4eb9 100644 --- a/server/src/test/java/io/spine/server/aggregate/AggregateStorageTest.java +++ b/server/src/test/java/io/spine/server/aggregate/AggregateStorageTest.java @@ -45,7 +45,7 @@ import io.spine.server.aggregate.given.StorageRecords; import io.spine.server.aggregate.given.repo.GivenAggregate; import io.spine.server.aggregate.given.repo.ProjectAggregateRepository; -import io.spine.server.model.Nothing; +import io.spine.server.event.NoReaction; import io.spine.server.storage.AbstractStorageTest; import io.spine.test.aggregate.AggProject; import io.spine.test.aggregate.IntegerProject; @@ -471,7 +471,7 @@ void forEventContext() { var context = ActorContext.newBuilder().buildPartial(); var messageId = MessageId.newBuilder() .setId(AnyPacker.pack(newEventId())) - .setTypeUrl(TypeUrl.of(Nothing.class) + .setTypeUrl(TypeUrl.of(NoReaction.class) .value()) .buildPartial(); var origin = Origin.newBuilder() diff --git a/server/src/test/java/io/spine/server/aggregate/given/aggregate/TestAggregate.java b/server/src/test/java/io/spine/server/aggregate/given/aggregate/TestAggregate.java index 0b69a309b5b..cfbefd2e143 100644 --- a/server/src/test/java/io/spine/server/aggregate/given/aggregate/TestAggregate.java +++ b/server/src/test/java/io/spine/server/aggregate/given/aggregate/TestAggregate.java @@ -35,8 +35,8 @@ import io.spine.server.aggregate.given.dispatch.AggregateMessageDispatcher; import io.spine.server.command.Assign; import io.spine.server.entity.rejection.StandardRejections; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.test.aggregate.AggProject; import io.spine.test.aggregate.ProjectId; import io.spine.test.aggregate.Status; @@ -144,15 +144,15 @@ private void event(AggProjectArchived e) { } @React - Nothing on(StandardRejections.CannotModifyDeletedEntity rejection, AggAddTask command) { + NoReaction on(StandardRejections.CannotModifyDeletedEntity rejection, AggAddTask command) { rejectionWithCmdHandled = true; - return nothing(); + return noReaction(); } @React - Nothing on(StandardRejections.CannotModifyDeletedEntity rejection) { + NoReaction on(StandardRejections.CannotModifyDeletedEntity rejection) { rejectionHandled = true; - return nothing(); + return noReaction(); } @VisibleForTesting diff --git a/server/src/test/java/io/spine/server/aggregate/given/klasse/EngineAggregate.java b/server/src/test/java/io/spine/server/aggregate/given/klasse/EngineAggregate.java index 10b57cd3358..c06515caf3c 100644 --- a/server/src/test/java/io/spine/server/aggregate/given/klasse/EngineAggregate.java +++ b/server/src/test/java/io/spine/server/aggregate/given/klasse/EngineAggregate.java @@ -41,8 +41,8 @@ import io.spine.server.aggregate.given.klasse.rejection.EngineAlreadyStopped; import io.spine.server.aggregate.given.klasse.rejection.Rejections; import io.spine.server.command.Assign; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import static io.spine.server.aggregate.given.klasse.Engine.Status.STARTED; import static io.spine.server.aggregate.given.klasse.Engine.Status.STOPPED; @@ -106,13 +106,13 @@ EngineStopped on(TankEmpty event) { ****************************/ @React - Nothing on(@External EmissionTestStarted event) { - return nothing(); + NoReaction on(@External EmissionTestStarted event) { + return noReaction(); } @React - Nothing on(@External EmissionTestStopped event) { - return nothing(); + NoReaction on(@External EmissionTestStopped event) { + return noReaction(); } /* @@ -125,13 +125,13 @@ Nothing on(@External EmissionTestStopped event) { *********************************************************************/ @React - Nothing on(Rejections.EngineAlreadyStarted rejection) { - return nothing(); + NoReaction on(Rejections.EngineAlreadyStarted rejection) { + return noReaction(); } @React - Nothing on(Rejections.EngineAlreadyStopped rejection) { - return nothing(); + NoReaction on(Rejections.EngineAlreadyStopped rejection) { + return noReaction(); } /* @@ -139,8 +139,8 @@ Nothing on(Rejections.EngineAlreadyStopped rejection) { *************************************/ @React - Nothing on(@External Rejections.CannotStartEmissionTest rejection) { - return nothing(); + NoReaction on(@External Rejections.CannotStartEmissionTest rejection) { + return noReaction(); } /* diff --git a/server/src/test/java/io/spine/server/command/model/given/commander/InvalidCommander.java b/server/src/test/java/io/spine/server/command/model/given/commander/InvalidCommander.java index c9b28a05896..566e7e76b94 100644 --- a/server/src/test/java/io/spine/server/command/model/given/commander/InvalidCommander.java +++ b/server/src/test/java/io/spine/server/command/model/given/commander/InvalidCommander.java @@ -36,8 +36,8 @@ import io.spine.model.contexts.projects.command.SigStartTask; import io.spine.server.command.AbstractCommander; import io.spine.server.command.Command; -import io.spine.server.model.DoNothing; -import io.spine.server.model.Nothing; +import io.spine.server.command.DoNothing; +import io.spine.server.event.NoReaction; import io.spine.server.model.given.SignatureTestCommand; import io.spine.server.tuple.EitherOf3; @@ -60,7 +60,7 @@ SigStartTask noParams() { } @Command - SigStartTask nonCommandMessageParam(Nothing command) { + SigStartTask nonCommandMessageParam(NoReaction command) { return TestCommandMessage.startTask(); } @@ -80,7 +80,7 @@ SigStartTask threeParams(SigAssignTask command, CommandContext ctx, SigAssignTas } @Command - SigStartTask wrongSecondParam(SigAssignTask command, Nothing message) { + SigStartTask wrongSecondParam(SigAssignTask command, NoReaction message) { return TestCommandMessage.startTask(); } @@ -95,8 +95,8 @@ void voidMethod(SigAssignTask command) { } @Command - Nothing eventResult(SigAssignTask command) { - return nothing(); + NoReaction eventResult(SigAssignTask command) { + return noReaction(); } @Command @@ -121,7 +121,7 @@ SigStartTask interfaceAndContext(SignatureTestCommand command, CommandContext co } @Command - Iterable wrongIterable(SigAddTaskToProject command) { + Iterable wrongIterable(SigAddTaskToProject command) { return ImmutableList.of(); } diff --git a/server/src/test/java/io/spine/server/command/model/given/handler/AssigneeReturnsNothing.java b/server/src/test/java/io/spine/server/command/model/given/handler/AssigneeReturnsNothing.java index bd44f2ff6e8..010ceb21bdb 100644 --- a/server/src/test/java/io/spine/server/command/model/given/handler/AssigneeReturnsNothing.java +++ b/server/src/test/java/io/spine/server/command/model/given/handler/AssigneeReturnsNothing.java @@ -34,12 +34,12 @@ import java.util.List; /** - * Provides a handler method that returns {@link io.spine.server.model.Nothing}. + * Provides a handler method that returns {@link io.spine.server.event.NoReaction}. */ public class AssigneeReturnsNothing extends TestCommandAssignee { @Assign List handleTest(RefCreateProject cmd) { - return ImmutableList.of(nothing()); + return ImmutableList.of(noReaction()); } } diff --git a/server/src/test/java/io/spine/server/command/model/given/handler/InvalidAssignee.java b/server/src/test/java/io/spine/server/command/model/given/handler/InvalidAssignee.java index af548c1d19c..c51d8c5755c 100644 --- a/server/src/test/java/io/spine/server/command/model/given/handler/InvalidAssignee.java +++ b/server/src/test/java/io/spine/server/command/model/given/handler/InvalidAssignee.java @@ -38,8 +38,8 @@ import io.spine.model.contexts.projects.event.SigTaskStarted; import io.spine.server.command.AbstractAssignee; import io.spine.server.command.Assign; -import io.spine.server.model.DoNothing; -import io.spine.server.model.Nothing; +import io.spine.server.event.NoReaction; +import io.spine.server.command.DoNothing; import io.spine.server.model.given.SignatureTestCommand; import io.spine.server.tuple.EitherOf3; @@ -62,7 +62,7 @@ SigTaskStarted noParams() { } @Assign - SigTaskStarted nonCommandMessageParam(Nothing command) { + SigTaskStarted nonCommandMessageParam(NoReaction command) { return EventMessages.taskStarted(); } @@ -82,12 +82,12 @@ SigTaskStarted threeParams(SigAssignTask command, CommandContext ctx, SigAssignT } @Assign - SigTaskStarted wrongFirstParam(Nothing command, MessageContext msg) { + SigTaskStarted wrongFirstParam(NoReaction command, MessageContext msg) { return EventMessages.taskStarted(); } @Assign - SigTaskStarted wrongSecondParam(SigAssignTask command, Nothing message) { + SigTaskStarted wrongSecondParam(SigAssignTask command, NoReaction message) { return EventMessages.taskStarted(); } @@ -122,9 +122,9 @@ SigTaskStarted interfaceAndContext(SignatureTestCommand command, CommandContext } @Assign - EitherOf3 + EitherOf3 eitherWithNothing(SigAddTaskToProject command) { - return EitherOf3.withC(nothing()); + return EitherOf3.withC(noReaction()); } @Assign @@ -134,7 +134,6 @@ Iterable wrongIterable(SigAddTaskToProject command) { @Assign SigSetProjectOwner wrongThrowable(SigCreateProject command) throws RuntimeException { - throw newIllegalStateException("Command assignee " + - "has declared an illegal exception."); + throw newIllegalStateException("Command assignee has declared an illegal exception."); } } diff --git a/server/src/test/java/io/spine/server/command/model/given/handler/ProcessManagerDoingNothing.java b/server/src/test/java/io/spine/server/command/model/given/handler/ProcessManagerDoingNothing.java index c92e8c223d4..5c853024936 100644 --- a/server/src/test/java/io/spine/server/command/model/given/handler/ProcessManagerDoingNothing.java +++ b/server/src/test/java/io/spine/server/command/model/given/handler/ProcessManagerDoingNothing.java @@ -29,7 +29,6 @@ import com.google.common.collect.ImmutableList; import io.spine.base.EventMessage; import io.spine.server.command.Assign; -import io.spine.server.model.Nothing; import io.spine.server.procman.ProcessManager; import io.spine.server.test.shared.EmptyProcess; import io.spine.test.reflect.command.RefCreateProject; @@ -37,7 +36,8 @@ import java.util.List; /** - * A simple process manager that accepts a command and always returns {@link Nothing}. + * A simple process manager that accepts a command and always + * returns {@link io.spine.server.event.NoReaction}. * *

        The process manager does not modify its state when “handling” the passed command. */ @@ -50,6 +50,6 @@ public ProcessManagerDoingNothing(String id) { @Assign List handle(RefCreateProject cmd) { - return ImmutableList.of(nothing()); + return ImmutableList.of(noReaction()); } } diff --git a/server/src/test/java/io/spine/server/command/model/given/reaction/InvalidCommander.java b/server/src/test/java/io/spine/server/command/model/given/reaction/InvalidCommander.java index 4c8aef5bd53..f22b31a4a34 100644 --- a/server/src/test/java/io/spine/server/command/model/given/reaction/InvalidCommander.java +++ b/server/src/test/java/io/spine/server/command/model/given/reaction/InvalidCommander.java @@ -36,8 +36,8 @@ import io.spine.model.contexts.projects.rejection.SigCannotCreateProject; import io.spine.server.command.AbstractCommander; import io.spine.server.command.Command; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.model.given.SignatureTestEvent; import java.io.IOException; @@ -67,12 +67,12 @@ SigStartTask nonMessageParam(int event) { } @Command - SigStartTask threeParams(SigTaskAddedToProject event, EventContext ctx, Nothing third) { + SigStartTask threeParams(SigTaskAddedToProject event, EventContext ctx, NoReaction third) { return EventMessages.startTask(); } @Command - SigStartTask wrongSecondParam(SigTaskAddedToProject event, Nothing message) { + SigStartTask wrongSecondParam(SigTaskAddedToProject event, NoReaction message) { return EventMessages.startTask(); } diff --git a/server/src/test/java/io/spine/server/command/model/given/reaction/ReEitherWithNothing.java b/server/src/test/java/io/spine/server/command/model/given/reaction/ReEitherWithNothing.java index f5927490f3d..879f7d9ea42 100644 --- a/server/src/test/java/io/spine/server/command/model/given/reaction/ReEitherWithNothing.java +++ b/server/src/test/java/io/spine/server/command/model/given/reaction/ReEitherWithNothing.java @@ -27,7 +27,7 @@ package io.spine.server.command.model.given.reaction; import io.spine.server.command.Command; -import io.spine.server.model.DoNothing; +import io.spine.server.command.DoNothing; import io.spine.server.tuple.EitherOf3; import io.spine.test.command.CmdAddTask; import io.spine.test.command.CmdStartTask; diff --git a/server/src/test/java/io/spine/server/command/model/given/reaction/ValidCommander.java b/server/src/test/java/io/spine/server/command/model/given/reaction/ValidCommander.java index fd87cc55a63..3e782ae43f4 100644 --- a/server/src/test/java/io/spine/server/command/model/given/reaction/ValidCommander.java +++ b/server/src/test/java/io/spine/server/command/model/given/reaction/ValidCommander.java @@ -39,7 +39,7 @@ import io.spine.model.contexts.projects.rejection.ProjectRejections; import io.spine.server.command.AbstractCommander; import io.spine.server.command.Command; -import io.spine.server.model.DoNothing; +import io.spine.server.command.DoNothing; import io.spine.server.tuple.EitherOf3; import io.spine.server.tuple.Pair; diff --git a/server/src/test/java/io/spine/server/entity/given/tx/TxProcessManager.java b/server/src/test/java/io/spine/server/entity/given/tx/TxProcessManager.java index ce7aa79f331..7244b920616 100644 --- a/server/src/test/java/io/spine/server/entity/given/tx/TxProcessManager.java +++ b/server/src/test/java/io/spine/server/entity/given/tx/TxProcessManager.java @@ -31,8 +31,8 @@ import io.spine.server.entity.given.tx.event.TxCreated; import io.spine.server.entity.given.tx.event.TxErrorRequested; import io.spine.server.entity.given.tx.event.TxStateErrorRequested; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.procman.ProcessManager; import java.util.List; @@ -51,11 +51,11 @@ public TxProcessManager(Id id) { } @React - Nothing event(TxCreated e) { + NoReaction event(TxCreated e) { receivedEvents.add(e); builder().setId(id()) .setName(e.getName()); - return nothing(); + return noReaction(); } /** @@ -65,16 +65,16 @@ Nothing event(TxCreated e) { * @see io.spine.server.procman.PmTransactionTest#failingInHandler() */ @React - Nothing event(TxErrorRequested e) { + NoReaction event(TxErrorRequested e) { throw new RuntimeException("that tests the tx behaviour for process manager"); } @React - Nothing event(TxStateErrorRequested e) { - // By convention the first field of state is required. + NoReaction event(TxStateErrorRequested e) { + // By convention, the first field of state is required. // Clearing it should fail the validation when the transaction is committed. builder().clearId(); - return nothing(); + return noReaction(); } public List receivedEvents() { diff --git a/server/src/test/java/io/spine/server/event/given/InvalidReactor.java b/server/src/test/java/io/spine/server/event/given/InvalidReactor.java index 4ab4e1505e5..8cff0464bb7 100644 --- a/server/src/test/java/io/spine/server/event/given/InvalidReactor.java +++ b/server/src/test/java/io/spine/server/event/given/InvalidReactor.java @@ -39,8 +39,8 @@ import io.spine.model.contexts.projects.rejection.ProjectRejections; import io.spine.model.contexts.projects.rejection.SigCannotCreateProject; import io.spine.server.event.AbstractEventReactor; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.model.given.SignatureTestEvent; import java.io.IOException; @@ -74,7 +74,7 @@ SigTaskStarted nonMessageParam(int event) { } @React - SigTaskStarted wrongThreeParams(SigTaskAddedToProject e, EventContext ctx, Nothing third) { + SigTaskStarted wrongThreeParams(SigTaskAddedToProject e, EventContext ctx, NoReaction third) { return taskStarted(); } @@ -87,7 +87,7 @@ SigProjectCreated rejectionAndThreeMoreParams(ProjectRejections.SigCannotCreateP } @React - SigTaskStarted wrongSecondParam(SigTaskAddedToProject event, Nothing message) { + SigTaskStarted wrongSecondParam(SigTaskAddedToProject event, NoReaction message) { return taskStarted(); } diff --git a/server/src/test/java/io/spine/server/event/given/ValidReactor.java b/server/src/test/java/io/spine/server/event/given/ValidReactor.java index ca36fec7634..fd50e0f0e1d 100644 --- a/server/src/test/java/io/spine/server/event/given/ValidReactor.java +++ b/server/src/test/java/io/spine/server/event/given/ValidReactor.java @@ -39,8 +39,8 @@ import io.spine.model.contexts.projects.event.SigTaskStopped; import io.spine.model.contexts.projects.rejection.ProjectRejections; import io.spine.server.event.AbstractEventReactor; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.tuple.EitherOf3; import io.spine.server.tuple.Pair; @@ -110,9 +110,9 @@ SigProjectCreated rejectionWithCommandAndCtx(ProjectRejections.SigCannotCreatePr } @React - EitherOf3 + EitherOf3 eitherOf3Result(SigTaskRemovedFromProject event) { - return EitherOf3.withC(nothing()); + return EitherOf3.withC(noReaction()); } @React diff --git a/server/src/test/java/io/spine/server/event/model/given/subscriber/InvalidSubscriber.java b/server/src/test/java/io/spine/server/event/model/given/subscriber/InvalidSubscriber.java index 9e6008e3865..39f67831976 100644 --- a/server/src/test/java/io/spine/server/event/model/given/subscriber/InvalidSubscriber.java +++ b/server/src/test/java/io/spine/server/event/model/given/subscriber/InvalidSubscriber.java @@ -37,8 +37,8 @@ import io.spine.model.contexts.projects.rejection.ProjectRejections; import io.spine.model.contexts.projects.rejection.SigCannotCreateProject; import io.spine.server.event.AbstractEventSubscriber; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.model.given.SignatureTestEvent; import java.io.IOException; @@ -71,7 +71,7 @@ void nonMessageParam(int event) { } @Subscribe - void wrongThreeParams(SigTaskAddedToProject event, EventContext ctx, Nothing third) { + void wrongThreeParams(SigTaskAddedToProject event, EventContext ctx, NoReaction third) { // do nothing. } @@ -84,7 +84,7 @@ void rejectionAndThreeMoreParams(ProjectRejections.SigCannotCreateProject reject } @Subscribe - void wrongSecondParam(SigTaskAddedToProject event, Nothing message) { + void wrongSecondParam(SigTaskAddedToProject event, NoReaction message) { // do nothing. } diff --git a/server/src/test/java/io/spine/server/model/TypeMatcherTest.java b/server/src/test/java/io/spine/server/model/TypeMatcherTest.java index 4f0c57e5217..fbfc8f54dab 100644 --- a/server/src/test/java/io/spine/server/model/TypeMatcherTest.java +++ b/server/src/test/java/io/spine/server/model/TypeMatcherTest.java @@ -32,6 +32,8 @@ import io.spine.base.CommandMessage; import io.spine.base.EventMessage; import io.spine.core.UserId; +import io.spine.server.event.NoReaction; +import io.spine.server.command.DoNothing; import io.spine.server.tuple.Pair; import io.spine.server.tuple.Triplet; import org.junit.jupiter.api.DisplayName; @@ -47,8 +49,10 @@ import static io.spine.server.model.TypeMatcher.matches; @DisplayName("`TypeMatcher` should") -@SuppressWarnings({"SerializableNonStaticInnerClassWithoutSerialVersionUID", - "SerializableInnerClassWithNonSerializableOuterClass"}) // using anonymous `TypeToken`s. +@SuppressWarnings({ + "SerializableNonStaticInnerClassWithoutSerialVersionUID", + "SerializableInnerClassWithNonSerializableOuterClass" /* using anonymous `TypeToken`s. */ +}) class TypeMatcherTest { @Test @@ -74,7 +78,7 @@ void matchSameTypes() { "another one being neither a subclass nor of the same type") void notMatchDifferentTypes() { assertThat(matches(TypeToken.of(UserId.class), - TypeToken.of(Nothing.class)) + TypeToken.of(NoReaction.class)) ).isFalse(); assertThat(matches(new TypeToken>() {}, @@ -119,7 +123,7 @@ void doNotMatchSubtypesWithDifferentGenerics() { void matchGenericByGeneric() { assertThat(matches(new TypeToken>() {}, - new TypeToken>() {}) + new TypeToken>() {}) ).isTrue(); assertThat(matches(new TypeToken>() {}, @@ -127,7 +131,7 @@ void matchGenericByGeneric() { ).isFalse(); assertThat(matches(new TypeToken>() {}, - new TypeToken>() {}) + new TypeToken>() {}) ).isFalse(); } @@ -137,7 +141,7 @@ void matchGenericByGeneric() { void unpackOptionalIfBothDefineGenericParams() { assertThat( matches(new TypeToken>() {}, - new TypeToken>() {}) + new TypeToken>() {}) ).isTrue(); assertThat( @@ -157,7 +161,8 @@ void unpackOptionalIfBothDefineGenericParams() { assertThat( matches(new TypeToken>() {}, - new TypeToken>>() {}) + new TypeToken>>() { + }) ).isTrue(); } @@ -167,7 +172,7 @@ void unpackOptionalIfBothDefineGenericParams() { void notUnpackOptionalIfExpectedHasNoGenerics() { assertThat( matches(TypeToken.of(EventMessage.class), - new TypeToken>() {}) + new TypeToken>() {}) ).isFalse(); } diff --git a/server/src/test/java/io/spine/server/model/given/HandlerReturnTypeTestEnv.java b/server/src/test/java/io/spine/server/model/given/HandlerReturnTypeTestEnv.java index 78f1917c10e..832df3fdf28 100644 --- a/server/src/test/java/io/spine/server/model/given/HandlerReturnTypeTestEnv.java +++ b/server/src/test/java/io/spine/server/model/given/HandlerReturnTypeTestEnv.java @@ -31,7 +31,7 @@ import com.google.protobuf.Message; import io.spine.base.EventMessage; import io.spine.base.RejectionMessage; -import io.spine.server.model.Nothing; +import io.spine.server.event.NoReaction; import io.spine.server.tuple.EitherOf2; import io.spine.server.tuple.EitherOf3; import io.spine.server.tuple.Pair; @@ -100,8 +100,8 @@ public EitherOf2 emitEither() { public void returnVoid() { } - public Nothing returnNothing() { - return Nothing.getDefaultInstance(); + public NoReaction returnNothing() { + return NoReaction.getDefaultInstance(); } public Empty returnEmpty() { diff --git a/server/src/test/java/io/spine/server/model/given/external/TestCommander.java b/server/src/test/java/io/spine/server/model/given/external/TestCommander.java index 143a3fa7804..113907c878a 100644 --- a/server/src/test/java/io/spine/server/model/given/external/TestCommander.java +++ b/server/src/test/java/io/spine/server/model/given/external/TestCommander.java @@ -29,7 +29,7 @@ import io.spine.core.External; import io.spine.server.command.AbstractCommander; import io.spine.server.command.Command; -import io.spine.server.model.DoNothing; +import io.spine.server.command.DoNothing; import io.spine.test.model.external.ExtProjectCreated; public final class TestCommander extends AbstractCommander { diff --git a/server/src/test/java/io/spine/server/model/given/external/TestReactor.java b/server/src/test/java/io/spine/server/model/given/external/TestReactor.java index a8c54fb7ef9..741bd5b4fbc 100644 --- a/server/src/test/java/io/spine/server/model/given/external/TestReactor.java +++ b/server/src/test/java/io/spine/server/model/given/external/TestReactor.java @@ -29,13 +29,13 @@ import io.spine.core.External; import io.spine.server.event.AbstractEventReactor; import io.spine.server.event.React; -import io.spine.server.model.Nothing; +import io.spine.server.event.NoReaction; import io.spine.test.model.external.ExtProjectCreated; public final class TestReactor extends AbstractEventReactor { @React - Nothing on(@External ExtProjectCreated event) { - return nothing(); + NoReaction on(@External ExtProjectCreated event) { + return noReaction(); } } diff --git a/server/src/test/java/io/spine/server/procman/given/pm/LastSignalMemo.java b/server/src/test/java/io/spine/server/procman/given/pm/LastSignalMemo.java index 815a1c1893f..efb296e3bc3 100644 --- a/server/src/test/java/io/spine/server/procman/given/pm/LastSignalMemo.java +++ b/server/src/test/java/io/spine/server/procman/given/pm/LastSignalMemo.java @@ -34,8 +34,8 @@ import io.spine.server.command.Command; import io.spine.server.entity.rejection.EntityAlreadyArchived; import io.spine.server.entity.rejection.StandardRejections; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.procman.ProcessManager; import io.spine.server.tuple.Pair; import io.spine.test.procman.ElephantProcess; @@ -219,15 +219,15 @@ Optional on(PmIterationPlanned event) { ************************/ @React - Nothing on(PmProjectCreated event) { + NoReaction on(PmProjectCreated event) { remember(event); - return nothing(); + return noReaction(); } @React - Nothing on(PmTaskAdded event) { + NoReaction on(PmTaskAdded event) { remember(event); - return nothing(); + return noReaction(); } @React @@ -246,8 +246,8 @@ PmCreateProject on(@External PmQuizStarted event) { } @React - Nothing on(@External PmQuestionAnswered event) { - return nothing(); + NoReaction on(@External PmQuestionAnswered event) { + return noReaction(); } /* @@ -255,14 +255,14 @@ Nothing on(@External PmQuestionAnswered event) { **************************/ @React - Nothing on(StandardRejections.EntityAlreadyArchived rejection, PmAddTask command) { + NoReaction on(StandardRejections.EntityAlreadyArchived rejection, PmAddTask command) { remember(command); // We check the command in the test. - return nothing(); + return noReaction(); } @React - Nothing on(StandardRejections.EntityAlreadyArchived rejection) { + NoReaction on(StandardRejections.EntityAlreadyArchived rejection) { remember(rejection); - return nothing(); + return noReaction(); } } diff --git a/server/src/test/java/io/spine/server/procman/given/repo/TestProcessManager.java b/server/src/test/java/io/spine/server/procman/given/repo/TestProcessManager.java index b0bb5c9abf5..d966e175bed 100644 --- a/server/src/test/java/io/spine/server/procman/given/repo/TestProcessManager.java +++ b/server/src/test/java/io/spine/server/procman/given/repo/TestProcessManager.java @@ -36,8 +36,8 @@ import io.spine.server.command.Command; import io.spine.server.entity.rejection.EntityAlreadyArchived; import io.spine.server.entity.rejection.StandardRejections; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.procman.ProcessManager; import io.spine.server.tuple.Pair; import io.spine.test.procman.Project; @@ -186,39 +186,39 @@ List handle(PmThrowEntityAlreadyArchived command) throws EntityAlr } @React - Nothing on(StandardRejections.EntityAlreadyArchived rejection) { + NoReaction on(StandardRejections.EntityAlreadyArchived rejection) { keep(rejection); - return nothing(); + return noReaction(); } @React - Nothing on(StandardRejections.EntityAlreadyDeleted rejection) { - return nothing(); + NoReaction on(StandardRejections.EntityAlreadyDeleted rejection) { + return noReaction(); } @React - Nothing on(PmTaskAdded event) { + NoReaction on(PmTaskAdded event) { keep(event); var task = event.getTask(); handleTaskAdded(task); - return nothing(); + return noReaction(); } @React - Nothing on(PmProjectStarted event) { + NoReaction on(PmProjectStarted event) { keep(event); handleProjectStarted(); - return nothing(); + return noReaction(); } @React - Nothing on(PmProjectCreated event, EventContext ignored) { + NoReaction on(PmProjectCreated event, EventContext ignored) { keep(event); handleProjectCreated(event.getProjectId()); - return nothing(); + return noReaction(); } @Override diff --git a/server/src/test/java/io/spine/server/trace/given/airport/BoardingProcman.java b/server/src/test/java/io/spine/server/trace/given/airport/BoardingProcman.java index 91121f41266..c55a89cfece 100644 --- a/server/src/test/java/io/spine/server/trace/given/airport/BoardingProcman.java +++ b/server/src/test/java/io/spine/server/trace/given/airport/BoardingProcman.java @@ -29,8 +29,8 @@ import io.spine.core.CommandContext; import io.spine.server.command.Assign; import io.spine.server.command.Command; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.procman.ProcessManager; import io.spine.test.trace.Boarding; import io.spine.test.trace.BoardingCanceled; @@ -73,10 +73,10 @@ BoardingStarted on(FlightScheduled event) { } @React - Nothing to(BoardingStarted event) { + NoReaction to(BoardingStarted event) { builder().setWhenStarted(event.getWhen()) .setStatus(STARTED); - return nothing(); + return noReaction(); } @Assign @@ -106,9 +106,9 @@ BoardingCanceled handle(CancelBoarding command, CommandContext context) { } @React - Nothing on(BoardingCanceled event) { + NoReaction on(BoardingCanceled event) { builder().setWhenEnded(event.getWhen()); - return nothing(); + return noReaction(); } private static ZonedDateTime now(CommandContext context) { diff --git a/server/src/test/java/io/spine/system/server/given/entity/PersonNamePart.java b/server/src/test/java/io/spine/system/server/given/entity/PersonNamePart.java index daec578a71c..a4dfda62e5f 100644 --- a/server/src/test/java/io/spine/system/server/given/entity/PersonNamePart.java +++ b/server/src/test/java/io/spine/system/server/given/entity/PersonNamePart.java @@ -29,8 +29,8 @@ import io.spine.server.aggregate.AggregatePart; import io.spine.server.aggregate.Apply; import io.spine.server.command.Assign; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.system.server.CreatePersonName; import io.spine.system.server.PersonFirstName; import io.spine.system.server.PersonId; @@ -51,8 +51,8 @@ private PersonNamePart(PersonRoot root) { } @React - Nothing reactOn(PersonRenamed event) { - return nothing(); + NoReaction reactOn(PersonRenamed event) { + return noReaction(); } @Assign diff --git a/server/src/test/java/io/spine/system/server/given/entity/PersonProcman.java b/server/src/test/java/io/spine/system/server/given/entity/PersonProcman.java index f6b3851929e..9a7cdcfd709 100644 --- a/server/src/test/java/io/spine/system/server/given/entity/PersonProcman.java +++ b/server/src/test/java/io/spine/system/server/given/entity/PersonProcman.java @@ -27,8 +27,8 @@ package io.spine.system.server.given.entity; import io.spine.server.command.Assign; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.procman.ProcessManager; import io.spine.system.server.CompletePersonCreation; import io.spine.system.server.PersonCreation; @@ -71,9 +71,9 @@ PersonCreationCompleted handle(CompletePersonCreation command) { } @React - Nothing reactOn(PersonNameCreated event) { + NoReaction reactOn(PersonNameCreated event) { builder().setId(event.getId()) .setCreated(true); - return nothing(); + return noReaction(); } } diff --git a/server/src/test/kotlin/io/spine/server/event/PolicySpec.kt b/server/src/test/kotlin/io/spine/server/event/PolicySpec.kt index 2a639095c31..f71e186cc50 100644 --- a/server/src/test/kotlin/io/spine/server/event/PolicySpec.kt +++ b/server/src/test/kotlin/io/spine/server/event/PolicySpec.kt @@ -28,7 +28,6 @@ package io.spine.server.event import io.kotest.matchers.shouldBe import io.spine.core.External -import io.spine.server.model.Nothing import io.spine.server.tuple.EitherOf2 import io.spine.test.shared.event.SomethingHappened import org.junit.jupiter.api.DisplayName @@ -49,28 +48,28 @@ internal class PolicySpec { fun `allow using 'Just' in return value`() { val policy = object : Policy() { @React - public override fun whenever(event: SomethingHappened): Just { - return Just.nothing + public override fun whenever(event: SomethingHappened): Just { + return Just.noReaction } } - policy.whenever(somethingHappened) shouldBe Just.nothing + policy.whenever(somethingHappened) shouldBe Just.noReaction } @Test fun `allow using 'Either' in return value`() { object : Policy() { @React - public override fun whenever(event: SomethingHappened): EitherOf2 { - return EitherOf2.withA(nothing) - } + public override fun whenever( + event: SomethingHappened + ): EitherOf2 = noReaction().asA() }.let { - it.whenever(somethingHappened) shouldBe EitherOf2.withA(nothing) + it.whenever(somethingHappened) shouldBe EitherOf2.withA(noReaction) } } companion object { - val somethingHappened = SomethingHappened.getDefaultInstance() - val nothing = Nothing.getDefaultInstance() + val somethingHappened: SomethingHappened = SomethingHappened.getDefaultInstance() + val noReaction: NoReaction = NoReaction.getDefaultInstance() } } @@ -78,13 +77,13 @@ internal class PolicySpec { * The policy which attempts to define a `@React` receptor to handle more than one * event type, as required by the `Policy` contract. */ -private class GreedyPolicy : Policy() { +private class GreedyPolicy : Policy() { @React - override fun whenever(@External event: Nothing): Just = - Just.nothing + override fun whenever(@External event: NoReaction): Just = + Just.noReaction @React - fun on(@Suppress("UNUSED_PARAMETER") e: SomethingHappened): Just = - Just.nothing + fun on(@Suppress("UNUSED_PARAMETER") e: SomethingHappened): Just = + Just.noReaction } diff --git a/server/src/test/kotlin/io/spine/server/procman/ProcessManagerSpec.kt b/server/src/test/kotlin/io/spine/server/procman/ProcessManagerSpec.kt index fe9b33aac9f..9b0d3572b5f 100644 --- a/server/src/test/kotlin/io/spine/server/procman/ProcessManagerSpec.kt +++ b/server/src/test/kotlin/io/spine/server/procman/ProcessManagerSpec.kt @@ -41,7 +41,7 @@ import io.spine.protobuf.AnyPacker import io.spine.protobuf.pack import io.spine.server.entity.given.Given import io.spine.server.entity.rejection.StandardRejections.EntityAlreadyArchived -import io.spine.server.model.Nothing +import io.spine.server.event.NoReaction import io.spine.server.procman.given.dispatch.PmDispatcher import io.spine.server.procman.given.pm.GivenMessages import io.spine.server.procman.given.pm.GivenMessages.addTask @@ -436,7 +436,7 @@ internal class ProcessManagerSpec { * * As a reaction to [Question Answered][PmQuestionAnswered] * the process manager emits an [EitherOf3][io.spine.server.tuple.EitherOf3] - * containing [Nothing]. This is done because the answered + * containing [io.spine.server.event.NoReaction]. This is done because the answered * question is not part of a quiz. * * @see io.spine.server.procman.given.pm.QuizProcess @@ -459,7 +459,7 @@ internal class ProcessManagerSpec { it.receivesCommands(commands).assertEvents() } - assertEvents.withType(Nothing::class.java) + assertEvents.withType(NoReaction::class.java) .isEmpty() assertEvents.withType(PmQuizStarted::class.java) .hasSize(1) diff --git a/server/src/test/kotlin/io/spine/server/procman/given/pm/QuizProcess.kt b/server/src/test/kotlin/io/spine/server/procman/given/pm/QuizProcess.kt index e39918e27a8..0957e1de2a5 100644 --- a/server/src/test/kotlin/io/spine/server/procman/given/pm/QuizProcess.kt +++ b/server/src/test/kotlin/io/spine/server/procman/given/pm/QuizProcess.kt @@ -28,8 +28,10 @@ package io.spine.server.procman.given.pm import io.spine.core.Subscribe import io.spine.server.command.Assign import io.spine.server.entity.alter +import io.spine.server.event.NoReaction import io.spine.server.event.React -import io.spine.server.model.Nothing +import io.spine.server.event.asA +import io.spine.server.event.asB import io.spine.server.procman.ProcessManager import io.spine.server.projection.Projection import io.spine.server.tuple.EitherOf2 @@ -77,17 +79,17 @@ internal class QuizProcess(id: PmQuizId) : ProcessManager { + fun on(event: PmQuestionAnswered): EitherOf3 { val answer = event.answer val question = answer.question if (question.isClosed()) { - return EitherOf3.withC(nothing()) + return EitherOf3.withC(noReaction()) } return if (answer.correct) { EitherOf3.withA(pmQuestionSolved { @@ -109,7 +111,7 @@ internal class QuizProcess(id: PmQuizId) : ProcessManager { + fun on(event: PmQuestionSolved): EitherOf2 { val question = event.question alter { removeOpenQuestion(question) @@ -119,7 +121,7 @@ internal class QuizProcess(id: PmQuizId) : ProcessManager { + fun on(event: PmQuestionFailed): EitherOf2 { val question = event.question alter { removeOpenQuestion(question) @@ -134,17 +136,17 @@ internal class QuizProcess(id: PmQuizId) : ProcessManager { + private fun onAnsweredQuestion(): EitherOf2 { return if (builder().openQuestionList.isEmpty()) { val loaded = select(PmQuizStats::class.java).findById(id()) - EitherOf2.withB(pmQuizFinished { + pmQuizFinished { quiz = id() loaded?.let { stats = it } - }) + }.asB() } else { - EitherOf2.withA(nothing()) + noReaction().asA() } } } diff --git a/server/src/test/kotlin/io/spine/server/query/QueryingClientSpec.kt b/server/src/test/kotlin/io/spine/server/query/QueryingClientSpec.kt index e21b0dce0e7..b1af475629f 100644 --- a/server/src/test/kotlin/io/spine/server/query/QueryingClientSpec.kt +++ b/server/src/test/kotlin/io/spine/server/query/QueryingClientSpec.kt @@ -39,6 +39,7 @@ import io.spine.server.given.context.counting.range import io.spine.testing.client.TestActorRequestFactory import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.BeforeAll +import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test @@ -88,6 +89,7 @@ internal class QueryingClientSpec { } @Test + @Disabled("Until Validation support field references in constraints.") fun `fetch the only one`() { val client = QueryingClient(context, RangeStats::class.java, actor) val rangeStats = client.findById(range) @@ -97,6 +99,7 @@ internal class QueryingClientSpec { } @Test + @Disabled("Until Validation support field references in constraints.") fun `fetch none`() { val client = QueryingClient(context, RangeStats::class.java, actor) val nonExisting = range { diff --git a/testutil-server/src/test/java/io/spine/testing/server/blackbox/given/BbProjectFailerProcess.java b/testutil-server/src/test/java/io/spine/testing/server/blackbox/given/BbProjectFailerProcess.java index 2d085e6325c..3bda41cfee2 100644 --- a/testutil-server/src/test/java/io/spine/testing/server/blackbox/given/BbProjectFailerProcess.java +++ b/testutil-server/src/test/java/io/spine/testing/server/blackbox/given/BbProjectFailerProcess.java @@ -27,8 +27,8 @@ package io.spine.testing.server.blackbox.given; import io.spine.server.command.Assign; +import io.spine.server.event.NoReaction; import io.spine.server.event.React; -import io.spine.server.model.Nothing; import io.spine.server.procman.ProcessManager; import io.spine.testing.server.blackbox.BbProjectFailer; import io.spine.testing.server.blackbox.BbProjectId; @@ -51,7 +51,7 @@ BbProjectFailed on(BbFailProject c) { @React @SuppressWarnings("DoNotCallSuggester") // Does not apply to this test env. case. - Nothing on(BbProjectFailed e) { + NoReaction on(BbProjectFailed e) { throw new RuntimeException("Reaction on the event failed unexpectedly."); } } diff --git a/testutil-server/src/test/java/io/spine/testing/server/model/given/ModelTestsTestEnv.java b/testutil-server/src/test/java/io/spine/testing/server/model/given/ModelTestsTestEnv.java index 3fa6b2e4559..877ba65c856 100644 --- a/testutil-server/src/test/java/io/spine/testing/server/model/given/ModelTestsTestEnv.java +++ b/testutil-server/src/test/java/io/spine/testing/server/model/given/ModelTestsTestEnv.java @@ -49,7 +49,7 @@ private TestCommandAssignee() { @Assign List handle(TuRemoveProject cmd) { - return ImmutableList.of(nothing()); + return ImmutableList.of(noReaction()); } } @@ -63,7 +63,7 @@ private DuplicatedCommandAssignee() { */ @Assign List handle(TuRemoveProject cmd) { - return ImmutableList.of(nothing()); + return ImmutableList.of(noReaction()); } } } diff --git a/version.gradle.kts b/version.gradle.kts index 8eaec221631..9447c1f75cd 100644 --- a/version.gradle.kts +++ b/version.gradle.kts @@ -29,4 +29,4 @@ * * For versions of Spine-based dependencies, please see [io.spine.internal.dependency.Spine]. */ -val versionToPublish: String by extra("2.0.0-SNAPSHOT.176") +val versionToPublish: String by extra("2.0.0-SNAPSHOT.177")