"bigInteger" : {
"type" : "boolean"
},
- "pojo" : {
+ "textual" : {
"type" : "boolean"
},
- "textual" : {
+ "pojo" : {
"type" : "boolean"
},
"nodeType" : {
"type" : "string",
"enum" : [ "ARRAY", "BINARY", "BOOLEAN", "MISSING", "NULL", "NUMBER", "OBJECT", "POJO", "STRING" ]
},
+ "short" : {
+ "type" : "boolean"
+ },
"array" : {
"type" : "boolean"
},
"number" : {
"type" : "boolean"
},
+ "object" : {
+ "type" : "boolean"
+ },
"boolean" : {
"type" : "boolean"
},
"long" : {
"type" : "boolean"
},
- "short" : {
- "type" : "boolean"
- },
"binary" : {
"type" : "boolean"
- },
- "object" : {
- "type" : "boolean"
}
}
},
"bigInteger" : {
"type" : "boolean"
},
+ "textual" : {
+ "type" : "boolean"
+ },
"pojo" : {
"type" : "boolean"
},
- "textual" : {
+ "short" : {
"type" : "boolean"
},
"array" : {
"number" : {
"type" : "boolean"
},
+ "object" : {
+ "type" : "boolean"
+ },
"boolean" : {
"type" : "boolean"
},
"long" : {
"type" : "boolean"
},
- "short" : {
- "type" : "boolean"
- },
"binary" : {
"type" : "boolean"
- },
- "object" : {
- "type" : "boolean"
}
}
},
"last" : {
"type" : "boolean"
},
+ "first" : {
+ "type" : "boolean"
+ },
"size" : {
"type" : "integer",
"format" : "int32"
"sort" : {
"$ref" : "#/definitions/Sort"
},
- "first" : {
- "type" : "boolean"
- },
"empty" : {
"type" : "boolean"
}
"last" : {
"type" : "boolean"
},
+ "first" : {
+ "type" : "boolean"
+ },
"size" : {
"type" : "integer",
"format" : "int32"
"sort" : {
"$ref" : "#/definitions/Sort"
},
- "first" : {
- "type" : "boolean"
- },
"empty" : {
"type" : "boolean"
}
"Sort" : {
"type" : "object",
"properties" : {
- "sorted" : {
- "type" : "boolean"
- },
"unsorted" : {
"type" : "boolean"
},
"empty" : {
"type" : "boolean"
+ },
+ "sorted" : {
+ "type" : "boolean"
}
}
},
<groupId>org.onap.ccsdk.cds.blueprintsprocessor.functions</groupId>
<artifactId>config-snapshots</artifactId>
</dependency>
+ <dependency>
+ <groupId>jakarta.xml.bind</groupId>
+ <artifactId>jakarta.xml.bind-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-runtime</artifactId>
+ </dependency>
<dependency>
<groupId>org.onap.ccsdk.cds.blueprintsprocessor.functions</groupId>
<artifactId>k8s-connection-plugin</artifactId>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
- <version>2.13.9</version>
+ <version>2.13.16</version>
</dependency>
<dependency>
<groupId>com.nhaarman.mockitokotlin2</groupId>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
- <version>2.13.9</version>
+ <version>2.13.16</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
</dependencies>
</project>
<dependency>
<groupId>io.nats</groupId>
<artifactId>java-nats-streaming</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>io.nats</groupId>
+ <artifactId>jnats</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.onap.ccsdk.cds.blueprintsprocessor.modules</groupId>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
- <version>2.13.9</version>
+ <version>2.13.16</version>
</dependency>
</dependencies>
</project>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
- <version>2.13.9</version>
+ <version>2.13.16</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.11.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<dependency>
<groupId>org.onap.ccsdk.sli.core</groupId>
<artifactId>sli-provider</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<groupId>org.onap.ccsdk.sli.core</groupId>
<artifactId>sli-provider-base</artifactId>
<version>${ccsdk.sli.core.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
</dependencies>
</project>
<jinja.version>2.7.0</jinja.version>
<guava.version>33.0.0-jre</guava.version>
<json-patch.version>1.9</json-patch.version>
- <json-smart.version>2.4.9</json-smart.version>
+ <json-smart.version>2.5.2</json-smart.version>
- <commons-io-version>2.14.0</commons-io-version>
+ <commons-io-version>2.17.0</commons-io-version>
<commons-compress-version>1.26.0</commons-compress-version>
<commons-collections-version>4.4</commons-collections-version>
+ <commons-beanutils-version>1.11.0</commons-beanutils-version>
+ <commons-text-version>1.10.0</commons-text-version>
+
+ <jsoup-version>1.15.3</jsoup-version>
+ <scala-version>2.13.16</scala-version>
+ <jetbrains-annotations-version>23.0.0</jetbrains-annotations-version>
+ <jsr305-version>3.0.2</jsr305-version>
</properties>
<dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>com.google.errorprone</groupId>
+ <artifactId>error_prone_annotations</artifactId>
+ <version>2.41.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-core-jvm</artifactId>
+ <version>1.9.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-reactive</artifactId>
+ <version>1.9.0</version>
+ </dependency>
+ <!-- Import Jakarta JAXB BOM -->
+ <dependency>
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-bom</artifactId>
+ <version>4.0.5</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <!-- Commons Logging: resolve 1.2 vs 1.3.5 -->
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.3.5</version>
+ </dependency>
+ <!-- Woodstox: match jackson-dataformat-xml expectation -->
+ <dependency>
+ <groupId>com.fasterxml.woodstox</groupId>
+ <artifactId>woodstox-core</artifactId>
+ <version>7.1.1</version>
+ </dependency>
+ <!-- ANTLR: unify to 4.13.0 referenced by Hibernate chain -->
+ <dependency>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-runtime</artifactId>
+ <version>4.13.0</version>
+ </dependency>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>jython-standalone</artifactId>
<version>${jython.version}</version>
</dependency>
+ <dependency>
+ <groupId>net.minidev</groupId>
+ <artifactId>json-smart</artifactId>
+ <version>${json-smart.version}</version>
+ </dependency>
+ <!-- commons-beanutils Dependency -->
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>${commons-beanutils-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-text</artifactId>
+ <version>${commons-text-version}</version>
+ </dependency>
+
+ <!-- jsoup Dependency -->
+ <dependency>
+ <groupId>org.jsoup</groupId>
+ <artifactId>jsoup</artifactId>
+ <version>${jsoup-version}</version>
+ </dependency>
+ <!-- protobuf-java and protobuf-java-utils -->
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>${protobuff.java.utils.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java-util</artifactId>
+ <version>${protobuff.java.utils.version}</version>
+ </dependency>
+ <!-- httpclient Dependency -->
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${apache.httpcomponents.client.version}</version>
+ </dependency>
+ <!-- scala Dependencies -->
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-library</artifactId>
+ <version>${scala-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-reflect</artifactId>
+ <version>${scala-version}</version>
+ </dependency>
+
+ <!-- JetBrains annotations -->
+ <dependency>
+ <groupId>org.jetbrains</groupId>
+ <artifactId>annotations</artifactId>
+ <version>${jetbrains-annotations-version}</version>
+ </dependency>
+ <!-- jsr305 Dependency -->
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <version>${jsr305-version}</version>
+ </dependency>
<!-- Kotlin Dependencies -->
<dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
+ <version>3.17.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
+ <version>2.17.0</version>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-script-util</artifactId>
<version>1.8.22</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-core</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-reactor</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<groupId>org.onap.ccsdk.cds.error.catalog</groupId>
<artifactId>error-catalog-core</artifactId>
</dependency>
- <!-- required for java 11 -->
+ <!-- Import Jakarta JAXB BOM -->
<dependency>
- <groupId>jakarta.xml.bind</groupId>
- <artifactId>jakarta.xml.bind-api</artifactId>
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-bom</artifactId>
+ <version>4.0.5</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <!-- required for java 11 -->
+ <!--<dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
- <version>4.0.4</version>
- </dependency>
+ <version>2.3.0</version>
+ </dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
+ <version>3.17.0</version>
</dependency>
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>error-catalog-services</artifactId>
<version>${error-catalog.version}</version>
</dependency>
+
+ <!-- commons-text Dependency -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-text</artifactId>
+ <version>1.10.0</version>
+ </dependency>
+ <!-- jetbrains-annotations Dependency -->
+ <dependency>
+ <groupId>org.jetbrains</groupId>
+ <artifactId>annotations</artifactId>
+ <version>23.0.0</version>
+ </dependency>
+ <!-- jsoup Dependency -->
+ <dependency>
+ <groupId>org.jsoup</groupId>
+ <artifactId>jsoup</artifactId>
+ <version>1.15.3</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson</groupId>
+ <artifactId>jackson-bom</artifactId>
+ <version>2.19.2</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-runtime</artifactId>
+ <version>4.13.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-core-jvm</artifactId>
+ <version>1.9.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-reactive</artifactId>
+ <version>1.9.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-core</artifactId>
+ <version>1.9.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-reactor</artifactId>
+ <version>1.9.0</version>
+ </dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-core</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
+
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-reactor</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-script-util</artifactId>
<version>1.8.22</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<!-- Kotlin Dependencies -->
<dependency>
<kafka.version>3.3.1</kafka.version>
<jmockit.version>1.49</jmockit.version>
<reactorcore.version>3.2.6.RELEASE</reactorcore.version>
+
+ <jsoup-version>1.15.3</jsoup-version>
+ <jetbrains-annotations-version>23.0.0</jetbrains-annotations-version>
+ <error-prone-annotations-version>2.41.0</error-prone-annotations-version>
</properties>
<dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-core</artifactId>
+ <version>1.9.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-reactor</artifactId>
+ <version>1.9.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-core-jvm</artifactId>
+ <version>1.9.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlinx</groupId>
+ <artifactId>kotlinx-coroutines-reactive</artifactId>
+ <version>1.9.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.woodstox</groupId>
+ <artifactId>woodstox-core</artifactId>
+ <version>7.1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.5.14</version>
+ </dependency>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
- <version>3.2.1</version>
+ <version>3.17.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.14.0</version>
+ <version>2.17.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
</exclusions>
</dependency>
+ <!-- error_prone_annotation Dependency -->
+ <dependency>
+ <groupId>com.google.errorprone</groupId>
+ <artifactId>error_prone_annotations</artifactId>
+ <version>${error-prone-annotations-version}</version>
+ </dependency>
+ <!-- JetBrains annotations Dependency -->
+ <dependency>
+ <groupId>org.jetbrains</groupId>
+ <artifactId>annotations</artifactId>
+ <version>${jetbrains-annotations-version}</version>
+ </dependency>
+ <!-- jsoup Dependency -->
+ <dependency>
+ <groupId>org.jsoup</groupId>
+ <artifactId>jsoup</artifactId>
+ <version>${jsoup-version}</version>
+ </dependency>
+
<!-- Test Dependency -->
<dependency>
<groupId>io.grpc</groupId>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-compiler-embeddable</artifactId>
- <version>1.7.0</version>
+ <version>1.9.25</version>
</dependency>
</dependencies>
</dependencyManagement>
<ccsdk.sli.version>1.5.2</ccsdk.sli.version>
<ccsdk.cds.version>${project.version}</ccsdk.cds.version>
- <kotlin.version>1.9.0</kotlin.version>
+ <kotlin.version>1.9.25</kotlin.version>
<kotlin.maven.version>1.9.0</kotlin.maven.version>
<kotlin.couroutines.version>1.9.0</kotlin.couroutines.version>
<kotlinpoet.version>1.11.0</kotlinpoet.version>
<apache.httpcomponents.client.version>4.5.14</apache.httpcomponents.client.version>
- <bytebuddy.version>1.14.17</bytebuddy.version>
+ <bytebuddy.version>1.17.7</bytebuddy.version>
<grpc.version>1.29.0</grpc.version>
<netty-ssl>2.0.70.Final</netty-ssl>
<protobuff.java.version>3.25.8</protobuff.java.version>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
- <version>2.0</version>
+ <version>2.4</version>
</dependency>
-
</dependencies>
<build>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
+ <!-- MAVEN ENFORCER PLUGIN – ensures dependency hygiene -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>3.4.1</version>
+ <executions>
+ <execution>
+ <id>enforce</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <fail>true</fail>
+ <rules>
+ <!-- Enforce dependency convergence -->
+ <dependencyConvergence>
+ <message>
+ Dependency convergence failure: multiple versions detected.
+ </message>
+ </dependencyConvergence>
+
+ <!-- Ban legacy/broken or security-vulnerable dependencies -->
+ <bannedDependencies>
+ <searchTransitive>true</searchTransitive>
+ <excludes>
+ <!-- Old JAXB -->
+ <exclude>com.sun.xml.bind:jaxb-impl</exclude>
+ <exclude>com.sun.xml.bind:jaxb-core</exclude>
+
+ <!-- Vulnerable or obsolete libs -->
+ <exclude>commons-collections:commons-collections:[3.0,4.0)</exclude>
+
+ <!-- Ban all 1.8.x -->
+ <exclude>commons-beanutils:commons-beanutils:[1.8,1.9)</exclude>
+
+ <!-- Ban exactly 1.9.0 -->
+ <exclude>commons-beanutils:commons-beanutils:[1.9.0]</exclude>
+
+ <exclude>org.hsqldb:hsqldb:1.*</exclude>
+
+ <!-- Bad Netty versions (incompatible with Reactor & gRPC) -->
+ <exclude>io.netty:netty-*: [4.1.50,4.1.60)</exclude>
+
+ <!-- Ban all kotlin-stdlib versions except 1.9.25 -->
+ <exclude>org.jetbrains.kotlin:kotlin-stdlib:(,1.9.25),(1.9.25,)</exclude>
+
+ <!-- Ban all jakarta xml bind versions except 4.0.2 -->
+ <exclude>jakarta.xml.bind:jakarta.xml.bind-api:(,4.0.2),(4.0.2,)</exclude>
+
+ </excludes>
+ <message>
+ Forbidden dependency detected — remove or upgrade to compliant version.
+ </message>
+ </bannedDependencies>
+
+ <!-- Require consistent dependency versions (Kotlin/Netty/Jakarta/etc.) -->
+ <requireUpperBoundDeps>
+ <message>
+ Version conflict detected — upper bound rule violated.
+ </message>
+ </requireUpperBoundDeps>
+
+ <!-- Require Java 17+ -->
+ <requireJavaVersion>
+ <version>[17,)</version>
+ <message>
+ Java 17+ is required to build ccsdk-cds.
+ </message>
+ </requireJavaVersion>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>