From eaa43f4139f104f2ae5e08ac5048292ab4678835 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 18:34:13 +0000 Subject: [PATCH 01/16] Bump version -> `2.0.0-SNAPSHOT.205` --- version.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.gradle.kts b/version.gradle.kts index 1a3b4da6..955f165a 100644 --- a/version.gradle.kts +++ b/version.gradle.kts @@ -29,4 +29,4 @@ * * For dependencies on Spine modules please see [io.spine.dependency.local.Spine]. */ -val versionToPublish by extra("2.0.0-SNAPSHOT.204") +val versionToPublish by extra("2.0.0-SNAPSHOT.205") From ebb56c3d945eb43d25d7241c5bf280c95859fef5 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 18:38:11 +0000 Subject: [PATCH 02/16] Update `config` --- buildSrc/build.gradle.kts | 7 + .../kotlin/io/spine/dependency/lib/Grpc.kt | 2 +- .../kotlin/io/spine/dependency/lib/Guava.kt | 2 +- .../io/spine/dependency/lib/Protobuf.kt | 2 +- .../spine/dependency/local/ArtifactVersion.kt | 137 ------------------ .../kotlin/io/spine/dependency/local/Base.kt | 4 +- .../io/spine/dependency/local/BaseTypes.kt | 2 +- .../io/spine/dependency/local/Compiler.kt | 4 +- .../io/spine/dependency/local/CoreJvm.kt | 2 +- .../kotlin/io/spine/dependency/local/Text.kt | 40 ----- .../kotlin/io/spine/dependency/local/Time.kt | 2 +- .../kotlin/io/spine/dependency/test/JUnit.kt | 22 +-- config | 2 +- dependencies.md | 112 +++++++------- pom.xml | 24 +-- 15 files changed, 89 insertions(+), 275 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/io/spine/dependency/local/ArtifactVersion.kt delete mode 100644 buildSrc/src/main/kotlin/io/spine/dependency/local/Text.kt diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 64ad3b42..bec73725 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -127,6 +127,11 @@ val detektVersion = "1.23.8" */ val kotestJvmPluginVersion = "0.4.10" +/** + * @see [io.spine.dependency.test.Kotest.MultiplatformGradlePlugin] + */ +val kotestMultiplatformPluginVersion = "6.0.0.M4" + /** * @see [io.spine.dependency.test.Kover] */ @@ -179,6 +184,8 @@ dependencies { "com.google.protobuf:protobuf-gradle-plugin:$protobufPluginVersion", "com.gradleup.shadow:shadow-gradle-plugin:$shadowVersion", "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:$detektVersion", + "io.kotest:kotest-gradle-plugin:$kotestJvmPluginVersion", + "io.kotest:kotest-framework-multiplatform-plugin-gradle:$kotestMultiplatformPluginVersion", // https://github.com/srikanth-lingala/zip4j "net.lingala.zip4j:zip4j:2.10.0", "net.ltgt.gradle:gradle-errorprone-plugin:$errorPronePluginVersion", diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Grpc.kt b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Grpc.kt index 48e70f41..9d48602d 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Grpc.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Grpc.kt @@ -32,7 +32,7 @@ import io.spine.dependency.DependencyWithBom @Suppress("unused") object Grpc : DependencyWithBom() { - override val version = "1.72.0" + override val version = "1.76.0" override val group = "io.grpc" override val bom = "$group:grpc-bom:$version" diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Guava.kt b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Guava.kt index 91157019..a61639d7 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Guava.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Guava.kt @@ -37,7 +37,7 @@ package io.spine.dependency.lib */ @Suppress("unused", "ConstPropertyName") object Guava { - private const val version = "33.4.8-jre" + private const val version = "33.5.0-jre" const val group = "com.google.guava" const val lib = "$group:guava:$version" const val testLib = "$group:guava-testlib:$version" diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Protobuf.kt b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Protobuf.kt index 8eaf49a6..cb0de333 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Protobuf.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Protobuf.kt @@ -33,7 +33,7 @@ package io.spine.dependency.lib ) object Protobuf { const val group = "com.google.protobuf" - const val version = "4.31.1" + const val version = "4.33.0" /** * The Java library with Protobuf data types. diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/ArtifactVersion.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/ArtifactVersion.kt deleted file mode 100644 index 77497b21..00000000 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/ArtifactVersion.kt +++ /dev/null @@ -1,137 +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.local - -/** - * Versions for published Spine SDK artifacts. - */ -@Suppress("ConstPropertyName") -object ArtifactVersion { - - /** - * The version of [Spine.base]. - * - * @see spine-base - */ - @Deprecated(message = "Please use `Base.version`.", ReplaceWith("Base.version")) - const val base = Base.version - - @Suppress("unused") - @Deprecated( - message = "Please use `Base.versionForBuildScript`.", - ReplaceWith("Base.versionForBuildScript") - ) - const val baseForBuildScript = Base.versionForBuildScript - - /** - * The version of [Spine.reflect]. - * - * @see spine-reflect - */ - @Deprecated(message = "Please use `Reflect.version`.", ReplaceWith("Reflect.version")) - const val reflect = Reflect.version - - /** - * The version of [Logging]. - */ - @Deprecated(message = "Please use `Logging.version`.", ReplaceWith("Logging.version")) - const val logging = Logging.version - - /** - * The version of [Spine.testlib]. - * - * @see spine-testlib - */ - @Deprecated(message = "Please use `TestLib.version`.", ReplaceWith("TestLib.version")) - const val testlib = TestLib.version - - /** - * The version of `core-java`. - */ - @Deprecated(message = "Please use `CoreJava.version`.", ReplaceWith("CoreJava.version")) - const val core = CoreJava.version - - /** - * The version of [Spine.modelCompiler]. - * - * @see spine-model-compiler - */ - @Suppress("unused") - @Deprecated( - message = "Please use `ModelCompiler.version` instead.", - ReplaceWith("ModelCompiler.version") - ) - const val mc = ModelCompiler.version - - /** - * The version of [Spine.baseTypes]. - * - * @see spine-base-types - */ - @Deprecated(message = "Please use `BaseTypes.version`.", ReplaceWith("BaseTypes.version")) - const val baseTypes = BaseTypes.version - - /** - * The version of [Spine.time]. - * - * @see spine-time - */ - @Deprecated(message = "Please use `Time.version`.", ReplaceWith("Time.version")) - const val time = Time.version - - /** - * The version of [Spine.change]. - * - * @see spine-change - */ - @Deprecated(message = "Please use `Change.version`.", ReplaceWith("Change.version")) - const val change = Change.version - - /** - * The version of [Spine.text]. - * - * @see spine-text - */ - @Deprecated(message = "Please use `Text.version`.", ReplaceWith("Text.version")) - const val text = Text.version - - /** - * The version of [Spine.toolBase]. - * - * @see spine-tool-base - */ - @Suppress("unused") - @Deprecated(message = "Please use `ToolBase.version`.", ReplaceWith("ToolBase.version")) - const val toolBase = ToolBase.version - - /** - * The version of [Spine.javadocFilter]. - * - * @see spine-javadoc-tools - */ - const val javadocTools = "2.0.0-SNAPSHOT.75" -} diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt index 0a20452c..94dec0b3 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt @@ -33,8 +33,8 @@ package io.spine.dependency.local */ @Suppress("ConstPropertyName", "unused") object Base { - const val version = "2.0.0-SNAPSHOT.364" - const val versionForBuildScript = "2.0.0-SNAPSHOT.364" + const val version = "2.0.0-SNAPSHOT.365" + const val versionForBuildScript = "2.0.0-SNAPSHOT.365" const val group = Spine.group const val artifact = "spine-base" const val lib = "$group:$artifact:$version" diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt index b0b534d5..23c7da75 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt @@ -33,7 +33,7 @@ package io.spine.dependency.local */ @Suppress("ConstPropertyName") object BaseTypes { - const val version = "2.0.0-SNAPSHOT.210" + const val version = "2.0.0-SNAPSHOT.212" const val group = Spine.group const val artifact = "spine-base-types" const val lib = "$group:$artifact:$version" diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt index c5cd8fbf..78143399 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt @@ -70,7 +70,7 @@ object Compiler { * The version of ProtoData dependencies. */ val version: String - private const val fallbackVersion = "2.0.0-SNAPSHOT.028" + private const val fallbackVersion = "2.0.0-SNAPSHOT.029" /** * The distinct version of ProtoData used by other build tools. @@ -79,7 +79,7 @@ object Compiler { * transitional dependencies, this is the version used to build the project itself. */ val dogfoodingVersion: String - private const val fallbackDfVersion = "2.0.0-SNAPSHOT.028" + private const val fallbackDfVersion = "2.0.0-SNAPSHOT.029" /** * The artifact for the ProtoData Gradle plugin. diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt index d9f5ba3b..6a49b1b4 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt @@ -37,7 +37,7 @@ typealias CoreJava = CoreJvm @Suppress("ConstPropertyName", "unused") object CoreJvm { const val group = Spine.group - const val version = "2.0.0-SNAPSHOT.332" + const val version = "2.0.0-SNAPSHOT.333" const val coreArtifact = "spine-core" const val clientArtifact = "spine-client" diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Text.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Text.kt deleted file mode 100644 index 216ec131..00000000 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Text.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.local - -/** - * Spine Reflect library. - * - * @see spine-text - */ -@Suppress("ConstPropertyName") -object Text { - const val version = "2.0.0-SNAPSHOT.6" - const val group = Spine.group - const val artifact = "spine-text" - const val lib = "$group:$artifact:$version" -} diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt index 289adeeb..6db5024b 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt @@ -33,7 +33,7 @@ package io.spine.dependency.local */ @Suppress("ConstPropertyName") object Time { - const val version = "2.0.0-SNAPSHOT.203" + const val version = "2.0.0-SNAPSHOT.204" const val group = Spine.group const val artifact = "spine-time" const val lib = "$group:$artifact:$version" diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/test/JUnit.kt b/buildSrc/src/main/kotlin/io/spine/dependency/test/JUnit.kt index b07849fe..6e9021fb 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/test/JUnit.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/test/JUnit.kt @@ -29,11 +29,11 @@ package io.spine.dependency.test import io.spine.dependency.Dependency import io.spine.dependency.DependencyWithBom -// https://junit.org/junit5/ +// https://junit.org/ @Suppress("unused", "ConstPropertyName") object JUnit : DependencyWithBom() { - override val version = "5.13.2" + override val version = "6.0.0" override val group: String = "org.junit" /** @@ -63,19 +63,6 @@ object JUnit : DependencyWithBom() { const val legacy = "junit:junit:$legacyVersion" - @Deprecated("Use JUnit.Jupiter.api instead", ReplaceWith("JUnit.Jupiter.api")) - val api = listOf( - "org.apiguardian:apiguardian-api:$apiGuardianVersion", - "org.junit.jupiter:junit-jupiter-api:$version", - "org.junit.jupiter:junit-jupiter-params:$version" - ) - - @Deprecated("Use JUnit.Jupiter.engine instead", ReplaceWith("JUnit.Jupiter.engine")) - val runner = "org.junit.jupiter:junit-jupiter-engine:$version" - - @Deprecated("Use JUnit.Jupiter.params instead", ReplaceWith("JUnit.Jupiter.params")) - val params = "org.junit.jupiter:junit-jupiter-params:$version" - object Jupiter : Dependency() { override val version = JUnit.version override val group = "org.junit.jupiter" @@ -86,9 +73,6 @@ object JUnit : DependencyWithBom() { val params = "$group:$infix-params" val engine = "$group:$infix-engine" - @Deprecated("Please use `[Jupiter.run { artifacts[api] }` instead.") - val apiArtifact = "$api:$version" - override val modules = listOf(api, params, engine) } @@ -105,7 +89,7 @@ object JUnit : DependencyWithBom() { * So when we use JUnit as a platform, this property should be picked up * for the dependencies automatically. */ - override val version: String = "1.13.2" + override val version: String = "6.0.0" override val group = "org.junit.platform" private const val infix = "junit-platform" diff --git a/config b/config index 152eded4..08ecf3e3 160000 --- a/config +++ b/config @@ -1 +1 @@ -Subproject commit 152eded4b520793ebe2a432a0c532f30dce262da +Subproject commit 08ecf3e347cc85663f2ab89bd7958aae73d7b944 diff --git a/dependencies.md b/dependencies.md index 978ed4d3..985c77ba 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1,6 +1,6 @@ -# Dependencies of `io.spine:spine-time:2.0.0-SNAPSHOT.204` +# Dependencies of `io.spine:spine-time:2.0.0-SNAPSHOT.205` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -19,7 +19,7 @@ * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.4.8-jre. +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -30,15 +30,15 @@ * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. * **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) @@ -166,7 +166,7 @@ * **Project URL:** [http://source.android.com/](http://source.android.com/) * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) -1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.51.0. +1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.59.2. * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java) * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -253,11 +253,11 @@ * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.4.8-jre. +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.4.8-jre. +1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.5.0-jre. * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) 1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. @@ -271,19 +271,19 @@ * **Project URL:** [https://github.com/google/protobuf-gradle-plugin](https://github.com/google/protobuf-gradle-plugin) * **License:** [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 4.33.0. * **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) @@ -471,7 +471,7 @@ * **Project URL:** [https://detekt.dev](https://detekt.dev) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.72.0. +1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.76.0. * **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) @@ -479,15 +479,15 @@ * **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.grpc. **Name** : grpc-context. **Version** : 1.72.0. +1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.76.0. * **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.grpc. **Name** : grpc-core. **Version** : 1.72.0. +1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.76.0. * **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.grpc. **Name** : grpc-inprocess. **Version** : 1.72.0. +1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.76.0. * **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) @@ -495,15 +495,15 @@ * **Project URL:** [https://github.com/grpc/grpc-kotlin](https://github.com/grpc/grpc-kotlin) * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) -1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.72.0. +1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.76.0. * **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.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.72.0. +1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.76.0. * **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.grpc. **Name** : grpc-stub. **Version** : 1.72.0. +1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.76.0. * **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) @@ -919,7 +919,7 @@ * **Project URL:** [http://jspecify.org/](http://jspecify.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.13.2. +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -927,27 +927,27 @@ * **Project URL:** [https://junit-pioneer.org/](https://junit-pioneer.org/) * **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.13.2. +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 5.13.2. +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 5.13.2. +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 1.13.2. +1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 1.13.2. +1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 1.13.2. +1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -1006,14 +1006,14 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 15:50:42 WET 2025** using +This report was generated on **Tue Oct 28 18:35:42 WET 2025** 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-time-js:2.0.0-SNAPSHOT.204` +# Dependencies of `io.spine:spine-time-js:2.0.0-SNAPSHOT.205` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -1032,7 +1032,7 @@ This report was generated on **Tue Oct 28 15:50:42 WET 2025** using * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.4.8-jre. +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1043,15 +1043,15 @@ This report was generated on **Tue Oct 28 15:50:42 WET 2025** using * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. * **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) @@ -1116,7 +1116,7 @@ This report was generated on **Tue Oct 28 15:50:42 WET 2025** using * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.4.8-jre. +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1127,15 +1127,15 @@ This report was generated on **Tue Oct 28 15:50:42 WET 2025** using * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. * **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) @@ -1188,21 +1188,21 @@ This report was generated on **Tue Oct 28 15:50:42 WET 2025** using * **Project URL:** [http://jspecify.org/](http://jspecify.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.13.2. +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 15:50:41 WET 2025** using +This report was generated on **Tue Oct 28 18:35:42 WET 2025** 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-time-testlib:2.0.0-SNAPSHOT.204` +# Dependencies of `io.spine.tools:spine-time-testlib:2.0.0-SNAPSHOT.205` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -1221,7 +1221,7 @@ This report was generated on **Tue Oct 28 15:50:41 WET 2025** using * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.4.8-jre. +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1232,15 +1232,15 @@ This report was generated on **Tue Oct 28 15:50:41 WET 2025** using * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. * **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) @@ -1394,11 +1394,11 @@ This report was generated on **Tue Oct 28 15:50:41 WET 2025** using * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.4.8-jre. +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.4.8-jre. +1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.5.0-jre. * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) 1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. @@ -1408,15 +1408,15 @@ This report was generated on **Tue Oct 28 15:50:41 WET 2025** using * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.31.1. +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. * **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) @@ -1955,7 +1955,7 @@ This report was generated on **Tue Oct 28 15:50:41 WET 2025** using * **Project URL:** [http://jspecify.org/](http://jspecify.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.13.2. +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -1963,27 +1963,27 @@ This report was generated on **Tue Oct 28 15:50:41 WET 2025** using * **Project URL:** [https://junit-pioneer.org/](https://junit-pioneer.org/) * **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.13.2. +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 5.13.2. +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 5.13.2. +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 1.13.2. +1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 1.13.2. +1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) -1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 1.13.2. +1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 6.0.0. * **Project URL:** [https://junit.org/](https://junit.org/) * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) @@ -2038,6 +2038,6 @@ This report was generated on **Tue Oct 28 15:50:41 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 15:50:42 WET 2025** using +This report was generated on **Tue Oct 28 18:35:42 WET 2025** 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 2a9cec3b..d50b9cd0 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-time -2.0.0-SNAPSHOT.204 +2.0.0-SNAPSHOT.205 2015 @@ -26,31 +26,31 @@ all modules and does not describe the project structure per-subproject. com.google.guava guava - 33.4.8-jre + 33.5.0-jre compile com.google.protobuf protobuf-java - 4.31.1 + 4.33.0 compile com.google.protobuf protobuf-java-util - 4.31.1 + 4.33.0 compile com.google.protobuf protobuf-kotlin - 4.31.1 + 4.33.0 compile io.spine spine-base - 2.0.0-SNAPSHOT.364 + 2.0.0-SNAPSHOT.365 compile @@ -86,7 +86,7 @@ all modules and does not describe the project structure per-subproject. com.google.guava guava-testlib - 33.4.8-jre + 33.5.0-jre test @@ -104,7 +104,7 @@ all modules and does not describe the project structure per-subproject. org.junit junit-bom - 5.13.2 + 6.0.0 test @@ -116,19 +116,19 @@ all modules and does not describe the project structure per-subproject. org.junit.jupiter junit-jupiter-api - 5.13.2 + 6.0.0 test org.junit.jupiter junit-jupiter-engine - 5.13.2 + 6.0.0 test org.junit.jupiter junit-jupiter-params - 5.13.2 + 6.0.0 test @@ -167,7 +167,7 @@ all modules and does not describe the project structure per-subproject. com.google.protobuf protoc - 4.31.1 + 4.33.0 com.puppycrawl.tools From e645cf4735d7692b93138bece93e0458847913c1 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 18:53:26 +0000 Subject: [PATCH 03/16] Fix doc language --- time/src/main/kotlin/io/spine/time/DurationExts.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/time/src/main/kotlin/io/spine/time/DurationExts.kt b/time/src/main/kotlin/io/spine/time/DurationExts.kt index 70618dd2..4ea2a620 100644 --- a/time/src/main/kotlin/io/spine/time/DurationExts.kt +++ b/time/src/main/kotlin/io/spine/time/DurationExts.kt @@ -160,7 +160,7 @@ public fun Duration.toMicros(): Long = toMicros(this) public fun Duration.toNanos(): Long = toNanos(this) /** - * Converts this duration to Java Time instance. + * Converts this duration to a Java Time instance. */ public fun Duration.toJavaTime(): java.time.Duration = toJavaTime(this) From 5aefcce67acc92b7264f1e48504348a29a762661 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 18:53:44 +0000 Subject: [PATCH 04/16] Bump version -> `2.0.0-SNAPSHOT.210` --- version.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.gradle.kts b/version.gradle.kts index 955f165a..51639e7e 100644 --- a/version.gradle.kts +++ b/version.gradle.kts @@ -29,4 +29,4 @@ * * For dependencies on Spine modules please see [io.spine.dependency.local.Spine]. */ -val versionToPublish by extra("2.0.0-SNAPSHOT.205") +val versionToPublish by extra("2.0.0-SNAPSHOT.210") From 0f27e64e3ac3dd6037027611c52a439e61ba7395 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 18:55:21 +0000 Subject: [PATCH 05/16] Update dependency reports --- dependencies.md | 12 ++++++------ pom.xml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dependencies.md b/dependencies.md index 985c77ba..255da5a3 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1,6 +1,6 @@ -# Dependencies of `io.spine:spine-time:2.0.0-SNAPSHOT.205` +# Dependencies of `io.spine:spine-time:2.0.0-SNAPSHOT.210` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -1006,14 +1006,14 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 18:35:42 WET 2025** using +This report was generated on **Tue Oct 28 18:54:28 WET 2025** 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-time-js:2.0.0-SNAPSHOT.205` +# Dependencies of `io.spine:spine-time-js:2.0.0-SNAPSHOT.210` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -1195,14 +1195,14 @@ This report was generated on **Tue Oct 28 18:35:42 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 18:35:42 WET 2025** using +This report was generated on **Tue Oct 28 18:54:27 WET 2025** 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-time-testlib:2.0.0-SNAPSHOT.205` +# Dependencies of `io.spine.tools:spine-time-testlib:2.0.0-SNAPSHOT.210` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -2038,6 +2038,6 @@ This report was generated on **Tue Oct 28 18:35:42 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 18:35:42 WET 2025** using +This report was generated on **Tue Oct 28 18:54:28 WET 2025** 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 d50b9cd0..dd8ae40e 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-time -2.0.0-SNAPSHOT.205 +2.0.0-SNAPSHOT.210 2015 From 701640a8c68002e4f163dea539a2f8f38c62bdd2 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 19:28:12 +0000 Subject: [PATCH 06/16] Extract `java-time` module --- dependencies.md | 849 +++++++++++++++++- settings.gradle.kts | 1 + time-java/build.gradle.kts | 34 + .../kotlin/io/spine/time/java/JavaTimeExts.kt | 45 + .../io/spine/time/java/JavaTimeExtsSpec.kt | 69 ++ .../main/kotlin/io/spine/time/DurationExts.kt | 5 - .../kotlin/io/spine/time/TimestampExts.kt | 4 - .../kotlin/io/spine/time/DurationExtsSpec.kt | 4 - .../kotlin/io/spine/time/TimestampExtsSpec.kt | 4 - 9 files changed, 995 insertions(+), 20 deletions(-) create mode 100644 time-java/build.gradle.kts create mode 100644 time-java/src/main/kotlin/io/spine/time/java/JavaTimeExts.kt create mode 100644 time-java/src/test/kotlin/io/spine/time/java/JavaTimeExtsSpec.kt diff --git a/dependencies.md b/dependencies.md index 255da5a3..9ec4d5c6 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1006,7 +1006,850 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 18:54:28 WET 2025** using +This report was generated on **Tue Oct 28 19:27:04 WET 2025** 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-time-java:2.0.0-SNAPSHOT.210` + +## Runtime +1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. + * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.13.0. + * **Project URL:** [https://github.com/google/gson](https://github.com/google/gson) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3. + * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. + * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 2.8. + * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. + * **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) + +1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. + * **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.kotlin. **Name** : kotlin-bom. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0. + * **Project URL:** [http://jspecify.org/](http://jspecify.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +## Compile, tests, and tooling +1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. + * **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.20. + * **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) + +1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core) + * **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.core. **Name** : jackson-databind. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) + * **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.dataformat. **Name** : jackson-dataformat-xml. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson-dataformat-xml](https://github.com/FasterXML/jackson-dataformat-xml) + * **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.module. **Name** : jackson-module-kotlin. **Version** : 2.20.0. + * **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) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.fasterxml.woodstox. **Name** : woodstox-core. **Version** : 7.1.1. + * **Project URL:** [https://github.com/FasterXML/woodstox](https://github.com/FasterXML/woodstox) + * **License:** [The 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.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 2.9.3. + * **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.0.5. + * **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) + +1. **Group** : com.github.oowekyala.ooxml. **Name** : nice-xml-messages. **Version** : 3.1. + * **Project URL:** [https://github.com/oowekyala/nice-xml-messages](https://github.com/oowekyala/nice-xml-messages) + * **License:** [MIT License](https://github.com/oowekyala/nice-xml-messages/tree/master/LICENSE) + +1. **Group** : com.google.auto. **Name** : auto-common. **Version** : 1.2.2. + * **Project URL:** [https://github.com/google/auto/tree/main/common](https://github.com/google/auto/tree/main/common) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.auto.service. **Name** : auto-service-annotations. **Version** : 1.1.1. + * **Project URL:** [https://github.com/google/auto/tree/main/service](https://github.com/google/auto/tree/main/service) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.auto.value. **Name** : auto-value-annotations. **Version** : 1.10.2. + * **Project URL:** [https://github.com/google/auto/tree/main/value](https://github.com/google/auto/tree/main/value) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. + * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.13.0. + * **Project URL:** [https://github.com/google/gson](https://github.com/google/gson) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_annotation. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_annotation](https://errorprone.info/error_prone_annotation) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_check_api. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_check_api](https://errorprone.info/error_prone_check_api) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_core. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_core](https://errorprone.info/error_prone_core) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : javac. **Version** : 9+181-r4173-1. + * **Project URL:** [https://github.com/google/error-prone-javac](https://github.com/google/error-prone-javac) + * **License:** [GNU General Public License, version 2, with the Classpath Exception](http://openjdk.java.net/legal/gplv2+ce.html) + +1. **Group** : com.google.flogger. **Name** : flogger. **Version** : 0.7.4. + * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) + * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.flogger. **Name** : flogger-system-backend. **Version** : 0.7.4. + * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) + * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.googlejavaformat. **Name** : google-java-format. **Version** : 1.19.1. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3. + * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. + * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.5.0-jre. + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 2.8. + * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.truth. **Name** : truth. **Version** : 1.4.4. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.truth.extensions. **Name** : truth-java8-extension. **Version** : 1.4.4. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.truth.extensions. **Name** : truth-liteproto-extension. **Version** : 1.4.4. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.truth.extensions. **Name** : truth-proto-extension. **Version** : 1.4.4. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.puppycrawl.tools. **Name** : checkstyle. **Version** : 10.12.1. + * **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** : commons-beanutils. **Name** : commons-beanutils. **Version** : 1.9.4. + * **Project URL:** [https://commons.apache.org/proper/commons-beanutils/](https://commons.apache.org/proper/commons-beanutils/) + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : commons-codec. **Name** : commons-codec. **Version** : 1.16.0. + * **Project URL:** [https://commons.apache.org/proper/commons-codec/](https://commons.apache.org/proper/commons-codec/) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : commons-collections. **Name** : commons-collections. **Version** : 3.2.2. + * **Project URL:** [http://commons.apache.org/collections/](http://commons.apache.org/collections/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations. **Version** : 0.17.1. + * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations-jvm. **Version** : 0.17.1. + * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : info.picocli. **Name** : picocli. **Version** : 4.7.4. + * **Project URL:** [https://picocli.info](https://picocli.info) + * **License:** [The Apache Software License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.github.davidburstrom.contester. **Name** : contester-breakpoint. **Version** : 0.2.0. + * **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.6.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.6.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.eisop. **Name** : dataflow-errorprone. **Version** : 3.41.0-eisop1. + * **Project URL:** [https://eisop.github.io/](https://eisop.github.io/) + * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html) + +1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-api. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-cli. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-core. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-metrics. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-parser. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-psi-utils. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-html. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-md. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-sarif. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-txt. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-xml. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-complexity. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-coroutines. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-documentation. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-empty. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-errorprone. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-exceptions. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-naming. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-performance. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-style. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-tooling. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-utils. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.0.4. + * **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** : 6.0.4. + * **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** : 6.0.4. + * **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** : 6.0.4. + * **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** : 6.0.4. + * **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** : 6.0.4. + * **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.opentelemetry. **Name** : opentelemetry-api. **Version** : 1.41.0. + * **Project URL:** [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.opentelemetry. **Name** : opentelemetry-context. **Version** : 1.41.0. + * **Project URL:** [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : javax.inject. **Name** : javax.inject. **Version** : 1. + * **Project URL:** [http://code.google.com/p/atinject/](http://code.google.com/p/atinject/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : junit. **Name** : junit. **Version** : 4.13.2. + * **Project URL:** [http://junit.org](http://junit.org) + * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html) + +1. **Group** : net.sf.saxon. **Name** : Saxon-HE. **Version** : 12.2. + * **Project URL:** [http://www.saxonica.com/](http://www.saxonica.com/) + * **License:** [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/2.0/) + +1. **Group** : net.sf.saxon. **Name** : Saxon-HE. **Version** : 12.5. + * **Project URL:** [http://www.saxonica.com/](http://www.saxonica.com/) + * **License:** [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/2.0/) + +1. **Group** : net.sourceforge.pmd. **Name** : pmd-ant. **Version** : 7.12.0. + * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) + +1. **Group** : net.sourceforge.pmd. **Name** : pmd-core. **Version** : 7.12.0. + * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) + +1. **Group** : net.sourceforge.pmd. **Name** : pmd-java. **Version** : 7.12.0. + * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) + +1. **Group** : org.antlr. **Name** : antlr4-runtime. **Version** : 4.11.1. + * **Project URL:** [https://www.antlr.org/](https://www.antlr.org/) + * **License:** [BSD-3-Clause](https://www.antlr.org/license.html) + +1. **Group** : org.antlr. **Name** : antlr4-runtime. **Version** : 4.9.3. + * **Project URL:** [http://www.antlr.org](http://www.antlr.org) + * **License:** [The BSD License](http://www.antlr.org/license.html) + +1. **Group** : org.apache.commons. **Name** : commons-lang3. **Version** : 3.17.0. + * **Project URL:** [https://commons.apache.org/proper/commons-lang/](https://commons.apache.org/proper/commons-lang/) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.apache.httpcomponents.client5. **Name** : httpclient5. **Version** : 5.1.3. + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.apache.httpcomponents.core5. **Name** : httpcore5. **Version** : 5.1.3. + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.apache.httpcomponents.core5. **Name** : httpcore5-h2. **Version** : 5.1.3. + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.apiguardian. **Name** : apiguardian-api. **Version** : 1.1.2. + * **Project URL:** [https://github.com/apiguardian-team/apiguardian](https://github.com/apiguardian-team/apiguardian) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.bouncycastle. **Name** : bcpg-jdk18on. **Version** : 1.80. + * **Project URL:** [https://www.bouncycastle.org/download/bouncy-castle-java/](https://www.bouncycastle.org/download/bouncy-castle-java/) + * **License:** [Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) + * **License:** [Bouncy Castle Licence](https://www.bouncycastle.org/licence.html) + +1. **Group** : org.bouncycastle. **Name** : bcpkix-jdk18on. **Version** : 1.80. + * **Project URL:** [https://www.bouncycastle.org/download/bouncy-castle-java/](https://www.bouncycastle.org/download/bouncy-castle-java/) + * **License:** [Bouncy Castle Licence](https://www.bouncycastle.org/licence.html) + +1. **Group** : org.bouncycastle. **Name** : bcprov-jdk18on. **Version** : 1.80. + * **Project URL:** [https://www.bouncycastle.org/download/bouncy-castle-java/](https://www.bouncycastle.org/download/bouncy-castle-java/) + * **License:** [Bouncy Castle Licence](https://www.bouncycastle.org/licence.html) + +1. **Group** : org.bouncycastle. **Name** : bcutil-jdk18on. **Version** : 1.80. + * **Project URL:** [https://www.bouncycastle.org/download/bouncy-castle-java/](https://www.bouncycastle.org/download/bouncy-castle-java/) + * **License:** [Bouncy Castle Licence](https://www.bouncycastle.org/licence.html) + +1. **Group** : org.checkerframework. **Name** : checker-compat-qual. **Version** : 2.5.3. + * **Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html) + * **License:** [The MIT License](http://opensource.org/licenses/MIT) + +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) + +1. **Group** : org.codehaus.woodstox. **Name** : stax2-api. **Version** : 4.2.2. + * **Project URL:** [http://github.com/FasterXML/stax2-api](http://github.com/FasterXML/stax2-api) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The BSD 2-Clause License](http://www.opensource.org/licenses/bsd-license.php) + +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) + +1. **Group** : org.hamcrest. **Name** : hamcrest. **Version** : 3.0. + * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) + * **License:** [BSD-3-Clause](https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE) + +1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 3.0. + * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) + * **License:** [BSD-3-Clause](https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE) + +1. **Group** : org.jacoco. **Name** : org.jacoco.agent. **Version** : 0.8.13. + * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) + +1. **Group** : org.jacoco. **Name** : org.jacoco.core. **Version** : 0.8.13. + * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) + +1. **Group** : org.jacoco. **Name** : org.jacoco.report. **Version** : 0.8.13. + * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) + +1. **Group** : org.javassist. **Name** : javassist. **Version** : 3.28.0-GA. + * **Project URL:** [http://www.javassist.org/](http://www.javassist.org/) + * **License:** [Apache License 2.0](http://www.apache.org/licenses/) + * **License:** [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) + * **License:** [MPL 1.1](http://www.mozilla.org/MPL/MPL-1.1.html) + +1. **Group** : org.jcommander. **Name** : jcommander. **Version** : 1.85. + * **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** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. + * **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.7.3. + * **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.7.3. + * **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** : 2.0.0. + * **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** : 2.0.0. + * **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** : 2.0.0. + * **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** : 2.0.0. + * **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** : 2.0.0. + * **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** : templating-plugin. **Version** : 2.0.0. + * **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.intellij.deps. **Name** : trove4j. **Version** : 1.0.20200330. + * **Project URL:** [https://github.com/JetBrains/intellij-deps-trove4j](https://github.com/JetBrains/intellij-deps-trove4j) + * **License:** [GNU LESSER GENERAL PUBLIC LICENSE 2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) + +1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools-api. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.0.21. + * **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-compiler-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.0.21. + * **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-daemon-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-metadata-jvm. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.0.21. + * **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-reflect. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.0.21. + * **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-script-runtime. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.0.21. + * **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. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 2.0.21. + * **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** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 2.0.21. + * **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-jdk8. **Version** : 2.0.21. + * **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** : swift-export-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.23.1. + * **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** : atomicfu. **Version** : 0.29.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test-jvm. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-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.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-bom. **Version** : 1.7.3. + * **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. **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. **Version** : 1.7.3. + * **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-core-jvm. **Version** : 1.7.3. + * **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. + * **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.16.1. + * **Project URL:** [https://jsoup.org/](https://jsoup.org/) + * **License:** [The MIT License](https://jsoup.org/license) + +1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0. + * **Project URL:** [http://jspecify.org/](http://jspecify.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit-pioneer. **Name** : junit-pioneer. **Version** : 2.3.0. + * **Project URL:** [https://junit-pioneer.org/](https://junit-pioneer.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.opentest4j. **Name** : opentest4j. **Version** : 1.3.0. + * **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.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.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.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.pcollections. **Name** : pcollections. **Version** : 4.0.1. + * **Project URL:** [https://github.com/hrldcpr/pcollections](https://github.com/hrldcpr/pcollections) + * **License:** [The MIT License](https://opensource.org/licenses/mit-license.php) + +1. **Group** : org.pcollections. **Name** : pcollections. **Version** : 4.0.2. + * **Project URL:** [https://github.com/hrldcpr/pcollections](https://github.com/hrldcpr/pcollections) + * **License:** [The MIT License](https://opensource.org/licenses/mit-license.php) + +1. **Group** : org.reflections. **Name** : reflections. **Version** : 0.10.2. + * **Project URL:** [http://github.com/ronmamo/reflections](http://github.com/ronmamo/reflections) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [WTFPL](http://www.wtfpl.net/) + +1. **Group** : org.slf4j. **Name** : jul-to-slf4j. **Version** : 1.7.36. + * **Project URL:** [http://www.slf4j.org](http://www.slf4j.org) + * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) + +1. **Group** : org.snakeyaml. **Name** : snakeyaml-engine. **Version** : 2.7. + * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml-engine](https://bitbucket.org/snakeyaml/snakeyaml-engine) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.xmlresolver. **Name** : xmlresolver. **Version** : 5.1.2. + * **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.xmlresolver. **Name** : xmlresolver. **Version** : 5.2.2. + * **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) + + +The dependencies distributed under several licenses, are used according their commercial-use-friendly license. + +This report was generated on **Tue Oct 28 19:27:04 WET 2025** 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). @@ -1195,7 +2038,7 @@ This report was generated on **Tue Oct 28 18:54:28 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 18:54:27 WET 2025** using +This report was generated on **Tue Oct 28 19:27:03 WET 2025** 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). @@ -2038,6 +2881,6 @@ This report was generated on **Tue Oct 28 18:54:27 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 18:54:28 WET 2025** using +This report was generated on **Tue Oct 28 19:27:04 WET 2025** 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/settings.gradle.kts b/settings.gradle.kts index 760e5f4b..dc1e6a0a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -37,4 +37,5 @@ include( "time", "time-js", "time-testlib", + "time-java", ) diff --git a/time-java/build.gradle.kts b/time-java/build.gradle.kts new file mode 100644 index 00000000..c8f29dd1 --- /dev/null +++ b/time-java/build.gradle.kts @@ -0,0 +1,34 @@ +/* + * 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. + */ + +plugins { + module +} + +dependencies { + // Expose the core `time` API and types to consumers of `time-java`. + api(project(":time")) +} diff --git a/time-java/src/main/kotlin/io/spine/time/java/JavaTimeExts.kt b/time-java/src/main/kotlin/io/spine/time/java/JavaTimeExts.kt new file mode 100644 index 00000000..b7fc7c98 --- /dev/null +++ b/time-java/src/main/kotlin/io/spine/time/java/JavaTimeExts.kt @@ -0,0 +1,45 @@ +/* + * 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:JvmName("JavaTimeExtensions") + +package io.spine.time.java + +import com.google.protobuf.Duration +import com.google.protobuf.Timestamp +import io.spine.protobuf.Durations2.toJavaTime +import io.spine.time.InstantConverter +import java.time.Instant + +/** + * Converts this `Timestamp` to `Instant`. + */ +public fun Timestamp.toInstant(): Instant = InstantConverter.reversed().convert(this)!! + +/** + * Converts this `Duration` to a Java Time `Duration`. + */ +public fun Duration.toJavaTime(): java.time.Duration = toJavaTime(this) diff --git a/time-java/src/test/kotlin/io/spine/time/java/JavaTimeExtsSpec.kt b/time-java/src/test/kotlin/io/spine/time/java/JavaTimeExtsSpec.kt new file mode 100644 index 00000000..35661dc1 --- /dev/null +++ b/time-java/src/test/kotlin/io/spine/time/java/JavaTimeExtsSpec.kt @@ -0,0 +1,69 @@ +/* + * 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.time.java + +import com.google.protobuf.Duration +import com.google.protobuf.timestamp +import io.kotest.matchers.shouldBe +import io.spine.protobuf.Durations2.add +import io.spine.protobuf.Durations2.nanos +import io.spine.protobuf.Durations2.seconds +import io.spine.protobuf.Durations2.toJavaTime +import org.junit.jupiter.api.DisplayName +import org.junit.jupiter.api.Nested +import org.junit.jupiter.api.Test +import java.time.Instant + +@DisplayName("Java Time conversion extensions should") +internal class JavaTimeExtsSpec { + + @Nested + inner class DurationConversions { + @Test + fun toJavaTime() { + val duration: Duration = add( + seconds(1234), + nanos(567_000_000) + ) + duration.toJavaTime() shouldBe toJavaTime(duration) + } + } + + @Nested + inner class TimestampConversions { + @Test + fun instant() { + val seconds = 1_234L + val nanos = 567_000_000 + val ts = timestamp { + this.seconds = seconds + this.nanos = nanos + } + ts.toInstant() shouldBe Instant.ofEpochSecond(seconds, nanos.toLong()) + } + } +} diff --git a/time/src/main/kotlin/io/spine/time/DurationExts.kt b/time/src/main/kotlin/io/spine/time/DurationExts.kt index 4ea2a620..87a69eda 100644 --- a/time/src/main/kotlin/io/spine/time/DurationExts.kt +++ b/time/src/main/kotlin/io/spine/time/DurationExts.kt @@ -45,7 +45,6 @@ import io.spine.protobuf.Durations2 import io.spine.protobuf.Durations2.add import io.spine.protobuf.Durations2.isPositiveOrZero import io.spine.protobuf.Durations2.isZero -import io.spine.protobuf.Durations2.toJavaTime /** * Compares this duration with the passed one. @@ -159,10 +158,6 @@ public fun Duration.toMicros(): Long = toMicros(this) */ public fun Duration.toNanos(): Long = toNanos(this) -/** - * Converts this duration to a Java Time instance. - */ -public fun Duration.toJavaTime(): java.time.Duration = toJavaTime(this) /** * Adds the passed duration to this one. diff --git a/time/src/main/kotlin/io/spine/time/TimestampExts.kt b/time/src/main/kotlin/io/spine/time/TimestampExts.kt index 7da6c727..55d00fd2 100644 --- a/time/src/main/kotlin/io/spine/time/TimestampExts.kt +++ b/time/src/main/kotlin/io/spine/time/TimestampExts.kt @@ -148,7 +148,3 @@ public operator fun Timestamp.minus(other: Timestamp): Duration = between(this, */ public operator fun Timestamp.minus(length: Duration): Timestamp = subtract(this, length) -/** - * Converts this timestamp to `Instant`. - */ -public fun Timestamp.toInstant(): Instant = InstantConverter.reversed().convert(this)!! diff --git a/time/src/test/kotlin/io/spine/time/DurationExtsSpec.kt b/time/src/test/kotlin/io/spine/time/DurationExtsSpec.kt index a0c5c6b1..164eabaf 100644 --- a/time/src/test/kotlin/io/spine/time/DurationExtsSpec.kt +++ b/time/src/test/kotlin/io/spine/time/DurationExtsSpec.kt @@ -140,10 +140,6 @@ internal class DurationExtsSpec { duration.toNanos() shouldBe toNanos(duration) } - @Test - fun toJavaTime() { - duration.toJavaTime() shouldBe toJavaTime(duration) - } } @Nested diff --git a/time/src/test/kotlin/io/spine/time/TimestampExtsSpec.kt b/time/src/test/kotlin/io/spine/time/TimestampExtsSpec.kt index a34285f4..e57addaa 100644 --- a/time/src/test/kotlin/io/spine/time/TimestampExtsSpec.kt +++ b/time/src/test/kotlin/io/spine/time/TimestampExtsSpec.kt @@ -78,10 +78,6 @@ internal class TimestampExtsSpec { past.toNanos() shouldBe toNanos(past) } - @Test - fun instant() { - past.toInstant() shouldBe past().toInstant() - } } @Nested From 2d5cb3114d1484c19319800071ca382a32b6616a Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 19:46:29 +0000 Subject: [PATCH 07/16] Deprecate `toAny()` in favour of `packed()` --- .../java/io/spine/time/InstantConverter.java | 3 +++ time/src/main/java/io/spine/time/Temporal.java | 16 +++++++++++++--- .../java/io/spine/time/TimestampTemporal.java | 2 +- .../main/kotlin/io/spine/time/JavaTimeExts.kt | 4 ++++ .../io/spine/time/given/InstantTemporal.java | 2 +- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/time/src/main/java/io/spine/time/InstantConverter.java b/time/src/main/java/io/spine/time/InstantConverter.java index 44f22326..18eefc6b 100644 --- a/time/src/main/java/io/spine/time/InstantConverter.java +++ b/time/src/main/java/io/spine/time/InstantConverter.java @@ -30,6 +30,7 @@ import com.google.protobuf.Timestamp; import io.spine.annotation.Internal; +import java.io.Serial; import java.io.Serializable; import java.time.Instant; @@ -42,6 +43,7 @@ public final class InstantConverter extends Converter implements Serializable { + @Serial private static final long serialVersionUID = 0L; private static final InstantConverter INSTANCE = new InstantConverter(); @@ -70,6 +72,7 @@ protected Instant doBackward(Timestamp value) { return result; } + @Serial private Object readResolve() { return INSTANCE; } diff --git a/time/src/main/java/io/spine/time/Temporal.java b/time/src/main/java/io/spine/time/Temporal.java index a29eb527..d067fd8d 100644 --- a/time/src/main/java/io/spine/time/Temporal.java +++ b/time/src/main/java/io/spine/time/Temporal.java @@ -49,8 +49,7 @@ * @param * the type of itself * @apiNote This interface is mainly (though not exclusively) designed to be implemented in - * messages - * marked with the {@code (is)} option. See {@link TemporalMessage}. + * messages marked with the {@code (is)} option. See {@link TemporalMessage}. */ @SuppressWarnings("ClassWithTooManyMethods") // because of convenience overloads. public interface Temporal> extends Comparable { @@ -86,8 +85,19 @@ default Timestamp toTimestamp() { * Packs this point in time into an {@link Any}. * * @return itself packed as {@code Any} + * @deprecated Please use {@link #packed()} instead. */ - Any toAny(); + @Deprecated + default Any toAny() { + return packed(); + } + + /** + * Packs this point in time into an {@link Any}. + * + * @return itself packed as {@code Any} + */ + Any packed(); /** * Compares this point in time to the given one. diff --git a/time/src/main/java/io/spine/time/TimestampTemporal.java b/time/src/main/java/io/spine/time/TimestampTemporal.java index c14c2020..86351f11 100644 --- a/time/src/main/java/io/spine/time/TimestampTemporal.java +++ b/time/src/main/java/io/spine/time/TimestampTemporal.java @@ -74,7 +74,7 @@ public Timestamp toTimestamp() { } @Override - public Any toAny() { + public Any packed() { return AnyPacker.pack(value); } } diff --git a/time/src/main/kotlin/io/spine/time/JavaTimeExts.kt b/time/src/main/kotlin/io/spine/time/JavaTimeExts.kt index fff8dfe4..cbf25699 100644 --- a/time/src/main/kotlin/io/spine/time/JavaTimeExts.kt +++ b/time/src/main/kotlin/io/spine/time/JavaTimeExts.kt @@ -31,6 +31,10 @@ package io.spine.time import com.google.protobuf.Timestamp import java.time.Instant +// This file contains only essential extension functions for converting Java Time types +// to our API. These functions are needed for features of this module. +// For other conversion functions, please see the `java-time` module. + /** * Converts this instant to [Timestamp]. */ diff --git a/time/src/test/java/io/spine/time/given/InstantTemporal.java b/time/src/test/java/io/spine/time/given/InstantTemporal.java index 857b1a50..a40b9c2d 100644 --- a/time/src/test/java/io/spine/time/given/InstantTemporal.java +++ b/time/src/test/java/io/spine/time/given/InstantTemporal.java @@ -51,7 +51,7 @@ public Instant toInstant() { } @Override - public Any toAny() { + public Any packed() { return AnyPacker.pack(toTimestamp()); } } From 00c4bb7b701a01b66a2b2ded173477d837d2fefb Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 19:51:59 +0000 Subject: [PATCH 08/16] Address deprecations --- time/src/main/java/io/spine/time/Temporal.java | 6 +++--- time/src/main/java/io/spine/time/TemporalMessage.java | 2 +- .../main/java/io/spine/time/validate/WhenConstraint.java | 2 +- time/src/test/java/io/spine/time/TemporalMessageTest.java | 2 +- time/src/test/java/io/spine/time/TimestampTemporalTest.java | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/time/src/main/java/io/spine/time/Temporal.java b/time/src/main/java/io/spine/time/Temporal.java index d067fd8d..34e83c61 100644 --- a/time/src/main/java/io/spine/time/Temporal.java +++ b/time/src/main/java/io/spine/time/Temporal.java @@ -42,9 +42,9 @@ * *

The name of this interface is inspired by the {@link java.time.temporal.Temporal}. * - *

Provides a {@linkplain #compareTo(Temporal) default implementation} for comparison of two - * points in time. It is not supposed that concrete {@code Temporal}s would override this comparison - * mechanism. + *

Provides a {@linkplain #compareTo(Temporal) default implementation} for + * comparison of two points in time. It is not supposed that concrete + * {@code Temporal}s would override this comparison mechanism. * * @param * the type of itself diff --git a/time/src/main/java/io/spine/time/TemporalMessage.java b/time/src/main/java/io/spine/time/TemporalMessage.java index bd531768..b0037214 100644 --- a/time/src/main/java/io/spine/time/TemporalMessage.java +++ b/time/src/main/java/io/spine/time/TemporalMessage.java @@ -61,7 +61,7 @@ public interface TemporalMessage> extends Temporal< * @return this message as an {@code Any} */ @Override - default Any toAny() { + default Any packed() { var any = AnyPacker.pack(this); return any; } diff --git a/time/src/main/java/io/spine/time/validate/WhenConstraint.java b/time/src/main/java/io/spine/time/validate/WhenConstraint.java index b3f6be62..420672fa 100644 --- a/time/src/main/java/io/spine/time/validate/WhenConstraint.java +++ b/time/src/main/java/io/spine/time/validate/WhenConstraint.java @@ -125,7 +125,7 @@ private ConstraintViolation newTimeViolation(FieldValue fieldValue, Temporal var violation = ConstraintViolation.newBuilder() .setMessage(msg) .setFieldPath(fieldPath) - .setFieldValue(value.toAny()) + .setFieldValue(value.packed()) .build(); return violation; } diff --git a/time/src/test/java/io/spine/time/TemporalMessageTest.java b/time/src/test/java/io/spine/time/TemporalMessageTest.java index 247177a0..4d4cb248 100644 --- a/time/src/test/java/io/spine/time/TemporalMessageTest.java +++ b/time/src/test/java/io/spine/time/TemporalMessageTest.java @@ -75,7 +75,7 @@ void toTimestamp() { @DisplayName("pack self to Any") void toAny() { var temporal = create(); - var any = temporal.toAny(); + var any = temporal.packed(); var assertAny = assertThat(any); assertAny.isNotNull(); assertAny.isNotEqualToDefaultInstance(); diff --git a/time/src/test/java/io/spine/time/TimestampTemporalTest.java b/time/src/test/java/io/spine/time/TimestampTemporalTest.java index 8e85855e..ab00d7f7 100644 --- a/time/src/test/java/io/spine/time/TimestampTemporalTest.java +++ b/time/src/test/java/io/spine/time/TimestampTemporalTest.java @@ -67,7 +67,7 @@ void fromTimestamp() { void convertToAny() { var timestamp = currentTime(); var temporal = Temporals.from(timestamp); - assertEquals(pack(timestamp), temporal.toAny()); + assertEquals(pack(timestamp), temporal.packed()); } private static TimestampTemporal now() { From fa6caa92c1bfef7a3992fbb968adddbc8c9fca97 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 20:29:11 +0000 Subject: [PATCH 09/16] Introduce `kotlin-time` module --- settings.gradle.kts | 1 + time-kotlin/build.gradle.kts | 37 +++++++++ .../spine/time/kotlin/KotlinXDateTimeExts.kt | 73 +++++++++++++++++ .../spine/time/kotlin/KotlinXTimeExtsSpec.kt | 82 +++++++++++++++++++ 4 files changed, 193 insertions(+) create mode 100644 time-kotlin/build.gradle.kts create mode 100644 time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt create mode 100644 time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt diff --git a/settings.gradle.kts b/settings.gradle.kts index dc1e6a0a..1585af49 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -38,4 +38,5 @@ include( "time-js", "time-testlib", "time-java", + "time-kotlin", ) diff --git a/time-kotlin/build.gradle.kts b/time-kotlin/build.gradle.kts new file mode 100644 index 00000000..ed590bf2 --- /dev/null +++ b/time-kotlin/build.gradle.kts @@ -0,0 +1,37 @@ +/* + * 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. + */ + +import io.spine.dependency.kotlinx.DateTime + +plugins { + module +} + +dependencies { + // Expose the core `time` API and types to consumers of `time-kotlin`. + api(project(":time")) + api(DateTime.lib) +} diff --git a/time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt b/time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt new file mode 100644 index 00000000..3061c1db --- /dev/null +++ b/time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt @@ -0,0 +1,73 @@ +/* + * 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:OptIn(kotlin.time.ExperimentalTime::class) + +package io.spine.time.kotlin + +import com.google.protobuf.Duration as ProtoDuration +import com.google.protobuf.Timestamp +import com.google.protobuf.timestamp +import kotlin.time.Instant as KtInstant +import kotlin.time.Duration as KtDuration +import kotlin.time.Duration.Companion.nanoseconds + +/** + * Converts this `Timestamp` to KotlinX `Instant`. + */ +public fun Timestamp.toInstant(): KtInstant = + KtInstant.fromEpochSeconds(this.seconds, this.nanos.toLong()) + +/** + * Converts this KotlinX `Instant` to Protobuf `Timestamp`. + */ +public fun KtInstant.toTimestamp(): Timestamp = timestamp { + seconds = this@toTimestamp.epochSeconds + nanos = this@toTimestamp.nanosecondsOfSecond +} + +private const val NANOS_IN_SECOND = 1_000_000_000L + +/** + * Converts this Protobuf `Duration` to Kotlin `kotlin.time.Duration`. + */ +public fun ProtoDuration.toKotlinDuration(): KtDuration { + val totalNanos = this.seconds * NANOS_IN_SECOND + this.nanos + return totalNanos.nanoseconds +} + +/** + * Converts this Kotlin `kotlin.time.Duration` to Protobuf `Duration`. + */ +public fun KtDuration.toProtoDuration(): ProtoDuration { + val totalNanos = this.inWholeNanoseconds + val seconds = totalNanos / NANOS_IN_SECOND // truncates toward zero + val nanos = (totalNanos % NANOS_IN_SECOND).toInt() + return ProtoDuration.newBuilder() + .setSeconds(seconds) + .setNanos(nanos) + .build() +} diff --git a/time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt b/time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt new file mode 100644 index 00000000..2376fe15 --- /dev/null +++ b/time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt @@ -0,0 +1,82 @@ +/* + * 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:OptIn(kotlin.time.ExperimentalTime::class) + +package io.spine.time.kotlin + +import com.google.protobuf.Duration +import com.google.protobuf.timestamp +import io.kotest.matchers.shouldBe +import io.spine.protobuf.Durations2.add +import io.spine.protobuf.Durations2.nanos +import io.spine.protobuf.Durations2.seconds +import kotlin.time.Duration.Companion.nanoseconds +import kotlin.time.Instant +import org.junit.jupiter.api.DisplayName +import org.junit.jupiter.api.Nested +import org.junit.jupiter.api.Test + +@DisplayName("KotlinX DateTime conversion extensions should") +internal class KotlinXTimeExtsSpec { + + @Nested + inner class DurationConversions { + @Test + fun toKotlin() { + val duration: Duration = add( + seconds(1234), + nanos(567_000_000) + ) + duration.toKotlinDuration().inWholeNanoseconds shouldBe + 1234L * 1_000_000_000L + 567_000_000L + } + + @Test + fun fromKotlin() { + val kDuration = (1234L * 1_000_000_000L + 567_000_000L).nanoseconds + val proto = kDuration.toProtoDuration() + proto.seconds shouldBe 1234L + proto.nanos shouldBe 567_000_000 + } + } + + @Nested + inner class TimestampConversions { + @Test + fun toInstant_and_back() { + val seconds = 1_234L + val nanos = 567_000_000 + val ts = timestamp { + this.seconds = seconds + this.nanos = nanos + } + val instant = ts.toInstant() + instant shouldBe Instant.fromEpochSeconds(seconds, nanos.toLong()) + instant.toTimestamp() shouldBe ts + } + } +} From e49e0ab6f08f0deee4607b8837157dfc314a77e9 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 20:29:26 +0000 Subject: [PATCH 10/16] Update dependency reports --- dependencies.md | 855 +++++++++++++++++++++++++++++++++++++++++++++++- pom.xml | 6 + 2 files changed, 857 insertions(+), 4 deletions(-) diff --git a/dependencies.md b/dependencies.md index 9ec4d5c6..c459cb88 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1006,7 +1006,7 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 19:27:04 WET 2025** using +This report was generated on **Tue Oct 28 20:27:48 WET 2025** 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). @@ -1849,7 +1849,7 @@ This report was generated on **Tue Oct 28 19:27:04 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 19:27:04 WET 2025** using +This report was generated on **Tue Oct 28 20:27:48 WET 2025** 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). @@ -2038,7 +2038,854 @@ This report was generated on **Tue Oct 28 19:27:04 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 19:27:03 WET 2025** using +This report was generated on **Tue Oct 28 20:27:48 WET 2025** 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-time-kotlin:2.0.0-SNAPSHOT.210` + +## Runtime +1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. + * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.13.0. + * **Project URL:** [https://github.com/google/gson](https://github.com/google/gson) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3. + * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. + * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 2.8. + * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. + * **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) + +1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. + * **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.kotlin. **Name** : kotlin-bom. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0. + * **Project URL:** [http://jspecify.org/](http://jspecify.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +## Compile, tests, and tooling +1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. + * **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.20. + * **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) + +1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core) + * **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.core. **Name** : jackson-databind. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) + * **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.dataformat. **Name** : jackson-dataformat-xml. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson-dataformat-xml](https://github.com/FasterXML/jackson-dataformat-xml) + * **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.module. **Name** : jackson-module-kotlin. **Version** : 2.20.0. + * **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) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.fasterxml.woodstox. **Name** : woodstox-core. **Version** : 7.1.1. + * **Project URL:** [https://github.com/FasterXML/woodstox](https://github.com/FasterXML/woodstox) + * **License:** [The 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.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 2.9.3. + * **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.0.5. + * **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) + +1. **Group** : com.github.oowekyala.ooxml. **Name** : nice-xml-messages. **Version** : 3.1. + * **Project URL:** [https://github.com/oowekyala/nice-xml-messages](https://github.com/oowekyala/nice-xml-messages) + * **License:** [MIT License](https://github.com/oowekyala/nice-xml-messages/tree/master/LICENSE) + +1. **Group** : com.google.auto. **Name** : auto-common. **Version** : 1.2.2. + * **Project URL:** [https://github.com/google/auto/tree/main/common](https://github.com/google/auto/tree/main/common) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.auto.service. **Name** : auto-service-annotations. **Version** : 1.1.1. + * **Project URL:** [https://github.com/google/auto/tree/main/service](https://github.com/google/auto/tree/main/service) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.auto.value. **Name** : auto-value-annotations. **Version** : 1.10.2. + * **Project URL:** [https://github.com/google/auto/tree/main/value](https://github.com/google/auto/tree/main/value) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. + * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.13.0. + * **Project URL:** [https://github.com/google/gson](https://github.com/google/gson) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_annotation. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_annotation](https://errorprone.info/error_prone_annotation) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_check_api. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_check_api](https://errorprone.info/error_prone_check_api) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_core. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_core](https://errorprone.info/error_prone_core) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0. + * **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.errorprone. **Name** : javac. **Version** : 9+181-r4173-1. + * **Project URL:** [https://github.com/google/error-prone-javac](https://github.com/google/error-prone-javac) + * **License:** [GNU General Public License, version 2, with the Classpath Exception](http://openjdk.java.net/legal/gplv2+ce.html) + +1. **Group** : com.google.flogger. **Name** : flogger. **Version** : 0.7.4. + * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) + * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.flogger. **Name** : flogger-system-backend. **Version** : 0.7.4. + * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) + * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.googlejavaformat. **Name** : google-java-format. **Version** : 1.19.1. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3. + * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre. + * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.5.0-jre. + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 2.8. + * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.33.0. + * **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) + +1. **Group** : com.google.truth. **Name** : truth. **Version** : 1.4.4. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.truth.extensions. **Name** : truth-java8-extension. **Version** : 1.4.4. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.truth.extensions. **Name** : truth-liteproto-extension. **Version** : 1.4.4. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.truth.extensions. **Name** : truth-proto-extension. **Version** : 1.4.4. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.puppycrawl.tools. **Name** : checkstyle. **Version** : 10.12.1. + * **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** : commons-beanutils. **Name** : commons-beanutils. **Version** : 1.9.4. + * **Project URL:** [https://commons.apache.org/proper/commons-beanutils/](https://commons.apache.org/proper/commons-beanutils/) + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : commons-codec. **Name** : commons-codec. **Version** : 1.16.0. + * **Project URL:** [https://commons.apache.org/proper/commons-codec/](https://commons.apache.org/proper/commons-codec/) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : commons-collections. **Name** : commons-collections. **Version** : 3.2.2. + * **Project URL:** [http://commons.apache.org/collections/](http://commons.apache.org/collections/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations. **Version** : 0.17.1. + * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations-jvm. **Version** : 0.17.1. + * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : info.picocli. **Name** : picocli. **Version** : 4.7.4. + * **Project URL:** [https://picocli.info](https://picocli.info) + * **License:** [The Apache Software License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.github.davidburstrom.contester. **Name** : contester-breakpoint. **Version** : 0.2.0. + * **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.6.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.6.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.eisop. **Name** : dataflow-errorprone. **Version** : 3.41.0-eisop1. + * **Project URL:** [https://eisop.github.io/](https://eisop.github.io/) + * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html) + +1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12. + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-api. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-cli. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-core. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-metrics. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-parser. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-psi-utils. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-html. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-md. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-sarif. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-txt. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-xml. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-complexity. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-coroutines. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-documentation. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-empty. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-errorprone. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-exceptions. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-naming. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-performance. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-style. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-tooling. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-utils. **Version** : 1.23.8. + * **Project URL:** [https://detekt.dev](https://detekt.dev) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.0.4. + * **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** : 6.0.4. + * **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** : 6.0.4. + * **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** : 6.0.4. + * **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** : 6.0.4. + * **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** : 6.0.4. + * **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.opentelemetry. **Name** : opentelemetry-api. **Version** : 1.41.0. + * **Project URL:** [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : io.opentelemetry. **Name** : opentelemetry-context. **Version** : 1.41.0. + * **Project URL:** [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : javax.inject. **Name** : javax.inject. **Version** : 1. + * **Project URL:** [http://code.google.com/p/atinject/](http://code.google.com/p/atinject/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : junit. **Name** : junit. **Version** : 4.13.2. + * **Project URL:** [http://junit.org](http://junit.org) + * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html) + +1. **Group** : net.sf.saxon. **Name** : Saxon-HE. **Version** : 12.2. + * **Project URL:** [http://www.saxonica.com/](http://www.saxonica.com/) + * **License:** [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/2.0/) + +1. **Group** : net.sf.saxon. **Name** : Saxon-HE. **Version** : 12.5. + * **Project URL:** [http://www.saxonica.com/](http://www.saxonica.com/) + * **License:** [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/2.0/) + +1. **Group** : net.sourceforge.pmd. **Name** : pmd-ant. **Version** : 7.12.0. + * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) + +1. **Group** : net.sourceforge.pmd. **Name** : pmd-core. **Version** : 7.12.0. + * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) + +1. **Group** : net.sourceforge.pmd. **Name** : pmd-java. **Version** : 7.12.0. + * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) + +1. **Group** : org.antlr. **Name** : antlr4-runtime. **Version** : 4.11.1. + * **Project URL:** [https://www.antlr.org/](https://www.antlr.org/) + * **License:** [BSD-3-Clause](https://www.antlr.org/license.html) + +1. **Group** : org.antlr. **Name** : antlr4-runtime. **Version** : 4.9.3. + * **Project URL:** [http://www.antlr.org](http://www.antlr.org) + * **License:** [The BSD License](http://www.antlr.org/license.html) + +1. **Group** : org.apache.commons. **Name** : commons-lang3. **Version** : 3.17.0. + * **Project URL:** [https://commons.apache.org/proper/commons-lang/](https://commons.apache.org/proper/commons-lang/) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.apache.httpcomponents.client5. **Name** : httpclient5. **Version** : 5.1.3. + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.apache.httpcomponents.core5. **Name** : httpcore5. **Version** : 5.1.3. + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.apache.httpcomponents.core5. **Name** : httpcore5-h2. **Version** : 5.1.3. + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.apiguardian. **Name** : apiguardian-api. **Version** : 1.1.2. + * **Project URL:** [https://github.com/apiguardian-team/apiguardian](https://github.com/apiguardian-team/apiguardian) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.bouncycastle. **Name** : bcpg-jdk18on. **Version** : 1.80. + * **Project URL:** [https://www.bouncycastle.org/download/bouncy-castle-java/](https://www.bouncycastle.org/download/bouncy-castle-java/) + * **License:** [Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) + * **License:** [Bouncy Castle Licence](https://www.bouncycastle.org/licence.html) + +1. **Group** : org.bouncycastle. **Name** : bcpkix-jdk18on. **Version** : 1.80. + * **Project URL:** [https://www.bouncycastle.org/download/bouncy-castle-java/](https://www.bouncycastle.org/download/bouncy-castle-java/) + * **License:** [Bouncy Castle Licence](https://www.bouncycastle.org/licence.html) + +1. **Group** : org.bouncycastle. **Name** : bcprov-jdk18on. **Version** : 1.80. + * **Project URL:** [https://www.bouncycastle.org/download/bouncy-castle-java/](https://www.bouncycastle.org/download/bouncy-castle-java/) + * **License:** [Bouncy Castle Licence](https://www.bouncycastle.org/licence.html) + +1. **Group** : org.bouncycastle. **Name** : bcutil-jdk18on. **Version** : 1.80. + * **Project URL:** [https://www.bouncycastle.org/download/bouncy-castle-java/](https://www.bouncycastle.org/download/bouncy-castle-java/) + * **License:** [Bouncy Castle Licence](https://www.bouncycastle.org/licence.html) + +1. **Group** : org.checkerframework. **Name** : checker-compat-qual. **Version** : 2.5.3. + * **Project URL:** [https://checkerframework.org](https://checkerframework.org) + * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html) + * **License:** [The MIT License](http://opensource.org/licenses/MIT) + +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) + +1. **Group** : org.codehaus.woodstox. **Name** : stax2-api. **Version** : 4.2.2. + * **Project URL:** [http://github.com/FasterXML/stax2-api](http://github.com/FasterXML/stax2-api) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The BSD 2-Clause License](http://www.opensource.org/licenses/bsd-license.php) + +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) + +1. **Group** : org.hamcrest. **Name** : hamcrest. **Version** : 3.0. + * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) + * **License:** [BSD-3-Clause](https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE) + +1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 3.0. + * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) + * **License:** [BSD-3-Clause](https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE) + +1. **Group** : org.jacoco. **Name** : org.jacoco.agent. **Version** : 0.8.13. + * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) + +1. **Group** : org.jacoco. **Name** : org.jacoco.core. **Version** : 0.8.13. + * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) + +1. **Group** : org.jacoco. **Name** : org.jacoco.report. **Version** : 0.8.13. + * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) + +1. **Group** : org.javassist. **Name** : javassist. **Version** : 3.28.0-GA. + * **Project URL:** [http://www.javassist.org/](http://www.javassist.org/) + * **License:** [Apache License 2.0](http://www.apache.org/licenses/) + * **License:** [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) + * **License:** [MPL 1.1](http://www.mozilla.org/MPL/MPL-1.1.html) + +1. **Group** : org.jcommander. **Name** : jcommander. **Version** : 1.85. + * **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** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. + * **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.7.3. + * **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.7.3. + * **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** : 2.0.0. + * **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** : 2.0.0. + * **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** : 2.0.0. + * **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** : 2.0.0. + * **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** : 2.0.0. + * **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** : templating-plugin. **Version** : 2.0.0. + * **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.intellij.deps. **Name** : trove4j. **Version** : 1.0.20200330. + * **Project URL:** [https://github.com/JetBrains/intellij-deps-trove4j](https://github.com/JetBrains/intellij-deps-trove4j) + * **License:** [GNU LESSER GENERAL PUBLIC LICENSE 2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) + +1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools-api. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.0.21. + * **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-compiler-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.0.21. + * **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-daemon-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-metadata-jvm. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.0.21. + * **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-reflect. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.0.21. + * **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-script-runtime. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.0.21. + * **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. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 2.0.21. + * **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** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 2.0.21. + * **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-jdk8. **Version** : 2.0.21. + * **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** : swift-export-embeddable. **Version** : 2.2.21. + * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) + * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.23.1. + * **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** : atomicfu. **Version** : 0.29.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0. + * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test-jvm. **Version** : 1.10.2. + * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-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.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-bom. **Version** : 1.7.3. + * **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. **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. **Version** : 1.6.2. + * **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. **Version** : 1.7.3. + * **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-core-jvm. **Version** : 1.7.3. + * **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. + * **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.16.1. + * **Project URL:** [https://jsoup.org/](https://jsoup.org/) + * **License:** [The MIT License](https://jsoup.org/license) + +1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0. + * **Project URL:** [http://jspecify.org/](http://jspecify.org/) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit-pioneer. **Name** : junit-pioneer. **Version** : 2.3.0. + * **Project URL:** [https://junit-pioneer.org/](https://junit-pioneer.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 6.0.0. + * **Project URL:** [https://junit.org/](https://junit.org/) + * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) + +1. **Group** : org.opentest4j. **Name** : opentest4j. **Version** : 1.3.0. + * **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.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.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.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.pcollections. **Name** : pcollections. **Version** : 4.0.1. + * **Project URL:** [https://github.com/hrldcpr/pcollections](https://github.com/hrldcpr/pcollections) + * **License:** [The MIT License](https://opensource.org/licenses/mit-license.php) + +1. **Group** : org.pcollections. **Name** : pcollections. **Version** : 4.0.2. + * **Project URL:** [https://github.com/hrldcpr/pcollections](https://github.com/hrldcpr/pcollections) + * **License:** [The MIT License](https://opensource.org/licenses/mit-license.php) + +1. **Group** : org.reflections. **Name** : reflections. **Version** : 0.10.2. + * **Project URL:** [http://github.com/ronmamo/reflections](http://github.com/ronmamo/reflections) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [WTFPL](http://www.wtfpl.net/) + +1. **Group** : org.slf4j. **Name** : jul-to-slf4j. **Version** : 1.7.36. + * **Project URL:** [http://www.slf4j.org](http://www.slf4j.org) + * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) + +1. **Group** : org.snakeyaml. **Name** : snakeyaml-engine. **Version** : 2.7. + * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml-engine](https://bitbucket.org/snakeyaml/snakeyaml-engine) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.xmlresolver. **Name** : xmlresolver. **Version** : 5.1.2. + * **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.xmlresolver. **Name** : xmlresolver. **Version** : 5.2.2. + * **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) + + +The dependencies distributed under several licenses, are used according their commercial-use-friendly license. + +This report was generated on **Tue Oct 28 20:27:48 WET 2025** 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). @@ -2881,6 +3728,6 @@ This report was generated on **Tue Oct 28 19:27:03 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 19:27:04 WET 2025** using +This report was generated on **Tue Oct 28 20:27:48 WET 2025** 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 dd8ae40e..b1bcc188 100644 --- a/pom.xml +++ b/pom.xml @@ -77,6 +77,12 @@ all modules and does not describe the project structure per-subproject. 1.10.2 compile + + org.jetbrains.kotlinx + kotlinx-datetime + 0.7.1 + compile + org.jspecify jspecify From 14171d30156bfb046f58f01014ba3a1fd23c6e6c Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 21:24:12 +0000 Subject: [PATCH 11/16] Add more types for conversion --- time-kotlin/build.gradle.kts | 3 +- .../spine/time/kotlin/KotlinXDateTimeExts.kt | 136 +++++++++++++++++- .../spine/time/kotlin/KotlinXTimeExtsSpec.kt | 111 +++++++++++++- 3 files changed, 245 insertions(+), 5 deletions(-) diff --git a/time-kotlin/build.gradle.kts b/time-kotlin/build.gradle.kts index ed590bf2..a0067007 100644 --- a/time-kotlin/build.gradle.kts +++ b/time-kotlin/build.gradle.kts @@ -25,13 +25,14 @@ */ import io.spine.dependency.kotlinx.DateTime +import io.spine.dependency.local.Validation plugins { module } dependencies { - // Expose the core `time` API and types to consumers of `time-kotlin`. api(project(":time")) api(DateTime.lib) + implementation(Validation.runtime)?.because("`ValidatingBuilder` is needed for compilation.") } diff --git a/time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt b/time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt index 3061c1db..e66bc7ed 100644 --- a/time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt +++ b/time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt @@ -28,12 +28,24 @@ package io.spine.time.kotlin -import com.google.protobuf.Duration as ProtoDuration import com.google.protobuf.Timestamp import com.google.protobuf.timestamp -import kotlin.time.Instant as KtInstant -import kotlin.time.Duration as KtDuration import kotlin.time.Duration.Companion.nanoseconds +import com.google.protobuf.Duration as ProtoDuration +import io.spine.time.LocalDate as ProtoLocalDate +import io.spine.time.LocalDateTime as ProtoLocalDateTime +import io.spine.time.LocalTime as ProtoLocalTime +import io.spine.time.Month as ProtoMonth +import io.spine.time.YearMonth as ProtoYearMonth +import io.spine.time.ZoneId as ProtoZoneId +import kotlin.time.Duration as KtDuration +import kotlin.time.Instant as KtInstant +import kotlinx.datetime.LocalDate as KtLocalDate +import kotlinx.datetime.LocalDateTime as KtLocalDateTime +import kotlinx.datetime.LocalTime as KtLocalTime +import kotlinx.datetime.Month as KtMonth +import kotlinx.datetime.TimeZone as KtTimeZone +import kotlinx.datetime.YearMonth as KtYearMonth /** * Converts this `Timestamp` to KotlinX `Instant`. @@ -71,3 +83,121 @@ public fun KtDuration.toProtoDuration(): ProtoDuration { .setNanos(nanos) .build() } + +/** + * Converts Spine `Month` to kotlinx.datetime `Month`. + */ +public fun ProtoMonth.toKotlinMonth(): KtMonth = when (this) { + ProtoMonth.JANUARY -> KtMonth.JANUARY + ProtoMonth.FEBRUARY -> KtMonth.FEBRUARY + ProtoMonth.MARCH -> KtMonth.MARCH + ProtoMonth.APRIL -> KtMonth.APRIL + ProtoMonth.MAY -> KtMonth.MAY + ProtoMonth.JUNE -> KtMonth.JUNE + ProtoMonth.JULY -> KtMonth.JULY + ProtoMonth.AUGUST -> KtMonth.AUGUST + ProtoMonth.SEPTEMBER -> KtMonth.SEPTEMBER + ProtoMonth.OCTOBER -> KtMonth.OCTOBER + ProtoMonth.NOVEMBER -> KtMonth.NOVEMBER + ProtoMonth.DECEMBER -> KtMonth.DECEMBER + ProtoMonth.MONTH_UNDEFINED, ProtoMonth.UNRECOGNIZED -> + error("Undefined `Month` cannot be converted to `kotlinx.datetime.Month`.") +} + +/** + * Converts kotlinx.datetime `Month` to Spine `Month`. + */ +public fun KtMonth.toProtoMonth(): ProtoMonth = when (this) { + KtMonth.JANUARY -> ProtoMonth.JANUARY + KtMonth.FEBRUARY -> ProtoMonth.FEBRUARY + KtMonth.MARCH -> ProtoMonth.MARCH + KtMonth.APRIL -> ProtoMonth.APRIL + KtMonth.MAY -> ProtoMonth.MAY + KtMonth.JUNE -> ProtoMonth.JUNE + KtMonth.JULY -> ProtoMonth.JULY + KtMonth.AUGUST -> ProtoMonth.AUGUST + KtMonth.SEPTEMBER -> ProtoMonth.SEPTEMBER + KtMonth.OCTOBER -> ProtoMonth.OCTOBER + KtMonth.NOVEMBER -> ProtoMonth.NOVEMBER + KtMonth.DECEMBER -> ProtoMonth.DECEMBER +} + +/** + * Converts Spine `YearMonth` to kotlinx.datetime `YearMonth`. + */ +public fun ProtoYearMonth.toKotlinYearMonth(): KtYearMonth = + KtYearMonth(this.year, this.month.toKotlinMonth()) + +/** + * Converts kotlinx.datetime `YearMonth` to Spine `YearMonth`. + */ +public fun KtYearMonth.toProtoYearMonth(): ProtoYearMonth = + ProtoYearMonth.newBuilder() + .setYear(this.year) + .setMonth(this.month.toProtoMonth()) + .build() + +/** + * Converts Spine `LocalDate` to kotlinx.datetime `LocalDate`. + */ +public fun ProtoLocalDate.toKotlinLocalDate(): KtLocalDate = + KtLocalDate(this.year, this.month.toKotlinMonth(), this.day) + +/** + * Converts kotlinx.datetime `LocalDate` to Spine `LocalDate`. + */ +public fun KtLocalDate.toProtoLocalDate(): ProtoLocalDate = + ProtoLocalDate.newBuilder() + .setYear(this.year) + .setMonth(this.month.toProtoMonth()) + .setDay(this.day) + .build() + +/** + * Converts Spine `LocalTime` to kotlinx.datetime `LocalTime`. + */ +public fun ProtoLocalTime.toKotlinLocalTime(): KtLocalTime = + KtLocalTime(this.hour, this.minute, this.second, this.nano) + +/** + * Converts kotlinx.datetime `LocalTime` to Spine `LocalTime`. + */ +public fun KtLocalTime.toProtoLocalTime(): ProtoLocalTime = + ProtoLocalTime.newBuilder() + .setHour(this.hour) + .setMinute(this.minute) + .setSecond(this.second) + .setNano(this.nanosecond) + .build() + +/** + * Converts Spine `LocalDateTime` to kotlinx.datetime `LocalDateTime`. + */ +public fun ProtoLocalDateTime.toKotlinLocalDateTime(): KtLocalDateTime { + require(this.hasDate()) { "LocalDateTime.date is required by the proto definition." } + val kDate = this.date.toKotlinLocalDate() + val kTime = if (this.hasTime()) this.time.toKotlinLocalTime() else KtLocalTime(0, 0, 0, 0) + return KtLocalDateTime(kDate, kTime) +} + +/** + * Converts kotlinx.datetime `LocalDateTime` to Spine `LocalDateTime`. + */ +public fun KtLocalDateTime.toProtoLocalDateTime(): ProtoLocalDateTime = + ProtoLocalDateTime.newBuilder() + .setDate(this.date.toProtoLocalDate()) + .setTime(this.time.toProtoLocalTime()) + .build() + +/** + * Converts Spine `ZoneId` to kotlinx.datetime `TimeZone`. + */ +public fun ProtoZoneId.toKotlinTimeZone(): KtTimeZone = KtTimeZone.of(this.value) + +/** + * Converts kotlinx.datetime `TimeZone` to Spine `ZoneId`. + */ +public fun KtTimeZone.toProtoZoneId(): ProtoZoneId = + ProtoZoneId.newBuilder() + .setValue(this.id) + .build() diff --git a/time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt b/time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt index 2376fe15..e6faa3d1 100644 --- a/time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt +++ b/time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt @@ -34,6 +34,18 @@ import io.kotest.matchers.shouldBe import io.spine.protobuf.Durations2.add import io.spine.protobuf.Durations2.nanos import io.spine.protobuf.Durations2.seconds +import io.spine.time.LocalDate +import io.spine.time.LocalDateTime +import io.spine.time.LocalTime +import io.spine.time.Month as ProtoMonth +import io.spine.time.YearMonth as ProtoYearMonth +import io.spine.time.ZoneId +import kotlinx.datetime.LocalDate as KtLocalDate +import kotlinx.datetime.LocalDateTime as KtLocalDateTime +import kotlinx.datetime.LocalTime as KtLocalTime +import kotlinx.datetime.Month as KtMonth +import kotlinx.datetime.TimeZone as KtTimeZone +import kotlinx.datetime.YearMonth as KtYearMonth import kotlin.time.Duration.Companion.nanoseconds import kotlin.time.Instant import org.junit.jupiter.api.DisplayName @@ -66,8 +78,9 @@ internal class KotlinXTimeExtsSpec { @Nested inner class TimestampConversions { + @Test - fun toInstant_and_back() { + fun `'toInstant' and back`() { val seconds = 1_234L val nanos = 567_000_000 val ts = timestamp { @@ -79,4 +92,100 @@ internal class KotlinXTimeExtsSpec { instant.toTimestamp() shouldBe ts } } + + @Nested + inner class MonthConversions { + + @Test + fun `map all months`() { + KtMonth.entries.forEach { kx -> + val proto = kx.toProtoMonth() + proto.toKotlinMonth() shouldBe kx + } + } + } + + @Nested + inner class YearMonthConversions { + + @Test + fun roundTrip() { + val kx = KtYearMonth(2025, KtMonth.OCTOBER) + val proto: ProtoYearMonth = kx.toProtoYearMonth() + proto.year shouldBe 2025 + proto.month shouldBe ProtoMonth.OCTOBER + proto.toKotlinYearMonth() shouldBe kx + } + } + + @Nested + inner class LocalDateConversions { + + @Test + fun roundTrip() { + val kx = KtLocalDate(2024, KtMonth.FEBRUARY, 29) + val proto: LocalDate = kx.toProtoLocalDate() + proto.year shouldBe 2024 + proto.month shouldBe ProtoMonth.FEBRUARY + proto.day shouldBe 29 + proto.toKotlinLocalDate() shouldBe kx + } + } + + @Nested + inner class LocalTimeConversions { + + @Test + fun roundTrip() { + val kx = KtLocalTime(23, 59, 58, 999_999_999) + val proto: LocalTime = kx.toProtoLocalTime() + proto.hour shouldBe 23 + proto.minute shouldBe 59 + proto.second shouldBe 58 + proto.nano shouldBe 999_999_999 + proto.toKotlinLocalTime() shouldBe kx + } + } + + @Nested + inner class LocalDateTimeConversions { + + @Test + fun roundTrip() { + val kx = KtLocalDateTime(KtLocalDate(2030, KtMonth.JANUARY, 1), KtLocalTime(0, 0, 0, 1)) + val proto: LocalDateTime = kx.toProtoLocalDateTime() + proto.date.year shouldBe 2030 + proto.date.month shouldBe ProtoMonth.JANUARY + proto.date.day shouldBe 1 + proto.time.hour shouldBe 0 + proto.time.minute shouldBe 0 + proto.time.second shouldBe 0 + proto.time.nano shouldBe 1 + proto.toKotlinLocalDateTime() shouldBe kx + } + + @Test + fun `missing time defaults to midnight`() { + val localDate = + LocalDate.newBuilder().setYear(2021).setMonth(ProtoMonth.MARCH).setDay(14) + val proto = LocalDateTime.newBuilder() + .setDate(localDate) + .build() + val kx = proto.toKotlinLocalDateTime() + kx.date shouldBe KtLocalDate(2021, KtMonth.MARCH, 14) + kx.time shouldBe KtLocalTime(0, 0, 0, 0) + } + } + + @Nested + inner class TimeZoneConversions { + + @Test + fun roundTrip() { + val kx = KtTimeZone.of("Europe/Amsterdam") + val proto: ZoneId = kx.toProtoZoneId() + proto.value shouldBe "Europe/Amsterdam" + proto.toKotlinTimeZone() shouldBe kx + } + } } From 5318475c33bab35cdc8ca1b87cb5fcb95201de7f Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 21:28:03 +0000 Subject: [PATCH 12/16] Improve file names --- .../time/kotlin/{KotlinXDateTimeExts.kt => DateTimeExts.kt} | 0 .../time/kotlin/{KotlinXTimeExtsSpec.kt => DateTimeExtsSpec.kt} | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename time-kotlin/src/main/kotlin/io/spine/time/kotlin/{KotlinXDateTimeExts.kt => DateTimeExts.kt} (100%) rename time-kotlin/src/test/kotlin/io/spine/time/kotlin/{KotlinXTimeExtsSpec.kt => DateTimeExtsSpec.kt} (99%) diff --git a/time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt b/time-kotlin/src/main/kotlin/io/spine/time/kotlin/DateTimeExts.kt similarity index 100% rename from time-kotlin/src/main/kotlin/io/spine/time/kotlin/KotlinXDateTimeExts.kt rename to time-kotlin/src/main/kotlin/io/spine/time/kotlin/DateTimeExts.kt diff --git a/time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt b/time-kotlin/src/test/kotlin/io/spine/time/kotlin/DateTimeExtsSpec.kt similarity index 99% rename from time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt rename to time-kotlin/src/test/kotlin/io/spine/time/kotlin/DateTimeExtsSpec.kt index e6faa3d1..5b6d0b09 100644 --- a/time-kotlin/src/test/kotlin/io/spine/time/kotlin/KotlinXTimeExtsSpec.kt +++ b/time-kotlin/src/test/kotlin/io/spine/time/kotlin/DateTimeExtsSpec.kt @@ -53,7 +53,7 @@ import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test @DisplayName("KotlinX DateTime conversion extensions should") -internal class KotlinXTimeExtsSpec { +internal class DateTimeExtsSpec { @Nested inner class DurationConversions { From 9247ad4ccbfe665e99013fa4b870b717f088084b Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 21:37:39 +0000 Subject: [PATCH 13/16] Use Kotlin Protobuf DSL --- .../io/spine/time/kotlin/DateTimeExts.kt | 58 ++++++++++--------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/time-kotlin/src/main/kotlin/io/spine/time/kotlin/DateTimeExts.kt b/time-kotlin/src/main/kotlin/io/spine/time/kotlin/DateTimeExts.kt index e66bc7ed..5fd5bdff 100644 --- a/time-kotlin/src/main/kotlin/io/spine/time/kotlin/DateTimeExts.kt +++ b/time-kotlin/src/main/kotlin/io/spine/time/kotlin/DateTimeExts.kt @@ -30,7 +30,13 @@ package io.spine.time.kotlin import com.google.protobuf.Timestamp import com.google.protobuf.timestamp +import com.google.protobuf.duration import kotlin.time.Duration.Companion.nanoseconds +import io.spine.time.localDate +import io.spine.time.localDateTime +import io.spine.time.localTime +import io.spine.time.yearMonth +import io.spine.time.zoneId import com.google.protobuf.Duration as ProtoDuration import io.spine.time.LocalDate as ProtoLocalDate import io.spine.time.LocalDateTime as ProtoLocalDateTime @@ -78,10 +84,10 @@ public fun KtDuration.toProtoDuration(): ProtoDuration { val totalNanos = this.inWholeNanoseconds val seconds = totalNanos / NANOS_IN_SECOND // truncates toward zero val nanos = (totalNanos % NANOS_IN_SECOND).toInt() - return ProtoDuration.newBuilder() - .setSeconds(seconds) - .setNanos(nanos) - .build() + return duration { + this.seconds = seconds + this.nanos = nanos + } } /** @@ -132,10 +138,10 @@ public fun ProtoYearMonth.toKotlinYearMonth(): KtYearMonth = * Converts kotlinx.datetime `YearMonth` to Spine `YearMonth`. */ public fun KtYearMonth.toProtoYearMonth(): ProtoYearMonth = - ProtoYearMonth.newBuilder() - .setYear(this.year) - .setMonth(this.month.toProtoMonth()) - .build() + yearMonth { + year = this@toProtoYearMonth.year + month = this@toProtoYearMonth.month.toProtoMonth() + } /** * Converts Spine `LocalDate` to kotlinx.datetime `LocalDate`. @@ -147,11 +153,11 @@ public fun ProtoLocalDate.toKotlinLocalDate(): KtLocalDate = * Converts kotlinx.datetime `LocalDate` to Spine `LocalDate`. */ public fun KtLocalDate.toProtoLocalDate(): ProtoLocalDate = - ProtoLocalDate.newBuilder() - .setYear(this.year) - .setMonth(this.month.toProtoMonth()) - .setDay(this.day) - .build() + localDate { + year = this@toProtoLocalDate.year + month = this@toProtoLocalDate.month.toProtoMonth() + day = this@toProtoLocalDate.day + } /** * Converts Spine `LocalTime` to kotlinx.datetime `LocalTime`. @@ -163,12 +169,12 @@ public fun ProtoLocalTime.toKotlinLocalTime(): KtLocalTime = * Converts kotlinx.datetime `LocalTime` to Spine `LocalTime`. */ public fun KtLocalTime.toProtoLocalTime(): ProtoLocalTime = - ProtoLocalTime.newBuilder() - .setHour(this.hour) - .setMinute(this.minute) - .setSecond(this.second) - .setNano(this.nanosecond) - .build() + localTime { + hour = this@toProtoLocalTime.hour + minute = this@toProtoLocalTime.minute + second = this@toProtoLocalTime.second + nano = this@toProtoLocalTime.nanosecond + } /** * Converts Spine `LocalDateTime` to kotlinx.datetime `LocalDateTime`. @@ -184,10 +190,10 @@ public fun ProtoLocalDateTime.toKotlinLocalDateTime(): KtLocalDateTime { * Converts kotlinx.datetime `LocalDateTime` to Spine `LocalDateTime`. */ public fun KtLocalDateTime.toProtoLocalDateTime(): ProtoLocalDateTime = - ProtoLocalDateTime.newBuilder() - .setDate(this.date.toProtoLocalDate()) - .setTime(this.time.toProtoLocalTime()) - .build() + localDateTime { + date = this@toProtoLocalDateTime.date.toProtoLocalDate() + time = this@toProtoLocalDateTime.time.toProtoLocalTime() + } /** * Converts Spine `ZoneId` to kotlinx.datetime `TimeZone`. @@ -198,6 +204,6 @@ public fun ProtoZoneId.toKotlinTimeZone(): KtTimeZone = KtTimeZone.of(this.value * Converts kotlinx.datetime `TimeZone` to Spine `ZoneId`. */ public fun KtTimeZone.toProtoZoneId(): ProtoZoneId = - ProtoZoneId.newBuilder() - .setValue(this.id) - .build() + zoneId { + value = id + } From 3ce8dbd9c65223bea76a4090105961c065a6d78f Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 21:46:12 +0000 Subject: [PATCH 14/16] Update build time --- dependencies.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dependencies.md b/dependencies.md index c459cb88..18501165 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1006,7 +1006,7 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 20:27:48 WET 2025** using +This report was generated on **Tue Oct 28 21:45:54 WET 2025** 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). @@ -1849,7 +1849,7 @@ This report was generated on **Tue Oct 28 20:27:48 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 20:27:48 WET 2025** using +This report was generated on **Tue Oct 28 21:45:50 WET 2025** 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). @@ -2038,7 +2038,7 @@ This report was generated on **Tue Oct 28 20:27:48 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 20:27:48 WET 2025** using +This report was generated on **Tue Oct 28 21:45:42 WET 2025** 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). @@ -2885,7 +2885,7 @@ This report was generated on **Tue Oct 28 20:27:48 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 20:27:48 WET 2025** using +This report was generated on **Tue Oct 28 21:45:50 WET 2025** 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). @@ -3728,6 +3728,6 @@ This report was generated on **Tue Oct 28 20:27:48 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 20:27:48 WET 2025** using +This report was generated on **Tue Oct 28 21:45:50 WET 2025** 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 From 68538b263e2abd56e9e9065fc6c207bbc5bebf86 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 21:51:35 +0000 Subject: [PATCH 15/16] Remove Kotest plugins from build classpath --- buildSrc/build.gradle.kts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index bec73725..64ad3b42 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -127,11 +127,6 @@ val detektVersion = "1.23.8" */ val kotestJvmPluginVersion = "0.4.10" -/** - * @see [io.spine.dependency.test.Kotest.MultiplatformGradlePlugin] - */ -val kotestMultiplatformPluginVersion = "6.0.0.M4" - /** * @see [io.spine.dependency.test.Kover] */ @@ -184,8 +179,6 @@ dependencies { "com.google.protobuf:protobuf-gradle-plugin:$protobufPluginVersion", "com.gradleup.shadow:shadow-gradle-plugin:$shadowVersion", "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:$detektVersion", - "io.kotest:kotest-gradle-plugin:$kotestJvmPluginVersion", - "io.kotest:kotest-framework-multiplatform-plugin-gradle:$kotestMultiplatformPluginVersion", // https://github.com/srikanth-lingala/zip4j "net.lingala.zip4j:zip4j:2.10.0", "net.ltgt.gradle:gradle-errorprone-plugin:$errorPronePluginVersion", From 39f2d00f1c92ebb01abbc72e5c7b001fbe1c074b Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 28 Oct 2025 21:58:40 +0000 Subject: [PATCH 16/16] Update build time --- dependencies.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dependencies.md b/dependencies.md index 18501165..8fc5c70d 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1006,7 +1006,7 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 21:45:54 WET 2025** using +This report was generated on **Tue Oct 28 21:58:00 WET 2025** 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). @@ -1849,7 +1849,7 @@ This report was generated on **Tue Oct 28 21:45:54 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 21:45:50 WET 2025** using +This report was generated on **Tue Oct 28 21:58:00 WET 2025** 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). @@ -2038,7 +2038,7 @@ This report was generated on **Tue Oct 28 21:45:50 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 21:45:42 WET 2025** using +This report was generated on **Tue Oct 28 21:57:59 WET 2025** 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). @@ -2885,7 +2885,7 @@ This report was generated on **Tue Oct 28 21:45:42 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 21:45:50 WET 2025** using +This report was generated on **Tue Oct 28 21:58:00 WET 2025** 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). @@ -3728,6 +3728,6 @@ This report was generated on **Tue Oct 28 21:45:50 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Oct 28 21:45:50 WET 2025** using +This report was generated on **Tue Oct 28 21:58:00 WET 2025** 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