diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt index 0c6a6a2148..d49dce0c3c 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt @@ -46,12 +46,12 @@ object CoreJvmCompiler { /** * The version used to in the build classpath. */ - const val dogfoodingVersion = "2.0.0-SNAPSHOT.040" + const val dogfoodingVersion = "2.0.0-SNAPSHOT.042" /** * The version to be used for integration tests. */ - const val version = "2.0.0-SNAPSHOT.040" + const val version = "2.0.0-SNAPSHOT.042" /** * The ID of the Gradle plugin. diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt index e4c9a89a35..92a71d798c 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt @@ -36,7 +36,7 @@ object Validation { /** * The version of the Validation library artifacts. */ - const val version = "2.0.0-SNAPSHOT.375" + const val version = "2.0.0-SNAPSHOT.378" /** * The last version of Validation compatible with ProtoData. @@ -65,5 +65,5 @@ object Validation { const val model = "$group:$prefix-model:$version" const val configModule = "$group:$prefix-configuration" - const val configuration = "$configModule:$version" + const val context = "$group:$prefix-context:$version" } diff --git a/context/src/main/kotlin/io/spine/tools/validation/ErrorPlaceholder.kt b/context/src/main/kotlin/io/spine/tools/validation/ErrorPlaceholder.kt index e8b5e7d088..c81fa2d7c4 100644 --- a/context/src/main/kotlin/io/spine/tools/validation/ErrorPlaceholder.kt +++ b/context/src/main/kotlin/io/spine/tools/validation/ErrorPlaceholder.kt @@ -33,16 +33,16 @@ package io.spine.tools.validation * Each validation option declares the supported placeholders. Take a look at * `options.proto` for examples. * - * Important Note: we have the same [enum][io.spine.validate.RuntimeErrorPlaceholder] + * Important Note: we have the same [enum][io.spine.validation.RuntimeErrorPlaceholder] * in the runtime library, which is exactly as this one. Please keep them in sync. * This duplication is done intentionally to prevent clash between the runtime library, - * which is added to the classpath of ProtoData and the runtime library, which is part - * of ProtoData itself because it is a part of Spine. As we complete our migration + * which is added to the classpath of the Compiler and the runtime library, which is part + * of the Compiler itself because it is a part of Spine. As we complete our migration * of validation to codegen, the runtime library will either be significantly simplified, * or even its content may be moved to `base`. Then, the duplicate enum should be removed. * - * @see io.spine.validate.TemplateString - * @see io.spine.validate.RuntimeErrorPlaceholder + * @see io.spine.validation.TemplateString + * @see io.spine.validation.RuntimeErrorPlaceholder */ public enum class ErrorPlaceholder(public val value: String) { diff --git a/dependencies.md b/dependencies.md index 8952203988..173ec8d73d 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1,6 +1,6 @@ -# Dependencies of `io.spine.tools:validation-context:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-context:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -1139,14 +1139,14 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-context-tests:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-context-tests:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -2233,14 +2233,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-gradle-plugin:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-gradle-plugin:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -3309,14 +3309,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-java:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-java:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -4403,14 +4403,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-java-bundle:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-java-bundle:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.google.auto.service. **Name** : auto-service-annotations. **Version** : 1.1.1. @@ -5188,14 +5188,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-jvm-runtime:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine:validation-jvm-runtime:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -6044,14 +6044,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-ksp:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-ksp:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.google.auto.service. **Name** : auto-service-annotations. **Version** : 1.1.1. @@ -6996,14 +6996,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-consumer:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-consumer:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -8090,14 +8090,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-consumer-dependency:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-consumer-dependency:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -9087,14 +9087,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-extensions:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-extensions:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -10237,14 +10237,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-runtime:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-runtime:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -11234,14 +11234,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-validating:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-validating:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -12235,14 +12235,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-validator:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-validator:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -13333,14 +13333,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-validator-dependency:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-validator-dependency:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -14165,14 +14165,14 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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:validation-vanilla:2.0.0-SNAPSHOT.378` +# Dependencies of `io.spine.tools:validation-vanilla:2.0.0-SNAPSHOT.380` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -15028,6 +15028,6 @@ This report was generated on **Wed Dec 17 19:51:15 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Dec 17 19:51:15 WET 2025** using +This report was generated on **Thu Dec 18 20:32:39 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/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationPlugin.kt b/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationPlugin.kt index b3293b4615..fdd9c17afb 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationPlugin.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationPlugin.kt @@ -69,7 +69,7 @@ private val customOptions: List by lazy { /** * Dynamically discovered instances of custom - * [MessageValidator][io.spine.validate.MessageValidator]s. + * [MessageValidator][io.spine.validation.MessageValidator]s. * * Please note that the KSP module is responsible for the actual discovering * of the message validators. The discovered validators are written to a text file diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/expression/ClassNames.kt b/java/src/main/kotlin/io/spine/tools/validation/java/expression/ClassNames.kt index 226d422b89..895c86bedb 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/expression/ClassNames.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/expression/ClassNames.kt @@ -42,10 +42,10 @@ import io.spine.tools.compiler.jvm.ClassName import io.spine.type.KnownTypes import io.spine.type.TypeName import io.spine.type.TypeUrl -import io.spine.validate.ConstraintViolation -import io.spine.validate.TemplateString -import io.spine.validate.ValidatableMessage -import io.spine.validate.ValidationError +import io.spine.validation.ConstraintViolation +import io.spine.validation.TemplateString +import io.spine.validation.ValidatableMessage +import io.spine.validation.ValidationError import java.util.* import java.util.regex.Pattern import java.util.stream.Collectors diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/expression/ConstraintViolations.kt b/java/src/main/kotlin/io/spine/tools/validation/java/expression/ConstraintViolations.kt index 5acf29f09b..223f4031e0 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/expression/ConstraintViolations.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/expression/ConstraintViolations.kt @@ -33,8 +33,8 @@ import io.spine.tools.compiler.jvm.ClassName import io.spine.tools.compiler.jvm.Expression import io.spine.tools.compiler.jvm.newBuilder import io.spine.tools.compiler.jvm.packToAny -import io.spine.validate.ConstraintViolation -import io.spine.validate.TemplateString +import io.spine.validation.ConstraintViolation +import io.spine.validation.TemplateString /** * Yields an expression that creates a new instance of [ConstraintViolation] diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/expression/FieldPaths.kt b/java/src/main/kotlin/io/spine/tools/validation/java/expression/FieldPaths.kt index 4d3ca2ae86..396f82c598 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/expression/FieldPaths.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/expression/FieldPaths.kt @@ -70,7 +70,7 @@ public fun Expression.mergeFrom(other: Expression): Expres * * Strictly speaking, [OneofName] does not represent a field, but a group of fields. * But we still use [FieldPath] to provide a path to this message member because - * [io.spine.validate.ConstraintViolation] expects exactly [FieldPath] type. + * [io.spine.validation.ConstraintViolation] expects exactly [FieldPath] type. */ public fun Expression.resolve(oneof: OneofName): Expression = toBuilder() diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/expression/TemplateStrings.kt b/java/src/main/kotlin/io/spine/tools/validation/java/expression/TemplateStrings.kt index f64c72e75a..ef40e53ec3 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/expression/TemplateStrings.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/expression/TemplateStrings.kt @@ -34,8 +34,8 @@ import io.spine.tools.compiler.jvm.StringLiteral import io.spine.tools.compiler.jvm.mapExpression import io.spine.tools.compiler.jvm.newBuilder import io.spine.tools.validation.ErrorPlaceholder -import io.spine.validate.TemplateString -import io.spine.validate.checkPlaceholdersHasValue +import io.spine.validation.TemplateString +import io.spine.validation.checkPlaceholdersHasValue /** * Yields an expression that creates a new instance of [TemplateString]. diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidateScope.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidateScope.kt index bf8f099f0d..e6591d5d38 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidateScope.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidateScope.kt @@ -31,12 +31,12 @@ import io.spine.tools.compiler.jvm.ReadVar import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.parentPath import io.spine.type.TypeName -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation /** * Scope variables available within the `validate(FieldPath)` method. * - * Use these variables to create an instance of [io.spine.validate.ConstraintViolation] + * Use these variables to create an instance of [io.spine.validation.ConstraintViolation] * for the failed option constraint. */ public object ValidateScope { diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidationCodeInjector.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidationCodeInjector.kt index 1729b7c5a8..2daa0e56a5 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidationCodeInjector.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidationCodeInjector.kt @@ -49,10 +49,13 @@ import io.spine.tools.validation.java.expression.ObjectsClass import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.parentPath import io.spine.tools.validation.java.generate.ValidateScope.violations -import io.spine.validate.NonValidated -import io.spine.validate.ValidatableMessage -import io.spine.validate.Validated -import io.spine.validate.ValidatingBuilder +import io.spine.validation.ConstraintViolation +import io.spine.validation.NonValidated +import io.spine.validation.ValidatableMessage +import io.spine.validation.Validated +import io.spine.validation.ValidatingBuilder +import io.spine.validation.ValidationError +import io.spine.validation.ValidationException /** * A [PsiClass] holding an instance of [Message]. @@ -111,6 +114,10 @@ private fun MessagePsiClass.implementValidatableMessage() { implement(reference) } +private val validationError by lazy { + ValidationError::class.java.canonicalName +} + /** * Declares the `validate(parentPath, parentName)` method in this [MessagePsiClass]. * @@ -127,7 +134,7 @@ private fun MessagePsiClass.implementValidatableMessage() { private fun MessagePsiClass.declareValidateMethod(constraints: List) { val psiMethod = elementFactory.createMethodFromText( """ - public java.util.Optional validate($FieldPathClass $parentPath, $NullableTypeNameClass $parentName) { + public java.util.Optional<$validationError> validate($FieldPathClass $parentPath, $NullableTypeNameClass $parentName) { $ObjectsClass.requireNonNull($parentPath); ${validateMethodBody(constraints)} } @@ -138,19 +145,20 @@ private fun MessagePsiClass.declareValidateMethod(constraints: List) } private fun validateMethodBody(constraints: List): String = - if (constraints.isEmpty()) + if (constraints.isEmpty()) { """ - // This message does not have any validation constraints. - return java.util.Optional.empty(); - """.trimIndent() - else + // This message does not have any validation constraints. + return java.util.Optional.empty(); + """.trimIndent() + } else { + val constraintViolation = ConstraintViolation::class.java.canonicalName """ - var $violations = new java.util.ArrayList(); + var $violations = new java.util.ArrayList<$constraintViolation>(); ${constraints.joinByLines()} if (!$violations.isEmpty()) { - var error = io.spine.validate.ValidationError.newBuilder() + var error = $validationError.newBuilder() .addAllConstraintViolation($violations) .build(); return java.util.Optional.of(error); @@ -158,6 +166,7 @@ private fun validateMethodBody(constraints: List): String = return java.util.Optional.empty(); } """.trimIndent() + } /** * Adds declarations of the given [fields] to this [MessagePsiClass]. @@ -180,7 +189,11 @@ private fun MessagePsiClass.declareSupportingMethods(methods: List error = result.validate(); + java.util.Optional<$validationError> error = result.validate(); if (error.isPresent()) { var violations = error.get().getConstraintViolationList(); - throw new io.spine.validate.ValidationException(violations); + throw new $validationException(violations); } """.trimIndent(), this ) diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidatorGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidatorGenerator.kt index 32ecc37783..a612304fc6 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidatorGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/ValidatorGenerator.kt @@ -55,9 +55,9 @@ import io.spine.tools.validation.java.generate.MessageScope.message import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.parentPath import io.spine.tools.validation.java.generate.ValidateScope.violations -import io.spine.validate.ConstraintViolation -import io.spine.validate.DetectedViolation -import io.spine.validate.TemplateString +import io.spine.validation.ConstraintViolation +import io.spine.validation.DetectedViolation +import io.spine.validation.TemplateString /** * A fully qualified Java class name of a validator class. @@ -151,7 +151,7 @@ private class ApplyValidator( * The expression does the following: * * 1. Creates a new instance of [validator]. - * 2. Invokes [MessageValidator.validate][io.spine.validate.MessageValidator.validate] + * 2. Invokes [MessageValidator.validate][io.spine.validation.MessageValidator.validate] * passing the [message] instance. * 3. Converts each [DetectedViolation] to [ConstraintViolation]. * 4. Puts all constraint violations to the list of discovered [violations]. diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ChoiceGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ChoiceGenerator.kt index b063dfc3d0..ebd9daee70 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ChoiceGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ChoiceGenerator.kt @@ -47,7 +47,7 @@ import io.spine.tools.validation.java.generate.SingleOptionCode import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.parentPath import io.spine.tools.validation.java.generate.ValidateScope.violations -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation import io.spine.tools.validation.option.CHOICE import io.spine.tools.validation.ChoiceOneof diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/DistinctGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/DistinctGenerator.kt index 9e15b360b6..f825f58c24 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/DistinctGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/DistinctGenerator.kt @@ -64,7 +64,7 @@ import io.spine.tools.validation.java.generate.SingleOptionCode import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.parentPath import io.spine.tools.validation.java.generate.ValidateScope.violations -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation import io.spine.tools.validation.DistinctField import io.spine.tools.validation.option.PATTERN diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/GoesGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/GoesGenerator.kt index d2fc1e9c0d..da107cd714 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/GoesGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/GoesGenerator.kt @@ -56,7 +56,7 @@ import io.spine.tools.validation.java.generate.SingleOptionCode import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.parentPath import io.spine.tools.validation.java.generate.ValidateScope.violations -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation import io.spine.tools.validation.option.GOES import io.spine.tools.validation.GoesField diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/PatternGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/PatternGenerator.kt index 25ad8b47bf..9689e5a0e7 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/PatternGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/PatternGenerator.kt @@ -69,7 +69,7 @@ import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.parentPath import io.spine.tools.validation.java.generate.ValidateScope.violations import io.spine.tools.validation.java.generate.mangled -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation import io.spine.tools.validation.option.PATTERN import io.spine.tools.validation.PatternField import io.spine.tools.validation.option.isRepeatedString diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequireOptionGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequireOptionGenerator.kt index 28febca59b..86a6552fba 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequireOptionGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequireOptionGenerator.kt @@ -49,7 +49,7 @@ import io.spine.tools.validation.java.generate.SingleOptionCode import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.violations import io.spine.tools.validation.java.generate.mangled -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation import io.spine.tools.validation.FieldGroup import io.spine.tools.validation.option.REQUIRE import io.spine.tools.validation.RequireMessage diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequiredGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequiredGenerator.kt index 1df2349883..64f353f391 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequiredGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequiredGenerator.kt @@ -51,7 +51,7 @@ import io.spine.tools.validation.java.generate.SingleOptionCode import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.parentPath import io.spine.tools.validation.java.generate.ValidateScope.violations -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation import io.spine.tools.validation.option.IF_MISSING import io.spine.tools.validation.RequiredField diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ValidateGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ValidateGenerator.kt index fc1291513e..3a7da7a1f7 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ValidateGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ValidateGenerator.kt @@ -127,7 +127,7 @@ private class GenerateValidate( /** * Yields an expression to validate the provided [message] if it implements - * [io.spine.validate.ValidatableMessage] interface. + * [io.spine.validation.ValidatableMessage] interface. * * The reported violations are appended to [violations] list, if any. * diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/WhenGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/WhenGenerator.kt index d85eeabe58..0efdc97591 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/WhenGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/WhenGenerator.kt @@ -60,7 +60,7 @@ import io.spine.tools.validation.java.generate.SingleOptionCode import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.parentPath import io.spine.tools.validation.java.generate.ValidateScope.violations -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation import io.spine.tools.validation.TimeFieldType.TFT_TEMPORAL import io.spine.tools.validation.TimeFieldType.TFT_TIMESTAMP import io.spine.tools.validation.option.WHEN diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/bound/BoundedFieldGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/bound/BoundedFieldGenerator.kt index d6e2f779ca..00926ecddb 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/bound/BoundedFieldGenerator.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/bound/BoundedFieldGenerator.kt @@ -68,7 +68,7 @@ import io.spine.tools.validation.java.generate.ValidateScope.violations import io.spine.tools.validation.java.generate.option.bound.Docs.SCALAR_TYPES import io.spine.tools.validation.java.generate.option.bound.Docs.UNSIGNED_API import io.spine.type.TypeName -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation /** * An abstract base for field generators that restrict the range of numeric fields. diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/setonce/SetOnceConstraintViolation.kt b/java/src/main/kotlin/io/spine/tools/validation/java/setonce/SetOnceConstraintViolation.kt index c87f325807..d90e7a1d50 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/setonce/SetOnceConstraintViolation.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/setonce/SetOnceConstraintViolation.kt @@ -41,7 +41,7 @@ import io.spine.tools.validation.ErrorPlaceholder.FIELD_VALUE import io.spine.tools.validation.ErrorPlaceholder.PARENT_TYPE import io.spine.tools.validation.java.expression.constraintViolation import io.spine.tools.validation.java.expression.templateString -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation import io.spine.tools.validation.option.IF_SET_AGAIN /** diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/setonce/SetOnceJavaConstraints.kt b/java/src/main/kotlin/io/spine/tools/validation/java/setonce/SetOnceJavaConstraints.kt index f9938ef55c..6bb091bc07 100644 --- a/java/src/main/kotlin/io/spine/tools/validation/java/setonce/SetOnceJavaConstraints.kt +++ b/java/src/main/kotlin/io/spine/tools/validation/java/setonce/SetOnceJavaConstraints.kt @@ -48,6 +48,7 @@ import io.spine.tools.psi.java.getFirstByText import io.spine.tools.psi.java.methodWithSignature import io.spine.tools.validation.java.expression.stringValueOf import io.spine.tools.validation.java.setonce.SetOnceJavaConstraints.Companion.MergeFromBytesSignature +import io.spine.validation.ValidationException /** * Renders Java code to support `(set_once)` option for the given [field]. @@ -189,10 +190,11 @@ internal sealed class SetOnceJavaConstraints( asString(newValue), asPayload(newValue) ) + val validationException = ValidationException::class.java.canonicalName return elementFactory.createStatement( """ if (!(${defaultOrSame(currentValue, newValue)})) { - throw new io.spine.validate.ValidationException($violation); + throw new $validationException($violation); }""".trimIndent() ) } diff --git a/jvm-runtime/src/main/java/io/spine/validate/ValidatableMessage.java b/jvm-runtime/src/main/java/io/spine/validate/ValidatableMessage.java index a12bcd8253..2b73da0283 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/ValidatableMessage.java +++ b/jvm-runtime/src/main/java/io/spine/validate/ValidatableMessage.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -26,50 +26,12 @@ package io.spine.validate; -import com.google.errorprone.annotations.Immutable; -import com.google.protobuf.Message; -import io.spine.base.FieldPath; -import io.spine.type.TypeName; -import org.jspecify.annotations.Nullable; - -import java.util.Optional; - /** - * A message with validation constraints. + * Provided for backward compatibility. * - *

Please see {@code spine/options.proto} for the definitions of validation options. + * @deprecated Use {@link io.spine.validation.ValidatableMessage} instead. */ -@Immutable -public interface ValidatableMessage extends Message { - - /** - * Validates this message according to the rules in the Protobuf definition. - * - * @return an error or {@link Optional#empty()} if no violations found - */ - default Optional validate() { - var noParentPath = FieldPath.getDefaultInstance(); - return validate(noParentPath, null); - } +@Deprecated +public interface ValidatableMessage extends io.spine.validation.ValidatableMessage { - /** - * Validates this message according to the rules in the Protobuf definition. - * - *

Use this overload when validating a message as part of another message's validation. - * Any constraint violations reported by this method will include the path to the original - * field and the name of the message that initiated in-depth validation. - * - *

Note: passing {@code parentPath} without {@code parentName}, or vice versa, - * does not make sense. Both must either be provided or omitted together. - * - * @param parentPath - * the path to the parent field that initiated in-depth validation. - * Can be the default instance, which means no parent path. - * @param parentName - * the name of the parent type that initiated in-depth validation - * Can be {@code null}, which means no parent name. - * - * @return an error or {@link Optional#empty()} if no violations found - */ - Optional validate(FieldPath parentPath, @Nullable TypeName parentName); } diff --git a/jvm-runtime/src/main/java/io/spine/validate/Validated.java b/jvm-runtime/src/main/java/io/spine/validate/Validated.java index 912a643c3f..0287dd5510 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/Validated.java +++ b/jvm-runtime/src/main/java/io/spine/validate/Validated.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -35,20 +35,11 @@ import static java.lang.annotation.RetentionPolicy.CLASS; /** - * Marks a message which is guaranteed to be valid. + * Provided for backward compatibility. * - *

In most cases this annotation is implied. However, sometimes users may want to state - * explicitly that the message is validated. For example, if a method marked as {@link NonValidated} - * is overridden with a version which returns only valid messages, that version should be marked - * with this annotation. - * - *

Note: {@link java.lang.annotation.RetentionPolicy#CLASS RetentionPolicy.CLASS} - * is explicitly specified because this annotation is designed to improve method semantics - * in source files, and is intended for programmers. It does not affect runtime behavior. - * - * @see ValidatingBuilder - * @see NonValidated + * @deprecated Use {@link io.spine.validation.Validated} instead. */ +@Deprecated @Documented @Retention(CLASS) @Target({TYPE_USE, TYPE_PARAMETER}) diff --git a/jvm-runtime/src/main/java/io/spine/validate/ValidatingBuilder.java b/jvm-runtime/src/main/java/io/spine/validate/ValidatingBuilder.java index c9a9f4e3b4..feb3ab9213 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/ValidatingBuilder.java +++ b/jvm-runtime/src/main/java/io/spine/validate/ValidatingBuilder.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -27,55 +27,13 @@ package io.spine.validate; import com.google.protobuf.Message; -import io.spine.annotation.GeneratedMixin; /** - * Implementation base for generated message builders. + * Provided for backward compatibility. * - *

This interface defines a method {@link #build()} which validates the built message - * before returning it to the user. - * - *

If a user specifically needs to skip validation, they should use - * {@link #buildPartial()} to make the intent explicit. - * - * @param - * the type of the message to build + * @deprecated Use {@link io.spine.validation.ValidatingBuilder} instead. */ -@GeneratedMixin -public interface ValidatingBuilder extends Message.Builder { - - /** - * Constructs the message and validates it according to the constraints - * declared in Protobuf. - * - * @return the built message - * @throws ValidationException - * if the message is invalid - */ - @Override - @Validated M build() throws ValidationException; - - /** - * Constructs the message with the given fields without validation. - * - *

Users should prefer {@link #build()} over this method. - * - * @return the build message, potentially invalid - */ - @Override - @NonValidated M buildPartial(); - - /** - * Constructs the message and {@linkplain Validate validates} it according to the constraints - * declared in Protobuf. - * - * @return the built message - * @throws ValidationException - * if the message is invalid - * @deprecated please use {@link #build()} - */ - @Deprecated - default @Validated M vBuild() throws ValidationException { - return build(); - } +@Deprecated +public interface ValidatingBuilder + extends io.spine.validation.ValidatingBuilder { } diff --git a/jvm-runtime/src/main/java/io/spine/validate/Alternative.java b/jvm-runtime/src/main/java/io/spine/validation/Alternative.java similarity index 96% rename from jvm-runtime/src/main/java/io/spine/validate/Alternative.java rename to jvm-runtime/src/main/java/io/spine/validation/Alternative.java index 2811acbaf5..dfe67e89b8 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/Alternative.java +++ b/jvm-runtime/src/main/java/io/spine/validation/Alternative.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableSet; diff --git a/jvm-runtime/src/main/java/io/spine/validate/ComparableNumber.java b/jvm-runtime/src/main/java/io/spine/validation/ComparableNumber.java similarity index 96% rename from jvm-runtime/src/main/java/io/spine/validate/ComparableNumber.java rename to jvm-runtime/src/main/java/io/spine/validation/ComparableNumber.java index 7f7b8cd7ff..7b72e6cd57 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/ComparableNumber.java +++ b/jvm-runtime/src/main/java/io/spine/validation/ComparableNumber.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.base.Objects; import com.google.errorprone.annotations.Immutable; diff --git a/jvm-runtime/src/main/java/io/spine/validate/Constraint.java b/jvm-runtime/src/main/java/io/spine/validation/Constraint.java similarity index 95% rename from jvm-runtime/src/main/java/io/spine/validate/Constraint.java rename to jvm-runtime/src/main/java/io/spine/validation/Constraint.java index 04904ed60c..bd20aa1d10 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/Constraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/Constraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; diff --git a/jvm-runtime/src/main/java/io/spine/validate/ConstraintCache.java b/jvm-runtime/src/main/java/io/spine/validation/ConstraintCache.java similarity index 97% rename from jvm-runtime/src/main/java/io/spine/validate/ConstraintCache.java rename to jvm-runtime/src/main/java/io/spine/validation/ConstraintCache.java index 9204e14636..c4b1fbbca9 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/ConstraintCache.java +++ b/jvm-runtime/src/main/java/io/spine/validation/ConstraintCache.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.base.Objects; import com.google.common.cache.CacheBuilder; diff --git a/jvm-runtime/src/main/java/io/spine/validate/ConstraintFor.java b/jvm-runtime/src/main/java/io/spine/validation/ConstraintFor.java similarity index 94% rename from jvm-runtime/src/main/java/io/spine/validate/ConstraintFor.java rename to jvm-runtime/src/main/java/io/spine/validation/ConstraintFor.java index 419af07a35..5169f91cbd 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/ConstraintFor.java +++ b/jvm-runtime/src/main/java/io/spine/validation/ConstraintFor.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.errorprone.annotations.Immutable; import com.google.protobuf.DescriptorProtos.DescriptorProto; diff --git a/jvm-runtime/src/main/java/io/spine/validate/ConstraintTranslator.java b/jvm-runtime/src/main/java/io/spine/validation/ConstraintTranslator.java similarity index 87% rename from jvm-runtime/src/main/java/io/spine/validate/ConstraintTranslator.java rename to jvm-runtime/src/main/java/io/spine/validation/ConstraintTranslator.java index 14dd406a1b..9f49164c59 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/ConstraintTranslator.java +++ b/jvm-runtime/src/main/java/io/spine/validation/ConstraintTranslator.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,16 +24,16 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; -import io.spine.validate.option.DistinctConstraint; -import io.spine.validate.option.GoesConstraint; -import io.spine.validate.option.IsRequiredConstraint; -import io.spine.validate.option.PatternConstraint; -import io.spine.validate.option.RangedConstraint; -import io.spine.validate.option.RequiredConstraint; -import io.spine.validate.option.RequiredFieldConstraint; -import io.spine.validate.option.ValidateConstraint; +import io.spine.validation.option.DistinctConstraint; +import io.spine.validation.option.GoesConstraint; +import io.spine.validation.option.IsRequiredConstraint; +import io.spine.validation.option.PatternConstraint; +import io.spine.validation.option.RangedConstraint; +import io.spine.validation.option.RequiredConstraint; +import io.spine.validation.option.RequiredFieldConstraint; +import io.spine.validation.option.ValidateConstraint; /** * Translates validation constraints into an output form. diff --git a/jvm-runtime/src/main/java/io/spine/validate/Constraints.java b/jvm-runtime/src/main/java/io/spine/validation/Constraints.java similarity index 93% rename from jvm-runtime/src/main/java/io/spine/validate/Constraints.java rename to jvm-runtime/src/main/java/io/spine/validation/Constraints.java index fa6d772029..dff387baff 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/Constraints.java +++ b/jvm-runtime/src/main/java/io/spine/validation/Constraints.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,21 +24,21 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.code.proto.OneofDeclaration; import io.spine.type.MessageType; -import io.spine.validate.option.IsRequired; -import io.spine.validate.option.Require; +import io.spine.validation.option.IsRequired; +import io.spine.validation.option.Require; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.ImmutableList.toImmutableList; -import static io.spine.validate.ConstraintCache.customForType; -import static io.spine.validate.ConstraintCache.forType; -import static io.spine.validate.FieldConstraints.customFactoriesExist; +import static io.spine.validation.ConstraintCache.customForType; +import static io.spine.validation.ConstraintCache.forType; +import static io.spine.validation.FieldConstraints.customFactoriesExist; /** * Validation constraints of a single Protobuf message type. diff --git a/jvm-runtime/src/main/java/io/spine/validate/CustomConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/CustomConstraint.java similarity index 93% rename from jvm-runtime/src/main/java/io/spine/validate/CustomConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/CustomConstraint.java index 17292d6089..673df5749b 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/CustomConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/CustomConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.Immutable; diff --git a/jvm-runtime/src/main/java/io/spine/validate/ExceptionFactory.java b/jvm-runtime/src/main/java/io/spine/validation/ExceptionFactory.java similarity index 96% rename from jvm-runtime/src/main/java/io/spine/validate/ExceptionFactory.java rename to jvm-runtime/src/main/java/io/spine/validation/ExceptionFactory.java index b3985d4527..c1403063d7 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/ExceptionFactory.java +++ b/jvm-runtime/src/main/java/io/spine/validation/ExceptionFactory.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.collect.ImmutableList; import com.google.protobuf.Message; @@ -34,7 +34,7 @@ import io.spine.base.Error; import io.spine.protobuf.AnyPacker; import io.spine.type.MessageClass; -import io.spine.validate.diags.ViolationText; +import io.spine.validation.diags.ViolationText; import java.util.Map; diff --git a/jvm-runtime/src/main/java/io/spine/validate/FieldAwareMessage.java b/jvm-runtime/src/main/java/io/spine/validation/FieldAwareMessage.java similarity index 96% rename from jvm-runtime/src/main/java/io/spine/validate/FieldAwareMessage.java rename to jvm-runtime/src/main/java/io/spine/validation/FieldAwareMessage.java index 7b1cfb2dc7..8adf6a20e8 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/FieldAwareMessage.java +++ b/jvm-runtime/src/main/java/io/spine/validation/FieldAwareMessage.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.Descriptors; diff --git a/jvm-runtime/src/main/java/io/spine/validate/FieldConstraints.java b/jvm-runtime/src/main/java/io/spine/validation/FieldConstraints.java similarity index 93% rename from jvm-runtime/src/main/java/io/spine/validate/FieldConstraints.java rename to jvm-runtime/src/main/java/io/spine/validation/FieldConstraints.java index 9298c0e4f8..0b89d07215 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/FieldConstraints.java +++ b/jvm-runtime/src/main/java/io/spine/validation/FieldConstraints.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,16 +24,16 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.collect.ImmutableSet; import io.spine.code.proto.FieldContext; import io.spine.logging.Logger; import io.spine.logging.LoggingFactory; -import io.spine.validate.option.FieldValidatingOption; -import io.spine.validate.option.StandardOptionFactory; -import io.spine.validate.option.ValidatingOptionFactory; -import io.spine.validate.option.ValidatingOptionsLoader; +import io.spine.validation.option.FieldValidatingOption; +import io.spine.validation.option.StandardOptionFactory; +import io.spine.validation.option.ValidatingOptionFactory; +import io.spine.validation.option.ValidatingOptionsLoader; import java.util.Set; import java.util.function.Function; diff --git a/jvm-runtime/src/main/java/io/spine/validate/FieldValue.java b/jvm-runtime/src/main/java/io/spine/validation/FieldValue.java similarity index 98% rename from jvm-runtime/src/main/java/io/spine/validate/FieldValue.java rename to jvm-runtime/src/main/java/io/spine/validation/FieldValue.java index 0f587e7dd3..595a15c66f 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/FieldValue.java +++ b/jvm-runtime/src/main/java/io/spine/validation/FieldValue.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.Immutable; diff --git a/jvm-runtime/src/main/java/io/spine/validate/MessageValue.java b/jvm-runtime/src/main/java/io/spine/validation/MessageValue.java similarity index 98% rename from jvm-runtime/src/main/java/io/spine/validate/MessageValue.java rename to jvm-runtime/src/main/java/io/spine/validation/MessageValue.java index 2069e33e25..c1148724e3 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/MessageValue.java +++ b/jvm-runtime/src/main/java/io/spine/validation/MessageValue.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.errorprone.annotations.Immutable; import com.google.protobuf.Descriptors.Descriptor; diff --git a/jvm-runtime/src/main/java/io/spine/validate/NonValidated.java b/jvm-runtime/src/main/java/io/spine/validation/NonValidated.java similarity index 94% rename from jvm-runtime/src/main/java/io/spine/validate/NonValidated.java rename to jvm-runtime/src/main/java/io/spine/validation/NonValidated.java index 7622c3211e..d9e9571d12 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/NonValidated.java +++ b/jvm-runtime/src/main/java/io/spine/validation/NonValidated.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/jvm-runtime/src/main/java/io/spine/validate/NumberText.java b/jvm-runtime/src/main/java/io/spine/validation/NumberText.java similarity index 97% rename from jvm-runtime/src/main/java/io/spine/validate/NumberText.java rename to jvm-runtime/src/main/java/io/spine/validation/NumberText.java index 6066f7dd27..8e5de410d9 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/NumberText.java +++ b/jvm-runtime/src/main/java/io/spine/validation/NumberText.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.base.Objects; import com.google.common.base.Splitter; diff --git a/jvm-runtime/src/main/java/io/spine/validate/RequiredFieldCheck.java b/jvm-runtime/src/main/java/io/spine/validation/RequiredFieldCheck.java similarity index 96% rename from jvm-runtime/src/main/java/io/spine/validate/RequiredFieldCheck.java rename to jvm-runtime/src/main/java/io/spine/validation/RequiredFieldCheck.java index 54666d1a5c..81e2e6e572 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/RequiredFieldCheck.java +++ b/jvm-runtime/src/main/java/io/spine/validation/RequiredFieldCheck.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.collect.ImmutableSet; import io.spine.base.FieldPath; diff --git a/jvm-runtime/src/main/java/io/spine/validation/ValidatableMessage.java b/jvm-runtime/src/main/java/io/spine/validation/ValidatableMessage.java new file mode 100644 index 0000000000..e2a8de9ec5 --- /dev/null +++ b/jvm-runtime/src/main/java/io/spine/validation/ValidatableMessage.java @@ -0,0 +1,75 @@ +/* + * 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.validation; + +import com.google.errorprone.annotations.Immutable; +import com.google.protobuf.Message; +import io.spine.base.FieldPath; +import io.spine.type.TypeName; +import org.jspecify.annotations.Nullable; + +import java.util.Optional; + +/** + * A message with validation constraints. + * + *

Please see {@code spine/options.proto} for the definitions of validation options. + */ +@Immutable +public interface ValidatableMessage extends Message { + + /** + * Validates this message according to the rules in the Protobuf definition. + * + * @return an error or {@link Optional#empty()} if no violations found + */ + default Optional validate() { + var noParentPath = FieldPath.getDefaultInstance(); + return validate(noParentPath, null); + } + + /** + * Validates this message according to the rules in the Protobuf definition. + * + *

Use this overload when validating a message as part of another message's validation. + * Any constraint violations reported by this method will include the path to the original + * field and the name of the message that initiated in-depth validation. + * + *

Note: passing {@code parentPath} without {@code parentName}, or vice versa, + * does not make sense. Both must either be provided or omitted together. + * + * @param parentPath + * the path to the parent field that initiated in-depth validation. + * Can be the default instance, which means no parent path. + * @param parentName + * the name of the parent type that initiated in-depth validation + * Can be {@code null}, which means no parent name. + * + * @return an error or {@link Optional#empty()} if no violations found + */ + Optional validate(FieldPath parentPath, @Nullable TypeName parentName); +} diff --git a/jvm-runtime/src/main/java/io/spine/validate/Validate.java b/jvm-runtime/src/main/java/io/spine/validation/Validate.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/Validate.java rename to jvm-runtime/src/main/java/io/spine/validation/Validate.java index d7dd0dcce7..fe9a409777 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/Validate.java +++ b/jvm-runtime/src/main/java/io/spine/validation/Validate.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -41,15 +41,16 @@ import io.spine.type.KnownTypes; import io.spine.type.MessageType; import io.spine.type.TypeUrl; -import io.spine.validate.option.SetOnce; +import io.spine.validation.option.SetOnce; +import io.spine.validation.option.ValidatingOptionFactory; import java.util.List; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.ImmutableSet.toImmutableSet; import static io.spine.protobuf.AnyPacker.unpack; -import static io.spine.validate.RuntimeErrorPlaceholder.FIELD_PATH; -import static io.spine.validate.RuntimeErrorPlaceholder.PARENT_TYPE; +import static io.spine.validation.RuntimeErrorPlaceholder.FIELD_PATH; +import static io.spine.validation.RuntimeErrorPlaceholder.PARENT_TYPE; import static java.lang.String.format; /** @@ -67,21 +68,6 @@ public final class Validate { private Validate() { } - /** - * Validates the given message according to its definition and throws - * {@code ValidationException} if any constraints are violated. - * - * @throws ValidationException - * if the passed message does not satisfy the constraints - * set for it in its Protobuf definition - * @deprecated please use {@link #check(Message)} - */ - @Deprecated - @InlineMe(replacement = "Validate.check(message)", imports = "io.spine.validate.Validate") - public static void checkValid(Message message) throws ValidationException { - check(message); - } - /** * Validates the given message according to its definition and returns it if so. * @@ -157,7 +143,7 @@ private static List validateAtRuntime(Message message) { /** * Validates the given message according to custom validation constraints. * - *

If there are user-defined {@link io.spine.validate.option.ValidatingOptionFactory} in + *

If there are user-defined {@link ValidatingOptionFactory} in * the classpath, they are used to create validating options and assemble constraints. If there * are no such factories, this method always returns an empty list. * diff --git a/jvm-runtime/src/main/java/io/spine/validation/Validated.java b/jvm-runtime/src/main/java/io/spine/validation/Validated.java new file mode 100644 index 0000000000..4be6ee5ec3 --- /dev/null +++ b/jvm-runtime/src/main/java/io/spine/validation/Validated.java @@ -0,0 +1,56 @@ +/* + * 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.validation; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.TYPE_PARAMETER; +import static java.lang.annotation.ElementType.TYPE_USE; +import static java.lang.annotation.RetentionPolicy.CLASS; + +/** + * Marks a message which is guaranteed to be valid. + * + *

In most cases this annotation is implied. However, sometimes users may want to state + * explicitly that the message is validated. For example, if a method marked as {@link NonValidated} + * is overridden with a version which returns only valid messages, that version should be marked + * with this annotation. + * + *

Note: {@link java.lang.annotation.RetentionPolicy#CLASS RetentionPolicy.CLASS} + * is explicitly specified because this annotation is designed to improve method semantics + * in source files, and is intended for programmers. It does not affect runtime behavior. + * + * @see ValidatingBuilder + * @see NonValidated + */ +@Documented +@Retention(CLASS) +@Target({TYPE_USE, TYPE_PARAMETER}) +public @interface Validated { +} diff --git a/jvm-runtime/src/main/java/io/spine/validation/ValidatingBuilder.java b/jvm-runtime/src/main/java/io/spine/validation/ValidatingBuilder.java new file mode 100644 index 0000000000..26b7f5dac7 --- /dev/null +++ b/jvm-runtime/src/main/java/io/spine/validation/ValidatingBuilder.java @@ -0,0 +1,81 @@ +/* + * 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.validation; + +import com.google.protobuf.Message; +import io.spine.annotation.GeneratedMixin; + +/** + * Implementation base for generated message builders. + * + *

This interface defines a method {@link #build()} which validates the built message + * before returning it to the user. + * + *

If a user specifically needs to skip validation, they should use + * {@link #buildPartial()} to make the intent explicit. + * + * @param + * the type of the message to build + */ +@GeneratedMixin +public interface ValidatingBuilder extends Message.Builder { + + /** + * Constructs the message and validates it according to the constraints + * declared in Protobuf. + * + * @return the built message + * @throws ValidationException + * if the message is invalid + */ + @Override + @Validated M build() throws ValidationException; + + /** + * Constructs the message with the given fields without validation. + * + *

Users should prefer {@link #build()} over this method. + * + * @return the build message, potentially invalid + */ + @Override + @NonValidated M buildPartial(); + + /** + * Constructs the message and {@linkplain Validate validates} it according to the constraints + * declared in Protobuf. + * + * @return the built message + * @throws ValidationException + * if the message is invalid + * @deprecated please use {@link #build()} + */ + @Deprecated + default @Validated M vBuild() throws ValidationException { + return build(); + } +} diff --git a/jvm-runtime/src/main/java/io/spine/validate/ValidationException.java b/jvm-runtime/src/main/java/io/spine/validation/ValidationException.java similarity index 94% rename from jvm-runtime/src/main/java/io/spine/validate/ValidationException.java rename to jvm-runtime/src/main/java/io/spine/validation/ValidationException.java index 82e1747c97..74952004e3 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/ValidationException.java +++ b/jvm-runtime/src/main/java/io/spine/validation/ValidationException.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,12 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate; +package io.spine.validation; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.InlineMe; import io.spine.base.ErrorWithMessage; -import io.spine.validate.diags.ViolationText; +import io.spine.validation.diags.ViolationText; import java.util.List; diff --git a/jvm-runtime/src/main/java/io/spine/validate/diags/ViolationText.java b/jvm-runtime/src/main/java/io/spine/validation/diags/ViolationText.java similarity index 94% rename from jvm-runtime/src/main/java/io/spine/validate/diags/ViolationText.java rename to jvm-runtime/src/main/java/io/spine/validation/diags/ViolationText.java index b99a495e57..e3a3db4dcb 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/diags/ViolationText.java +++ b/jvm-runtime/src/main/java/io/spine/validation/diags/ViolationText.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,19 +24,19 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.diags; +package io.spine.validation.diags; import com.google.protobuf.Message; import io.spine.annotation.Internal; import io.spine.base.Field; import io.spine.option.OptionsProto; -import io.spine.validate.ConstraintViolation; +import io.spine.validation.ConstraintViolation; import java.util.Collection; import static com.google.common.base.Preconditions.checkNotNull; import static io.spine.string.Diags.backtick; -import static io.spine.validate.TemplateStrings.format; +import static io.spine.validation.TemplateStrings.format; import static java.lang.System.lineSeparator; import static java.util.stream.Collectors.joining; diff --git a/jvm-runtime/src/main/java/io/spine/validate/diags/package-info.java b/jvm-runtime/src/main/java/io/spine/validation/diags/package-info.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/diags/package-info.java rename to jvm-runtime/src/main/java/io/spine/validation/diags/package-info.java index 94a790ca8d..82de71ac25 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/diags/package-info.java +++ b/jvm-runtime/src/main/java/io/spine/validation/diags/package-info.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -29,7 +29,7 @@ */ @CheckReturnValue @NullMarked -package io.spine.validate.diags; +package io.spine.validation.diags; import com.google.errorprone.annotations.CheckReturnValue; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/AlwaysRequired.java b/jvm-runtime/src/main/java/io/spine/validation/option/AlwaysRequired.java similarity index 93% rename from jvm-runtime/src/main/java/io/spine/validate/option/AlwaysRequired.java rename to jvm-runtime/src/main/java/io/spine/validation/option/AlwaysRequired.java index a7b245f4af..725766dc7e 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/AlwaysRequired.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/AlwaysRequired.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/Distinct.java b/jvm-runtime/src/main/java/io/spine/validation/option/Distinct.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/Distinct.java rename to jvm-runtime/src/main/java/io/spine/validation/option/Distinct.java index 10cc30504d..6beabedee2 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/Distinct.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/Distinct.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,12 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.option.OptionsProto; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; /** * An option that can be applied to {@code repeated} and {@code map} Protobuf fields to specify that diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/DistinctConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/DistinctConstraint.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/DistinctConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/DistinctConstraint.java index 8c7a9874d6..86d0c37a9e 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/DistinctConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/DistinctConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,12 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.code.proto.FieldDeclaration; -import io.spine.validate.ConstraintTranslator; +import io.spine.validation.ConstraintTranslator; import static java.lang.String.format; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/FieldConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/FieldConstraint.java similarity index 93% rename from jvm-runtime/src/main/java/io/spine/validate/option/FieldConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/FieldConstraint.java index 88d3b0ad0e..5ac9ffd99a 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/FieldConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/FieldConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import com.google.errorprone.annotations.ImmutableTypeParameter; import io.spine.code.proto.FieldDeclaration; import io.spine.type.MessageType; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; import static com.google.common.base.Preconditions.checkNotNull; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/FieldValidatingOption.java b/jvm-runtime/src/main/java/io/spine/validation/option/FieldValidatingOption.java similarity index 97% rename from jvm-runtime/src/main/java/io/spine/validate/option/FieldValidatingOption.java rename to jvm-runtime/src/main/java/io/spine/validation/option/FieldValidatingOption.java index de6b0035d4..8f9fcabc5b 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/FieldValidatingOption.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/FieldValidatingOption.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import com.google.errorprone.annotations.ImmutableTypeParameter; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/Goes.java b/jvm-runtime/src/main/java/io/spine/validation/option/Goes.java similarity index 95% rename from jvm-runtime/src/main/java/io/spine/validate/option/Goes.java rename to jvm-runtime/src/main/java/io/spine/validation/option/Goes.java index 8652d360df..9456f7d2b1 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/Goes.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/Goes.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; @@ -32,7 +32,7 @@ import io.spine.logging.WithLogging; import io.spine.option.GoesOption; import io.spine.option.OptionsProto; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; import static java.lang.String.format; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/GoesConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/GoesConstraint.java similarity index 90% rename from jvm-runtime/src/main/java/io/spine/validate/option/GoesConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/GoesConstraint.java index 632b96516d..e36bccdab5 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/GoesConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/GoesConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,14 +24,14 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.code.proto.FieldDeclaration; import io.spine.option.GoesOption; -import io.spine.validate.ConstraintTranslator; -import io.spine.validate.diags.ViolationText; +import io.spine.validation.ConstraintTranslator; +import io.spine.validation.diags.ViolationText; /** * A constraint which checks whether a field is set only if the specific related field is also set. diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/IfMissing.java b/jvm-runtime/src/main/java/io/spine/validation/option/IfMissing.java similarity index 93% rename from jvm-runtime/src/main/java/io/spine/validate/option/IfMissing.java rename to jvm-runtime/src/main/java/io/spine/validation/option/IfMissing.java index 10bef9520e..494b2df188 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/IfMissing.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/IfMissing.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import com.google.protobuf.Descriptors.FieldDescriptor; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/IsRequired.java b/jvm-runtime/src/main/java/io/spine/validation/option/IsRequired.java similarity index 92% rename from jvm-runtime/src/main/java/io/spine/validate/option/IsRequired.java rename to jvm-runtime/src/main/java/io/spine/validation/option/IsRequired.java index d64f4d6aea..93d073fc63 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/IsRequired.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/IsRequired.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import com.google.protobuf.Descriptors.OneofDescriptor; import io.spine.code.proto.OneofDeclaration; import io.spine.option.OptionsProto; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; import java.util.Optional; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/IsRequiredConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/IsRequiredConstraint.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/IsRequiredConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/IsRequiredConstraint.java index a7043f9018..2b74a8e729 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/IsRequiredConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/IsRequiredConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,15 +24,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.code.proto.FieldName; import io.spine.code.proto.OneofDeclaration; import io.spine.type.MessageType; -import io.spine.validate.Constraint; -import io.spine.validate.ConstraintTranslator; +import io.spine.validation.Constraint; +import io.spine.validation.ConstraintTranslator; import static java.lang.String.format; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/Max.java b/jvm-runtime/src/main/java/io/spine/validation/option/Max.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/Max.java rename to jvm-runtime/src/main/java/io/spine/validation/option/Max.java index e20670b068..3fe177e183 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/Max.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/Max.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.option.MaxOption; import io.spine.option.OptionsProto; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; /** * An option that defines a maximum value for a numeric field. diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/MaxConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/MaxConstraint.java similarity index 88% rename from jvm-runtime/src/main/java/io/spine/validate/option/MaxConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/MaxConstraint.java index 1de374e7b6..826195227d 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/MaxConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/MaxConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,16 +24,16 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.common.collect.Range; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldDeclaration; import io.spine.option.MaxOption; -import io.spine.validate.ComparableNumber; -import io.spine.validate.ConstraintTranslator; -import io.spine.validate.NumberText; -import io.spine.validate.diags.ViolationText; +import io.spine.validation.ComparableNumber; +import io.spine.validation.ConstraintTranslator; +import io.spine.validation.NumberText; +import io.spine.validation.diags.ViolationText; import static java.lang.String.format; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/Min.java b/jvm-runtime/src/main/java/io/spine/validation/option/Min.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/Min.java rename to jvm-runtime/src/main/java/io/spine/validation/option/Min.java index 1249f949ad..95445ae58c 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/Min.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/Min.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.option.MinOption; import io.spine.option.OptionsProto; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; /** * An option that defines a minimum value for a numeric field. diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/MinConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/MinConstraint.java similarity index 89% rename from jvm-runtime/src/main/java/io/spine/validate/option/MinConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/MinConstraint.java index 0efecc1176..5335ca6af2 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/MinConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/MinConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,16 +24,16 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.common.collect.Range; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldDeclaration; import io.spine.option.MinOption; -import io.spine.validate.ComparableNumber; -import io.spine.validate.ConstraintTranslator; -import io.spine.validate.NumberText; -import io.spine.validate.diags.ViolationText; +import io.spine.validation.ComparableNumber; +import io.spine.validation.ConstraintTranslator; +import io.spine.validation.NumberText; +import io.spine.validation.diags.ViolationText; import static java.lang.String.format; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/Pattern.java b/jvm-runtime/src/main/java/io/spine/validation/option/Pattern.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/Pattern.java rename to jvm-runtime/src/main/java/io/spine/validation/option/Pattern.java index 5636305c11..ccb1bfec96 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/Pattern.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/Pattern.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.option.OptionsProto; import io.spine.option.PatternOption; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; /** * An option defining a pattern that a field value has to match. diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/PatternConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/PatternConstraint.java similarity index 93% rename from jvm-runtime/src/main/java/io/spine/validate/option/PatternConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/PatternConstraint.java index cc7b7cfe4b..79b1a68cde 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/PatternConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/PatternConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,14 +24,14 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.code.proto.FieldDeclaration; import io.spine.option.PatternOption; -import io.spine.validate.ConstraintTranslator; -import io.spine.validate.diags.ViolationText; +import io.spine.validation.ConstraintTranslator; +import io.spine.validation.diags.ViolationText; import static java.util.regex.Pattern.CASE_INSENSITIVE; import static java.util.regex.Pattern.DOTALL; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/Range.java b/jvm-runtime/src/main/java/io/spine/validation/option/Range.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/Range.java rename to jvm-runtime/src/main/java/io/spine/validation/option/Range.java index 07d4777784..f788517a30 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/Range.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/Range.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.option.OptionsProto; import io.spine.option.RangeOption; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; /** * A validating option that limits a numeric field to be in the specified range. diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/RangeConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/RangeConstraint.java similarity index 92% rename from jvm-runtime/src/main/java/io/spine/validate/option/RangeConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/RangeConstraint.java index 26c74b150f..e0460a8e8a 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/RangeConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/RangeConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,15 +24,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.Range; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldDeclaration; import io.spine.option.RangeOption; -import io.spine.validate.ComparableNumber; -import io.spine.validate.ConstraintTranslator; +import io.spine.validation.ComparableNumber; +import io.spine.validation.ConstraintTranslator; import static java.lang.String.format; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/RangeDecl.java b/jvm-runtime/src/main/java/io/spine/validation/option/RangeDecl.java similarity index 95% rename from jvm-runtime/src/main/java/io/spine/validate/option/RangeDecl.java rename to jvm-runtime/src/main/java/io/spine/validation/option/RangeDecl.java index 8143b3b3aa..fd8cbb49a9 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/RangeDecl.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/RangeDecl.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,12 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.common.collect.Range; import io.spine.code.proto.FieldDeclaration; -import io.spine.validate.ComparableNumber; -import io.spine.validate.NumberText; +import io.spine.validation.ComparableNumber; +import io.spine.validation.NumberText; import java.util.regex.Pattern; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/RangedConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/RangedConstraint.java similarity index 95% rename from jvm-runtime/src/main/java/io/spine/validate/option/RangedConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/RangedConstraint.java index a2af0d4f37..00cc78626c 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/RangedConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/RangedConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.common.collect.BoundType; import com.google.common.collect.Range; @@ -32,7 +32,7 @@ import com.google.errorprone.annotations.ImmutableTypeParameter; import io.spine.code.proto.FieldContext; import io.spine.code.proto.FieldDeclaration; -import io.spine.validate.ComparableNumber; +import io.spine.validation.ComparableNumber; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.BoundType.CLOSED; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/Require.java b/jvm-runtime/src/main/java/io/spine/validation/option/Require.java similarity index 94% rename from jvm-runtime/src/main/java/io/spine/validate/option/Require.java rename to jvm-runtime/src/main/java/io/spine/validation/option/Require.java index 241e31cea7..7ca9df831a 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/Require.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/Require.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import com.google.protobuf.Descriptors.Descriptor; import io.spine.option.OptionsProto; import io.spine.type.MessageType; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; import java.util.Optional; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/Required.java b/jvm-runtime/src/main/java/io/spine/validation/option/Required.java similarity index 96% rename from jvm-runtime/src/main/java/io/spine/validate/option/Required.java rename to jvm-runtime/src/main/java/io/spine/validation/option/Required.java index 6716e92cdb..0368cecbab 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/Required.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/Required.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.common.collect.ImmutableSet; import com.google.errorprone.annotations.Immutable; @@ -35,7 +35,7 @@ import io.spine.code.proto.FieldDeclaration; import io.spine.logging.WithLogging; import io.spine.option.OptionsProto; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; import static com.google.protobuf.Descriptors.FieldDescriptor.JavaType.BYTE_STRING; import static com.google.protobuf.Descriptors.FieldDescriptor.JavaType.ENUM; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/RequiredConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/RequiredConstraint.java similarity index 90% rename from jvm-runtime/src/main/java/io/spine/validate/option/RequiredConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/RequiredConstraint.java index 4d7bc8052c..fec6ed8daa 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/RequiredConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/RequiredConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.code.proto.FieldDeclaration; -import io.spine.validate.ConstraintTranslator; -import io.spine.validate.diags.ViolationText; +import io.spine.validation.ConstraintTranslator; +import io.spine.validation.diags.ViolationText; /** * A constraint that, when applied to a field, checks whether the field is set to a non-default diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/RequiredFieldConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/RequiredFieldConstraint.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/RequiredFieldConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/RequiredFieldConstraint.java index 4ac5737126..5c5d01dcf0 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/RequiredFieldConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/RequiredFieldConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,15 +24,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.common.collect.ImmutableSet; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.type.MessageType; -import io.spine.validate.Alternative; -import io.spine.validate.Constraint; -import io.spine.validate.ConstraintTranslator; +import io.spine.validation.Alternative; +import io.spine.validation.Constraint; +import io.spine.validation.ConstraintTranslator; import static com.google.common.base.Preconditions.checkNotNull; import static java.lang.String.format; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/SetOnce.java b/jvm-runtime/src/main/java/io/spine/validation/option/SetOnce.java similarity index 93% rename from jvm-runtime/src/main/java/io/spine/validate/option/SetOnce.java rename to jvm-runtime/src/main/java/io/spine/validation/option/SetOnce.java index d5d775d069..01b8710b6b 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/SetOnce.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/SetOnce.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import com.google.protobuf.Descriptors.FieldDescriptor; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/StandardOptionFactory.java b/jvm-runtime/src/main/java/io/spine/validation/option/StandardOptionFactory.java similarity index 97% rename from jvm-runtime/src/main/java/io/spine/validate/option/StandardOptionFactory.java rename to jvm-runtime/src/main/java/io/spine/validation/option/StandardOptionFactory.java index 60ee8b3f71..3b1ee82109 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/StandardOptionFactory.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/StandardOptionFactory.java @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.annotation.Internal; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/Valid.java b/jvm-runtime/src/main/java/io/spine/validation/option/Valid.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/Valid.java rename to jvm-runtime/src/main/java/io/spine/validation/option/Valid.java index 3089712a41..ce70c4c1df 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/Valid.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/Valid.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,12 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.option.OptionsProto; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; /** * An option that indicates that the message field should be validated according to its constraints. diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/ValidateConstraint.java b/jvm-runtime/src/main/java/io/spine/validation/option/ValidateConstraint.java similarity index 89% rename from jvm-runtime/src/main/java/io/spine/validate/option/ValidateConstraint.java rename to jvm-runtime/src/main/java/io/spine/validation/option/ValidateConstraint.java index 689761a1a8..2e57144a00 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/ValidateConstraint.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/ValidateConstraint.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,12 +24,11 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import io.spine.code.proto.FieldContext; import io.spine.code.proto.FieldDeclaration; -import io.spine.validate.ConstraintTranslator; -import io.spine.validate.diags.ViolationText; +import io.spine.validation.ConstraintTranslator; /** * A constraint that, when applied to a message field, signifies that the message should have valid diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOption.java b/jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOption.java similarity index 92% rename from jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOption.java rename to jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOption.java index a22be4f0cf..a25aac16ff 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOption.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOption.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.Immutable; import com.google.errorprone.annotations.ImmutableTypeParameter; import com.google.protobuf.Descriptors.GenericDescriptor; import io.spine.code.proto.Option; -import io.spine.validate.Constraint; +import io.spine.validation.Constraint; /** * The interface common to all standard validation options. diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOptionFactory.java b/jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOptionFactory.java similarity index 96% rename from jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOptionFactory.java rename to jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOptionFactory.java index 8cbdfc01d1..4db59aeb8f 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOptionFactory.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOptionFactory.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,11 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.common.collect.ImmutableSet; import com.google.errorprone.annotations.Immutable; import io.spine.annotation.SPI; +import io.spine.validation.CustomConstraint; import java.util.ServiceLoader; import java.util.Set; @@ -43,7 +44,7 @@ * {@linkplain ValidatingOptionsLoader loaded} via the {@link ServiceLoader} mechanism. * * @see FieldValidatingOption - * @see io.spine.validate.CustomConstraint + * @see CustomConstraint */ @SPI @Immutable diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOptionsLoader.java b/jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOptionsLoader.java similarity index 96% rename from jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOptionsLoader.java rename to jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOptionsLoader.java index 7862637e46..66d91a0038 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOptionsLoader.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOptionsLoader.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.common.collect.ImmutableSet; import com.google.protobuf.Extension; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOptionsProvider.java b/jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOptionsProvider.java similarity index 92% rename from jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOptionsProvider.java rename to jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOptionsProvider.java index ae107774f9..e46ef23553 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/ValidatingOptionsProvider.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/ValidatingOptionsProvider.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option; +package io.spine.validation.option; import com.google.auto.service.AutoService; import com.google.protobuf.ExtensionRegistry; diff --git a/jvm-runtime/src/main/java/io/spine/validate/option/package-info.java b/jvm-runtime/src/main/java/io/spine/validation/option/package-info.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/option/package-info.java rename to jvm-runtime/src/main/java/io/spine/validation/option/package-info.java index 942b75a53a..2814c49492 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/option/package-info.java +++ b/jvm-runtime/src/main/java/io/spine/validation/option/package-info.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -30,7 +30,7 @@ @CheckReturnValue @NullMarked -package io.spine.validate.option; +package io.spine.validation.option; import com.google.errorprone.annotations.CheckReturnValue; diff --git a/jvm-runtime/src/main/java/io/spine/validate/package-info.java b/jvm-runtime/src/main/java/io/spine/validation/package-info.java similarity index 91% rename from jvm-runtime/src/main/java/io/spine/validate/package-info.java rename to jvm-runtime/src/main/java/io/spine/validation/package-info.java index 6de7574814..e39b0ca128 100644 --- a/jvm-runtime/src/main/java/io/spine/validate/package-info.java +++ b/jvm-runtime/src/main/java/io/spine/validation/package-info.java @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -30,7 +30,7 @@ @CheckReturnValue @NullMarked -package io.spine.validate; +package io.spine.validation; import com.google.errorprone.annotations.CheckReturnValue; import io.spine.annotation.Internal; diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/DetectedViolation.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/DetectedViolation.kt similarity index 98% rename from jvm-runtime/src/main/kotlin/io/spine/validate/DetectedViolation.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/DetectedViolation.kt index 475dee3d50..42629f82fe 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/DetectedViolation.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/DetectedViolation.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.spine.base.FieldPath diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/MessageExtensions.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/MessageExtensions.kt similarity index 98% rename from jvm-runtime/src/main/kotlin/io/spine/validate/MessageExtensions.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/MessageExtensions.kt index fa620582ca..dc64c36909 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/MessageExtensions.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/MessageExtensions.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.protobuf.Message diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/MessageValidator.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/MessageValidator.kt similarity index 98% rename from jvm-runtime/src/main/kotlin/io/spine/validate/MessageValidator.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/MessageValidator.kt index eee1173fa1..df147b202a 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/MessageValidator.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/MessageValidator.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.protobuf.Message import io.spine.annotation.SPI @@ -127,7 +127,7 @@ import io.spine.annotation.SPI * Keep in mind that for each invocation a new instance of [MessageValidator] is created. * Every implementation of [MessageValidator] must have a public, no-args constructor. * - * @param M the type of Protobuf [Message][com.google.protobuf.Message] being validated. + * @param M the type of Protobuf [Message][Message] being validated. */ @SPI public interface MessageValidator { diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/NumberConversion.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/NumberConversion.kt similarity index 99% rename from jvm-runtime/src/main/kotlin/io/spine/validate/NumberConversion.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/NumberConversion.kt index 375c5da7db..d529737743 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/NumberConversion.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/NumberConversion.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation /** * Allows determining safe variants of number conversions without losing precision. diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/RuntimeErrorPlaceholder.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/RuntimeErrorPlaceholder.kt similarity index 98% rename from jvm-runtime/src/main/kotlin/io/spine/validate/RuntimeErrorPlaceholder.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/RuntimeErrorPlaceholder.kt index 5025e73d8f..3cc753d435 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/RuntimeErrorPlaceholder.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/RuntimeErrorPlaceholder.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation /** * A template placeholder that can be used in error messages. diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/RuntimeMessageValidator.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/RuntimeMessageValidator.kt similarity index 94% rename from jvm-runtime/src/main/kotlin/io/spine/validate/RuntimeMessageValidator.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/RuntimeMessageValidator.kt index d414b67eb3..8339f0e14d 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/RuntimeMessageValidator.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/RuntimeMessageValidator.kt @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.common.collect.Range import com.google.protobuf.Descriptors @@ -36,16 +36,16 @@ import io.spine.code.proto.FieldName import io.spine.protobuf.TypeConverter.toAny import io.spine.protobuf.ensureUnpacked import io.spine.type.MessageType -import io.spine.validate.MessageValue.atTopLevel -import io.spine.validate.MessageValue.nestedIn -import io.spine.validate.option.DistinctConstraint -import io.spine.validate.option.GoesConstraint -import io.spine.validate.option.IsRequiredConstraint -import io.spine.validate.option.PatternConstraint -import io.spine.validate.option.RangedConstraint -import io.spine.validate.option.RequiredConstraint -import io.spine.validate.option.RequiredFieldConstraint -import io.spine.validate.option.ValidateConstraint +import io.spine.validation.MessageValue.atTopLevel +import io.spine.validation.MessageValue.nestedIn +import io.spine.validation.option.DistinctConstraint +import io.spine.validation.option.GoesConstraint +import io.spine.validation.option.IsRequiredConstraint +import io.spine.validation.option.PatternConstraint +import io.spine.validation.option.RangedConstraint +import io.spine.validation.option.RequiredConstraint +import io.spine.validation.option.RequiredFieldConstraint +import io.spine.validation.option.ValidateConstraint import java.util.* import java.util.regex.Pattern import java.util.stream.Collectors.toList diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/TemplateStringExts.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/TemplateStringExts.kt similarity index 92% rename from jvm-runtime/src/main/kotlin/io/spine/validate/TemplateStringExts.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/TemplateStringExts.kt index 23eee214ba..25bdcbf759 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/TemplateStringExts.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/TemplateStringExts.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -26,14 +26,15 @@ @file:JvmName("TemplateStrings") -package io.spine.validate +package io.spine.validation import io.spine.code.proto.FieldDeclaration -import io.spine.validate.RuntimeErrorPlaceholder.FIELD_PATH -import io.spine.validate.RuntimeErrorPlaceholder.FIELD_TYPE -import io.spine.validate.RuntimeErrorPlaceholder.GOES_COMPANION -import io.spine.validate.RuntimeErrorPlaceholder.PARENT_TYPE -import io.spine.validate.RuntimeErrorPlaceholder.REGEX_PATTERN +import io.spine.validation.RuntimeErrorPlaceholder.FIELD_PATH +import io.spine.validation.RuntimeErrorPlaceholder.FIELD_TYPE +import io.spine.validation.RuntimeErrorPlaceholder.GOES_COMPANION +import io.spine.validation.RuntimeErrorPlaceholder.PARENT_TYPE +import io.spine.validation.RuntimeErrorPlaceholder.REGEX_PATTERN +import kotlin.collections.iterator /** * Returns a template string with all placeholders substituted with diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/Validator.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/Validator.kt similarity index 98% rename from jvm-runtime/src/main/kotlin/io/spine/validate/Validator.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/Validator.kt index cb23b1794a..ca2057295a 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/Validator.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/Validator.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.protobuf.Message import kotlin.reflect.KClass diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/option/NonPrimitiveOptionFactory.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/option/NonPrimitiveOptionFactory.kt similarity index 98% rename from jvm-runtime/src/main/kotlin/io/spine/validate/option/NonPrimitiveOptionFactory.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/option/NonPrimitiveOptionFactory.kt index 4eb31ba850..2c66a847c2 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/option/NonPrimitiveOptionFactory.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/option/NonPrimitiveOptionFactory.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import com.google.auto.service.AutoService import com.google.common.collect.ImmutableSet diff --git a/jvm-runtime/src/main/kotlin/io/spine/validate/option/NumberOptionFactory.kt b/jvm-runtime/src/main/kotlin/io/spine/validation/option/NumberOptionFactory.kt similarity index 98% rename from jvm-runtime/src/main/kotlin/io/spine/validate/option/NumberOptionFactory.kt rename to jvm-runtime/src/main/kotlin/io/spine/validation/option/NumberOptionFactory.kt index 351552ded8..fa1caeb615 100644 --- a/jvm-runtime/src/main/kotlin/io/spine/validate/option/NumberOptionFactory.kt +++ b/jvm-runtime/src/main/kotlin/io/spine/validation/option/NumberOptionFactory.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import com.google.auto.service.AutoService import com.google.common.collect.ImmutableSet diff --git a/jvm-runtime/src/main/proto/spine/validate/error_message.proto b/jvm-runtime/src/main/proto/spine/validate/error_message.proto index dd5b5d5866..32e46a2ca1 100644 --- a/jvm-runtime/src/main/proto/spine/validate/error_message.proto +++ b/jvm-runtime/src/main/proto/spine/validate/error_message.proto @@ -32,7 +32,7 @@ import "spine/options.proto"; option (type_url_prefix) = "type.spine.io"; option java_multiple_files = true; option java_outer_classname = "ErrorMessageProto"; -option java_package = "io.spine.validate"; +option java_package = "io.spine.validation"; // Represents a template string with placeholders and a map for further substituting // those placeholders with the actual values. diff --git a/jvm-runtime/src/main/proto/spine/validate/validation_error.proto b/jvm-runtime/src/main/proto/spine/validate/validation_error.proto index 0cf5cc5df5..c39c7ea55b 100644 --- a/jvm-runtime/src/main/proto/spine/validate/validation_error.proto +++ b/jvm-runtime/src/main/proto/spine/validate/validation_error.proto @@ -32,7 +32,7 @@ import "spine/options.proto"; option (type_url_prefix) = "type.spine.io"; option java_multiple_files = true; option java_outer_classname = "ValidationErrorProto"; -option java_package = "io.spine.validate"; +option java_package = "io.spine.validation"; import "google/protobuf/any.proto"; diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/ComparableNumberSpec.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/ComparableNumberSpec.kt similarity index 99% rename from jvm-runtime/src/test/kotlin/io/spine/validate/ComparableNumberSpec.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/ComparableNumberSpec.kt index 03175ada01..b123a285b7 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/ComparableNumberSpec.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/ComparableNumberSpec.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.common.testing.EqualsTester import com.google.common.testing.NullPointerTester diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/MessageValueSpec.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/MessageValueSpec.kt similarity index 99% rename from jvm-runtime/src/test/kotlin/io/spine/validate/MessageValueSpec.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/MessageValueSpec.kt index 4609cca40c..12427eca8c 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/MessageValueSpec.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/MessageValueSpec.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.common.testing.NullPointerTester import com.google.protobuf.Descriptors.OneofDescriptor diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/NumberConversionSpec.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/NumberConversionSpec.kt similarity index 84% rename from jvm-runtime/src/test/kotlin/io/spine/validate/NumberConversionSpec.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/NumberConversionSpec.kt index 9fc4732375..a62ab7bb7b 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/NumberConversionSpec.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/NumberConversionSpec.kt @@ -1,11 +1,11 @@ /* - * Copyright 2022, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,10 +24,10 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.spine.testing.UtilityClassTest -import io.spine.validate.NumberConversion.check +import io.spine.validation.NumberConversion.check import java.math.BigDecimal import java.util.stream.Stream import org.junit.jupiter.api.Assertions.assertFalse @@ -50,17 +50,17 @@ internal class NumberConversionSpec : assertTrue(check("1".toByte(), "2".toByte())) @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#shorts") + @MethodSource("$PACKAGE.NumberConversionSpec#shorts") fun short(shortNumber: Number) = assertTrue(check("1".toShort(), shortNumber)) @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#integers") + @MethodSource("$PACKAGE.NumberConversionSpec#integers") fun integer(integerNumber: Number) = assertTrue(check(1, integerNumber)) @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#longs") + @MethodSource("$PACKAGE.NumberConversionSpec#longs") fun long(longNumber: Number) = assertTrue(check(1L, longNumber)) @@ -69,7 +69,7 @@ internal class NumberConversionSpec : assertTrue(check(1.0f, 3.14f)) @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#doubles") + @MethodSource("$PACKAGE.NumberConversionSpec#doubles") fun double(doubleNumber: Number) = assertTrue(check(1.0, doubleNumber)) } @@ -78,33 +78,33 @@ internal class NumberConversionSpec : `tell that it is not possible to convert` { @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#nonBytes") + @MethodSource("$PACKAGE.NumberConversionSpec#nonBytes") fun `non-'byte' to 'byte'`(nonByte: Number) = assertFalse(check("1".toByte(), nonByte)) @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#nonShorts") + @MethodSource("$PACKAGE.NumberConversionSpec#nonShorts") fun `non-'short' to 'short'`(nonShort: Number) { assertFalse(check("1".toShort(), nonShort)) } @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#nonIntegers") + @MethodSource("$PACKAGE.NumberConversionSpec#nonIntegers") fun `non-'integer' to 'integer'`(nonInteger: Number) = assertFalse(check(1, nonInteger)) @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#nonLongs") + @MethodSource("$PACKAGE.NumberConversionSpec#nonLongs") fun `non-'long' to 'long'`(nonLong: Number) = assertFalse(check(1L, nonLong)) @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#nonFloats") + @MethodSource("$PACKAGE.NumberConversionSpec#nonFloats") fun `non-'float' to 'float'`(nonFloat: Number) = assertFalse(check(1.0f, nonFloat)) @ParameterizedTest - @MethodSource("io.spine.validate.NumberConversionSpec#nonDoubles") + @MethodSource("$PACKAGE.NumberConversionSpec#nonDoubles") fun `non-'double' to 'double'`(nonDouble: Number) { assertFalse(check(1.0, nonDouble)) } @@ -123,6 +123,8 @@ internal class NumberConversionSpec : @Suppress("unused") /* Serves as a source for argument values. */ companion object { + const val PACKAGE = "io.spine.validation" + @JvmStatic fun nonBytes(): Stream = Stream.concat(Stream.of("1".toShort()), nonShorts()) diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/NumberTextSpec.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/NumberTextSpec.kt similarity index 99% rename from jvm-runtime/src/test/kotlin/io/spine/validate/NumberTextSpec.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/NumberTextSpec.kt index 5f5a0fc28e..23ea38c798 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/NumberTextSpec.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/NumberTextSpec.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.common.testing.EqualsTester import io.kotest.matchers.shouldBe diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/TemplateStringExtsSpec.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/TemplateStringExtsSpec.kt similarity index 99% rename from jvm-runtime/src/test/kotlin/io/spine/validate/TemplateStringExtsSpec.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/TemplateStringExtsSpec.kt index 3b1000af7d..9336eb3b94 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/TemplateStringExtsSpec.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/TemplateStringExtsSpec.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.kotest.matchers.shouldBe import org.junit.jupiter.api.DisplayName diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/ValidatingOptionFactorySpec.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/ValidatingOptionFactorySpec.kt similarity index 95% rename from jvm-runtime/src/test/kotlin/io/spine/validate/ValidatingOptionFactorySpec.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/ValidatingOptionFactorySpec.kt index e5b60efbde..53a323d0a4 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/ValidatingOptionFactorySpec.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/ValidatingOptionFactorySpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,11 +24,11 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.kotest.matchers.collections.shouldBeEmpty import io.kotest.matchers.shouldBe -import io.spine.validate.option.ValidatingOptionFactory +import io.spine.validation.option.ValidatingOptionFactory import java.util.function.Function import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/ValidatingOptionLoaderSpec.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/ValidatingOptionLoaderSpec.kt similarity index 87% rename from jvm-runtime/src/test/kotlin/io/spine/validate/ValidatingOptionLoaderSpec.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/ValidatingOptionLoaderSpec.kt index f0f3443c9a..a70aff8903 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/ValidatingOptionLoaderSpec.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/ValidatingOptionLoaderSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,12 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.kotest.matchers.collections.shouldContainExactlyInAnyOrder -import io.spine.validate.option.NonPrimitiveOptionFactory -import io.spine.validate.option.NumberOptionFactory -import io.spine.validate.option.ValidatingOptionsLoader +import io.spine.validation.option.NonPrimitiveOptionFactory +import io.spine.validation.option.NumberOptionFactory +import io.spine.validation.option.ValidatingOptionsLoader import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/ValidationExceptionSpec.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/ValidationExceptionSpec.kt similarity index 94% rename from jvm-runtime/src/test/kotlin/io/spine/validate/ValidationExceptionSpec.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/ValidationExceptionSpec.kt index f32258c6b2..09a6e03e63 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/ValidationExceptionSpec.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/ValidationExceptionSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,12 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.kotest.matchers.shouldBe import io.spine.base.Errors import io.spine.protobuf.unpackKnownType -import io.spine.validate.given.plainString +import io.spine.validation.given.plainString import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/diags/ViolationTextSpec.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/diags/ViolationTextSpec.kt similarity index 93% rename from jvm-runtime/src/test/kotlin/io/spine/validate/diags/ViolationTextSpec.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/diags/ViolationTextSpec.kt index bcf9c36f21..5712bf0f0e 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/diags/ViolationTextSpec.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/diags/ViolationTextSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,15 +24,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.diags +package io.spine.validation.diags import com.google.common.testing.NullPointerTester import com.google.protobuf.Timestamp import io.kotest.matchers.string.shouldContain import io.spine.base.Field import io.spine.type.TypeName -import io.spine.validate.constraintViolation -import io.spine.validate.given.plainString +import io.spine.validation.constraintViolation +import io.spine.validation.given.plainString import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/jvm-runtime/src/test/kotlin/io/spine/validate/given/TemplateStrings.kt b/jvm-runtime/src/test/kotlin/io/spine/validation/given/TemplateStrings.kt similarity index 89% rename from jvm-runtime/src/test/kotlin/io/spine/validate/given/TemplateStrings.kt rename to jvm-runtime/src/test/kotlin/io/spine/validation/given/TemplateStrings.kt index 8f803cf743..24cc44202b 100644 --- a/jvm-runtime/src/test/kotlin/io/spine/validate/given/TemplateStrings.kt +++ b/jvm-runtime/src/test/kotlin/io/spine/validation/given/TemplateStrings.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,10 +24,10 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.given +package io.spine.validation.given -import io.spine.validate.TemplateString -import io.spine.validate.templateString +import io.spine.validation.TemplateString +import io.spine.validation.templateString /** * Creates a new [TemplateString] with the given [value], which does not diff --git a/ksp/src/main/kotlin/io/spine/tools/validation/ksp/ValidatorProcessor.kt b/ksp/src/main/kotlin/io/spine/tools/validation/ksp/ValidatorProcessor.kt index a6c619b65e..8250c7aba6 100644 --- a/ksp/src/main/kotlin/io/spine/tools/validation/ksp/ValidatorProcessor.kt +++ b/ksp/src/main/kotlin/io/spine/tools/validation/ksp/ValidatorProcessor.kt @@ -41,8 +41,8 @@ import com.google.devtools.ksp.symbol.Modifier import io.spine.string.qualified import io.spine.string.qualifiedClassName import io.spine.string.simply -import io.spine.validate.MessageValidator -import io.spine.validate.Validator +import io.spine.validation.MessageValidator +import io.spine.validation.Validator private typealias MessageDeclaration = KSClassDeclaration private typealias ValidatorDeclaration = KSClassDeclaration diff --git a/ksp/src/main/kotlin/io/spine/tools/validation/ksp/ValidatorProcessorProvider.kt b/ksp/src/main/kotlin/io/spine/tools/validation/ksp/ValidatorProcessorProvider.kt index 0ebe4f7f48..3a0f5f59b8 100644 --- a/ksp/src/main/kotlin/io/spine/tools/validation/ksp/ValidatorProcessorProvider.kt +++ b/ksp/src/main/kotlin/io/spine/tools/validation/ksp/ValidatorProcessorProvider.kt @@ -33,7 +33,7 @@ import com.google.devtools.ksp.processing.SymbolProcessorProvider /** * Provides [ValidatorProcessor] that discovers classes annotated with - * the [@Validator][io.spine.validate.Validator] annotation. + * the [@Validator][io.spine.validation.Validator] annotation. */ @AutoService(SymbolProcessorProvider::class) public class ValidatorProcessorProvider : SymbolProcessorProvider { diff --git a/ksp/src/test/kotlin/io/spine/tools/validation/ksp/ValidatorCompilationTest.kt b/ksp/src/test/kotlin/io/spine/tools/validation/ksp/ValidatorCompilationTest.kt index 4a8862c650..0c8c047fd0 100644 --- a/ksp/src/test/kotlin/io/spine/tools/validation/ksp/ValidatorCompilationTest.kt +++ b/ksp/src/test/kotlin/io/spine/tools/validation/ksp/ValidatorCompilationTest.kt @@ -35,7 +35,7 @@ import com.tschuchort.compiletesting.SourceFile.Companion.kotlin import com.tschuchort.compiletesting.configureKsp import io.spine.logging.testing.ConsoleTap import io.spine.logging.testing.tapConsole -import io.spine.validate.Validator +import io.spine.validation.Validator import java.io.File import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi import org.junit.jupiter.api.BeforeAll @@ -43,7 +43,7 @@ import org.junit.jupiter.api.BeforeEach /** * Abstract base for tests checking discovering of - * the [@Validator][io.spine.validate.Validator] annotation. + * the [@Validator][Validator] annotation. */ @OptIn(ExperimentalCompilerApi::class) internal sealed class ValidatorCompilationTest { diff --git a/ksp/src/test/kotlin/io/spine/tools/validation/ksp/ValidatorProcessorKotlinSpec.kt b/ksp/src/test/kotlin/io/spine/tools/validation/ksp/ValidatorProcessorKotlinSpec.kt index c444a60b47..774b2cd601 100644 --- a/ksp/src/test/kotlin/io/spine/tools/validation/ksp/ValidatorProcessorKotlinSpec.kt +++ b/ksp/src/test/kotlin/io/spine/tools/validation/ksp/ValidatorProcessorKotlinSpec.kt @@ -32,7 +32,7 @@ import com.tschuchort.compiletesting.kspSourcesDir import io.kotest.matchers.shouldBe import io.kotest.matchers.string.shouldContain import io.spine.string.qualified -import io.spine.validate.MessageValidator +import io.spine.validation.MessageValidator import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested @@ -208,9 +208,9 @@ private const val TIMESTAMP_CLASS = "com.google.protobuf.Timestamp" private const val DURATION_CLASS = "com.google.protobuf.Duration" private const val VALIDATOR_PACKAGE = "io.spine.validation.java.ksp.test" private val IMPORTS = """ - import io.spine.validate.DetectedViolation - import io.spine.validate.MessageValidator - import io.spine.validate.Validator + import io.spine.validation.DetectedViolation + import io.spine.validation.MessageValidator + import io.spine.validation.Validator import $TIMESTAMP_CLASS import $DURATION_CLASS """.trimIndent() diff --git a/pom.xml b/pom.xml index 66f7cb031d..18470c3a25 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ all modules and does not describe the project structure per-subproject. --> io.spine.tools validation -2.0.0-SNAPSHOT.378 +2.0.0-SNAPSHOT.380 2015 @@ -65,6 +65,12 @@ all modules and does not describe the project structure per-subproject. 2.0.0-SNAPSHOT.220 compile + + io.spine + spine-validation-jvm-runtime + 2.0.0-SNAPSHOT.378 + compile + io.spine.tools compiler-backend @@ -95,12 +101,6 @@ all modules and does not describe the project structure per-subproject. 2.0.0-SNAPSHOT.371 compile - - io.spine.validation - spine-validation-java-runtime - 2.0.0-SNAPSHOT.360 - compile - org.jetbrains.kotlin kotlin-bom @@ -167,12 +167,6 @@ all modules and does not describe the project structure per-subproject. 6.0.4 test - - io.spine - spine-validation-jvm-runtime - 2.0.0-SNAPSHOT.375 - test - io.spine.tools compiler-api @@ -287,12 +281,12 @@ all modules and does not describe the project structure per-subproject. io.spine.tools core-jvm-gradle-plugins - 2.0.0-SNAPSHOT.040 + 2.0.0-SNAPSHOT.042 io.spine.tools core-jvm-routing - 2.0.0-SNAPSHOT.040 + 2.0.0-SNAPSHOT.042 io.spine.tools @@ -305,9 +299,9 @@ all modules and does not describe the project structure per-subproject. 2.0.0-SNAPSHOT.7 - io.spine.validation - spine-validation-java-bundle - 2.0.0-SNAPSHOT.360 + io.spine.tools + validation-java-bundle + 2.0.0-SNAPSHOT.378 net.sourceforge.pmd diff --git a/tests/consumer/src/test/kotlin/io/spine/validation/test/Assertions.kt b/tests/consumer/src/test/kotlin/io/spine/validation/test/Assertions.kt index cf7163bfca..6d39a7fd4e 100644 --- a/tests/consumer/src/test/kotlin/io/spine/validation/test/Assertions.kt +++ b/tests/consumer/src/test/kotlin/io/spine/validation/test/Assertions.kt @@ -30,8 +30,8 @@ import com.google.errorprone.annotations.CanIgnoreReturnValue import com.google.protobuf.Message import io.kotest.matchers.collections.shouldHaveSize import io.kotest.matchers.shouldNotBe -import io.spine.validate.ConstraintViolation -import io.spine.validate.ValidationException +import io.spine.validation.ConstraintViolation +import io.spine.validation.ValidationException import org.junit.jupiter.api.Assertions.fail import org.junit.jupiter.api.assertDoesNotThrow import org.junit.jupiter.api.assertThrows diff --git a/tests/consumer/src/test/kotlin/io/spine/validation/test/ErrorMessageSpec.kt b/tests/consumer/src/test/kotlin/io/spine/validation/test/ErrorMessageSpec.kt index 7d0022ebe1..4172952c22 100644 --- a/tests/consumer/src/test/kotlin/io/spine/validation/test/ErrorMessageSpec.kt +++ b/tests/consumer/src/test/kotlin/io/spine/validation/test/ErrorMessageSpec.kt @@ -27,8 +27,8 @@ package io.spine.validation.test import io.kotest.matchers.shouldBe -import io.spine.validate.ValidationException -import io.spine.validate.format +import io.spine.validation.ValidationException +import io.spine.validation.format import io.spine.tools.validation.test.money.Usd import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/consumer/src/test/kotlin/io/spine/validation/test/MinRuleITest.kt b/tests/consumer/src/test/kotlin/io/spine/validation/test/MinRuleITest.kt index 5e4b1254fb..55b04367e6 100644 --- a/tests/consumer/src/test/kotlin/io/spine/validation/test/MinRuleITest.kt +++ b/tests/consumer/src/test/kotlin/io/spine/validation/test/MinRuleITest.kt @@ -27,7 +27,7 @@ package io.spine.validation.test import io.kotest.matchers.string.shouldContain -import io.spine.validate.format +import io.spine.validation.format import io.spine.tools.validation.test.time.LocalTime import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/consumer/src/test/kotlin/io/spine/validation/test/PatternRuleITest.kt b/tests/consumer/src/test/kotlin/io/spine/validation/test/PatternRuleITest.kt index 3b846b14e2..bcd5bfe84c 100644 --- a/tests/consumer/src/test/kotlin/io/spine/validation/test/PatternRuleITest.kt +++ b/tests/consumer/src/test/kotlin/io/spine/validation/test/PatternRuleITest.kt @@ -28,7 +28,7 @@ package io.spine.validation.test import com.google.common.truth.Truth.assertThat import io.kotest.matchers.shouldBe -import io.spine.validate.format +import io.spine.validation.format import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/consumer/src/test/kotlin/io/spine/validation/test/RequiredRuleITest.kt b/tests/consumer/src/test/kotlin/io/spine/validation/test/RequiredRuleITest.kt index 82964522e6..6545bac665 100644 --- a/tests/consumer/src/test/kotlin/io/spine/validation/test/RequiredRuleITest.kt +++ b/tests/consumer/src/test/kotlin/io/spine/validation/test/RequiredRuleITest.kt @@ -28,8 +28,8 @@ package io.spine.validation.test import io.kotest.matchers.shouldBe import io.kotest.matchers.string.shouldContain -import io.spine.validate.format -import io.spine.validate.formatUnsafe +import io.spine.validation.format +import io.spine.validation.formatUnsafe import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/consumer/src/test/kotlin/io/spine/validation/test/ValidateRuleITest.kt b/tests/consumer/src/test/kotlin/io/spine/validation/test/ValidateRuleITest.kt index 38aa7345b7..ce9d758b1d 100644 --- a/tests/consumer/src/test/kotlin/io/spine/validation/test/ValidateRuleITest.kt +++ b/tests/consumer/src/test/kotlin/io/spine/validation/test/ValidateRuleITest.kt @@ -32,7 +32,7 @@ import io.kotest.matchers.string.shouldContain import io.spine.protobuf.AnyPacker import io.spine.protobuf.pack import io.spine.testing.logging.mute.MuteLogging -import io.spine.validate.formatUnsafe +import io.spine.validation.formatUnsafe import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test diff --git a/tests/extensions/build.gradle.kts b/tests/extensions/build.gradle.kts index bfcd3de061..2785cdce7e 100644 --- a/tests/extensions/build.gradle.kts +++ b/tests/extensions/build.gradle.kts @@ -34,6 +34,7 @@ apply { dependencies { implementation(project(":java")) + implementation(project(":jvm-runtime")) ksp(AutoServiceKsp.processor) } diff --git a/tests/extensions/src/main/kotlin/io/spine/tools/validation/test/CurrencyGenerator.kt b/tests/extensions/src/main/kotlin/io/spine/tools/validation/test/CurrencyGenerator.kt index 687c742344..3bb66c66c2 100644 --- a/tests/extensions/src/main/kotlin/io/spine/tools/validation/test/CurrencyGenerator.kt +++ b/tests/extensions/src/main/kotlin/io/spine/tools/validation/test/CurrencyGenerator.kt @@ -42,7 +42,7 @@ import io.spine.tools.validation.java.generate.OptionGenerator import io.spine.tools.validation.java.generate.SingleOptionCode import io.spine.tools.validation.java.generate.ValidateScope.parentName import io.spine.tools.validation.java.generate.ValidateScope.violations -import io.spine.validate.ConstraintViolation +import io.spine.validation.ConstraintViolation import io.spine.tools.validation.test.money.CurrencyMessage /** diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/AnyValidationSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/AnyValidationSpec.kt similarity index 94% rename from tests/runtime/src/test/kotlin/io/spine/validate/AnyValidationSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/AnyValidationSpec.kt index a94ef79f7f..2e7d117cf9 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/AnyValidationSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/AnyValidationSpec.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.spine.protobuf.AnyPacker import io.spine.test.validate.RequiredStringValue import io.spine.test.validate.anyfields.AnyContainer import io.spine.test.validate.anyfields.UncheckedAnyContainer -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD import org.junit.jupiter.api.Assertions.assertDoesNotThrow import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/Assertions.kt b/tests/runtime/src/test/kotlin/io/spine/validation/Assertions.kt similarity index 98% rename from tests/runtime/src/test/kotlin/io/spine/validate/Assertions.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/Assertions.kt index 2e9395db00..aacb6293e1 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/Assertions.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/Assertions.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.kotest.matchers.collections.shouldContainExactly diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/EnclosedMessageValidationSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/EnclosedMessageValidationSpec.kt similarity index 89% rename from tests/runtime/src/test/kotlin/io/spine/validate/EnclosedMessageValidationSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/EnclosedMessageValidationSpec.kt index 61535fb65b..dd57e1138a 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/EnclosedMessageValidationSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/EnclosedMessageValidationSpec.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,17 +24,16 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.kotest.matchers.string.shouldContain -import io.kotest.matchers.string.shouldStartWith import io.spine.test.validate.PatternStringFieldValue import io.spine.test.validate.ValidateEnclosed import io.spine.test.validate.ValidateWithRequiredString import io.spine.test.validate.notValidateEnclosed -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD -import io.spine.validate.given.MessageValidatorTestEnv.EMAIL -import io.spine.validate.given.MessageValidatorTestEnv.ENCLOSED_FIELD_NAME +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.given.MessageValidatorTestEnv.EMAIL +import io.spine.validation.given.MessageValidatorTestEnv.ENCLOSED_FIELD_NAME import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/EntityIdSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/EntityIdSpec.kt similarity index 94% rename from tests/runtime/src/test/kotlin/io/spine/validate/EntityIdSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/EntityIdSpec.kt index 5124b3f298..98a098269d 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/EntityIdSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/EntityIdSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.spine.base.Identifier import io.spine.test.validate.AggregateState @@ -34,8 +34,8 @@ import io.spine.test.validate.command.EntityIdMsgFieldValue import io.spine.test.validate.command.EntityIdStringFieldValue import io.spine.test.validate.command.entityIdMsgFieldValue import io.spine.test.validate.command.entityIdStringFieldValue -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD -import io.spine.validate.given.MessageValidatorTestEnv +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.given.MessageValidatorTestEnv import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/FieldAwareMessageSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/FieldAwareMessageSpec.kt similarity index 92% rename from tests/runtime/src/test/kotlin/io/spine/validate/FieldAwareMessageSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/FieldAwareMessageSpec.kt index cb801011f5..5475242cfa 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/FieldAwareMessageSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/FieldAwareMessageSpec.kt @@ -24,12 +24,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.kotest.matchers.shouldBe -import io.spine.validate.given.BrokenFieldAware -import io.spine.validate.given.FieldAwareMsg -import io.spine.validate.given.msg +import io.spine.validation.given.BrokenFieldAware +import io.spine.validation.given.FieldAwareMsg +import io.spine.validation.given.msg import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/FieldValueSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/FieldValueSpec.kt similarity index 99% rename from tests/runtime/src/test/kotlin/io/spine/validate/FieldValueSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/FieldValueSpec.kt index c142b1960d..16ee93022b 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/FieldValueSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/FieldValueSpec.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.protobuf.Descriptors.FieldDescriptor.JavaType.STRING import com.google.protobuf.Descriptors.FieldDescriptor.JavaType.MESSAGE diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/IfMissingErrorMsgSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/IfMissingErrorMsgSpec.kt similarity index 97% rename from tests/runtime/src/test/kotlin/io/spine/validate/IfMissingErrorMsgSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/IfMissingErrorMsgSpec.kt index 17c9eab3bd..062a0211ce 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/IfMissingErrorMsgSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/IfMissingErrorMsgSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.protobuf.Descriptors.Descriptor import com.google.protobuf.Message @@ -35,7 +35,7 @@ import io.spine.test.validate.CustomMessageRequiredEnumFieldValue import io.spine.test.validate.CustomMessageRequiredMsgFieldValue import io.spine.test.validate.CustomMessageRequiredRepeatedMsgFieldValue import io.spine.test.validate.CustomMessageRequiredStringFieldValue -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/MessageExtensionsSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/MessageExtensionsSpec.kt similarity index 98% rename from tests/runtime/src/test/kotlin/io/spine/validate/MessageExtensionsSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/MessageExtensionsSpec.kt index 1d8a4d3e85..618fbdbe9e 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/MessageExtensionsSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/MessageExtensionsSpec.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.kotest.matchers.types.shouldBeSameInstanceAs import io.spine.test.validate.Meal diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/NumberRangeSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/NumberRangeSpec.kt similarity index 96% rename from tests/runtime/src/test/kotlin/io/spine/validate/NumberRangeSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/NumberRangeSpec.kt index 823cb4d590..7286f5b8ae 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/NumberRangeSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/NumberRangeSpec.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.protobuf.Message import com.google.protobuf.doubleValue @@ -33,7 +33,7 @@ import io.spine.test.validate.MaxExclusive import io.spine.test.validate.MaxInclusive import io.spine.test.validate.MinExclusive import io.spine.test.validate.MinInclusive -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/OneofSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/OneofSpec.kt similarity index 96% rename from tests/runtime/src/test/kotlin/io/spine/validate/OneofSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/OneofSpec.kt index b79a571fd1..9046138734 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/OneofSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/OneofSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import io.spine.base.Identifier import io.spine.test.validate.oneof.OneofAndOtherAreRequired @@ -34,7 +34,7 @@ import io.spine.test.validate.oneof.OneofWithValidation import io.spine.test.validate.oneof.RequiredOneofWithValidation import io.spine.test.validate.oneof.oneofWithValidation import io.spine.test.validate.oneof.requiredOneofWithValidation -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/TestValues.kt b/tests/runtime/src/test/kotlin/io/spine/validation/TestValues.kt similarity index 98% rename from tests/runtime/src/test/kotlin/io/spine/validate/TestValues.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/TestValues.kt index f7fd4e2d4b..bd18d38222 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/TestValues.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/TestValues.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.protobuf.ByteString import com.google.protobuf.StringValue diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/ValidateUtilitySpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/ValidateUtilitySpec.kt similarity index 92% rename from tests/runtime/src/test/kotlin/io/spine/validate/ValidateUtilitySpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/ValidateUtilitySpec.kt index 77cd643bd8..860a7f88ef 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/ValidateUtilitySpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/ValidateUtilitySpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.common.testing.NullPointerTester import com.google.protobuf.Message @@ -35,9 +35,9 @@ import io.spine.base.Time import io.spine.code.proto.FieldContext import io.spine.test.validate.RequiredStringValue import io.spine.testing.UtilityClassTest -import io.spine.validate.Validate.violationsOf -import io.spine.validate.Validate.violationsOfCustomConstraints -import io.spine.validate.diags.ViolationText +import io.spine.validation.Validate.violationsOf +import io.spine.validation.Validate.violationsOfCustomConstraints +import io.spine.validation.diags.ViolationText import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/ValidationOfConstraintTest.kt b/tests/runtime/src/test/kotlin/io/spine/validation/ValidationOfConstraintTest.kt similarity index 96% rename from tests/runtime/src/test/kotlin/io/spine/validate/ValidationOfConstraintTest.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/ValidationOfConstraintTest.kt index 86e0b3877b..44a8b1d57f 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/ValidationOfConstraintTest.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/ValidationOfConstraintTest.kt @@ -1,11 +1,11 @@ /* - * Copyright 2023, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,14 +24,14 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate +package io.spine.validation import com.google.common.truth.Truth.assertThat import com.google.protobuf.Message import io.kotest.matchers.collections.shouldHaveSize import io.kotest.matchers.shouldBe import io.kotest.matchers.string.shouldNotBeEmpty -import io.spine.validate.Validate.violationsOf +import io.spine.validation.Validate.violationsOf import org.junit.jupiter.api.Assertions.assertDoesNotThrow import org.junit.jupiter.api.assertThrows diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/given/FieldAwareMessages.kt b/tests/runtime/src/test/kotlin/io/spine/validation/given/FieldAwareMessages.kt similarity index 94% rename from tests/runtime/src/test/kotlin/io/spine/validate/given/FieldAwareMessages.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/given/FieldAwareMessages.kt index 1cbbcb2e2b..47c22f52a8 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/given/FieldAwareMessages.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/given/FieldAwareMessages.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.given +package io.spine.validation.given import com.google.protobuf.ByteString import com.google.protobuf.CodedOutputStream @@ -33,7 +33,7 @@ import com.google.protobuf.Message import com.google.protobuf.Parser import io.spine.test.validate.AggregateState import io.spine.test.validate.AggregateStateOrBuilder -import io.spine.validate.FieldAwareMessage +import io.spine.validation.FieldAwareMessage import java.io.IOException import java.io.OutputStream @@ -81,7 +81,7 @@ internal class FieldAwareMsg( * A wrapper of [AggregateState] message, which acts close to a real message by delegating * the calls to the wrapped instance, and allows extending itself. * - * Descendants of this class also implement [io.spine.validate.FieldAwareMessage] mixin + * Descendants of this class also implement [io.spine.validation.FieldAwareMessage] mixin * interface in test scenarios. */ internal open class AggregateStateProxy( diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/given/MessageValidatorTestEnv.kt b/tests/runtime/src/test/kotlin/io/spine/validation/given/MessageValidatorTestEnv.kt similarity index 97% rename from tests/runtime/src/test/kotlin/io/spine/validate/given/MessageValidatorTestEnv.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/given/MessageValidatorTestEnv.kt index 6f96c283cc..51b92136ad 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/given/MessageValidatorTestEnv.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/given/MessageValidatorTestEnv.kt @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.given +package io.spine.validation.given object MessageValidatorTestEnv { diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/option/ChoiceSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/option/ChoiceSpec.kt similarity index 88% rename from tests/runtime/src/test/kotlin/io/spine/validate/option/ChoiceSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/option/ChoiceSpec.kt index 415550edba..4e4116f1c3 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/option/ChoiceSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/option/ChoiceSpec.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import io.kotest.matchers.shouldBe import io.kotest.matchers.string.shouldContain @@ -34,10 +34,10 @@ import io.spine.test.validate.Sauce import io.spine.test.validate.fish import io.spine.test.validate.meal import io.spine.testing.TestValues.randomString -import io.spine.validate.ValidationException -import io.spine.validate.ValidationOfConstraintTest -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD -import io.spine.validate.format +import io.spine.validation.ValidationException +import io.spine.validation.ValidationOfConstraintTest +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.format import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/option/DistinctSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/option/DistinctSpec.kt similarity index 95% rename from tests/runtime/src/test/kotlin/io/spine/validate/option/DistinctSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/option/DistinctSpec.kt index ee031046a2..0d1620a184 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/option/DistinctSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/option/DistinctSpec.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,14 +24,14 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import io.spine.test.validate.DistinctValues import io.spine.test.validate.DistinctValues.Planet.EARTH import io.spine.test.validate.DistinctValues.Planet.JUPITER import io.spine.test.validate.DistinctValues.Planet.MARS import io.spine.test.validate.distinctValues -import io.spine.validate.ValidationOfConstraintTest +import io.spine.validation.ValidationOfConstraintTest import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/option/FieldValidatingOptionSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/option/FieldValidatingOptionSpec.kt similarity index 94% rename from tests/runtime/src/test/kotlin/io/spine/validate/option/FieldValidatingOptionSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/option/FieldValidatingOptionSpec.kt index 20d78d229e..e4b87e8d88 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/option/FieldValidatingOptionSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/option/FieldValidatingOptionSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import com.google.common.collect.ImmutableList import com.google.errorprone.annotations.Immutable @@ -37,12 +37,12 @@ import io.spine.test.validate.option.TestFieldOptionProto import io.spine.test.validate.option.aTestMessage import io.spine.test.validate.option.noValidationTestMessage import io.spine.testing.TestValues.randomString -import io.spine.validate.Constraint -import io.spine.validate.ConstraintViolation -import io.spine.validate.CustomConstraint -import io.spine.validate.FieldValue -import io.spine.validate.MessageValue -import io.spine.validate.constraintViolation +import io.spine.validation.Constraint +import io.spine.validation.ConstraintViolation +import io.spine.validation.CustomConstraint +import io.spine.validation.FieldValue +import io.spine.validation.MessageValue +import io.spine.validation.constraintViolation import org.junit.jupiter.api.Assertions.fail import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/option/PatternSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/option/PatternSpec.kt similarity index 94% rename from tests/runtime/src/test/kotlin/io/spine/validate/option/PatternSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/option/PatternSpec.kt index 9897534080..8247bdc155 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/option/PatternSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/option/PatternSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,15 +24,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import com.google.protobuf.StringValue import io.spine.test.validate.AllThePatterns import io.spine.test.validate.PatternStringFieldValue -import io.spine.validate.NonValidated -import io.spine.validate.ValidationOfConstraintTest -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD -import io.spine.validate.given.MessageValidatorTestEnv +import io.spine.validation.NonValidated +import io.spine.validation.ValidationOfConstraintTest +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.given.MessageValidatorTestEnv import org.checkerframework.checker.regex.qual.Regex import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/option/RangeConstraintSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/option/RangeConstraintSpec.kt similarity index 97% rename from tests/runtime/src/test/kotlin/io/spine/validate/option/RangeConstraintSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/option/RangeConstraintSpec.kt index 4a45196908..be9adb3473 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/option/RangeConstraintSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/option/RangeConstraintSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import com.google.common.collect.BoundType import com.google.common.collect.ImmutableSet @@ -33,7 +33,7 @@ import io.kotest.matchers.shouldBe import io.spine.code.proto.FieldDeclaration import io.spine.option.rangeOption import io.spine.test.type.Url -import io.spine.validate.option.RangeConstraint.rangeFromOption +import io.spine.validation.option.RangeConstraint.rangeFromOption import java.util.stream.Stream import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.assertThrows diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/option/RangeSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/option/RangeSpec.kt similarity index 89% rename from tests/runtime/src/test/kotlin/io/spine/validate/option/RangeSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/option/RangeSpec.kt index 4513aa2c04..63465ed8ce 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/option/RangeSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/option/RangeSpec.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,20 +24,19 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import io.spine.test.validate.Hours import io.spine.test.validate.NumRanges import io.spine.test.validate.RangesHolder import io.spine.test.validate.hours import io.spine.test.validate.rangesHolder -import io.spine.validate.ValidationOfConstraintTest -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.ValidationOfConstraintTest +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD import java.util.stream.DoubleStream import java.util.stream.IntStream import java.util.stream.LongStream import java.util.stream.Stream -import kotlin.streams.toList import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test @@ -52,14 +51,14 @@ internal class RangeSpec : ValidationOfConstraintTest() { internal inner class Integers { @ParameterizedTest - @MethodSource("io.spine.validate.option.RangeSpec#validHours") + @MethodSource("$PACKAGE.RangeSpec#validHours") fun `fit into the defined range`(hour: Int) { val msg = hourRange(hour) assertValid(msg) } @ParameterizedTest - @MethodSource("io.spine.validate.option.RangeSpec#invalidHours") + @MethodSource("$PACKAGE.RangeSpec#invalidHours") fun `do not fit into the defined range`(hour: Int) = assertDoesNotBuild { hourRange(hour) } @@ -71,13 +70,13 @@ internal class RangeSpec : ValidationOfConstraintTest() { internal inner class Longs { @ParameterizedTest - @MethodSource("io.spine.validate.option.RangeSpec#validMinutes") + @MethodSource("$PACKAGE.RangeSpec#validMinutes") fun `fit into the defined range`(minute: Long) = assertValid { minuteRange(minute) } @ParameterizedTest - @MethodSource("io.spine.validate.option.RangeSpec#invalidMinutes") + @MethodSource("$PACKAGE.RangeSpec#invalidMinutes") fun `do not fit into the defined range`(minute: Long) = assertDoesNotBuild { minuteRange(minute) } @@ -90,13 +89,13 @@ internal class RangeSpec : ValidationOfConstraintTest() { internal inner class Floats { @ParameterizedTest - @MethodSource("io.spine.validate.option.RangeSpec#validDegrees") + @MethodSource("$PACKAGE.RangeSpec#validDegrees") fun `fit into the defined range`(degree: Float) = assertValid { floatRange(degree) } @ParameterizedTest - @MethodSource("io.spine.validate.option.RangeSpec#invalidDegrees") + @MethodSource("$PACKAGE.RangeSpec#invalidDegrees") fun `do not fit into the defined range`(degree: Float) = assertDoesNotBuild { floatRange(degree) } @@ -109,13 +108,13 @@ internal class RangeSpec : ValidationOfConstraintTest() { internal inner class Doubles { @ParameterizedTest - @MethodSource("io.spine.validate.option.RangeSpec#validAngles") + @MethodSource("$PACKAGE.RangeSpec#validAngles") fun `fit into the defined range`(angle: Double) = assertValid { doubleRange(angle) } @ParameterizedTest - @MethodSource("io.spine.validate.option.RangeSpec#invalidAngles") + @MethodSource("$PACKAGE.RangeSpec#invalidAngles") fun `do not fit into the defined range`(angle: Double) = assertDoesNotBuild { doubleRange(angle) } @@ -145,6 +144,8 @@ internal class RangeSpec : ValidationOfConstraintTest() { companion object { + const val PACKAGE = "io.spine.validation.option" + @JvmStatic fun holderOf(ranges: NumRanges): RangesHolder = rangesHolder { this.ranges = ranges diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/option/RequireSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/option/RequireSpec.kt similarity index 94% rename from tests/runtime/src/test/kotlin/io/spine/validate/option/RequireSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/option/RequireSpec.kt index e97dfe6a87..9797111727 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/option/RequireSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/option/RequireSpec.kt @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Redistribution and use in source and/or binary forms, with or without * modification, must retain the above copyright notice and the following @@ -24,13 +24,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import io.spine.test.validate.requiredfield.EveryFieldOptional import io.spine.test.validate.requiredfield.EveryFieldRequired import io.spine.test.validate.requiredfield.OneofRequired -import io.spine.validate.ValidationOfConstraintTest -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.ValidationOfConstraintTest +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test diff --git a/tests/runtime/src/test/kotlin/io/spine/validate/option/RequiredSpec.kt b/tests/runtime/src/test/kotlin/io/spine/validation/option/RequiredSpec.kt similarity index 92% rename from tests/runtime/src/test/kotlin/io/spine/validate/option/RequiredSpec.kt rename to tests/runtime/src/test/kotlin/io/spine/validation/option/RequiredSpec.kt index 54df591412..d6d4d4d299 100644 --- a/tests/runtime/src/test/kotlin/io/spine/validate/option/RequiredSpec.kt +++ b/tests/runtime/src/test/kotlin/io/spine/validation/option/RequiredSpec.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024, TeamDev. All rights reserved. + * 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. @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package io.spine.validate.option +package io.spine.validation.option import com.google.protobuf.StringValue import io.spine.base.Identifier @@ -37,11 +37,11 @@ import io.spine.test.validate.RequiredStringValue import io.spine.test.validate.repeatedRequiredStringValue import io.spine.test.validate.requiredBytes import io.spine.test.validate.requiredStringValue -import io.spine.validate.ValidationOfConstraintTest -import io.spine.validate.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD -import io.spine.validate.given.MessageValidatorTestEnv -import io.spine.validate.newByteString -import io.spine.validate.newStringValue +import io.spine.validation.ValidationOfConstraintTest +import io.spine.validation.ValidationOfConstraintTest.Companion.VALIDATION_SHOULD +import io.spine.validation.given.MessageValidatorTestEnv +import io.spine.validation.newByteString +import io.spine.validation.newStringValue import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/validating/src/test/kotlin/io/spine/test/JavaMessageSmokeTest.kt b/tests/validating/src/test/kotlin/io/spine/test/JavaMessageSmokeTest.kt index 92e84f228c..9f2eb9208c 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/JavaMessageSmokeTest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/JavaMessageSmokeTest.kt @@ -33,11 +33,11 @@ import io.kotest.matchers.shouldNotBe import io.spine.base.FieldPath import io.spine.test.protobuf.CardNumber import io.spine.type.TypeName -import io.spine.validate.NonValidated -import io.spine.validate.ValidatableMessage -import io.spine.validate.Validate.check -import io.spine.validate.ValidatingBuilder -import io.spine.validate.ValidationException +import io.spine.validation.NonValidated +import io.spine.validation.ValidatableMessage +import io.spine.validation.Validate.check +import io.spine.validation.ValidatingBuilder +import io.spine.validation.ValidationException import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertDoesNotThrow @@ -100,6 +100,7 @@ internal class JavaMessageSmokeTest { @Test fun `make the message builder implement 'ValidatingBuilder'`() { - CardNumber.Builder::class.java.interfaces shouldContain ValidatingBuilder::class.java + CardNumber.Builder::class.java.interfaces shouldContain + io.spine.validate.ValidatingBuilder::class.java } } diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/AssumedRequiredITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/AssumedRequiredITest.kt index a650e07d8c..418344e4fd 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/AssumedRequiredITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/AssumedRequiredITest.kt @@ -32,8 +32,6 @@ import io.spine.test.tools.validate.command.AssignTask import io.spine.test.tools.validate.command.CreateProject import io.spine.test.tools.validate.entity.Project import io.spine.test.tools.validate.entity.Task -import io.spine.test.tools.validate.event.ProjectCreated -import io.spine.test.tools.validate.rejection.TestRejections import io.spine.tools.validation.assertions.assertInvalid import io.spine.tools.validation.assertions.assertValid import io.spine.tools.validation.assertions.assertViolation @@ -66,26 +64,6 @@ internal class AssumedRequiredITest { } } - @Nested inner class - `an event` { - - @Test - fun `requiring it`() { - val msg = ProjectCreated.newBuilder() - assertViolation(msg, "id") - } - } - - @Nested inner class - `a rejection` { - - @Test - fun `requiring it`() { - val msg = TestRejections.CannotCreateProject.newBuilder() - assertViolation(msg, "id") - } - } - @Nested inner class `an entity state` { diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/ChoiceITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/ChoiceITest.kt index 1447e2a0da..24bd723fe4 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/ChoiceITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/ChoiceITest.kt @@ -37,8 +37,8 @@ import io.spine.test.tools.validate.Meal import io.spine.test.tools.validate.Sauce import io.spine.test.tools.validate.fish import io.spine.testing.TestValues.randomString -import io.spine.validate.Validate.violationsOf -import io.spine.validate.format +import io.spine.validation.Validate.violationsOf +import io.spine.validation.format import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/CustomOptionsITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/CustomOptionsITest.kt index b408add25f..a54d6e0e02 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/CustomOptionsITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/CustomOptionsITest.kt @@ -33,8 +33,8 @@ import io.kotest.matchers.optional.shouldBePresent import io.spine.base.fieldPath import io.spine.test.tools.validate.ByteMatrix import io.spine.tools.validate.rule.BytesAllRequiredFactory -import io.spine.validate.constraintViolation -import io.spine.validate.option.ValidatingOptionsLoader +import io.spine.validation.constraintViolation +import io.spine.validation.option.ValidatingOptionsLoader import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/DistinctITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/DistinctITest.kt index 7f4d6e511d..fbc6d38db1 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/DistinctITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/DistinctITest.kt @@ -33,7 +33,7 @@ import io.spine.protobuf.Durations2.hoursAndMinutes import io.spine.protobuf.Durations2.minutes import io.spine.test.tools.validate.uniqueMessageCollections import io.spine.test.tools.validate.uniquePrimitiveCollections -import io.spine.validate.ValidationException +import io.spine.validation.ValidationException import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/NumberConstraintsITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/NumberConstraintsITest.kt index 7e23964ffd..a9cf13ec4c 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/NumberConstraintsITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/NumberConstraintsITest.kt @@ -35,7 +35,7 @@ import io.spine.test.tools.validate.Probability import io.spine.test.tools.validate.SchoolClass import io.spine.test.tools.validate.Year import io.spine.test.tools.validate.targetMetrics -import io.spine.validate.format +import io.spine.validation.format import io.spine.tools.validation.RangeFieldExtrema import io.spine.tools.validation.assertions.assertInvalid import io.spine.tools.validation.assertions.assertValid diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/ValidateITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/ValidateITest.kt index d811256c89..c5b8756ed6 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/ValidateITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/ValidateITest.kt @@ -35,7 +35,7 @@ import io.spine.test.tools.validate.inDepthValidatedMaps import io.spine.test.tools.validate.inDepthValidatedMessage import io.spine.test.tools.validate.inDepthValidatedRepeated import io.spine.test.tools.validate.personName -import io.spine.validate.ValidationException +import io.spine.validation.ValidationException import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesMutualITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesMutualITest.kt index 85ec278f01..c1ef643063 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesMutualITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesMutualITest.kt @@ -30,7 +30,7 @@ import com.google.protobuf.Message import io.spine.protobuf.newBuilder import io.spine.tools.compiler.protobuf.descriptor import io.spine.test.options.set -import io.spine.validate.ValidationException +import io.spine.validation.ValidationException import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.assertDoesNotThrow import org.junit.jupiter.api.assertThrows diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesOneWayITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesOneWayITest.kt index f63d068631..00cdc4d65b 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesOneWayITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesOneWayITest.kt @@ -30,7 +30,7 @@ import com.google.protobuf.Message import io.spine.protobuf.newBuilder import io.spine.tools.compiler.protobuf.descriptor import io.spine.test.options.set -import io.spine.validate.ValidationException +import io.spine.validation.ValidationException import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.assertDoesNotThrow import org.junit.jupiter.api.assertThrows diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesViolationITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesViolationITest.kt index 64b2183add..1921a2d7a6 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesViolationITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/goes/GoesViolationITest.kt @@ -36,19 +36,19 @@ import io.spine.test.options.set import io.spine.test.options.asPlaceholderValue import io.spine.test.tools.validate.GoesCustomMessage import io.spine.test.tools.validate.GoesDefaultMessage -import io.spine.validate.RuntimeErrorPlaceholder.FIELD_PATH -import io.spine.validate.RuntimeErrorPlaceholder.FIELD_TYPE -import io.spine.validate.RuntimeErrorPlaceholder.FIELD_VALUE -import io.spine.validate.RuntimeErrorPlaceholder.GOES_COMPANION -import io.spine.validate.RuntimeErrorPlaceholder.PARENT_TYPE -import io.spine.validate.ValidationException +import io.spine.validation.RuntimeErrorPlaceholder.FIELD_PATH +import io.spine.validation.RuntimeErrorPlaceholder.FIELD_TYPE +import io.spine.validation.RuntimeErrorPlaceholder.FIELD_VALUE +import io.spine.validation.RuntimeErrorPlaceholder.GOES_COMPANION +import io.spine.validation.RuntimeErrorPlaceholder.PARENT_TYPE +import io.spine.validation.ValidationException import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.assertThrows import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.MethodSource /** - * Tests [ConstraintViolation][io.spine.validate.ConstraintViolation]s created by `(goes)`. + * Tests [ConstraintViolation][io.spine.validation.ConstraintViolation]s created by `(goes)`. */ @DisplayName("`(goes)` constraint should") internal class GoesViolationITest { diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/required/RequireITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/required/RequireITest.kt index 56933efb8b..a71065bc6e 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/required/RequireITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/required/RequireITest.kt @@ -34,7 +34,7 @@ import io.spine.test.tools.validate.Citizen import io.spine.test.tools.validate.Due import io.spine.test.tools.validate.FieldGroup import io.spine.type.TypeName -import io.spine.validate.format +import io.spine.validation.format import io.spine.tools.validation.assertions.assertInvalid import io.spine.tools.validation.assertions.assertValid import java.nio.charset.StandardCharsets.UTF_16 diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/setonce/SetOnceViolationITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/setonce/SetOnceViolationITest.kt index 25f3f74e79..dac66fc924 100644 --- a/tests/validating/src/test/kotlin/io/spine/test/options/setonce/SetOnceViolationITest.kt +++ b/tests/validating/src/test/kotlin/io/spine/test/options/setonce/SetOnceViolationITest.kt @@ -36,19 +36,19 @@ import io.spine.test.options.set import io.spine.test.options.asPlaceholderValue import io.spine.test.tools.validate.StudentCustomMessage import io.spine.test.tools.validate.StudentDefaultMessage -import io.spine.validate.RuntimeErrorPlaceholder.FIELD_PATH -import io.spine.validate.RuntimeErrorPlaceholder.FIELD_PROPOSED_VALUE -import io.spine.validate.RuntimeErrorPlaceholder.FIELD_TYPE -import io.spine.validate.RuntimeErrorPlaceholder.FIELD_VALUE -import io.spine.validate.RuntimeErrorPlaceholder.PARENT_TYPE -import io.spine.validate.ValidationException +import io.spine.validation.RuntimeErrorPlaceholder.FIELD_PATH +import io.spine.validation.RuntimeErrorPlaceholder.FIELD_PROPOSED_VALUE +import io.spine.validation.RuntimeErrorPlaceholder.FIELD_TYPE +import io.spine.validation.RuntimeErrorPlaceholder.FIELD_VALUE +import io.spine.validation.RuntimeErrorPlaceholder.PARENT_TYPE +import io.spine.validation.ValidationException import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.assertThrows import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.MethodSource /** - * Tests [ConstraintViolation][io.spine.validate.ConstraintViolation]s created by `(set_once)`. + * Tests [ConstraintViolation][io.spine.validation.ConstraintViolation]s created by `(set_once)`. */ @DisplayName("`(set_once)` constraint should") internal class SetOnceViolationITest { diff --git a/tests/validating/src/testFixtures/java/io/spine/test/options/BytesOptions.java b/tests/validating/src/testFixtures/java/io/spine/test/options/BytesOptions.java index d1cccf9a57..d805907fea 100644 --- a/tests/validating/src/testFixtures/java/io/spine/test/options/BytesOptions.java +++ b/tests/validating/src/testFixtures/java/io/spine/test/options/BytesOptions.java @@ -29,8 +29,8 @@ import com.google.auto.service.AutoService; import com.google.common.collect.ImmutableSet; import com.google.errorprone.annotations.Immutable; -import io.spine.validate.option.FieldValidatingOption; -import io.spine.validate.option.ValidatingOptionFactory; +import io.spine.validation.option.FieldValidatingOption; +import io.spine.validation.option.ValidatingOptionFactory; import java.util.Set; diff --git a/tests/validating/src/testFixtures/java/io/spine/test/options/Direction.java b/tests/validating/src/testFixtures/java/io/spine/test/options/Direction.java index 3db6920b87..14c22ab2fe 100644 --- a/tests/validating/src/testFixtures/java/io/spine/test/options/Direction.java +++ b/tests/validating/src/testFixtures/java/io/spine/test/options/Direction.java @@ -27,10 +27,10 @@ package io.spine.test.options; import io.spine.code.proto.FieldContext; -import io.spine.validate.Constraint; -import io.spine.validate.ConstraintTranslator; -import io.spine.validate.option.FieldConstraint; -import io.spine.validate.option.FieldValidatingOption; +import io.spine.validation.Constraint; +import io.spine.validation.ConstraintTranslator; +import io.spine.validation.option.FieldConstraint; +import io.spine.validation.option.FieldValidatingOption; /** * A custom validation option for {@code bytes}. diff --git a/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/AllRequired.java b/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/AllRequired.java index 43c85678ff..defb65d1e1 100644 --- a/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/AllRequired.java +++ b/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/AllRequired.java @@ -29,8 +29,8 @@ import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.option.OptionsProto; -import io.spine.validate.Constraint; -import io.spine.validate.option.FieldValidatingOption; +import io.spine.validation.Constraint; +import io.spine.validation.option.FieldValidatingOption; /** * A field validating option which creates {@link AllRequiredConstraint}s. diff --git a/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/AllRequiredConstraint.java b/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/AllRequiredConstraint.java index a5b6b16732..1a1807ddcb 100644 --- a/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/AllRequiredConstraint.java +++ b/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/AllRequiredConstraint.java @@ -30,11 +30,11 @@ import com.google.errorprone.annotations.Immutable; import io.spine.code.proto.FieldContext; import io.spine.code.proto.FieldDeclaration; -import io.spine.validate.ConstraintTranslator; -import io.spine.validate.ConstraintViolation; -import io.spine.validate.CustomConstraint; -import io.spine.validate.MessageValue; -import io.spine.validate.option.FieldConstraint; +import io.spine.validation.ConstraintTranslator; +import io.spine.validation.ConstraintViolation; +import io.spine.validation.CustomConstraint; +import io.spine.validation.MessageValue; +import io.spine.validation.option.FieldConstraint; import static java.lang.String.format; diff --git a/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/BytesAllRequiredFactory.java b/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/BytesAllRequiredFactory.java index 1d9ae475c7..9eb489874e 100644 --- a/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/BytesAllRequiredFactory.java +++ b/tests/validating/src/testFixtures/java/io/spine/tools/validate/rule/BytesAllRequiredFactory.java @@ -29,8 +29,8 @@ import com.google.auto.service.AutoService; import com.google.common.collect.ImmutableSet; import com.google.errorprone.annotations.Immutable; -import io.spine.validate.option.FieldValidatingOption; -import io.spine.validate.option.ValidatingOptionFactory; +import io.spine.validation.option.FieldValidatingOption; +import io.spine.validation.option.ValidatingOptionFactory; import java.util.Set; diff --git a/tests/validating/src/testFixtures/kotlin/io/spine/tools/validation/assertions/Assertions.kt b/tests/validating/src/testFixtures/kotlin/io/spine/tools/validation/assertions/Assertions.kt index 31a0fe3416..d3b142aaf2 100644 --- a/tests/validating/src/testFixtures/kotlin/io/spine/tools/validation/assertions/Assertions.kt +++ b/tests/validating/src/testFixtures/kotlin/io/spine/tools/validation/assertions/Assertions.kt @@ -35,9 +35,9 @@ import com.google.protobuf.Message import io.kotest.matchers.shouldNotBe import io.kotest.matchers.string.shouldContain import io.spine.type.toJson -import io.spine.validate.ConstraintViolation -import io.spine.validate.ValidationException -import io.spine.validate.formatUnsafe +import io.spine.validation.ConstraintViolation +import io.spine.validation.ValidationException +import io.spine.validation.formatUnsafe import org.junit.jupiter.api.Assertions.assertDoesNotThrow import org.junit.jupiter.api.Assertions.assertThrows import org.junit.jupiter.api.Assertions.fail diff --git a/tests/validator/src/main/kotlin/io/spine/tools/validation/test/EarphonesValidator.kt b/tests/validator/src/main/kotlin/io/spine/tools/validation/test/EarphonesValidator.kt index 04c4644b0a..e29e189315 100644 --- a/tests/validator/src/main/kotlin/io/spine/tools/validation/test/EarphonesValidator.kt +++ b/tests/validator/src/main/kotlin/io/spine/tools/validation/test/EarphonesValidator.kt @@ -30,12 +30,12 @@ import com.google.common.annotations.VisibleForTesting import io.spine.base.FieldPath import io.spine.base.fieldPath import io.spine.tools.validation.test.EarphonesValidator.Companion.ValidEarphones -import io.spine.validate.DetectedViolation -import io.spine.validate.FieldViolation -import io.spine.validate.MessageValidator -import io.spine.validate.TemplateString -import io.spine.validate.Validator -import io.spine.validate.templateString +import io.spine.validation.DetectedViolation +import io.spine.validation.FieldViolation +import io.spine.validation.MessageValidator +import io.spine.validation.TemplateString +import io.spine.validation.Validator +import io.spine.validation.templateString /** * Validates [Earphones] messages, treating all instances as invalid diff --git a/tests/validator/src/main/kotlin/io/spine/tools/validation/test/TheOnlyTimeValid.kt b/tests/validator/src/main/kotlin/io/spine/tools/validation/test/TheOnlyTimeValid.kt index b9d7433b88..691b19078c 100644 --- a/tests/validator/src/main/kotlin/io/spine/tools/validation/test/TheOnlyTimeValid.kt +++ b/tests/validator/src/main/kotlin/io/spine/tools/validation/test/TheOnlyTimeValid.kt @@ -31,12 +31,12 @@ import com.google.protobuf.Timestamp import com.google.protobuf.util.Timestamps import io.spine.base.FieldPath import io.spine.base.fieldPath -import io.spine.validate.DetectedViolation -import io.spine.validate.FieldViolation -import io.spine.validate.MessageValidator -import io.spine.validate.TemplateString -import io.spine.validate.Validator -import io.spine.validate.templateString +import io.spine.validation.DetectedViolation +import io.spine.validation.FieldViolation +import io.spine.validation.MessageValidator +import io.spine.validation.TemplateString +import io.spine.validation.Validator +import io.spine.validation.templateString /** * Validates [com.google.protobuf.Timestamp] messages, treating all instances as invalid diff --git a/tests/validator/src/test/kotlin/io/spine/tools/validation/test/EarphonesValidatorSpec.kt b/tests/validator/src/test/kotlin/io/spine/tools/validation/test/EarphonesValidatorSpec.kt index d46081b0d4..bf9e912ca7 100644 --- a/tests/validator/src/test/kotlin/io/spine/tools/validation/test/EarphonesValidatorSpec.kt +++ b/tests/validator/src/test/kotlin/io/spine/tools/validation/test/EarphonesValidatorSpec.kt @@ -31,8 +31,8 @@ import io.kotest.matchers.shouldBe import io.spine.base.FieldPath import io.spine.protobuf.TypeConverter.toAny import io.spine.tools.compiler.protobuf.descriptor -import io.spine.validate.ConstraintViolation -import io.spine.validate.ValidationException +import io.spine.validation.ConstraintViolation +import io.spine.validation.ValidationException import java.util.UUID import kotlin.random.Random import org.junit.jupiter.api.DisplayName diff --git a/tests/validator/src/test/kotlin/io/spine/tools/validation/test/TimestampValidatorSpec.kt b/tests/validator/src/test/kotlin/io/spine/tools/validation/test/TimestampValidatorSpec.kt index faa92bf943..feee5156a0 100644 --- a/tests/validator/src/test/kotlin/io/spine/tools/validation/test/TimestampValidatorSpec.kt +++ b/tests/validator/src/test/kotlin/io/spine/tools/validation/test/TimestampValidatorSpec.kt @@ -33,8 +33,8 @@ import io.kotest.matchers.shouldBe import io.spine.base.FieldPath import io.spine.protobuf.TypeConverter.toAny import io.spine.tools.compiler.protobuf.descriptor -import io.spine.validate.ConstraintViolation -import io.spine.validate.ValidationException +import io.spine.validation.ConstraintViolation +import io.spine.validation.ValidationException import io.spine.tools.validation.test.TheOnlyTimeValid.Companion.ValidTimestamp import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested diff --git a/tests/vanilla/src/test/kotlin/io/spine/validation/java/DistinctConstraintSpec.kt b/tests/vanilla/src/test/kotlin/io/spine/validation/java/DistinctConstraintSpec.kt index 14c64a611f..a8a873a38c 100644 --- a/tests/vanilla/src/test/kotlin/io/spine/validation/java/DistinctConstraintSpec.kt +++ b/tests/vanilla/src/test/kotlin/io/spine/validation/java/DistinctConstraintSpec.kt @@ -30,10 +30,10 @@ import com.google.common.truth.Truth.assertThat import com.google.common.truth.extensions.proto.ProtoTruth.assertThat import io.spine.base.fieldPath import io.spine.protobuf.TypeConverter.toAny -import io.spine.validate.NonValidated -import io.spine.validate.Validated -import io.spine.validate.ValidationError -import io.spine.validate.constraintViolation +import io.spine.validation.NonValidated +import io.spine.validation.Validated +import io.spine.validation.ValidationError +import io.spine.validation.constraintViolation import io.spine.tools.validation.java.given.ProtoSet import java.util.* import org.junit.jupiter.api.DisplayName diff --git a/tests/vanilla/src/test/kotlin/io/spine/validation/java/GoesConstraintSpec.kt b/tests/vanilla/src/test/kotlin/io/spine/validation/java/GoesConstraintSpec.kt index 93f9d46eb8..3b22bf4226 100644 --- a/tests/vanilla/src/test/kotlin/io/spine/validation/java/GoesConstraintSpec.kt +++ b/tests/vanilla/src/test/kotlin/io/spine/validation/java/GoesConstraintSpec.kt @@ -33,8 +33,8 @@ import io.kotest.matchers.optional.shouldBePresent import io.spine.base.FieldPath import io.spine.base.Identifier import io.spine.base.Time.currentTime -import io.spine.validate.ConstraintViolation -import io.spine.validate.ValidatableMessage +import io.spine.validation.ConstraintViolation +import io.spine.validation.ValidatableMessage import io.spine.tools.validation.java.given.ArchiveId import io.spine.tools.validation.java.given.Paper import org.junit.jupiter.api.DisplayName diff --git a/tests/vanilla/src/test/kotlin/io/spine/validation/java/IsRequiredSpec.kt b/tests/vanilla/src/test/kotlin/io/spine/validation/java/IsRequiredSpec.kt index 6d73650ea4..52dcda71b5 100644 --- a/tests/vanilla/src/test/kotlin/io/spine/validation/java/IsRequiredSpec.kt +++ b/tests/vanilla/src/test/kotlin/io/spine/validation/java/IsRequiredSpec.kt @@ -29,9 +29,9 @@ package io.spine.validation.java import com.google.common.truth.Truth.assertThat import com.google.protobuf.Message import io.spine.testing.TestValues.randomString -import io.spine.validate.NonValidated -import io.spine.validate.Validate.violationsOf -import io.spine.validate.format +import io.spine.validation.NonValidated +import io.spine.validation.Validate.violationsOf +import io.spine.validation.format import io.spine.tools.validation.java.given.Fish import io.spine.tools.validation.java.given.Meal import io.spine.tools.validation.java.given.Sauce diff --git a/tests/vanilla/src/test/kotlin/io/spine/validation/java/JavaValidationSpec.kt b/tests/vanilla/src/test/kotlin/io/spine/validation/java/JavaValidationSpec.kt index 6b05f31034..f6d196a126 100644 --- a/tests/vanilla/src/test/kotlin/io/spine/validation/java/JavaValidationSpec.kt +++ b/tests/vanilla/src/test/kotlin/io/spine/validation/java/JavaValidationSpec.kt @@ -30,7 +30,7 @@ import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test import com.google.common.truth.Truth.assertThat -import io.spine.validate.ValidatableMessage +import io.spine.validation.ValidatableMessage import io.spine.testing.isInstanceOf import io.spine.tools.validation.java.given.Meal diff --git a/version.gradle.kts b/version.gradle.kts index 6a2c005b0d..a9701ef8d0 100644 --- a/version.gradle.kts +++ b/version.gradle.kts @@ -29,4 +29,4 @@ * * For Spine-based dependencies please see [io.spine.dependency.local.Spine]. */ -val validationVersion by extra("2.0.0-SNAPSHOT.378") +val validationVersion by extra("2.0.0-SNAPSHOT.380")