From 4afc0fde6f938a78a62613edfa7b5e8b3e700084 Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 11:01:22 +0200 Subject: [PATCH 01/10] Remove rules-related Proto messages --- .../io/spine/validation/event/RuleAdded.java | 36 --- .../spine/validation/event/package-info.java | 36 --- .../validation/compilation_message.proto | 64 ----- .../main/proto/spine/validation/events.proto | 31 --- .../main/proto/spine/validation/rule.proto | 234 ------------------ 5 files changed, 401 deletions(-) delete mode 100644 proto/context/src/main/java/io/spine/validation/event/RuleAdded.java delete mode 100644 proto/context/src/main/java/io/spine/validation/event/package-info.java delete mode 100644 proto/context/src/main/proto/spine/validation/compilation_message.proto delete mode 100644 proto/context/src/main/proto/spine/validation/rule.proto diff --git a/proto/context/src/main/java/io/spine/validation/event/RuleAdded.java b/proto/context/src/main/java/io/spine/validation/event/RuleAdded.java deleted file mode 100644 index 6869b75424..0000000000 --- a/proto/context/src/main/java/io/spine/validation/event/RuleAdded.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2022, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation.event; - -import com.google.errorprone.annotations.Immutable; -import io.spine.base.EventMessage; - -/** - * An event signifying that a validation rule has been created. - */ -@Immutable -public interface RuleAdded extends EventMessage {} diff --git a/proto/context/src/main/java/io/spine/validation/event/package-info.java b/proto/context/src/main/java/io/spine/validation/event/package-info.java deleted file mode 100644 index b3e68373b0..0000000000 --- a/proto/context/src/main/java/io/spine/validation/event/package-info.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2022, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * Defines the domain events for the validation context. - */ -@CheckReturnValue -@ParametersAreNonnullByDefault -package io.spine.validation.event; - -import com.google.errorprone.annotations.CheckReturnValue; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/proto/context/src/main/proto/spine/validation/compilation_message.proto b/proto/context/src/main/proto/spine/validation/compilation_message.proto deleted file mode 100644 index 0c9f3ddac2..0000000000 --- a/proto/context/src/main/proto/spine/validation/compilation_message.proto +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2022, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -syntax = "proto3"; - -package spine.validation; - -import "spine/options.proto"; - -option (type_url_prefix) = "type.spine.io"; -option java_package = "io.spine.validation"; -option java_outer_classname = "CompilationMessageProto"; -option java_multiple_files = true; - -import "spine/protodata/ast.proto"; -import "spine/validation/rule.proto"; - -// A message from the current compilation process. -// -// May contain one or more validation rules. -// -message CompilationMessage { - option (entity).kind = PROJECTION; - - // The name of the message type. - protodata.TypeName name = 1; - - // Partial information about the type. - // - // May contain only the type's own data, such as docs, declaring file, etc. - // - // Does not contain information about nested elements, such as fields and options. - // - protodata.MessageType type = 2; - - // Validation rules. - // - // All these rules must be met in order for a message to be regarded as valid. - // - repeated Rule rule = 3; -} diff --git a/proto/context/src/main/proto/spine/validation/events.proto b/proto/context/src/main/proto/spine/validation/events.proto index 0c49a85530..2c9b3d7c90 100644 --- a/proto/context/src/main/proto/spine/validation/events.proto +++ b/proto/context/src/main/proto/spine/validation/events.proto @@ -36,41 +36,10 @@ option java_outer_classname = "EventsProto"; option java_multiple_files = true; import "spine/protodata/ast.proto"; -import "spine/validation/rule.proto"; import "spine/validation/time_field_type.proto"; import "spine/validation/field_group.proto"; import "spine/time_options.proto"; -// The event emitted whenever a simple validation rule is attached to a message type. -message SimpleRuleAdded { - - option (is).java_type = "io.spine.validation.event.RuleAdded"; - - protodata.TypeName type = 1; - - SimpleRule rule = 2; -} - -// The event emitted whenever a composite validation rule is attached to a message type. -message CompositeRuleAdded { - - option (is).java_type = "io.spine.validation.event.RuleAdded"; - - protodata.TypeName type = 1; - - CompositeRule rule = 2; -} - -// The event emitted whenever a message-wide validation rule is attached to a type. -message MessageWideRuleAdded { - - option (is).java_type = "io.spine.validation.event.RuleAdded"; - - protodata.TypeName type = 1; - - MessageWideRule rule = 3; -} - // A required field has been discovered. // // The event emitted in the following cases: diff --git a/proto/context/src/main/proto/spine/validation/rule.proto b/proto/context/src/main/proto/spine/validation/rule.proto deleted file mode 100644 index db14a07818..0000000000 --- a/proto/context/src/main/proto/spine/validation/rule.proto +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright 2022, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -syntax = "proto3"; - -package spine.validation; - -import "spine/options.proto"; - -option (type_url_prefix) = "type.spine.io"; -option java_package = "io.spine.validation"; -option java_outer_classname = "RuleProto"; -option java_multiple_files = true; - -import "spine/protodata/ast.proto"; -import "spine/protodata/value.proto"; -import "google/protobuf/any.proto"; - -// A simple validation rule. -// -// May be expressed as a comparison between two operands. The first operand is always a field value. -// The second operand is the `other_value`. `other_value` is typically derived from the Protobuf -// definition of the validation rule. -// -message SimpleRule { - - // The field which is being compared. - // - // If the operator is a custom one, the field might not be set. - // - protodata.FieldName field = 1; - - oneof operator_kind { - - // A simple comparison sign. - ComparisonOperator operator = 2; - - // A custom comparison method, which cannot be covered by - // a combination of `ComparisonOperator`s. - CustomOperator custom_operator = 3; - } - - // The value to which the field is compared. - // - // If the operator is one of the preset `ComparisonOperator`s, this is right hand side of - // the comparison expression. - // - // If the operator is a `CustomOperator`, this is the custom validation feature - // encoded as a `MessageValue`. - // - protodata.Value other_value = 4; - - // A human-readable message explaining the error. - // - // May include tokens `{value}` and `{other}`, which will be replaced with the runtime values - // when the error is constructed. - // - string error_message = 5; - - // If `true`, this rule is ignored when the field is not set. - // - // This does not apply to simple rules which are parts of a `CompositeRule`. - // - bool ignored_if_unset = 6; - - // If the associated field is a list or a map, this value shows whether the rule is applied - // to the collection as a whole or to each element individually. - // - // If `true`, the rule is applied to each element (each value, in case of a map). Otherwise, - // to the collection as a whole. - // - // If the associated field is not a collection, the value is ignored. - // - bool distribute = 7; -} - -// A message-wide validation rule. -// -// Typically, a rule only concerns itself with one field of a message. A message-wide rule defines -// a validation constrains that is not local to one field, but applies to a number of -// fields in a message. -// -message MessageWideRule { - - // A custom operator, applied to the message. - CustomOperator operator = 1; - - // A human-readable message explaining the error. - // - // This message is not format-able. When constructing a rule, the API users must make sure - // that the all required info is embedded in this message. - // - string error_message = 2; -} - -// A predefined comparison operator. -// -// Comparison between two values of the same type must always yield a boolean result. -// -enum ComparisonOperator { - - OPERATION_UNKNOWN = 0; - - EQUAL = 1; - - NOT_EQUAL = 2; - - LESS_THAN = 3; - - GREATER_THAN = 4; - - LESS_OR_EQUAL = 5; - - GREATER_OR_EQUAL = 6; -} - -// A non-predefined comparison operator. -// -message CustomOperator { - - // Describes how the generated code should behave in a human-readable way. - string description = 1; - - // A Protobuf message which dictates the expected validation behaviour to a renderer. - // - // Renderers match the type of this message to the types of custom validation features known to - // them. Unknown validation features are ignored. - // - // Validation code generation may involve several renderers adding code sequentially. Some - // renderers may only generate code for certain custom validation features and nothing more. - // - google.protobuf.Any feature = 2; -} - -// A validation rule which is either a simple rule for one field or a composite rule. -// -message Rule { - - oneof kind { - - SimpleRule simple = 1; - - CompositeRule composite = 2; - - MessageWideRule message_wide = 3; - } -} - -// A validation rule which is a combination of two or more rules. -// -// For example, if a value must be less than 100 and greater than 0, the two simple rules are -// combined into a composite rule with the `AND` operator. -// -message CompositeRule { - - // First rule. - Rule left = 1; - - // The operation which joins two rules. - LogicalOperator operator = 2; - - // Second rule. - Rule right = 3; - - // A human-readable message explaining the error. - // - // May include tokens `{left}`, `{right}`, and `{operator}`, which will be replaced with at - // runtime with the error messages of the `left` and `right` rules and the words "and" or "or" - // or "xor". - // - // May also include the token `{value}`, but only if the `field` is also set. - // - string error_message = 4; - - // If this rule describes several constraints of the same field, this is the name of the field. - // - // It is only used for diagnostic purposes. The constraints themselves are always validated - // according to the rules `left` and `right`. - // - // If `left` and `right` do not describe constraints of the same field, this value is empty. - // - protodata.FieldName field = 5; -} - -// A boolean operator. -enum LogicalOperator { - - LO_UNKNOWN = 0; - - // Joins two boolean values with the "and" operator. - // - // Whenever generating code for this operator, renderers should prefer using short-circuit - // evaluation, i.e. if the left operand evaluates to `false`, the right will not be evaluated - // at all. However, there is no guarantee renderers will adhere to this recommendation. - // - AND = 1; - - // Joins two boolean values with the "or" operator. - // - // Whenever generating code for this operator, renderers should prefer using short-circuit - // evaluation, i.e. if the left operand evaluates to `true`, the right will not be evaluated - // at all. However, there is no guarantee renderers will adhere to this recommendation. - // - OR = 2; - - // Joins two boolean values with the "exclusive or" operator. - // - // Lazy evaluation of "exclusive or" is impossible, so both operands will always be evaluated. - // - XOR = 3; -} From f5af2b7452864bc48250ef1f297f6a2535d3d072 Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 11:02:16 +0200 Subject: [PATCH 02/10] Remove `CompilationMessage` and `Template` classes --- .../io/spine/validation/CompilationMessage.kt | 90 ---------- .../io/spine/validation/ErrorMessage.kt | 157 ------------------ .../kotlin/io/spine/validation/RuleExts.kt | 62 ------- .../kotlin/io/spine/validation/SimpleRules.kt | 79 --------- .../kotlin/io/spine/validation/Template.kt | 123 -------------- .../io/spine/validation/ValidationPlugin.kt | 4 - 6 files changed, 515 deletions(-) delete mode 100644 model/src/main/kotlin/io/spine/validation/CompilationMessage.kt delete mode 100644 model/src/main/kotlin/io/spine/validation/ErrorMessage.kt delete mode 100644 model/src/main/kotlin/io/spine/validation/RuleExts.kt delete mode 100644 model/src/main/kotlin/io/spine/validation/SimpleRules.kt delete mode 100644 model/src/main/kotlin/io/spine/validation/Template.kt diff --git a/model/src/main/kotlin/io/spine/validation/CompilationMessage.kt b/model/src/main/kotlin/io/spine/validation/CompilationMessage.kt deleted file mode 100644 index c6dd232242..0000000000 --- a/model/src/main/kotlin/io/spine/validation/CompilationMessage.kt +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2024, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation - -import io.spine.core.External -import io.spine.core.Subscribe -import io.spine.protodata.ast.TypeName -import io.spine.protodata.ast.event.TypeDiscovered -import io.spine.protodata.plugin.View -import io.spine.protodata.plugin.ViewRepository -import io.spine.server.entity.alter -import io.spine.server.route.EventRouting -import io.spine.validation.event.CompositeRuleAdded -import io.spine.validation.event.MessageWideRuleAdded -import io.spine.validation.event.SimpleRuleAdded - -/** - * A view of messages processed by the validation library. - * - * This view provides information about the messages being compiled and their - * validation constraints, if any. - * - * To add one or more validation constraints to the message, emit [SimpleRuleAdded] - * or [CompositeRuleAdded] events. - */ -internal class CompilationMessageView : - View() { - - @Subscribe - fun on(@External event: TypeDiscovered) = alter { - val messageType = event.type - type = messageType - name = messageType.name - } - - @Subscribe - fun on(event: SimpleRuleAdded) = alter { - addRule(event.rule.wrap()) - } - - @Subscribe - fun on(event: CompositeRuleAdded) = alter { - addRule(event.rule.wrap()) - } - - @Subscribe - fun on(event: MessageWideRuleAdded) = alter { - addRule(event.rule.wrap()) - } -} - -/** - * A repository for the [CompilationMessageView]. - * - * Routes the [TypeDiscovered] events to the view by the type name. - */ -internal class CompilationMessageRepository : - ViewRepository() { - - override fun setupEventRouting(routing: EventRouting) { - super.setupEventRouting(routing) - routing.unicast { e, _ -> - e.type.name - } - } -} diff --git a/model/src/main/kotlin/io/spine/validation/ErrorMessage.kt b/model/src/main/kotlin/io/spine/validation/ErrorMessage.kt deleted file mode 100644 index 59074b7025..0000000000 --- a/model/src/main/kotlin/io/spine/validation/ErrorMessage.kt +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright 2022, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation - -import io.spine.validation.LogicalOperator.AND -import io.spine.validation.LogicalOperator.LO_UNKNOWN -import io.spine.validation.LogicalOperator.OR -import io.spine.validation.LogicalOperator.XOR -import io.spine.validation.Placeholder.LEFT -import io.spine.validation.Placeholder.OPERATOR -import io.spine.validation.Placeholder.OTHER -import io.spine.validation.Placeholder.RIGHT -import io.spine.validation.Placeholder.VALUE - -/** - * A human-readable error message, describing a validation constraint violation. - * - * The error message can contain dynamic references to values in the generated code. - * If such references are present, they are inserted into the message via the plus (`+`) operator. - * - * If the target language uses a different way of concatenating strings (e.g., dots in PHP, etc.), - * or if it defines string literals in another way rather than enclosing them in quotation marks, - * renderers for such a language must not use this class and instead compile the error message on - * their own. - */ -public class ErrorMessage -private constructor(private val expression: String) { - - public companion object { - - /** - * Produces an error message for a simple validation rule. - * - * @param format - * the message format. - * @param value - * the value of the field. - * @param other - * the value to which the field is compared, may be `null` if no such value exists. - */ - @JvmStatic - @JvmOverloads - public fun forRule( - format: String, - value: String = "", - other: String? = null - ): ErrorMessage { - val msg = Template(format).apply { - formatDynamic(VALUE, value) - formatStatic(OTHER, other ?: "") - } - return ErrorMessage(msg.joinExpression()) - } - - /** - * Produces an error message for a composite validation rule. - * - * @param format - * the message format. - * @param left - * the error message of the left rule. - * @param right - * the error message of the right rule. - * @param operation - * the operator which joins the rule conditions. - */ - @JvmStatic - @JvmOverloads - public fun forComposite( - format: String, - left: ErrorMessage, - right: ErrorMessage, - operation: LogicalOperator = LO_UNKNOWN, - accessor: String = "" - ): ErrorMessage { - val msg = Template(format).apply { - formatStatic(OPERATOR, operation.printableString()) - formatDynamic(LEFT, left.expression) - formatDynamic(RIGHT, right.expression) - if (accessor.isNotBlank()) { - formatDynamic(VALUE, accessor) - } - } - return ErrorMessage(msg.joinExpression()) - } - } - - override fun toString(): String = expression -} - -private fun LogicalOperator.printableString() = when (this) { - AND, OR, XOR -> name.lowercase() - else -> "" -} - -/** - * A placeholder which can be present in a validation error message. - */ -internal enum class Placeholder { - - /** - * The actual value of the validated field. - */ - VALUE, - - /** - * The value to which the validated field is compared. - */ - OTHER, - - /** - * In a composite validation rule, the left condition. - */ - LEFT, - - /** - * In a composite validation rule, the right condition. - */ - RIGHT, - - /** - * In a composite validation rule, the boolean operator which joins the two conditions. - * - * @see LogicalOperator - */ - OPERATOR; - - /** - * The placeholder as it appears in the error message template. - */ - val fmt: String - get() = "{${name.lowercase()}}" -} diff --git a/model/src/main/kotlin/io/spine/validation/RuleExts.kt b/model/src/main/kotlin/io/spine/validation/RuleExts.kt deleted file mode 100644 index 3e49fe4f09..0000000000 --- a/model/src/main/kotlin/io/spine/validation/RuleExts.kt +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2023, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -@file:JvmName("Rules") - -package io.spine.validation - -/** - * Tells if this `rule` is a `SimpleRule`. - */ -public val Rule.isSimple: Boolean - get() = hasSimple() - -/** - * Tells if this `rule` is a message-wide one. - */ -public val Rule.isMessageWide: Boolean - get() = hasMessageWide() - -/** - * Creates a [Rule] from this `SimpleRule`. - */ -internal fun SimpleRule.wrap(): Rule = rule { - simple = this@wrap -} - -/** - * Creates a [Rule] from this composite rule. - */ -internal fun CompositeRule.wrap(): Rule = rule { - composite = this@wrap -} - -/** - * Creates a [Rule] from this message-wide rule. - */ -internal fun MessageWideRule.wrap(): Rule = rule { - messageWide = this@wrap -} diff --git a/model/src/main/kotlin/io/spine/validation/SimpleRules.kt b/model/src/main/kotlin/io/spine/validation/SimpleRules.kt deleted file mode 100644 index 9e8347aac9..0000000000 --- a/model/src/main/kotlin/io/spine/validation/SimpleRules.kt +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2024, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -@file:JvmName("SimpleRules") - -package io.spine.validation - -import com.google.protobuf.Message -import io.spine.protobuf.isNotDefault -import io.spine.protobuf.pack -import io.spine.protodata.ast.FieldName -import io.spine.protodata.ast.TypeName -import io.spine.server.event.Just -import io.spine.validation.event.SimpleRuleAdded -import io.spine.validation.event.simpleRuleAdded - -/** - * Creates a [SimpleRule] with a custom operator. - * - * @param field The target field. - * @param customFeature The feature message describing the custom operator. - * @param description The human-readable text description of the feature. - * @param errorMessage The error message for the case of violation. Can be empty for options - * that delegate validation to other options instead of performing it themselves. - */ -public fun SimpleRule( - field: FieldName, - customFeature: Message, - description: String, - errorMessage: String, - distribute: Boolean -): SimpleRule { - require(description.isNotBlank()) - val operator = customOperator { - this.description = description - feature = customFeature.pack() - } - return simpleRule { - customOperator = operator - this.errorMessage = errorMessage - ignoredIfUnset = true - this.distribute = distribute - if (field.isNotDefault()) { - this.field = field - } - } -} - -/** - * A shortcut for creating [SimpleRuleAdded] wrapped into [Just]. - */ -internal fun simpleRuleAdded(declaringType: TypeName, rule: SimpleRule): Just = - Just(simpleRuleAdded { - type = declaringType - this.rule = rule - }) diff --git a/model/src/main/kotlin/io/spine/validation/Template.kt b/model/src/main/kotlin/io/spine/validation/Template.kt deleted file mode 100644 index 40e78da690..0000000000 --- a/model/src/main/kotlin/io/spine/validation/Template.kt +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 2022, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation - -/** - * A template of an error message. - * - * @see ErrorMessage - */ -internal class Template(template: String) { - - private var spans: List = listOf(LiteralSpan(template)) - - /** - * Obtains this formatted template as a code expression. - * - * If the message contains dynamic values, i.e. values which are unknown at design time, - * they will be concatenated with the string literals using the plus (`+`) operators. - * Otherwise, the whole expression is a single string literal enclosed in - * double quotation marks (`"`). - */ - fun joinExpression(): String = - spans.joinToString(separator = " + ") - - /** - * Adds a dynamic value to the template. - * - * A dynamic value is one which cannot be known at design time. Thus, a dynamic value is - * represented with a code expression. - */ - fun formatDynamic(placeholder: Placeholder, expression: String) { - spans = spans.flatMap { span -> - if (span is LiteralSpan) { - span.splitOn(placeholder) - .interlaced(ExpressionSpan(expression)) - .toList() - } else { - listOf(span) - } - } - } - - /** - * Adds a static value to the template. - * - * A static value is one which is known at design time. Thus, a static value is inserted right - * into the template. - */ - fun formatStatic(placeholder: Placeholder, value: String) { - spans = spans.map { span -> - if (span is LiteralSpan) { - span.replace(placeholder, value) - } else { - span - } - } - } -} - -/** - * A piece of a string. - */ -private sealed class Span { - - abstract override fun toString(): String -} - -/** - * A string literal. - */ -private class LiteralSpan(private val value: String): Span() { - - override fun toString(): String = "\"$value\"" - - fun replace(placeholder: Placeholder, replacement: String): LiteralSpan { - val newValue = value.replace(placeholder.fmt, replacement) - return LiteralSpan(newValue) - } - - fun splitOn(placeholder: Placeholder): List = - value.split(placeholder.fmt).map { LiteralSpan(it) } -} - -/** - * A code expression which yields a string. - */ -private class ExpressionSpan(private val code: String): Span() { - - override fun toString(): String = code -} - -private fun Iterable.interlaced(infix: T): Sequence = sequence { - forEachIndexed { index, element -> - if (index != 0) { - yield(infix) - } - yield(element) - } -} diff --git a/model/src/main/kotlin/io/spine/validation/ValidationPlugin.kt b/model/src/main/kotlin/io/spine/validation/ValidationPlugin.kt index 1c193a10fe..67c2e02def 100644 --- a/model/src/main/kotlin/io/spine/validation/ValidationPlugin.kt +++ b/model/src/main/kotlin/io/spine/validation/ValidationPlugin.kt @@ -28,7 +28,6 @@ package io.spine.validation import io.spine.protodata.plugin.Plugin import io.spine.protodata.plugin.Policy -import io.spine.protodata.plugin.ViewRepository import io.spine.protodata.render.Renderer import io.spine.validation.bound.MaxFieldView import io.spine.validation.bound.MaxPolicy @@ -67,9 +66,6 @@ public abstract class ValidationPlugin(renderers: List> = emptyList( WhenFieldView::class.java, RequireMessageView::class.java, ), - viewRepositories = setOf>( - CompilationMessageRepository() - ), policies = setOf>( RequiredPolicy(), IfMissingPolicy(), From ee37adc8f1f1ca26adac2bd14c3671fee669cd00 Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 11:02:34 +0200 Subject: [PATCH 03/10] Remove `RuleGenerator` --- .../validation/java/JavaValidationRenderer.kt | 2 - .../validation/java/rule/CodeGenerator.kt | 136 ------------ .../java/rule/CompositeRuleGenerators.kt | 123 ----------- .../java/rule/CustomRuleGenerators.kt | 46 ---- .../java/rule/DistributingGenerator.kt | 161 -------------- .../validation/java/rule/ErrorMessages.kt | 118 ----------- .../validation/java/rule/GenerationContext.kt | 179 ---------------- .../validation/java/rule/RuleGenerator.kt | 114 ---------- .../java/rule/SimpleRuleGenerator.kt | 196 ------------------ .../java/rule/UnsupportedRuleGenerator.kt | 50 ----- 10 files changed, 1125 deletions(-) delete mode 100644 java/src/main/kotlin/io/spine/validation/java/rule/CodeGenerator.kt delete mode 100644 java/src/main/kotlin/io/spine/validation/java/rule/CompositeRuleGenerators.kt delete mode 100644 java/src/main/kotlin/io/spine/validation/java/rule/CustomRuleGenerators.kt delete mode 100644 java/src/main/kotlin/io/spine/validation/java/rule/DistributingGenerator.kt delete mode 100644 java/src/main/kotlin/io/spine/validation/java/rule/ErrorMessages.kt delete mode 100644 java/src/main/kotlin/io/spine/validation/java/rule/GenerationContext.kt delete mode 100644 java/src/main/kotlin/io/spine/validation/java/rule/RuleGenerator.kt delete mode 100644 java/src/main/kotlin/io/spine/validation/java/rule/SimpleRuleGenerator.kt delete mode 100644 java/src/main/kotlin/io/spine/validation/java/rule/UnsupportedRuleGenerator.kt diff --git a/java/src/main/kotlin/io/spine/validation/java/JavaValidationRenderer.kt b/java/src/main/kotlin/io/spine/validation/java/JavaValidationRenderer.kt index c0920fe2d5..6d37af5cc3 100644 --- a/java/src/main/kotlin/io/spine/validation/java/JavaValidationRenderer.kt +++ b/java/src/main/kotlin/io/spine/validation/java/JavaValidationRenderer.kt @@ -51,7 +51,6 @@ import io.spine.validation.java.generate.option.RequireOptionGenerator import io.spine.validation.java.generate.option.RequiredGenerator import io.spine.validation.java.generate.option.ValidateGenerator import io.spine.validation.java.generate.option.WhenGenerator -import io.spine.validation.java.rule.RuleGenerator /** * The main Java renderer of the validation library. @@ -66,7 +65,6 @@ public class JavaValidationRenderer : JavaRenderer() { private val querying = this@JavaValidationRenderer private val generators by lazy { listOf( - RuleGenerator(querying, typeSystem), RequiredGenerator(querying, valueConverter), PatternGenerator(querying), GoesGenerator(querying, valueConverter), diff --git a/java/src/main/kotlin/io/spine/validation/java/rule/CodeGenerator.kt b/java/src/main/kotlin/io/spine/validation/java/rule/CodeGenerator.kt deleted file mode 100644 index e891f81a9b..0000000000 --- a/java/src/main/kotlin/io/spine/validation/java/rule/CodeGenerator.kt +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -@file:JvmName("JavaCodeGeneration") - -package io.spine.validation.java.rule - -import com.squareup.javapoet.CodeBlock -import com.squareup.javapoet.FieldSpec -import com.squareup.javapoet.MethodSpec -import io.spine.logging.WithLogging -import io.spine.protodata.java.Expression -import io.spine.tools.java.codeBlock -import io.spine.validation.ErrorMessage -import io.spine.validation.Rule.KindCase.COMPOSITE -import io.spine.validation.Rule.KindCase.MESSAGE_WIDE -import io.spine.validation.Rule.KindCase.SIMPLE - -/** - * A Java code generator for a validation rule. - */ -internal abstract class CodeGenerator( - protected val ctx: GenerationContext -) : WithLogging { - - /** - * Tells whether this code generator is capable of generating validation code for - * the associated validation rule. - * - * If the rule has a custom operator, the generator might not support it. Otherwise, - * the generator must be able to generate code. - */ - open val canGenerate: Boolean = true - - /** - * Obtains the code checking the rule. - * - * Implementations report any found violations. - */ - open fun code(): CodeBlock { - if (!canGenerate) { - logger().atDebug().log { - "Standard Java renderer cannot generate rule: ${ctx.rule}." + - System.lineSeparator() + - "Skipping..." - } - return noCode() - } - val binaryCondition = condition() - return codeBlock { - add(prologue()) - beginControlFlow("if (!(\$L))", binaryCondition) - add(createViolation()) - endControlFlow() - } - } - - /** - * Fields to be inserted into the message class scope. - * - * Such fields may cache intermediate validation results, etc. - */ - open fun supportingFields(): List = emptyList() - - /** - * Methods to be inserted into the message class scope. - * - * Such methods may contain validation subroutines, etc. - */ - open fun supportingMethods(): List = emptyList() - - /** - * Generated code which does preparations before the validation checks can be performed. - */ - open fun prologue(): CodeBlock = noCode() - - /** - * Obtains an expression checking if the rule is violated. - * - * The expression evaluates to `true` if there is a violation and to `false` otherwise. - */ - abstract fun condition(): Expression - - /** - * Forms an error message for the found violation. - */ - abstract fun error(): ErrorMessage - - /** - * Constructs code which creates a `ConstrainViolation` and puts it into a list of violations. - * - * Later the violations will be reported to the caller. - */ - protected abstract fun createViolation(): CodeBlock -} - -/** - * Creates a code generator for a validation rule. - */ -internal fun generatorFor(ctx: GenerationContext): CodeGenerator = - when (ctx.rule.kindCase) { - SIMPLE -> generatorForSimple(ctx) - COMPOSITE -> CompositeRuleGenerator(ctx) - MESSAGE_WIDE -> generatorForCustom(ctx) - else -> throw IllegalArgumentException( - "Unsupported kind detected in the rule: `${ctx.rule}`." - ) - } - -/** - * Obtains a code block with an empty string. - */ -internal fun noCode(): CodeBlock = CodeBlock.of("") diff --git a/java/src/main/kotlin/io/spine/validation/java/rule/CompositeRuleGenerators.kt b/java/src/main/kotlin/io/spine/validation/java/rule/CompositeRuleGenerators.kt deleted file mode 100644 index 5532ab7215..0000000000 --- a/java/src/main/kotlin/io/spine/validation/java/rule/CompositeRuleGenerators.kt +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation.java.rule - -import com.squareup.javapoet.CodeBlock -import com.squareup.javapoet.FieldSpec -import com.squareup.javapoet.MethodSpec -import io.spine.protobuf.isNotDefault -import io.spine.protodata.ast.Field -import io.spine.protodata.java.Expression -import io.spine.tools.java.codeBlock -import io.spine.validation.ErrorMessage -import io.spine.validation.LogicalOperator.AND -import io.spine.validation.LogicalOperator.OR -import io.spine.validation.LogicalOperator.XOR - -/** - * Java code comparing two boolean values. - * - * This map describes correspondence between the [io.spine.validation.LogicalOperator]s and - * the way they are rendered in Java. - */ -private val BOOLEAN_OPS = mapOf( - AND to { left: String, right: String -> "($left) && ($right)" }, - OR to { left: String, right: String -> "($left) || ($right)" }, - XOR to { left: String, right: String -> "($left) ^ ($right)" } -) - -/** - * A generator for code which checks a composite rule. - * - * A composite rule may consist of several simple rules applied to one or many fields. - */ -internal class CompositeRuleGenerator(ctx: GenerationContext) : CodeGenerator(ctx) { - - private val left = generatorFor(ctx.left()) - private val right = generatorFor(ctx.right()) - - private fun GenerationContext.left() = copy(rule = rule.composite.left) - private fun GenerationContext.right() = copy(rule = rule.composite.right) - - override val canGenerate: Boolean = - left.canGenerate && right.canGenerate - - override fun condition(): Expression = with(ctx) { - val composite = rule.composite - val left = left.condition() - val right = right.condition() - val binaryOp = BOOLEAN_OPS[composite.operator]!! - return Expression(binaryOp(left.toCode(), right.toCode())) - } - - override fun error(): ErrorMessage { - val composite = ctx.rule.composite - val format = composite.errorMessage - val operation = composite.operator - val commonField = composite.field - val fieldAccessor = if (commonField.isNotDefault()) { - val found = ctx.lookUpField(commonField) - ctx.getterFor(found).toCode() - } else { - "" - } - return ErrorMessage.forComposite( - format, - left.error(), - right.error(), - operation, - fieldAccessor - ) - } - - override fun createViolation(): CodeBlock { - val rule = ctx.rule.composite - val accessor: Expression<*>? - val field: Field? - if (rule.hasField()) { - field = ctx.lookUpField(rule.field) - accessor = ctx.getterFor(field) - } else { - field = null - accessor = null - } - return error().createCompositeViolation( - ctx.validatedType, ctx.violationList, field, accessor - ) - } - - override fun supportingFields(): List = - left.supportingFields() + right.supportingFields() - - override fun supportingMethods(): List = - left.supportingMethods() + right.supportingMethods() - - override fun prologue(): CodeBlock = codeBlock { - add(left.prologue()) - add(right.prologue()) - } -} diff --git a/java/src/main/kotlin/io/spine/validation/java/rule/CustomRuleGenerators.kt b/java/src/main/kotlin/io/spine/validation/java/rule/CustomRuleGenerators.kt deleted file mode 100644 index 426d29c68f..0000000000 --- a/java/src/main/kotlin/io/spine/validation/java/rule/CustomRuleGenerators.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation.java.rule - -import com.google.protobuf.Message -import io.spine.protobuf.unpackGuessingType -import io.spine.validation.isMessageWide -import io.spine.validation.isSimple - -/** - * Creates a [CodeGenerator] for a custom validation operator for the given context. - */ -internal fun generatorForCustom(ctx: GenerationContext): CodeGenerator = - when (val feature = ctx.feature()) { - else -> UnsupportedRuleGenerator(feature::class.simpleName!!, ctx) - } - -private fun GenerationContext.feature(): Message = when { - rule.isSimple -> rule.simple.customOperator.feature.unpackGuessingType() - rule.isMessageWide -> rule.messageWide.operator.feature.unpackGuessingType() - else -> error("The rule has no custom operator: `$rule`.") -} diff --git a/java/src/main/kotlin/io/spine/validation/java/rule/DistributingGenerator.kt b/java/src/main/kotlin/io/spine/validation/java/rule/DistributingGenerator.kt deleted file mode 100644 index 17f8dab359..0000000000 --- a/java/src/main/kotlin/io/spine/validation/java/rule/DistributingGenerator.kt +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation.java.rule - -import com.google.common.collect.ImmutableList -import com.google.common.reflect.TypeToken -import com.google.protobuf.Message -import com.squareup.javapoet.CodeBlock -import com.squareup.javapoet.FieldSpec -import com.squareup.javapoet.MethodSpec -import io.spine.protodata.ast.Field -import io.spine.protodata.ast.extractPrimitiveType -import io.spine.protodata.ast.extractTypeName -import io.spine.protodata.ast.isMap -import io.spine.protodata.ast.name -import io.spine.protodata.ast.qualifiedName -import io.spine.protodata.backend.SecureRandomString -import io.spine.protodata.java.ClassName -import io.spine.protodata.java.Expression -import io.spine.protodata.java.MethodCall -import io.spine.protodata.java.ReadVar -import io.spine.protodata.java.This -import io.spine.protodata.java.toJavaClass -import io.spine.string.titleCase -import io.spine.tools.java.codeBlock -import io.spine.tools.java.methodSpec -import io.spine.validate.ConstraintViolation -import io.spine.validation.ErrorMessage -import javax.lang.model.element.Modifier - -/** - * A code generator that distributes the associated simple validation rule to elements of - * a repeated field. - * - * A rule applied to repeated fields, i.e., a list or a map, may be applied to the fields as - * a whole, or to individual elements of the field. - * - * In the first case, no extra modifications to code generation are required. - * - * In the second case, this generator creates the code that iterates over - * the elements and applies the validation rule to them. - */ -internal class DistributingGenerator( - ctx: GenerationContext, - delegateCtor: (GenerationContext) -> CodeGenerator -) : CodeGenerator(ctx) { - - private val element = ReadVar("element") - private val elementContext = ctx.copy(elementReference = element) - private val field = ctx.simpleRuleField - private val delegate = delegateCtor(elementContext) - private val ruleId = field.ruleId() - private val methodName = "validate$ruleId" - private val violationsName = ReadVar>("violationsOf$ruleId") - private val violationsType = object : TypeToken>() {}.type - - override fun supportingMethods(): List { - val typeName = typeName() - val collection = iterableExpression() - val body = codeBlock { - addStatement( - "\$T<\$T> \$L = \$T.builder()", - ImmutableList.Builder::class.java, - ConstraintViolation::class.java, - ctx.violationList, - ImmutableList::class.java - ) - beginControlFlow("for (\$L \$L : \$L)", typeName, element, collection) - add(delegate.code()) - endControlFlow() - addStatement("return \$L.build()", elementContext.violationList) - } - - val groupingMethod = methodSpec(methodName) { - addModifiers(Modifier.PRIVATE) - returns(violationsType) - addCode(body) - } - - val otherMembers = delegate.supportingMethods() - return otherMembers + groupingMethod - } - - override fun supportingFields(): List = delegate.supportingFields() - - private fun typeName(): ClassName { - val name = field.type.extractTypeName() - val typeName = if (name != null) { - ctx.typeConvention.declarationFor(name).name - } else { - val primitiveType = field.type.extractPrimitiveType() - check(primitiveType != null) { - "The field `${field.qualifiedName}` is not of" + - " a primitive type (`${field.type.name}`)." - } - primitiveType.toJavaClass() - } - return typeName - } - - private fun iterableExpression(): Expression> { - val fieldAccessor = ctx.fieldOrElement!! - return if (field.isMap) { - MethodCall(fieldAccessor, "values") - } else { - // `DistributingGenerator` can be instantiated only for repeated fields and maps in - // `io.spine.validation.java.generatorForSimple`. So, the cast is safe. - @Suppress("UNCHECKED_CAST") - fieldAccessor as Expression> - } - } - - override fun prologue(): CodeBlock = codeBlock { - val violations = MethodCall>(This(), methodName) - addStatement("\$T \$L = \$L", violationsType, violationsName, violations) - } - - override fun condition(): Expression { - return MethodCall(violationsName, "isEmpty") - } - - override fun error(): ErrorMessage = - delegate.error() - - override fun createViolation(): CodeBlock = codeBlock { - val methodCall = MethodCall(ctx.violationList, "addAll", violationsName) - addStatement(methodCall.code) - } -} - -private const val RANDOM_STR_BYTES = 10 - -private fun Field.ruleId(): String { - val random = SecureRandomString.generate(RANDOM_STR_BYTES).filter { it.isJavaIdentifierPart() } - val fieldRef = name.value.titleCase() - return fieldRef + "_" + random -} diff --git a/java/src/main/kotlin/io/spine/validation/java/rule/ErrorMessages.kt b/java/src/main/kotlin/io/spine/validation/java/rule/ErrorMessages.kt deleted file mode 100644 index 8b5759f6f8..0000000000 --- a/java/src/main/kotlin/io/spine/validation/java/rule/ErrorMessages.kt +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -@file:JvmName("ErrorMessages") - -package io.spine.validation.java.rule - -import com.squareup.javapoet.CodeBlock -import io.spine.base.FieldPath -import io.spine.protodata.ast.Field -import io.spine.protodata.ast.TypeName -import io.spine.protodata.java.ClassName -import io.spine.protodata.java.Expression -import io.spine.protodata.java.Literal -import io.spine.protodata.java.StringLiteral -import io.spine.protodata.java.newBuilder -import io.spine.protodata.java.packToAny -import io.spine.validate.ConstraintViolation -import io.spine.validate.TemplateString -import io.spine.validation.ErrorMessage -import io.spine.validation.java.expression.TemplateStringClass - -/** - * Constructs code which creates a [ConstraintViolation] of a simple validation rule and adds it - * to the mutable list of violations from the given [ctx]. - */ -internal fun ErrorMessage.createViolation(ctx: GenerationContext): CodeBlock = with(ctx) { - val violation = buildViolation(validatedType, fieldFromSimpleRule, fieldOrElement) - return addViolation(violation, violationList) -} - -/** - * Constructs code which creates a [ConstraintViolation] of a composite validation rule and adds - * it to the given mutable [violationsList]. - * - * @param type - * a name of the validated message type. - * @param violationsList - * a code reference to a list of violations. - * @param field - * field that is common to all the simple rules that constitute the associated - * composite rule, or `null` if no such field exists. - * If this param is `null`, `fieldValue` must also be `null`. - * @param fieldValue - * the expression to get the value of the common field, or `null`, - * if there is no common field. - * If this parameter is `null`, `field` must also be `null`. - */ -internal fun ErrorMessage.createCompositeViolation( - type: TypeName, - violationsList: Expression>, - field: Field?, - fieldValue: Expression<*>? -): CodeBlock { - require(field != null && fieldValue != null || field == null && fieldValue == null) { - "Either both `field` and `fieldValue` must be `null` or both must be not `null`." + - "Got `field` = `$field` and `fieldValue` = `$fieldValue`." - } - val violation = buildViolation(type, field, fieldValue) - return addViolation(violation, violationsList) -} - -private fun addViolation( - violation: Expression, - violationsList: Expression> -): CodeBlock = CodeBlock.builder() - .addStatement("\$L.add(\$L)", violationsList, violation) - .build() - -private fun ErrorMessage.buildViolation( - type: TypeName, - field: Field?, - fieldValue: Expression<*>?, -): Expression { - val message = TemplateStringClass.newBuilder() - .chainSet("withPlaceholders", Literal(this)) - .chainBuild() - var violationBuilder = ClassName(ConstraintViolation::class).newBuilder() - .chainSet("message", message) - .chainSet("type_name", StringLiteral(type.typeUrl)) - if (field != null) { - violationBuilder = violationBuilder.chainSet("field_path", pathOf(field)) - } - if (fieldValue != null) { - checkNotNull(field) { "The field value (`$fieldValue`) is set without the field." } - val packingExpression = fieldValue.packToAny() - violationBuilder = violationBuilder.chainSet("field_value", packingExpression) - } - return violationBuilder.chainBuild() -} - -private fun pathOf(field: Field): Expression = - ClassName(FieldPath::class.java).newBuilder() - .chainAdd("field_name", StringLiteral(field.name.value)) - .chainBuild() diff --git a/java/src/main/kotlin/io/spine/validation/java/rule/GenerationContext.kt b/java/src/main/kotlin/io/spine/validation/java/rule/GenerationContext.kt deleted file mode 100644 index e232c3389d..0000000000 --- a/java/src/main/kotlin/io/spine/validation/java/rule/GenerationContext.kt +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation.java.rule - -import com.google.protobuf.Message -import io.spine.protodata.ast.Field -import io.spine.protodata.ast.FieldName -import io.spine.protodata.ast.File -import io.spine.protodata.ast.TypeName -import io.spine.protodata.java.Expression -import io.spine.protodata.java.MessageOrEnumConvention -import io.spine.protodata.java.JavaValueConverter -import io.spine.protodata.java.field -import io.spine.protodata.type.TypeSystem -import io.spine.validate.ConstraintViolation -import io.spine.validation.Rule -import io.spine.validation.isSimple - -/** - * Context of a [CodeGenerator]. - */ -internal data class GenerationContext( - - /** - * The Protobuf types known to the application. - */ - val typeSystem: TypeSystem, - - /** - * The rule for which the code is generated. - */ - val rule: Rule, - - /** - * A reference to the validated message. - */ - val msg: Expression, - - /** - * The type of the validated message. - */ - val validatedType: TypeName, - - /** - * The path to the Protobuf file where the validated type is declared. - */ - val protoFile: File, - - /** - * A reference to the mutable violations list, which accumulates all the constraint violations. - * - * This is a variable name in the generated code. The variable holds - * a list of [io.spine.validate.ConstraintViolation]s. when a new violation is discovered, - * the generated code should add it to this list. - */ - val violationList: Expression>, - - /** - * A custom reference to an element of a collection field. - * - * If `null`, the associated field is not a collection, or the associated rule - * does not need to be distributed to collection elements. - */ - private val elementReference: Expression<*>? = null -) { - - val typeConvention: MessageOrEnumConvention by lazy { - MessageOrEnumConvention(typeSystem) - } - - /** - * A [JavaValueConverter] for transforming `Value`s into Java expressions. - */ - val valueConverter: JavaValueConverter by lazy { - JavaValueConverter(typeSystem) - } - - val otherValueAsCode: Expression<*>? - get() = if (rule.isSimple && rule.simple.hasOtherValue()) { - valueConverter.valueToCode(rule.simple.otherValue) - } else { - null - } - - /** - * The field associated with the given rule. - * - * If the [rule] is not a simple rule, the value is absent. - * - * @see simpleRuleField - */ - val fieldFromSimpleRule: Field? - get() = if (rule.isSimple) { - lookUpField(rule.simple.field) - } else { - null - } - - /** - * Obtains a name of the field associated with the simple rule of this context. - * - * @throws IllegalStateException if the rule is not a simple rule. - * @see [fieldFromSimpleRule] - */ - val simpleRuleField: Field - get() { - check(rule.isSimple) { "The rule is not a simple one: `$rule`." } - return fieldFromSimpleRule!! - } - - /** - * If the associated field is a collection and the associated rule needs to be distributed, - * this is a reference to one element of the collection. - * - * If the field is not a collection or the rule does not need to be distributed, - * this is the reference to the field. - * - * If there is no associated field, this is `null`. - */ - val fieldOrElement: Expression<*>? - get() = elementReference ?: fieldValue - - /** - * The reference to the associated field, or `null` if there is no such field. - */ - private val fieldValue: Expression<*>? - get() { - val protoField = fieldFromSimpleRule ?: return null - return getterFor(protoField) - } - - /** - * `true` if the [fieldOrElement] contains a reference to an element of a collection, - * `false` otherwise. - */ - val isElement: Boolean = elementReference != null - - /** - * Obtains a getter for a given field. - * - * The [field] should be a field of the message referenced in [msg]. - */ - fun getterFor(field: Field): Expression<*> = - msg.field(field).getter() - - /** - * Finds the field by the given name in the validated type. - * - * @throws IllegalArgumentException if there is no such field - */ - fun lookUpField(name: FieldName): Field = - typeSystem.findMessage(validatedType)!! - .first.fieldList - .first { it.name == name } -} diff --git a/java/src/main/kotlin/io/spine/validation/java/rule/RuleGenerator.kt b/java/src/main/kotlin/io/spine/validation/java/rule/RuleGenerator.kt deleted file mode 100644 index 922402d963..0000000000 --- a/java/src/main/kotlin/io/spine/validation/java/rule/RuleGenerator.kt +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation.java.rule - -import io.spine.protodata.ast.MessageType -import io.spine.protodata.ast.TypeName -import io.spine.protodata.java.CodeBlock -import io.spine.protodata.java.FieldDeclaration -import io.spine.protodata.java.MethodDeclaration -import io.spine.protodata.java.This -import io.spine.protodata.type.TypeSystem -import io.spine.server.query.Querying -import io.spine.server.query.select -import io.spine.validation.CompilationMessage -import io.spine.validation.Rule -import io.spine.validation.java.generate.SingleOptionCode -import io.spine.validation.java.generate.ValidationCodeInjector.ValidateScope.violations -import io.spine.validation.java.generate.OptionGenerator -import com.squareup.javapoet.CodeBlock as PoetCodeBlock -import com.squareup.javapoet.FieldSpec as PoetField -import com.squareup.javapoet.MethodSpec as PoetMethod - -/** - * Generates rule-based constraints. - * - * Despite implementing [OptionGenerator], this generator is not responsible - * for a specific option. It generates code for constraints represented by `Rule`. - * Having rule generation as [OptionGenerator] allows - * [JavaValidationRenderer][io.spine.validation.java.JavaValidationRenderer] to treat - * all generators in a unified manner, significantly simplifying the class implementation. - */ -@Deprecated("Will be removed as we complete our migration to standalone generators.") -internal class RuleGenerator( - private val querying: Querying, - private val typeSystem: TypeSystem -) : OptionGenerator { - - /** - * All compilation messages along with their rules. - */ - private val allMessagesWithRules by lazy { - querying.select() - .all() - } - - override fun codeFor(type: TypeName): List { - val message = allMessagesWithRules.first { it.type.name == type } - val generatedRules = message.ruleList.map { generate(message.type, it) } - return generatedRules - } - - /** - * Generates a Java constraint and supporting members for the passed [rule]. - * - * A single rule always generates a single Java constraint represented by a [CodeBlock]. - * The number of supported members is not restricted. A single rule may generate zero, - * one, or more supporting members. - * - * Note: [CodeGenerator] returns JavaPoet's elements, which we convert to counterparts - * from ProtoData Expression API as required by [OptionGenerator] interface. - */ - private fun generate(messageType: MessageType, rule: Rule): SingleOptionCode { - val context = newContext(rule, messageType) - val generator = generatorFor(context) - val constraints = generator.code() - val fields = generator.supportingFields() - val methods = generator.supportingMethods() - return SingleOptionCode( - constraints.toCodeBlock(), - fields.map(PoetField::toFieldDeclaration), - methods.map(PoetMethod::toMethodDeclaration), - ) - } - - private fun newContext(rule: Rule, messageType: MessageType) = - GenerationContext( - typeSystem = typeSystem, - rule = rule, - msg = This(), - validatedType = messageType.name, - protoFile = messageType.file, - violationList = violations - ) -} - -private fun PoetCodeBlock.toCodeBlock() = CodeBlock("$this".trim()) - -private fun PoetMethod.toMethodDeclaration() = MethodDeclaration("$this") - -private fun PoetField.toFieldDeclaration() = FieldDeclaration(name, "$this") diff --git a/java/src/main/kotlin/io/spine/validation/java/rule/SimpleRuleGenerator.kt b/java/src/main/kotlin/io/spine/validation/java/rule/SimpleRuleGenerator.kt deleted file mode 100644 index 8d167f6959..0000000000 --- a/java/src/main/kotlin/io/spine/validation/java/rule/SimpleRuleGenerator.kt +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation.java.rule - -import com.squareup.javapoet.CodeBlock -import io.spine.protodata.ast.Field -import io.spine.protodata.ast.PrimitiveType.TYPE_BYTES -import io.spine.protodata.ast.PrimitiveType.TYPE_STRING -import io.spine.protodata.ast.Type -import io.spine.protodata.ast.isList -import io.spine.protodata.ast.isMap -import io.spine.protodata.java.Expression -import io.spine.protodata.java.call -import io.spine.protodata.value.Value -import io.spine.string.shortly -import io.spine.tools.java.codeBlock -import io.spine.validation.ComparisonOperator.EQUAL -import io.spine.validation.ComparisonOperator.GREATER_OR_EQUAL -import io.spine.validation.ComparisonOperator.GREATER_THAN -import io.spine.validation.ComparisonOperator.LESS_OR_EQUAL -import io.spine.validation.ComparisonOperator.LESS_THAN -import io.spine.validation.ComparisonOperator.NOT_EQUAL -import io.spine.validation.ErrorMessage -import io.spine.validation.SimpleRule -import io.spine.validation.SimpleRule.OperatorKindCase.CUSTOM_OPERATOR -import io.spine.validation.SimpleRule.OperatorKindCase.OPERATOR -import io.spine.validation.UnsetValue -import io.spine.validation.extractType -import io.spine.validation.java.expression.StringClass - -/** - * Java code comparing two objects. - * - * This map describes correspondence between the [io.spine.validation.ComparisonOperator]s and - * the way they are rendered in Java for reference types. - */ -private val OBJECT_COMPARISON_OPS = mapOf( - EQUAL to { left: String, right: String -> "$left.equals($right)" }, - NOT_EQUAL to { left: String, right: String -> "!$left.equals($right)" }, -) - -/** - * Java code comparing two primitive (numeric) types. - * - * This map describes correspondence between the [io.spine.validation.ComparisonOperator]s and - * the way they are rendered in Java for Java primitive types. - */ -private val PRIMITIVE_COMPARISON_OPS = mapOf( - EQUAL to { left: String, right: String -> "$left == $right" }, - NOT_EQUAL to { left: String, right: String -> "$left != $right" }, - GREATER_THAN to { left: String, right: String -> "$left > $right" }, - LESS_THAN to { left: String, right: String -> "$left < $right" }, - GREATER_OR_EQUAL to { left: String, right: String -> "$left >= $right" }, - LESS_OR_EQUAL to { left: String, right: String -> "$left <= $right" } -) - -/** - * A generator for code which checks a simple one-field rule. - */ -internal open class SimpleRuleGenerator(ctx: GenerationContext) : CodeGenerator(ctx) { - - protected val rule: SimpleRule = ctx.rule.simple - private val ignoreIfNotSet = rule.ignoredIfUnset - protected val field = ctx.simpleRuleField - private val otherValue: Expression<*>? = ctx.otherValueAsCode - - override fun code(): CodeBlock { - val check = super.code() - val defaultValue = defaultFieldValue() - if (!ignoreIfNotSet || defaultValue == null) { - return check - } - return codeBlock { - val condition = createCondition(defaultValue) - beginControlFlow("if ($condition)") - add(check) - endControlFlow() - } - } - - private fun defaultFieldValue(): Value? = with(ctx) { - val field = simpleRuleField - return if (isElement) { - UnsetValue.singular(field.directOrElementType()) - } else { - UnsetValue.forField(field) - } - } - - private fun createCondition(defaultValue: Value): String { - val sign = selectSigns()[NOT_EQUAL]!! - val defaultValueExpression = ctx.valueConverter.valueToCode(defaultValue) - val condition = sign(ctx.fieldOrElement!!.toCode(), defaultValueExpression.toCode()) - return condition - } - - override fun condition(): Expression { - checkNotNull(otherValue) { - "Expected the rule to specify `simple.other_value`, but was: $rule" - } - val type = field.directOrElementType() - val signs = selectSigns() - val compare = signs[rule.operator] ?: error( - "Unsupported operation `${rule.operator}` for the type `$type`." - ) - checkNotNull(ctx.fieldOrElement) { - "There is no field value for the rule: `${rule.shortly()}`." - } - return Expression(compare(ctx.fieldOrElement!!.toCode(), otherValue.toCode())) - } - - private fun fieldIsJavaObject(): Boolean = - !field.refersToJavaPrimitive() || ((field.isList || field.isMap) && !ctx.isElement) - - private fun selectSigns() = if (fieldIsJavaObject()) { - OBJECT_COMPARISON_OPS - } else { - PRIMITIVE_COMPARISON_OPS - } - - override fun error(): ErrorMessage { - val actualValue = StringClass.call("valueOf", ctx.fieldOrElement!!) - return ErrorMessage.forRule( - rule.errorMessage, - actualValue.toCode(), - otherValue?.toCode() - ) - } - - override fun createViolation(): CodeBlock = - error().createViolation(ctx) -} - -internal fun generatorForSimple(ctx: GenerationContext): CodeGenerator { - val distribute = ctx.rule.simple.distribute - val field = ctx.simpleRuleField - return if (distribute && (field.isList || field.isMap)) { - DistributingGenerator(ctx) { - generatorForSingular(it) - } - } else { - generatorForSingular(ctx) - } -} - -private fun generatorForSingular(ctx: GenerationContext): CodeGenerator { - val rule = ctx.rule.simple - return when (rule.operatorKindCase) { - OPERATOR -> SimpleRuleGenerator(ctx) - CUSTOM_OPERATOR -> generatorForCustom(ctx) - else -> error("Invalid rule: `$rule`. No operator is set.") - } -} - -@Suppress("ReturnCount") -private fun Field.refersToJavaPrimitive(): Boolean { - if (type.isList) { - return type.list.isPrimitive - } - if (type.isMap) { - return type.map.valueType.isPrimitive - } - if (!type.isPrimitive) { - return false - } - return when (type.primitive) { - TYPE_STRING, TYPE_BYTES -> false - else -> true - } -} - -private fun Field.directOrElementType(): Type = type.extractType() diff --git a/java/src/main/kotlin/io/spine/validation/java/rule/UnsupportedRuleGenerator.kt b/java/src/main/kotlin/io/spine/validation/java/rule/UnsupportedRuleGenerator.kt deleted file mode 100644 index e2fe69366a..0000000000 --- a/java/src/main/kotlin/io/spine/validation/java/rule/UnsupportedRuleGenerator.kt +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2025, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation.java.rule - -/** - * A null-value generator which never produces code. - * - * Use this generator when an unknown custom validation operator is encountered. - */ -internal class UnsupportedRuleGenerator( - private val ruleName: String, - ctx: GenerationContext -) : CodeGenerator(ctx) { - - override val canGenerate: Boolean = false - - override fun condition(): Nothing = unsupported() - - override fun error(): Nothing = unsupported() - - override fun createViolation(): Nothing = unsupported() - - private fun unsupported(): Nothing { - throw UnsupportedOperationException("Rule `$ruleName` is not supported.") - } -} From ddb9d4efc7fb32b00d9d0e5a67fd2d71443c85b8 Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 11:02:47 +0200 Subject: [PATCH 04/10] Remove `MakeFilterHappyTest` --- .../src/test/java/MakeFilterHappyTest.java | 41 ------------------- .../src/test/java/MakeFilterHappyTest.java | 41 ------------------- 2 files changed, 82 deletions(-) delete mode 100644 proto/configuration/src/test/java/MakeFilterHappyTest.java delete mode 100644 proto/context/src/test/java/MakeFilterHappyTest.java diff --git a/proto/configuration/src/test/java/MakeFilterHappyTest.java b/proto/configuration/src/test/java/MakeFilterHappyTest.java deleted file mode 100644 index e8917729c1..0000000000 --- a/proto/configuration/src/test/java/MakeFilterHappyTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2022, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -import org.junit.jupiter.api.Test; - -import static com.google.common.truth.Truth.assertThat; - -/** -* This stub test suite just satisfies absence of Java-based tests for -* the `test` task filter. -*/ -class MakeFilterHappyTest { - - @Test - void doWork() { - assertThat(true).isTrue(); - } -} diff --git a/proto/context/src/test/java/MakeFilterHappyTest.java b/proto/context/src/test/java/MakeFilterHappyTest.java deleted file mode 100644 index e8917729c1..0000000000 --- a/proto/context/src/test/java/MakeFilterHappyTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2022, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -import org.junit.jupiter.api.Test; - -import static com.google.common.truth.Truth.assertThat; - -/** -* This stub test suite just satisfies absence of Java-based tests for -* the `test` task filter. -*/ -class MakeFilterHappyTest { - - @Test - void doWork() { - assertThat(true).isTrue(); - } -} From dcedc5e2eb1096c3ea43f6802529d580be04fc71 Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 11:06:15 +0200 Subject: [PATCH 05/10] Remove local copies of `FieldType` extensions --- .../io/spine/validation/FieldTypeExts.kt | 71 ------------------- .../io/spine/validation/ValidateOption.kt | 1 + 2 files changed, 1 insertion(+), 71 deletions(-) delete mode 100644 model/src/main/kotlin/io/spine/validation/FieldTypeExts.kt diff --git a/model/src/main/kotlin/io/spine/validation/FieldTypeExts.kt b/model/src/main/kotlin/io/spine/validation/FieldTypeExts.kt deleted file mode 100644 index 32df6daf34..0000000000 --- a/model/src/main/kotlin/io/spine/validation/FieldTypeExts.kt +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2024, TeamDev. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Redistribution and use in source and/or binary forms, with or without - * modification, must retain the above copyright notice and the following - * disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package io.spine.validation - -import io.spine.protodata.ast.FieldType -import io.spine.protodata.ast.Type -import io.spine.protodata.ast.isList -import io.spine.protodata.ast.isMap -import io.spine.protodata.ast.toType -import io.spine.string.shortly - -/** - * Extracts direct or element type information from this field type. - */ -public fun FieldType.extractType(): Type = when { - isMessage -> toType() - isEnum -> toType() - isPrimitive -> toType() - isMap -> map.valueType - isList -> list - else -> error("Cannot get type info from the field type ${this.shortly()}.") -} - -/** - * Indicates if this field type is a message, or it refers to a message type being - * a list or a map with such. - * - * @see refersToAny - */ -public fun FieldType.refersToMessage(): Boolean = when { - isMessage -> true - isMap -> map.valueType.isMessage - isList -> list.isMessage - else -> false -} - -/** - * Indicates if this field type refers to [com.google.protobuf.Any]. - * - * @see refersToMessage - */ -public fun FieldType.refersToAny(): Boolean = when { - isAny -> true - isMap -> map.valueType.isAny - isList -> list.isAny - else -> false -} diff --git a/model/src/main/kotlin/io/spine/validation/ValidateOption.kt b/model/src/main/kotlin/io/spine/validation/ValidateOption.kt index c7848588f3..1b8e8fbf9a 100644 --- a/model/src/main/kotlin/io/spine/validation/ValidateOption.kt +++ b/model/src/main/kotlin/io/spine/validation/ValidateOption.kt @@ -38,6 +38,7 @@ import io.spine.protodata.ast.event.FieldOptionDiscovered import io.spine.protodata.ast.name import io.spine.protodata.ast.qualifiedName import io.spine.protodata.ast.ref +import io.spine.protodata.ast.refersToMessage import io.spine.protodata.check import io.spine.protodata.plugin.Policy import io.spine.protodata.plugin.View From 395cf0b59844d68338eb96010158b375bc7ed40e Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 11:18:13 +0200 Subject: [PATCH 06/10] Temporarily disable extension tests --- settings.gradle.kts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 9d9dc1cfb5..20465c2c72 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -42,9 +42,19 @@ include( "java-runtime", "java-bundle", ":java-tests", - ":java-tests:consumer", + + /** + * Extension-related tests are temporarily disabled to clean up the codebase from + * the rules-related classes without introducing a new extension mechanism right away. + * + * The following PR enables them back: + * https://github.com/SpineEventEngine/validation/pull/215 + */ + + // ":java-tests:extensions", + // ":java-tests:consumer", + ":java-tests:consumer-dependency", - ":java-tests:extensions", ":java-tests:runtime", ":java-tests:vanilla", ":java-tests:validating", From e8c03a027e7054d3f2a12b69ea9b766e7fda3a25 Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 11:18:34 +0200 Subject: [PATCH 07/10] Bump the library version -> `2.0.0-SNAPSHOT.317` --- version.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.gradle.kts b/version.gradle.kts index bee4cdb422..cc603b7361 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.316") +val validationVersion by extra("2.0.0-SNAPSHOT.317") From deb8aa8a3f5dec30134a5c02979c65ec980a211f Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 11:23:28 +0200 Subject: [PATCH 08/10] Update reports --- dependencies.md | 1997 +---------------------------------------------- pom.xml | 14 +- 2 files changed, 31 insertions(+), 1980 deletions(-) diff --git a/dependencies.md b/dependencies.md index dc3e114e94..4bba1e0f10 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1,6 +1,6 @@ -# Dependencies of `io.spine.validation:spine-validation-java:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-java:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. @@ -861,12 +861,12 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:05 CEST 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). +This report was generated on **Wed Apr 30 11:19:50 CEST 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:spine-validation-java-bundle:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-java-bundle:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. @@ -1466,12 +1466,12 @@ This report was generated on **Mon Apr 28 17:30:05 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:05 CEST 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). +This report was generated on **Wed Apr 30 11:19:51 CEST 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:spine-validation-java-runtime:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-java-runtime:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -2154,55 +2154,14 @@ This report was generated on **Mon Apr 28 17:30:05 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:05 CEST 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). +This report was generated on **Wed Apr 30 11:19:51 CEST 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:spine-validation-java-tests:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-java-tests:2.0.0-SNAPSHOT.317` ## Runtime -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-databind. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. - * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. - * **Project URL:** [http://source.android.com/](http://source.android.com/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) - -1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.22.0. - * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2241,70 +2200,10 @@ This report was generated on **Mon Apr 28 17:30:05 CEST 2025** using [Gradle-Lic 1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. - * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) - * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0. - * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-util. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.26.0. - * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. - * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) - * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) - 1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0. * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) * **License:** [The MIT License](http://opensource.org/licenses/MIT) -1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.21. - * **License:** [MIT license](http://www.opensource.org/licenses/mit-license.php) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - 1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2325,31 +2224,11 @@ This report was generated on **Mon Apr 28 17:30:05 CEST 2025** using [Gradle-Lic * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. - * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - ## Compile, tests, and tooling 1. **Group** : com.beust. **Name** : jcommander. **Version** : 1.48. * **Project URL:** [http://beust.com/jcommander](http://beust.com/jcommander) @@ -3128,12 +3007,12 @@ This report was generated on **Mon Apr 28 17:30:05 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:05 CEST 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). +This report was generated on **Wed Apr 30 11:19:51 CEST 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:spine-validation-model:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-model:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. @@ -4018,12 +3897,12 @@ This report was generated on **Mon Apr 28 17:30:05 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:06 CEST 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). +This report was generated on **Wed Apr 30 11:19:51 CEST 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:spine-validation-proto:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-proto:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. @@ -4972,55 +4851,14 @@ This report was generated on **Mon Apr 28 17:30:06 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:06 CEST 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). +This report was generated on **Wed Apr 30 11:19:51 CEST 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:spine-validation-consumer:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-consumer-dependency:2.0.0-SNAPSHOT.317` ## Runtime -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-databind. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. - * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. - * **Project URL:** [http://source.android.com/](http://source.android.com/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) - -1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.22.0. - * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -5059,70 +4897,10 @@ This report was generated on **Mon Apr 28 17:30:06 CEST 2025** using [Gradle-Lic 1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. - * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) - * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0. - * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-util. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.26.0. - * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. - * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) - * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) - 1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0. * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) * **License:** [The MIT License](http://opensource.org/licenses/MIT) -1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.21. - * **License:** [MIT license](http://www.opensource.org/licenses/mit-license.php) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - 1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -5143,1738 +4921,11 @@ This report was generated on **Mon Apr 28 17:30:06 CEST 2025** using [Gradle-Lic * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. - * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -## Compile, tests, and tooling -1. **Group** : com.beust. **Name** : jcommander. **Version** : 1.48. - * **Project URL:** [http://beust.com/jcommander](http://beust.com/jcommander) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-databind. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-xml. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-dataformat-xml](https://github.com/FasterXML/jackson-dataformat-xml) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.woodstox. **Name** : woodstox-core. **Version** : 6.5.1. - * **Project URL:** [https://github.com/FasterXML/woodstox](https://github.com/FasterXML/woodstox) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.0.5. - * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. - * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. - * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) - * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) - -1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. - * **Project URL:** [http://source.android.com/](http://source.android.com/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) - -1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.22.0. - * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.auto. **Name** : auto-common. **Version** : 1.2.2. - * **Project URL:** [https://github.com/google/auto/tree/main/common](https://github.com/google/auto/tree/main/common) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.auto.service. **Name** : auto-service-annotations. **Version** : 1.1.1. - * **Project URL:** [https://github.com/google/auto/tree/main/service](https://github.com/google/auto/tree/main/service) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.auto.value. **Name** : auto-value-annotations. **Version** : 1.10.2. - * **Project URL:** [https://github.com/google/auto/tree/main/value](https://github.com/google/auto/tree/main/value) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. - * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.10.1. - * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_annotation. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_annotation](https://errorprone.info/error_prone_annotation) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_check_api. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_check_api](https://errorprone.info/error_prone_check_api) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_core. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_core](https://errorprone.info/error_prone_core) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : javac. **Version** : 9+181-r4173-1. - * **Project URL:** [https://github.com/google/error-prone-javac](https://github.com/google/error-prone-javac) - * **License:** [GNU General Public License, version 2, with the Classpath Exception](http://openjdk.java.net/legal/gplv2+ce.html) - -1. **Group** : com.google.flogger. **Name** : flogger. **Version** : 0.7.4. - * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) - * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.flogger. **Name** : flogger-system-backend. **Version** : 0.7.4. - * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger) - * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.googlejavaformat. **Name** : google-java-format. **Version** : 1.19.1. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.1. - * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : guava. **Version** : 32.1.3-jre. - * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 32.1.3-jre. - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 2.8. - * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.truth. **Name** : truth. **Version** : 1.1.5. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.truth.extensions. **Name** : truth-java8-extension. **Version** : 1.1.5. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.truth.extensions. **Name** : truth-liteproto-extension. **Version** : 1.1.5. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.truth.extensions. **Name** : truth-proto-extension. **Version** : 1.1.5. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. - * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) - * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. - * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) - * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) - -1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0. - * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations. **Version** : 0.17.1. - * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations-jvm. **Version** : 0.17.1. - * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.github.davidburstrom.contester. **Name** : contester-breakpoint. **Version** : 0.2.0. - * **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.6.0. - * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.6.0. - * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.github.eisop. **Name** : dataflow-errorprone. **Version** : 3.41.0-eisop1. - * **Project URL:** [https://eisop.github.io/](https://eisop.github.io/) - * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html) - -1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-api. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-cli. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-core. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-metrics. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-parser. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-psi-utils. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-html. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-md. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-sarif. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-txt. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-xml. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-complexity. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-coroutines. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-documentation. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-empty. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-errorprone. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-exceptions. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-naming. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-performance. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-style. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-tooling. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-utils. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-util. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-api-jvm. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.26.0. - * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12. - * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) - -1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. - * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) - * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) - -1. **Group** : javax.inject. **Name** : javax.inject. **Version** : 1. - * **Project URL:** [http://code.google.com/p/atinject/](http://code.google.com/p/atinject/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : junit. **Name** : junit. **Version** : 4.13.1. - * **Project URL:** [http://junit.org](http://junit.org) - * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html) - -1. **Group** : net.sourceforge.pmd. **Name** : pmd-core. **Version** : 6.55.0. - * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) - -1. **Group** : net.sourceforge.pmd. **Name** : pmd-java. **Version** : 6.55.0. - * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) - -1. **Group** : net.sourceforge.saxon. **Name** : saxon. **Version** : 9.1.0.8. - * **Project URL:** [http://saxon.sourceforge.net/](http://saxon.sourceforge.net/) - * **License:** [Mozilla Public License Version 1.0](http://www.mozilla.org/MPL/MPL-1.0.txt) - -1. **Group** : org.antlr. **Name** : antlr4-runtime. **Version** : 4.7.2. - * **Project URL:** [http://www.antlr.org](http://www.antlr.org) - * **License:** [The BSD License](http://www.antlr.org/license.html) - -1. **Group** : org.apache.commons. **Name** : commons-lang3. **Version** : 3.8.1. - * **Project URL:** [http://commons.apache.org/proper/commons-lang/](http://commons.apache.org/proper/commons-lang/) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.apiguardian. **Name** : apiguardian-api. **Version** : 1.1.2. - * **Project URL:** [https://github.com/apiguardian-team/apiguardian](https://github.com/apiguardian-team/apiguardian) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.checkerframework. **Name** : checker-compat-qual. **Version** : 2.5.3. - * **Project URL:** [https://checkerframework.org](https://checkerframework.org) - * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html) - * **License:** [The MIT License](http://opensource.org/licenses/MIT) - -1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0. - * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) - * **License:** [The MIT License](http://opensource.org/licenses/MIT) - -1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.21. - * **License:** [MIT license](http://www.opensource.org/licenses/mit-license.php) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.codehaus.woodstox. **Name** : stax2-api. **Version** : 4.2.1. - * **Project URL:** [http://github.com/FasterXML/stax2-api](http://github.com/FasterXML/stax2-api) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The BSD License](http://www.opensource.org/licenses/bsd-license.php) - -1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.32. - * **Project URL:** [https://freemarker.apache.org/](https://freemarker.apache.org/) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.hamcrest. **Name** : hamcrest. **Version** : 2.2. - * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) - * **License:** [BSD License 3](http://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 2.2. - * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) - * **License:** [BSD License 3](http://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : org.jacoco. **Name** : org.jacoco.agent. **Version** : 0.8.12. - * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) - -1. **Group** : org.jacoco. **Name** : org.jacoco.ant. **Version** : 0.8.12. - * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) - -1. **Group** : org.jacoco. **Name** : org.jacoco.core. **Version** : 0.8.12. - * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) - -1. **Group** : org.jacoco. **Name** : org.jacoco.report. **Version** : 0.8.12. - * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - -1. **Group** : org.jcommander. **Name** : jcommander. **Version** : 1.85. - * **Project URL:** [https://jcommander.org](https://jcommander.org) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. - * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2. - * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2. - * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : gfm-plugin. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : jekyll-plugin. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.intellij.deps. **Name** : trove4j. **Version** : 1.0.20200330. - * **Project URL:** [https://github.com/JetBrains/intellij-deps-trove4j](https://github.com/JetBrains/intellij-deps-trove4j) - * **License:** [GNU LESSER GENERAL PUBLIC LICENSE 2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.0.21. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.0.21. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.0.21. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk8. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.23.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) - * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.9.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) - * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core-jvm. **Version** : 1.4.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json-jvm. **Version** : 1.4.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.16.1. - * **Project URL:** [https://jsoup.org/](https://jsoup.org/) - * **License:** [The MIT License](https://jsoup.org/license) - -1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0. - * **Project URL:** [http://jspecify.org/](http://jspecify.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 5.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 5.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 1.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 1.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.opentest4j. **Name** : opentest4j. **Version** : 1.3.0. - * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) - * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.6. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.6. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.pcollections. **Name** : pcollections. **Version** : 4.0.1. - * **Project URL:** [https://github.com/hrldcpr/pcollections](https://github.com/hrldcpr/pcollections) - * **License:** [The MIT License](https://opensource.org/licenses/mit-license.php) - -1. **Group** : org.snakeyaml. **Name** : snakeyaml-engine. **Version** : 2.7. - * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml-engine](https://bitbucket.org/snakeyaml/snakeyaml-engine) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. - * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - - -The dependencies distributed under several licenses, are used according their commercial-use-friendly license. - -This report was generated on **Mon Apr 28 17:30:06 CEST 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:spine-validation-consumer-dependency:2.0.0-SNAPSHOT.316` - -## Runtime -1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. - * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.10.1. - * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.1. - * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : guava. **Version** : 32.1.3-jre. - * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 2.8. - * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0. - * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) - * **License:** [The MIT License](http://opensource.org/licenses/MIT) - -1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. - * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk8. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -## Compile, tests, and tooling -1. **Group** : com.beust. **Name** : jcommander. **Version** : 1.48. - * **Project URL:** [http://beust.com/jcommander](http://beust.com/jcommander) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-databind. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-xml. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-dataformat-xml](https://github.com/FasterXML/jackson-dataformat-xml) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.woodstox. **Name** : woodstox-core. **Version** : 6.5.1. - * **Project URL:** [https://github.com/FasterXML/woodstox](https://github.com/FasterXML/woodstox) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.0.5. - * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. - * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. - * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) - * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) - -1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. - * **Project URL:** [http://source.android.com/](http://source.android.com/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) - -1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.22.0. - * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.auto. **Name** : auto-common. **Version** : 1.2.2. - * **Project URL:** [https://github.com/google/auto/tree/main/common](https://github.com/google/auto/tree/main/common) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.auto.service. **Name** : auto-service-annotations. **Version** : 1.1.1. - * **Project URL:** [https://github.com/google/auto/tree/main/service](https://github.com/google/auto/tree/main/service) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.auto.value. **Name** : auto-value-annotations. **Version** : 1.10.2. - * **Project URL:** [https://github.com/google/auto/tree/main/value](https://github.com/google/auto/tree/main/value) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. - * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.10.1. - * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.1.20-1.0.31. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-aa-embeddable. **Version** : 2.1.20-1.0.31. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-api. **Version** : 2.1.20-1.0.31. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-cmdline. **Version** : 2.1.20-1.0.31. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-common-deps. **Version** : 2.1.20-1.0.31. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-gradle-plugin. **Version** : 2.1.20-1.0.31. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_annotation. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_annotation](https://errorprone.info/error_prone_annotation) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_check_api. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_check_api](https://errorprone.info/error_prone_check_api) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_core. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_core](https://errorprone.info/error_prone_core) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : javac. **Version** : 9+181-r4173-1. - * **Project URL:** [https://github.com/google/error-prone-javac](https://github.com/google/error-prone-javac) - * **License:** [GNU General Public License, version 2, with the Classpath Exception](http://openjdk.java.net/legal/gplv2+ce.html) - -1. **Group** : com.google.googlejavaformat. **Name** : google-java-format. **Version** : 1.19.1. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.1. - * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : guava. **Version** : 32.1.3-jre. - * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 2.8. - * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.truth. **Name** : truth. **Version** : 1.1.5. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.truth.extensions. **Name** : truth-java8-extension. **Version** : 1.1.5. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.truth.extensions. **Name** : truth-liteproto-extension. **Version** : 1.1.5. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.truth.extensions. **Name** : truth-proto-extension. **Version** : 1.1.5. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. - * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) - * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. - * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) - * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) - -1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0. - * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.0.0. - * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.squareup. **Name** : kotlinpoet-jvm. **Version** : 2.0.0. - * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.squareup. **Name** : kotlinpoet-ksp. **Version** : 2.0.0. - * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations. **Version** : 0.17.1. - * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations-jvm. **Version** : 0.17.1. - * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : dev.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0. - * **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.github.davidburstrom.contester. **Name** : contester-breakpoint. **Version** : 0.2.0. - * **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.6.0. - * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.6.0. - * **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.github.eisop. **Name** : dataflow-errorprone. **Version** : 3.41.0-eisop1. - * **Project URL:** [https://eisop.github.io/](https://eisop.github.io/) - * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html) - -1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-api. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-cli. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-core. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-metrics. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-parser. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-psi-utils. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-html. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-md. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-sarif. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-txt. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-xml. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-complexity. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-coroutines. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-documentation. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-empty. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-errorprone. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-exceptions. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-naming. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-performance. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-style. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-tooling. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-utils. **Version** : 1.23.8. - * **Project URL:** [https://detekt.dev](https://detekt.dev) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-util. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : protoc-gen-grpc-java. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-api-jvm. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 5.9.1. - * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) - * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.26.0. - * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12. - * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) - -1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. - * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) - * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) - -1. **Group** : javax.inject. **Name** : javax.inject. **Version** : 1. - * **Project URL:** [http://code.google.com/p/atinject/](http://code.google.com/p/atinject/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : junit. **Name** : junit. **Version** : 4.13.1. - * **Project URL:** [http://junit.org](http://junit.org) - * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html) - -1. **Group** : net.sourceforge.pmd. **Name** : pmd-core. **Version** : 6.55.0. - * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) - -1. **Group** : net.sourceforge.pmd. **Name** : pmd-java. **Version** : 6.55.0. - * **License:** [BSD-style](http://pmd.sourceforge.net/license.html) - -1. **Group** : net.sourceforge.saxon. **Name** : saxon. **Version** : 9.1.0.8. - * **Project URL:** [http://saxon.sourceforge.net/](http://saxon.sourceforge.net/) - * **License:** [Mozilla Public License Version 1.0](http://www.mozilla.org/MPL/MPL-1.0.txt) - -1. **Group** : org.antlr. **Name** : antlr4-runtime. **Version** : 4.7.2. - * **Project URL:** [http://www.antlr.org](http://www.antlr.org) - * **License:** [The BSD License](http://www.antlr.org/license.html) - -1. **Group** : org.apache.commons. **Name** : commons-lang3. **Version** : 3.8.1. - * **Project URL:** [http://commons.apache.org/proper/commons-lang/](http://commons.apache.org/proper/commons-lang/) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.apiguardian. **Name** : apiguardian-api. **Version** : 1.1.2. - * **Project URL:** [https://github.com/apiguardian-team/apiguardian](https://github.com/apiguardian-team/apiguardian) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0. - * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) - * **License:** [The MIT License](http://opensource.org/licenses/MIT) - -1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.21. - * **License:** [MIT license](http://www.opensource.org/licenses/mit-license.php) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.codehaus.woodstox. **Name** : stax2-api. **Version** : 4.2.1. - * **Project URL:** [http://github.com/FasterXML/stax2-api](http://github.com/FasterXML/stax2-api) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The BSD License](http://www.opensource.org/licenses/bsd-license.php) - -1. **Group** : org.freemarker. **Name** : freemarker. **Version** : 2.3.32. - * **Project URL:** [https://freemarker.apache.org/](https://freemarker.apache.org/) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.hamcrest. **Name** : hamcrest. **Version** : 2.2. - * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) - * **License:** [BSD License 3](http://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 2.2. - * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) - * **License:** [BSD License 3](http://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : org.jacoco. **Name** : org.jacoco.agent. **Version** : 0.8.12. - * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) - -1. **Group** : org.jacoco. **Name** : org.jacoco.ant. **Version** : 0.8.12. - * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) - -1. **Group** : org.jacoco. **Name** : org.jacoco.core. **Version** : 0.8.12. - * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) - -1. **Group** : org.jacoco. **Name** : org.jacoco.report. **Version** : 0.8.12. - * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - -1. **Group** : org.jcommander. **Name** : jcommander. **Version** : 1.85. - * **Project URL:** [https://jcommander.org](https://jcommander.org) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. - * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2. - * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2. - * **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-descriptors. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : gfm-plugin. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : jekyll-plugin. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 1.9.20. - * **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.intellij.deps. **Name** : trove4j. **Version** : 1.0.20200330. - * **Project URL:** [https://github.com/JetBrains/intellij-deps-trove4j](https://github.com/JetBrains/intellij-deps-trove4j) - * **License:** [GNU LESSER GENERAL PUBLIC LICENSE 2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.0.21. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.0.21. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.0.21. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk8. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.23.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.8.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) - * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-html-jvm. **Version** : 0.9.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.html](https://github.com/Kotlin/kotlinx.html) - * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-bom. **Version** : 1.6.3. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.4.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core. **Version** : 1.6.3. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core-jvm. **Version** : 1.4.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-core-jvm. **Version** : 1.6.3. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.4.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json. **Version** : 1.6.3. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json-jvm. **Version** : 1.4.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-serialization-json-jvm. **Version** : 1.6.3. - * **Project URL:** [https://github.com/Kotlin/kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jsoup. **Name** : jsoup. **Version** : 1.16.1. - * **Project URL:** [https://jsoup.org/](https://jsoup.org/) - * **License:** [The MIT License](https://jsoup.org/license) - -1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0. - * **Project URL:** [http://jspecify.org/](http://jspecify.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 5.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 5.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 5.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 1.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 1.10.0. - * **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/) - * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html) - -1. **Group** : org.opentest4j. **Name** : opentest4j. **Version** : 1.3.0. - * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j) - * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-commons. **Version** : 9.6. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm-tree. **Version** : 9.6. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.pcollections. **Name** : pcollections. **Version** : 4.0.1. - * **Project URL:** [https://github.com/hrldcpr/pcollections](https://github.com/hrldcpr/pcollections) - * **License:** [The MIT License](https://opensource.org/licenses/mit-license.php) - -1. **Group** : org.snakeyaml. **Name** : snakeyaml-engine. **Version** : 2.7. - * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml-engine](https://bitbucket.org/snakeyaml/snakeyaml-engine) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. - * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - - -The dependencies distributed under several licenses, are used according their commercial-use-friendly license. - -This report was generated on **Mon Apr 28 17:30:06 CEST 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:spine-validation-extensions:2.0.0-SNAPSHOT.316` - -## Runtime -1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-databind. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.15.3. - * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. - * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. - * **Project URL:** [http://source.android.com/](http://source.android.com/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) - -1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.22.0. - * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. - * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.10.1. - * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0. - * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.1. - * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : guava. **Version** : 32.1.3-jre. - * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava. - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 2.8. - * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 3.25.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1. - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - -1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 1.3.1. - * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) - * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0. - * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-util. **Version** : 1.59.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.26.0. - * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2. - * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250) - * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE) - -1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0. - * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) - * **License:** [The MIT License](http://opensource.org/licenses/MIT) - -1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.21. - * **License:** [MIT license](http://www.opensource.org/licenses/mit-license.php) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.28.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - -1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. - * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk8. **Version** : 2.1.20. - * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.6. - * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/) - * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.1. - * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - ## Compile, tests, and tooling 1. **Group** : com.beust. **Name** : jcommander. **Version** : 1.48. * **Project URL:** [http://beust.com/jcommander](http://beust.com/jcommander) @@ -7617,12 +5668,12 @@ This report was generated on **Mon Apr 28 17:30:06 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:07 CEST 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). +This report was generated on **Wed Apr 30 11:19:52 CEST 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:spine-validation-runtime:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-runtime:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -8450,12 +6501,12 @@ This report was generated on **Mon Apr 28 17:30:07 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:07 CEST 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). +This report was generated on **Wed Apr 30 11:19:52 CEST 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:spine-validation-validating:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-validating:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -9287,12 +7338,12 @@ This report was generated on **Mon Apr 28 17:30:07 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:07 CEST 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). +This report was generated on **Wed Apr 30 11:19:52 CEST 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:spine-validation-vanilla:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-vanilla:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -10056,12 +8107,12 @@ This report was generated on **Mon Apr 28 17:30:07 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:07 CEST 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). +This report was generated on **Wed Apr 30 11:19:52 CEST 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:spine-validation-configuration:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-configuration:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. @@ -10994,12 +9045,12 @@ This report was generated on **Mon Apr 28 17:30:07 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:07 CEST 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). +This report was generated on **Wed Apr 30 11:19:52 CEST 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:spine-validation-context:2.0.0-SNAPSHOT.316` +# Dependencies of `io.spine.validation:spine-validation-context:2.0.0-SNAPSHOT.317` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3. @@ -11932,4 +9983,4 @@ This report was generated on **Mon Apr 28 17:30:07 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Mon Apr 28 17:30:07 CEST 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 +This report was generated on **Wed Apr 30 11:19:53 CEST 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE). \ No newline at end of file diff --git a/pom.xml b/pom.xml index d7b3c85dcb..e73ec789d2 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ all modules and does not describe the project structure per-subproject. --> io.spine.validation validation -2.0.0-SNAPSHOT.316 +2.0.0-SNAPSHOT.317 2015 @@ -65,12 +65,6 @@ all modules and does not describe the project structure per-subproject. 2.0.0-SNAPSHOT.206 compile - - io.spine - spine-time - 2.0.0-SNAPSHOT.202 - compile - io.spine.protodata protodata-backend @@ -131,6 +125,12 @@ all modules and does not describe the project structure per-subproject. 5.9.1 test + + io.spine + spine-time + 2.0.0-SNAPSHOT.202 + test + io.spine.protodata protodata-api From 6a46733ec45f2b4bbe24476a803dc0e72e39c3ff Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 11:59:00 +0200 Subject: [PATCH 09/10] Remove the default implementation of `validate()` method --- .../java/generate/ValidationCodeInjector.kt | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/java/src/main/kotlin/io/spine/validation/java/generate/ValidationCodeInjector.kt b/java/src/main/kotlin/io/spine/validation/java/generate/ValidationCodeInjector.kt index 6079dc4824..4e63156ff6 100644 --- a/java/src/main/kotlin/io/spine/validation/java/generate/ValidationCodeInjector.kt +++ b/java/src/main/kotlin/io/spine/validation/java/generate/ValidationCodeInjector.kt @@ -93,7 +93,6 @@ internal class ValidationCodeInjector { execute { messageClass.apply { implementValidatableMessage() - declareDefaultValidateMethod() declareValidateMethod(code.constraints) declareSupportingFields(code.fields) declareSupportingMethods(code.methods) @@ -133,28 +132,6 @@ private fun MessagePsiClass.implementValidatableMessage() { implement(reference) } -/** - * Declares the `validate()` method in this [MessagePsiClass]. - * - * This is an implementation of [ValidatableMessage.validate] that doesn't accept - * any parameters. The actual constraints are contained in its [overload][declareValidateMethod], - * to which this method delegates. - */ -// TODO:2025-03-12:yevhenii.nadtochii: Remove it in a favour of the default implementation -// provided in the `ValidatableMessage` interface. -// See issue: https://github.com/SpineEventEngine/validation/issues/198 -private fun MessagePsiClass.declareDefaultValidateMethod() { - val psiMethod = elementFactory.createMethodFromText( - """ - public java.util.Optional validate() { - var noParentPath = $FieldPathClass.getDefaultInstance(); - return validate(noParentPath, null); - } - """.trimIndent(), this) - psiMethod.annotate(Override::class.java) - addLast(psiMethod) -} - /** * Declares the `validate(parentPath, parentName)` method in this [MessagePsiClass]. * From 9169ace9edea08c8f23c9e1e07c94c86a57321c2 Mon Sep 17 00:00:00 2001 From: yevhenii-nadtochii Date: Wed, 30 Apr 2025 14:22:15 +0200 Subject: [PATCH 10/10] Clean up `:java` dependencies --- dependencies.md | 24 ++++++++++++------------ java/build.gradle.kts | 10 +--------- pom.xml | 18 ------------------ 3 files changed, 13 insertions(+), 39 deletions(-) diff --git a/dependencies.md b/dependencies.md index 4bba1e0f10..49e7e20573 100644 --- a/dependencies.md +++ b/dependencies.md @@ -861,7 +861,7 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:50 CEST 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). +This report was generated on **Wed Apr 30 14:21:04 CEST 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). @@ -1466,7 +1466,7 @@ This report was generated on **Wed Apr 30 11:19:50 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:51 CEST 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). +This report was generated on **Wed Apr 30 14:21:04 CEST 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). @@ -2154,7 +2154,7 @@ This report was generated on **Wed Apr 30 11:19:51 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:51 CEST 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). +This report was generated on **Wed Apr 30 14:21:04 CEST 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). @@ -3007,7 +3007,7 @@ This report was generated on **Wed Apr 30 11:19:51 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:51 CEST 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). +This report was generated on **Wed Apr 30 14:21:04 CEST 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). @@ -3897,7 +3897,7 @@ This report was generated on **Wed Apr 30 11:19:51 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:51 CEST 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). +This report was generated on **Wed Apr 30 14:21:04 CEST 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). @@ -4851,7 +4851,7 @@ This report was generated on **Wed Apr 30 11:19:51 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:51 CEST 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). +This report was generated on **Wed Apr 30 14:21:05 CEST 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). @@ -5668,7 +5668,7 @@ This report was generated on **Wed Apr 30 11:19:51 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:52 CEST 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). +This report was generated on **Wed Apr 30 14:21:05 CEST 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). @@ -6501,7 +6501,7 @@ This report was generated on **Wed Apr 30 11:19:52 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:52 CEST 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). +This report was generated on **Wed Apr 30 14:21:05 CEST 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). @@ -7338,7 +7338,7 @@ This report was generated on **Wed Apr 30 11:19:52 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:52 CEST 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). +This report was generated on **Wed Apr 30 14:21:05 CEST 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). @@ -8107,7 +8107,7 @@ This report was generated on **Wed Apr 30 11:19:52 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:52 CEST 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). +This report was generated on **Wed Apr 30 14:21:05 CEST 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). @@ -9045,7 +9045,7 @@ This report was generated on **Wed Apr 30 11:19:52 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:52 CEST 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). +This report was generated on **Wed Apr 30 14:21:06 CEST 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). @@ -9983,4 +9983,4 @@ This report was generated on **Wed Apr 30 11:19:52 CEST 2025** using [Gradle-Lic The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Wed Apr 30 11:19:53 CEST 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 +This report was generated on **Wed Apr 30 14:21:06 CEST 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/build.gradle.kts b/java/build.gradle.kts index f09dba3de1..9c4092809b 100644 --- a/java/build.gradle.kts +++ b/java/build.gradle.kts @@ -24,8 +24,6 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import io.spine.dependency.lib.JavaPoet -import io.spine.dependency.lib.Roaster import io.spine.dependency.local.ProtoData plugins { @@ -33,13 +31,7 @@ plugins { } dependencies { + api(ProtoData.java) api(project(":model")) api(project(":proto:context")) - api(ProtoData.java) - - implementation(project(":java-runtime")) - implementation(JavaPoet.lib) - implementation(Roaster.api) - - runtimeOnly(Roaster.jdt) } diff --git a/pom.xml b/pom.xml index e73ec789d2..3b1877a7b4 100644 --- a/pom.xml +++ b/pom.xml @@ -41,12 +41,6 @@ all modules and does not describe the project structure per-subproject. 3.25.1 compile - - com.squareup - javapoet - 1.13.0 - compile - io.spine spine-base @@ -83,24 +77,12 @@ all modules and does not describe the project structure per-subproject. 2.0.0-SNAPSHOT.302 compile - - org.jboss.forge.roaster - roaster-api - 2.28.0.Final - compile - org.jetbrains.kotlin kotlin-stdlib 2.1.20 compile - - org.jboss.forge.roaster - roaster-jdt - 2.28.0.Final - runtime - com.google.truth truth