- get() = listOf(
- lib,
- javaExtensions,
- kotlinExtensions,
- testLib
- ).map {
- it.split(":").let { (g, artifact) -> "$g:$artifact" }
- }
+ /**
+ * Aligns the Java helpers used by generated validation code.
+ */
+ const val javaExtensions = "${Spine.group}:spine-time-java:$version"
}
diff --git a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt
index 95e07b6e..b2eac4aa 100644
--- a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt
+++ b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt
@@ -31,39 +31,20 @@ package io.spine.dependency.local
*
* @see tool-base
*/
-@Suppress("ConstPropertyName", "unused")
+@Suppress("ConstPropertyName")
object ToolBase {
- const val group = Spine.toolsGroup
- const val version = "2.0.0-SNAPSHOT.376"
- const val dogfoodingVersion = "2.0.0-SNAPSHOT.376"
- const val intellijPlatformVersion = "2.0.0-SNAPSHOT.360"
-
- const val lib = "$group:tool-base:$version"
- const val oldLib = "$group:spine-tool-base:2.0.0-SNAPSHOT.332"
- const val classicCodegen = "$group:classic-codegen:$version"
- const val pluginBase = "$group:plugin-base:$version"
- const val pluginTestlib = "$group:plugin-testlib:$version"
-
- const val intellijPlatform = "$group:intellij-platform:$intellijPlatformVersion"
- const val intellijPlatformJava = "$group:intellij-platform-java:$intellijPlatformVersion"
-
- const val psi = "$group:psi:$version"
- const val psiJavaArtifactName = "psi-java"
- const val psiJava = "$group:$psiJavaArtifactName:$version"
-
- const val rootGradlePlugins = "$group:root-gradle-plugins:$version"
- const val gradlePluginApi = "$group:gradle-plugin-api:$version"
- const val gradlePluginApiTestFixtures = "$group:gradle-plugin-api-test-fixtures:$version"
-
- const val jvmTools = "$group:jvm-tools:$version"
- const val jvmToolPluginDogfooding = "$group:jvm-tool-plugins-all:$dogfoodingVersion"
- const val jvmToolPlugins = "$group:jvm-tool-plugins-all:$version"
-
- const val protobufSetupPlugins = "$group:protobuf-setup-plugins:$version"
-
- object JavadocFilter {
- const val group = ToolBase.group
- const val version = "2.0.0-SNAPSHOT.75"
- const val artifact = "$group:spine-javadoc-filter:$version"
- }
+ /**
+ * Aligns the tools shared by the Compiler and its Gradle plugin.
+ */
+ private const val version = "2.0.0-SNAPSHOT.440"
+
+ /**
+ * Split tool-base artifacts that share APIs across the compiler's classpath.
+ */
+ val libs = listOf(
+ "code", "kotlin-code", "java-code", "fs", "psi", "psi-java",
+ "plugin-base", "root-gradle-plugins", "gradle-plugin-api", "jvm-tools",
+ "protobuf-setup-plugins", "intellij-platform", "intellij-platform-java"
+ )
+ .map { "${Spine.toolsGroup}:$it:$version" }
}
diff --git a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
index c495a1f3..de9e054c 100644
--- a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
+++ b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
@@ -27,46 +27,27 @@
package io.spine.dependency.local
/**
- * Dependencies on Spine Validation SDK.
- *
- * See [`SpineEventEngine/validation`](https://github.com/SpineEventEngine/validation/).
+ * Provides validation generation and its runtime.
*/
-@Suppress("ConstPropertyName", "unused")
+@Suppress("ConstPropertyName")
object Validation {
/**
- * The version of the Validation library artifacts.
+ * Aligns the artifacts used by this build.
*/
- const val version = "2.0.0-SNAPSHOT.409"
+ private const val version = "2.0.0-SNAPSHOT.469"
/**
- * The last version of Validation compatible with ProtoData.
+ * Configures validation generation for the internal model.
*/
- const val pdCompatibleVersion = "2.0.0-SNAPSHOT.342"
-
- const val group = Spine.toolsGroup
- private const val prefix = "validation"
-
- const val gradlePluginLib = "$group:$prefix-gradle-plugin:$version"
-
- const val runtimeModule = "${Spine.group}:spine-$prefix-jvm-runtime"
-
- fun runtime(version: String) = "$runtimeModule:$version"
- val runtime = runtime(version)
-
- @Deprecated("Use `runtime` instead.", ReplaceWith("runtime"))
- const val oldRuntime = "io.spine.validation:spine-validation-java-runtime:2.0.0-SNAPSHOT.354"
-
- const val javaModule = "$group:$prefix-java"
- const val java = "$javaModule:$version"
- const val javaBundleModule = "$group:$prefix-java-bundle"
+ const val gradlePluginLib = "${Spine.toolsGroup}:validation-gradle-plugin:$version"
- /** Obtains the artifact for the `java-bundle` artifact of the given version. */
- fun javaBundle(version: String) = "$javaBundleModule:$version"
-
- val javaBundle = javaBundle(version)
-
- const val model = "$group:$prefix-model:$version"
+ /**
+ * Runs validation in the internal model and Compiler APIs.
+ */
+ const val runtime = "${Spine.group}:spine-validation-jvm-runtime:$version"
- const val configModule = "$group:$prefix-configuration"
- const val context = "$group:$prefix-context:$version"
+ /**
+ * Provides the validation generator loaded by the Compiler.
+ */
+ const val javaBundle = "${Spine.toolsGroup}:validation-java-bundle:$version"
}
diff --git a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/Hamcrest.kt b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/Hamcrest.kt
deleted file mode 100644
index 774c3fe8..00000000
--- a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/Hamcrest.kt
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2025, 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.dependency.test
-
-/**
- * The dependency on the Hamcrest, which is transitive for us.
- *
- * If you need assertions in Java, please use Google [Truth] instead.
- * For Kotlin, please use [Kotest].
- */
-@Suppress("unused", "ConstPropertyName")
-object Hamcrest {
- // https://github.com/hamcrest/JavaHamcrest/releases
- private const val version = "2.2"
- const val core = "org.hamcrest:hamcrest-core:${version}"
-}
diff --git a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/JUnit.kt b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/JUnit.kt
deleted file mode 100644
index 3240262d..00000000
--- a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/JUnit.kt
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright 2025, 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.dependency.test
-
-// https://junit.org/junit5/
-@Suppress("unused", "ConstPropertyName")
-object JUnit {
- const val version = "5.10.0"
- private const val legacyVersion = "4.13.1"
-
- // https://github.com/apiguardian-team/apiguardian
- private const val apiGuardianVersion = "1.1.2"
-
- // https://github.com/junit-pioneer/junit-pioneer
- private const val pioneerVersion = "2.0.1"
-
- const val legacy = "junit:junit:${legacyVersion}"
-
- val api = listOf(
- "org.apiguardian:apiguardian-api:${apiGuardianVersion}",
- "org.junit.jupiter:junit-jupiter-api:${version}",
- "org.junit.jupiter:junit-jupiter-params:${version}"
- )
- const val bom = "org.junit:junit-bom:${version}"
-
- const val runner = "org.junit.jupiter:junit-jupiter-engine:${version}"
- const val params = "org.junit.jupiter:junit-jupiter-params:${version}"
-
- const val pioneer = "org.junit-pioneer:junit-pioneer:${pioneerVersion}"
-
- object Platform {
- // https://junit.org/junit5/
- const val version = "1.10.0"
- internal const val group = "org.junit.platform"
- const val commons = "$group:junit-platform-commons:$version"
- const val launcher = "$group:junit-platform-launcher:$version"
- const val engine = "$group:junit-platform-engine:$version"
- const val suiteApi = "$group:junit-platform-suite-api:$version"
- }
-}
diff --git a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt
deleted file mode 100644
index 2ba0a680..00000000
--- a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2025, 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.dependency.test
-
-/**
- * Testing framework for Kotlin.
- *
- * @see Kotest site
- */
-@Suppress("unused", "ConstPropertyName")
-object Kotest {
- const val version = "5.6.2"
- const val group = "io.kotest"
- const val assertions = "$group:kotest-assertions-core:$version"
- const val runnerJUnit5 = "$group:kotest-runner-junit5:$version"
- const val runnerJUnit5Jvm = "$group:kotest-runner-junit5-jvm:$version"
- const val frameworkApi = "$group:kotest-framework-api:$version"
- const val datatest = "$group:kotest-framework-datatest:$version"
- const val frameworkEngine = "$group:kotest-framework-engine:$version"
-
- // https://plugins.gradle.org/plugin/io.kotest.multiplatform
- object MultiplatformGradlePlugin {
- const val version = Kotest.version
- const val id = "io.kotest.multiplatform"
- const val classpath = "$group:kotest-framework-multiplatform-plugin-gradle:$version"
- }
-
- // https://github.com/kotest/kotest-gradle-plugin
- object JvmGradlePlugin {
- const val version = "0.4.10"
- const val id = "io.kotest"
- const val classpath = "$group:kotest-gradle-plugin:$version"
- }
-}
diff --git a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/OpenTest4J.kt b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/OpenTest4J.kt
deleted file mode 100644
index fd088378..00000000
--- a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/OpenTest4J.kt
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2025, 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.dependency.test
-
-/**
- * The dependency on the OpenTest4j library, which is transitive for us.
- */
-@Suppress("unused", "ConstPropertyName")
-object OpenTest4J {
-
- // https://github.com/ota4j-team/opentest4j/releases
- private const val version = "1.3.0"
- const val lib = "org.opentest4j:opentest4j:${version}"
-}
diff --git a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/TestKitTruth.kt b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/TestKitTruth.kt
deleted file mode 100644
index bfec2113..00000000
--- a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/TestKitTruth.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2025, 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.
- */
-
-@file:Suppress("MaxLineLength")
-
-package io.spine.dependency.test
-
-/**
- * Gradle TestKit extension for Google Truth.
- *
- * @see TestKit source code
- * @see Usage description
- */
-@Suppress("unused", "ConstPropertyName")
-object TestKitTruth {
- private const val version = "1.20.0"
- const val lib = "com.autonomousapps:testkit-truth:$version"
-}
diff --git a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/Truth.kt b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/Truth.kt
deleted file mode 100644
index 6e6b6758..00000000
--- a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/dependency/test/Truth.kt
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2025, 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.dependency.test
-
-// https://github.com/google/truth
-@Suppress("unused", "ConstPropertyName")
-object Truth {
- private const val version = "1.1.5"
- val libs = listOf(
- "com.google.truth:truth:${version}",
- "com.google.truth.extensions:truth-java8-extension:${version}",
- "com.google.truth.extensions:truth-proto-extension:${version}"
- )
-}
diff --git a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/gradle/Repositories.kt b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/gradle/Repositories.kt
index a0d1edf9..d9c75289 100644
--- a/codegen/plugins/buildSrc/src/main/kotlin/io/spine/gradle/Repositories.kt
+++ b/codegen/plugins/buildSrc/src/main/kotlin/io/spine/gradle/Repositories.kt
@@ -237,10 +237,10 @@ val RepositoryHandler.jetBrainsCacheRedirector: MavenArtifactRepository
*/
fun RepositoryHandler.standardToSpineSdk() {
val spineRepos = listOf(
- Repos.spine,
- Repos.spineSnapshots,
Repos.artifactRegistry,
- Repos.artifactRegistrySnapshots
+ Repos.artifactRegistrySnapshots,
+ Repos.spine,
+ Repos.spineSnapshots
)
spineRepos
diff --git a/codegen/plugins/codegen-plugins/build.gradle.kts b/codegen/plugins/codegen-plugins/build.gradle.kts
index 982c1f11..0fffdcc9 100644
--- a/codegen/plugins/codegen-plugins/build.gradle.kts
+++ b/codegen/plugins/codegen-plugins/build.gradle.kts
@@ -26,13 +26,13 @@
import io.spine.dependency.lib.KotlinPoet
import io.spine.dependency.local.Chords
-import io.spine.dependency.local.ProtoData
+import io.spine.dependency.local.Compiler
dependencies {
- // To use ProtoData API in code generation plugin.
- implementation(ProtoData.backend)
+ // To use Spine Compiler API in code generation plugin.
+ implementation(Compiler.api)
// To use `PrimitiveType` extensions.
- implementation(ProtoData.java)
+ implementation(Compiler.jvm)
// To generate Kotlin sources.
implementation(KotlinPoet.lib)
// To use `spine-chords-runtime` published to Maven local.
@@ -64,6 +64,7 @@ val copyWorkspaceResources = tasks.register("copyWorkspaceResources") {
)
exclude(
"buildSrc/.gradle",
+ "buildSrc/.kotlin",
"buildSrc/build",
"buildSrc/aus.weis"
)
@@ -73,8 +74,11 @@ val copyWorkspaceResources = tasks.register("copyWorkspaceResources") {
}
}
-tasks.named("compileKotlin") {
+tasks.matching { it.name == "processResources" || it.name == "sourcesJar" }.configureEach {
dependsOn(copyWorkspaceResources)
+}
+
+tasks.named("compileKotlin") {
dependsOn("kspKotlin")
}
@@ -83,11 +87,11 @@ tasks.named("compileTestKotlin") {
}
tasks.matching { it.name == "kspKotlin" }.configureEach {
- dependsOn("launchProtoData")
+ dependsOn("launchSpineCompiler")
}
tasks.matching { it.name == "kspTestKotlin" }.configureEach {
- dependsOn("launchTestProtoData")
+ dependsOn("launchTestSpineCompiler")
}
/**
@@ -103,6 +107,10 @@ val cleanWorkspaceResources = tasks.register("cleanWorkspaceResources") {
}
}
+copyWorkspaceResources.configure {
+ dependsOn(cleanWorkspaceResources)
+}
+
tasks.named("clean") {
dependsOn(cleanWorkspaceResources)
}
diff --git a/codegen/plugins/codegen-plugins/src/main/java/com/google/protobuf/GeneratedFile.java b/codegen/plugins/codegen-plugins/src/main/java/com/google/protobuf/GeneratedFile.java
deleted file mode 100644
index 3b8a8f03..00000000
--- a/codegen/plugins/codegen-plugins/src/main/java/com/google/protobuf/GeneratedFile.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2026, 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 com.google.protobuf;
-
-/**
- * Compatibility shim for protobuf-generated classes compiled against an older
- * protobuf Java runtime.
- *
- * Some transitive Spine artifacts on this module's compile classpath still
- * contain generated classes such as {@code io.spine.option.OptionsProto} that
- * extend {@code com.google.protobuf.GeneratedFile}. That base class existed in
- * older protobuf Java runtimes, but it is no longer present in protobuf 4.x,
- * which this module uses.
- *
- *
As a result, javac fails while resolving those generated Spine classes,
- * even though they do not rely on any behavior from {@code GeneratedFile}
- * itself. In practice, it is only a marker superclass in this build.
- *
- *
This shim keeps the compile classpath compatible until the upstream Spine
- * artifacts are regenerated against a protobuf runtime that no longer emits
- * references to {@code GeneratedFile}. Once those dependencies are updated,
- * this class should be removed.
- */
-public abstract class GeneratedFile {
- protected GeneratedFile() {
- }
-}
diff --git a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/BuilderExtensionGenerator.kt b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/BuilderExtensionGenerator.kt
index edb6d98e..7900d7ca 100644
--- a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/BuilderExtensionGenerator.kt
+++ b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/BuilderExtensionGenerator.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, 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.
@@ -34,8 +34,8 @@ import com.squareup.kotlinpoet.KModifier.PUBLIC
import com.squareup.kotlinpoet.PropertySpec
import com.squareup.kotlinpoet.asClassName
import io.spine.chords.runtime.MessageDef
-import io.spine.protodata.ast.TypeName
-import io.spine.protodata.type.TypeSystem
+import io.spine.tools.compiler.ast.TypeName
+import io.spine.tools.compiler.type.TypeSystem
/**
* Implementation of [FileFragmentGenerator] that generates extension
diff --git a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageDefFileGenerator.kt b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageDefFileGenerator.kt
index 4ff6e716..4a55ddf3 100644
--- a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageDefFileGenerator.kt
+++ b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageDefFileGenerator.kt
@@ -35,10 +35,10 @@ import io.spine.chords.runtime.MessageDef
import io.spine.chords.runtime.MessageDef.Companion.MESSAGE_DEF_CLASS_SUFFIX
import io.spine.chords.runtime.MessageField
import io.spine.chords.runtime.MessageOneof
-import io.spine.protodata.ast.Field
-import io.spine.protodata.ast.TypeName
-import io.spine.protodata.type.TypeSystem
import io.spine.string.camelCase
+import io.spine.tools.compiler.ast.Field
+import io.spine.tools.compiler.ast.TypeName
+import io.spine.tools.compiler.type.TypeSystem
import javax.annotation.Generated
/**
diff --git a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageDefObjectGenerator.kt b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageDefObjectGenerator.kt
index 627c4445..d16a58cb 100644
--- a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageDefObjectGenerator.kt
+++ b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageDefObjectGenerator.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, 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.
@@ -40,10 +40,10 @@ import io.spine.chords.runtime.MessageDef
import io.spine.chords.runtime.MessageField
import io.spine.chords.runtime.MessageFieldValue
import io.spine.chords.runtime.MessageOneof
-import io.spine.protodata.ast.Field
-import io.spine.protodata.ast.TypeName
-import io.spine.protodata.ast.isPartOfOneof
-import io.spine.protodata.type.TypeSystem
+import io.spine.tools.compiler.ast.Field
+import io.spine.tools.compiler.ast.TypeName
+import io.spine.tools.compiler.ast.isPartOfOneof
+import io.spine.tools.compiler.type.TypeSystem
import java.lang.System.lineSeparator
/**
diff --git a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldObjectGenerator.kt b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldObjectGenerator.kt
index 3192be87..d1634cc4 100644
--- a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldObjectGenerator.kt
+++ b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldObjectGenerator.kt
@@ -40,30 +40,30 @@ import com.squareup.kotlinpoet.TypeSpec
import com.squareup.kotlinpoet.asClassName
import io.spine.chords.runtime.MessageField
import io.spine.protobuf.AnyPacker.unpack
-import io.spine.protodata.ast.Field
-import io.spine.protodata.ast.FieldType
-import io.spine.protodata.ast.FieldType.KindCase.ENUMERATION
-import io.spine.protodata.ast.FieldType.KindCase.LIST
-import io.spine.protodata.ast.FieldType.KindCase.MAP
-import io.spine.protodata.ast.FieldType.KindCase.MESSAGE
-import io.spine.protodata.ast.FieldType.KindCase.PRIMITIVE
-import io.spine.protodata.ast.Type
-import io.spine.protodata.ast.TypeName
-import io.spine.protodata.ast.isSingular
-import io.spine.protodata.ast.toType
-import io.spine.protodata.ast.typeName
-import io.spine.protodata.java.getterName
-import io.spine.protodata.java.javaPackage
-import io.spine.protodata.java.primarySetterName
-import io.spine.protodata.java.primitiveClass
-import io.spine.protodata.type.TypeSystem
-import io.spine.protodata.type.findHeader
import io.spine.string.camelCase
+import io.spine.tools.compiler.ast.Field
+import io.spine.tools.compiler.ast.FieldType
+import io.spine.tools.compiler.ast.FieldType.KindCase.ENUMERATION
+import io.spine.tools.compiler.ast.FieldType.KindCase.LIST
+import io.spine.tools.compiler.ast.FieldType.KindCase.MAP
+import io.spine.tools.compiler.ast.FieldType.KindCase.MESSAGE
+import io.spine.tools.compiler.ast.FieldType.KindCase.PRIMITIVE
+import io.spine.tools.compiler.ast.Type
+import io.spine.tools.compiler.ast.TypeName
+import io.spine.tools.compiler.ast.isSingular
+import io.spine.tools.compiler.ast.toType
+import io.spine.tools.compiler.ast.typeName
+import io.spine.tools.compiler.jvm.getterName
+import io.spine.tools.compiler.jvm.javaPackage
+import io.spine.tools.compiler.jvm.primarySetterName
+import io.spine.tools.compiler.jvm.primitiveClass
+import io.spine.tools.compiler.type.TypeSystem
+import io.spine.tools.compiler.type.findHeader
/**
* Package and class name of the `io.spine.protobuf.ValidatingBuilder`.
*
- * It is not in the classpath of this ProtoData plugin and cannot be used directly.
+ * It is not in the classpath of this Spine Compiler plugin and cannot be used directly.
*/
private object ValidatingBuilder {
const val PACKAGE = "io.spine.protobuf"
diff --git a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldsPlugin.kt b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldsPlugin.kt
index 22c47c7c..9c77b40f 100644
--- a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldsPlugin.kt
+++ b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldsPlugin.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, 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.
@@ -29,10 +29,10 @@ package io.spine.chords.codegen.plugins
import io.spine.chords.runtime.MessageDef
import io.spine.chords.runtime.MessageField
import io.spine.chords.runtime.MessageOneof
-import io.spine.protodata.plugin.Plugin
+import io.spine.tools.compiler.plugin.Plugin
/**
- * The ProtoData [Plugin] that generates [MessageDef], [MessageField],
+ * The Spine Compiler [Plugin] that generates [MessageDef], [MessageField],
* and [MessageOneof] implementations for Proto messages.
*
* See the [MessageFieldsRenderer] for detail on code generation.
diff --git a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldsRenderer.kt b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldsRenderer.kt
index 4b2489d6..be25874f 100644
--- a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldsRenderer.kt
+++ b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageFieldsRenderer.kt
@@ -31,24 +31,24 @@ import com.squareup.kotlinpoet.FileSpec
import io.spine.chords.runtime.MessageDef
import io.spine.chords.runtime.MessageField
import io.spine.chords.runtime.MessageOneof
-import io.spine.protodata.ast.Field
-import io.spine.protodata.ast.TypeName
-import io.spine.protodata.java.javaPackage
-import io.spine.protodata.render.Renderer
-import io.spine.protodata.render.SourceFileSet
-import io.spine.protodata.type.TypeSystem
import io.spine.string.Indent
import io.spine.tools.code.Kotlin
+import io.spine.tools.compiler.ast.Field
+import io.spine.tools.compiler.ast.TypeName
+import io.spine.tools.compiler.jvm.javaPackage
+import io.spine.tools.compiler.render.Renderer
+import io.spine.tools.compiler.render.SourceFileSet
+import io.spine.tools.compiler.type.TypeSystem
import java.nio.file.Path
/**
- * ProtoData [Renderer] that generates [MessageDef], [MessageField],
+ * Spine Compiler [Renderer] that generates [MessageDef], [MessageField],
* and [MessageOneof] implementations for Proto messages.
*
* The renderer prepares all the required data for code generation
* and runs [MessageDefFileGenerator] to generate Kotlin files.
*/
-public class MessageFieldsRenderer : Renderer(Kotlin.lang()) {
+public class MessageFieldsRenderer : Renderer(Kotlin) {
private companion object {
private const val KOTLIN_SOURCE_ROOT = "kotlin"
diff --git a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageOneofObjectGenerator.kt b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageOneofObjectGenerator.kt
index d0dccbdc..97b51248 100644
--- a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageOneofObjectGenerator.kt
+++ b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageOneofObjectGenerator.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, 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.
@@ -43,11 +43,11 @@ import io.spine.chords.runtime.MessageField
import io.spine.chords.runtime.MessageFieldValue
import io.spine.chords.runtime.MessageOneof
import io.spine.protobuf.AnyPacker.unpack
-import io.spine.protodata.ast.Field
-import io.spine.protodata.ast.TypeName
-import io.spine.protodata.ast.isPartOfOneof
-import io.spine.protodata.java.javaCase
-import io.spine.protodata.type.TypeSystem
+import io.spine.tools.compiler.ast.Field
+import io.spine.tools.compiler.ast.TypeName
+import io.spine.tools.compiler.ast.isPartOfOneof
+import io.spine.tools.compiler.jvm.javaCase
+import io.spine.tools.compiler.type.TypeSystem
import java.lang.System.lineSeparator
/**
diff --git a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageView.kt b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageView.kt
index 8f0513ab..b8f5a02a 100644
--- a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageView.kt
+++ b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageView.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, 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.
@@ -27,8 +27,8 @@ package io.spine.chords.codegen.plugins
import io.spine.core.External
import io.spine.core.Subscribe
-import io.spine.protodata.ast.event.TypeDiscovered
-import io.spine.protodata.plugin.View
+import io.spine.tools.compiler.ast.event.TypeDiscovered
+import io.spine.tools.compiler.plugin.View
/**
* Records the [MessageTypeView]s.
diff --git a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageViewRepository.kt b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageViewRepository.kt
index d2a3acd9..506c3757 100644
--- a/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageViewRepository.kt
+++ b/codegen/plugins/codegen-plugins/src/main/kotlin/io/spine/chords/codegen/plugins/MessageViewRepository.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, 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.
@@ -26,10 +26,10 @@
package io.spine.chords.codegen.plugins
import io.spine.core.EventContext
-import io.spine.protodata.ast.event.TypeDiscovered
-import io.spine.protodata.plugin.ViewRepository
import io.spine.server.route.EventRoute
import io.spine.server.route.EventRouting
+import io.spine.tools.compiler.ast.event.TypeDiscovered
+import io.spine.tools.compiler.plugin.ViewRepository
/**
* The repository for [MessageView].
diff --git a/codegen/plugins/codegen-plugins/src/main/proto/spine/chords/codegen/plugins/message_type_view.proto b/codegen/plugins/codegen-plugins/src/main/proto/spine/chords/codegen/plugins/message_type_view.proto
index 4795933f..7fc0b4d6 100644
--- a/codegen/plugins/codegen-plugins/src/main/proto/spine/chords/codegen/plugins/message_type_view.proto
+++ b/codegen/plugins/codegen-plugins/src/main/proto/spine/chords/codegen/plugins/message_type_view.proto
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, 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.
@@ -29,14 +29,14 @@ syntax = "proto3";
package spine.chords.codegen.plugins;
import "spine/options.proto";
-import "spine/protodata/file.proto";
+import "spine/compiler/file.proto";
option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.chords.codegen.plugins";
option java_outer_classname = "MessageViewProto";
option java_multiple_files = true;
-import "spine/protodata/ast.proto";
+import "spine/compiler/ast.proto";
// View on the message type.
message MessageTypeView {
@@ -50,8 +50,8 @@ message MessageTypeView {
message MessageTypeViewId {
// The file where the message is declared.
- spine.protodata.File file = 1 [(required) = true];
+ spine.compiler.File file = 1 [(required) = true];
// The type of the message.
- spine.protodata.TypeName type_name = 2 [(required) = true];
+ spine.compiler.TypeName type_name = 2 [(required) = true];
}
diff --git a/codegen/plugins/codegen-plugins/src/main/resources/codegen-workspace/build.gradle.kts b/codegen/plugins/codegen-plugins/src/main/resources/codegen-workspace/build.gradle.kts
index 4b4a10d5..f5bc8433 100644
--- a/codegen/plugins/codegen-plugins/src/main/resources/codegen-workspace/build.gradle.kts
+++ b/codegen/plugins/codegen-plugins/src/main/resources/codegen-workspace/build.gradle.kts
@@ -40,14 +40,13 @@ buildscript {
doForceVersions(configurations)
dependencies {
- classpath(io.spine.dependency.local.McJava.pluginLib)
+ classpath(io.spine.dependency.local.Compiler.pluginLib)
}
}
plugins {
kotlin("jvm")
id("com.google.protobuf")
- id("io.spine.protodata") version "0.96.4"
idea
}
@@ -89,7 +88,8 @@ subprojects {
}
dependencies {
- Protobuf.libs.forEach { implementation(it) }
+ // Protobuf definitions are needed as input; this workspace does not compile Kotlin.
+ implementation(Protobuf.java)
}
protobuf {
diff --git a/codegen/plugins/codegen-plugins/src/main/resources/codegen-workspace/workspace/build.gradle.kts b/codegen/plugins/codegen-plugins/src/main/resources/codegen-workspace/workspace/build.gradle.kts
index 5daee2e1..b519a7c3 100644
--- a/codegen/plugins/codegen-plugins/src/main/resources/codegen-workspace/workspace/build.gradle.kts
+++ b/codegen/plugins/codegen-plugins/src/main/resources/codegen-workspace/workspace/build.gradle.kts
@@ -26,9 +26,9 @@
import io.spine.dependency.local.CoreJvm
-// Apply ProtoData directly, without Spine's Model Compiler.
+// Apply Spine Compiler directly, without Spine's Model Compiler.
plugins {
- id("io.spine.protodata")
+ id("io.spine.compiler")
}
/**
@@ -42,9 +42,9 @@ val codegenPluginsArtifact = project.properties["codegenPluginsArtifact"] as Str
val sourceModuleDir = project.properties["sourceModuleDir"] as String
dependencies {
- // The generated code relies onto `ValidatingBuilder` from Spine `1.9.x`.
- implementation(CoreJvm.server_1_9)
- protoData(codegenPluginsArtifact)
+ // Supplies the Spine Protobuf imports used by consumer schemas.
+ implementation(CoreJvm.server)
+ spineCompiler(codegenPluginsArtifact)
}
/**
@@ -59,10 +59,11 @@ if (project.hasProperty("dependencyItems")) {
}
}
-protoData {
- plugins(
- "io.spine.chords.codegen.plugins.MessageFieldsPlugin"
- )
+spine {
+ compiler {
+ subDirs = listOf("java", "kotlin")
+ plugins("io.spine.chords.codegen.plugins.MessageFieldsPlugin")
+ }
}
/**
@@ -130,26 +131,30 @@ tasks.named("generateTestProto") {
}
/**
- * Copy generated sources back to the source module.
+ * Exports Chords message definitions; consumers generate their own Protobuf Kotlin DSL.
*/
-tasks.named("launchProtoData") {
+tasks.named("launchSpineCompiler") {
doLast {
copy {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
- from("generated/main/kotlin")
+ from("generated/main/kotlin") {
+ include("**/*Def.kt")
+ }
into("${sourceModuleDir}/generated/main/kotlin")
}
}
}
/**
- * Copy generated test sources back to the source module.
+ * Exports test message definitions without replacing the consumer's Protobuf Kotlin DSL.
*/
-tasks.named("launchTestProtoData") {
+tasks.named("launchTestSpineCompiler") {
doLast {
copy {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
- from("generated/test/kotlin")
+ from("generated/test/kotlin") {
+ include("**/*Def.kt")
+ }
into("${sourceModuleDir}/generated/test/kotlin")
}
}
diff --git a/codegen/tests/build.gradle.kts b/codegen/tests/build.gradle.kts
index 05efb035..d3f24dd9 100644
--- a/codegen/tests/build.gradle.kts
+++ b/codegen/tests/build.gradle.kts
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, 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/dependencies.md b/dependencies.md
index 0d008643..6da018cb 100644
--- a/dependencies.md
+++ b/dependencies.md
@@ -1,6 +1,6 @@
-# Dependencies of `io.spine.chords:spine-chords-client:2.0.0-SNAPSHOT.148`
+# Dependencies of `io.spine.chords:spine-chords-client:2.0.0-SNAPSHOT.150`
## Runtime
1. **Group** : cafe.adriel.voyager. **Name** : voyager-core. **Version** : 1.0.1.**No license information found**
@@ -1129,12 +1129,12 @@
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Oct 30 13:57:52 EET 2026** 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 **Fri Oct 30 23:07:29 EET 2026** 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.chords:spine-chords-codegen-tests:2.0.0-SNAPSHOT.148`
+# Dependencies of `io.spine.chords:spine-chords-codegen-tests:2.0.0-SNAPSHOT.150`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -1924,12 +1924,12 @@ This report was generated on **Fri Oct 30 13:57:52 EET 2026** using [Gradle-Lice
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Oct 30 13:57:52 EET 2026** 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 **Fri Oct 30 23:07:30 EET 2026** 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.chords:spine-chords-core:2.0.0-SNAPSHOT.148`
+# Dependencies of `io.spine.chords:spine-chords-core:2.0.0-SNAPSHOT.150`
## Runtime
1. **Group** : cafe.adriel.voyager. **Name** : voyager-core. **Version** : 1.0.1.
@@ -2963,12 +2963,12 @@ This report was generated on **Fri Oct 30 13:57:52 EET 2026** using [Gradle-Lice
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Oct 30 13:57:53 EET 2026** 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 **Fri Oct 30 23:07:31 EET 2026** 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.chords:spine-chords-proto:2.0.0-SNAPSHOT.148`
+# Dependencies of `io.spine.chords:spine-chords-proto:2.0.0-SNAPSHOT.150`
## Runtime
1. **Group** : cafe.adriel.voyager. **Name** : voyager-core. **Version** : 1.0.1.**No license information found**
@@ -4001,12 +4001,12 @@ This report was generated on **Fri Oct 30 13:57:53 EET 2026** using [Gradle-Lice
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Oct 30 13:57:54 EET 2026** 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 **Fri Oct 30 23:07:32 EET 2026** 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.chords:spine-chords-proto-values:2.0.0-SNAPSHOT.148`
+# Dependencies of `io.spine.chords:spine-chords-proto-values:2.0.0-SNAPSHOT.150`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -4800,12 +4800,12 @@ This report was generated on **Fri Oct 30 13:57:54 EET 2026** using [Gradle-Lice
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Oct 30 13:57:56 EET 2026** 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 **Fri Oct 30 23:07:33 EET 2026** 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.chords:spine-chords-runtime:2.0.0-SNAPSHOT.148`
+# Dependencies of `io.spine.chords:spine-chords-runtime:2.0.0-SNAPSHOT.150`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -5569,4 +5569,4 @@ This report was generated on **Fri Oct 30 13:57:56 EET 2026** using [Gradle-Lice
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Oct 30 13:57:56 EET 2026** 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 **Fri Oct 30 23:07:33 EET 2026** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 3fe6c914..1d20a25c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@ all modules and does not describe the project structure per-subproject.
-->
io.spine.chords
Chords
-2.0.0-SNAPSHOT.148
+2.0.0-SNAPSHOT.150
2015
@@ -242,7 +242,7 @@ all modules and does not describe the project structure per-subproject.
io.spine.chords
spine-chords-codegen-plugins
- 2.0.0-SNAPSHOT.148
+ 2.0.0-SNAPSHOT.150
io.spine.tools
diff --git a/version.gradle.kts b/version.gradle.kts
index 360522a4..f89f5aef 100644
--- a/version.gradle.kts
+++ b/version.gradle.kts
@@ -27,4 +27,4 @@
/**
* The version of all Chords libraries.
*/
-val chordsVersion: String by extra("2.0.0-SNAPSHOT.148")
+val chordsVersion: String by extra("2.0.0-SNAPSHOT.150")