diff --git a/samples/sample-all/build.gradle.kts b/samples/sample-all/build.gradle.kts index fdff2168..7cbb7d6f 100644 --- a/samples/sample-all/build.gradle.kts +++ b/samples/sample-all/build.gradle.kts @@ -274,13 +274,13 @@ jvmDependencyConflicts { enforceSlf4JSimple() } conflictResolution { - select(CapabilityDefinition.BOUNCYCASTLE_BCMAIL, "org.bouncycastle:bcmail-lts8on") - select(CapabilityDefinition.BOUNCYCASTLE_BCPG, "org.bouncycastle:bcpg-lts8on") - select(CapabilityDefinition.BOUNCYCASTLE_BCPKIX, "org.bouncycastle:bcpkix-lts8on") - select(CapabilityDefinition.BOUNCYCASTLE_BCPROV, "org.bouncycastle:bcprov-lts8on") - select(CapabilityDefinition.BOUNCYCASTLE_BCTLS, "org.bouncycastle:bctls-lts8on") + select(CapabilityDefinition.BOUNCYCASTLE_BCMAIL, "org.bouncycastle:bcmail-jdk18on") + select(CapabilityDefinition.BOUNCYCASTLE_BCPG, "org.bouncycastle:bcpg-jdk18on") + select(CapabilityDefinition.BOUNCYCASTLE_BCPKIX, "org.bouncycastle:bcpkix-jdk18on") + select(CapabilityDefinition.BOUNCYCASTLE_BCPROV, "org.bouncycastle:bcprov-jdk18on") + select(CapabilityDefinition.BOUNCYCASTLE_BCTLS, "org.bouncycastle:bctls-jdk18on") select(CapabilityDefinition.BOUNCYCASTLE_BCTSP, "org.bouncycastle:bctsp-jdk15on") - select(CapabilityDefinition.BOUNCYCASTLE_BCUTIL, "org.bouncycastle:bcutil-lts8on") + select(CapabilityDefinition.BOUNCYCASTLE_BCUTIL, "org.bouncycastle:bcutil-jdk18on") select(CapabilityDefinition.CGLIB, "cglib:cglib") select(CapabilityDefinition.JAKARTA_SERVLET_API, "jakarta.servlet:jakarta.servlet-api") select(CapabilityDefinition.JAVAX_ACTIVATION_API, "javax.activation:javax.activation-api") diff --git a/samples/sample-all/build.out b/samples/sample-all/build.out index c35cf3c3..df252fe9 100644 --- a/samples/sample-all/build.out +++ b/samples/sample-all/build.out @@ -205,84 +205,83 @@ compileClasspath - Compile classpath for source set 'main'. | +--- org.apache.commons:commons-lang3:3.17.0 | \--- org.slf4j:slf4j-api:1.7.36 -> 2.0.17 (*) +--- org.apache.velocity:velocity:1.7 -> org.apache.velocity:velocity-engine-core:2.4.1 (*) -+--- org.bouncycastle:bc-fips-debug:2.1.0 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bc-fips:2.1.0 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcjmail-jdk15on:1.70 -> org.bouncycastle:bcmail-lts8on:2.73.7 -| \--- org.bouncycastle:bcpkix-lts8on:[2.73.7,2.74.0) -> 2.73.7 -| \--- org.bouncycastle:bcutil-lts8on:[2.73.7,2.74.0) -> 2.73.7 -| \--- org.bouncycastle:bcprov-lts8on:[2.73.7,2.74.0) -> 2.73.7 -+--- org.bouncycastle:bcjmail-jdk15to18:1.80 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcjmail-jdk18on:1.80 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcjmail-lts8on:2.73.7 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcmail-fips:2.1.6 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcmail-jdk14:1.80 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcmail-jdk15+:1.46 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcmail-jdk15:1.46 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcmail-jdk15on:1.70 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcmail-jdk15to18:1.80 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcmail-jdk16:1.46 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcmail-jdk18on:1.80 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcmail-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpg-fips:2.1.11 -> org.bouncycastle:bcpg-lts8on:2.73.7 -| +--- org.bouncycastle:bcprov-lts8on:[2.73.7,2.74.0) -> 2.73.7 -| \--- org.bouncycastle:bcutil-lts8on:[2.73.7,2.74.0) -> 2.73.7 (*) -+--- org.bouncycastle:bcpg-jdk12:130 -> org.bouncycastle:bcpg-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpg-jdk14:1.80 -> org.bouncycastle:bcpg-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpg-jdk15+:1.46 -> org.bouncycastle:bcpg-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpg-jdk15:1.46 -> org.bouncycastle:bcpg-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpg-jdk15on:1.70 -> org.bouncycastle:bcpg-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpg-jdk15to18:1.80 -> org.bouncycastle:bcpg-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpg-jdk16:1.46 -> org.bouncycastle:bcpg-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpg-jdk18on:1.80 -> org.bouncycastle:bcpg-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpg-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpkix-fips:2.1.9 -> org.bouncycastle:bcpkix-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpkix-jdk14:1.80 -> org.bouncycastle:bcpkix-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpkix-jdk15on:1.70 -> org.bouncycastle:bcpkix-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpkix-jdk15to18:1.80 -> org.bouncycastle:bcpkix-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpkix-jdk18on:1.80 -> org.bouncycastle:bcpkix-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcpkix-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcprov-debug-jdk14:1.80 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-debug-jdk15on:1.70 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-debug-jdk15to18:1.79 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-debug-jdk18on:1.79 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-debug-jdk14:1.74 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-debug-jdk15on:1.70 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-debug-jdk15to18:1.77 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-debug-jdk18on:1.77 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-jdk14:1.78.1 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-jdk15:1.46 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-jdk15on:1.70 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-jdk15to18:1.78.1 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-jdk16:1.46 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-ext-jdk18on:1.78.1 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-jdk12:130 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-jdk14:1.80 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-jdk15+:1.46 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-jdk15:1.46 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-jdk15on:1.70 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-jdk15to18:1.80 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-jdk16:1.46 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-jdk18on:1.80 -> org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bcprov-lts8on:2.73.7 -+--- org.bouncycastle:bctls-fips:2.1.20 -> org.bouncycastle:bctls-lts8on:2.73.7 -| \--- org.bouncycastle:bcutil-lts8on:[2.73.7,2.74.0) -> 2.73.7 (*) -+--- org.bouncycastle:bctls-jdk14:1.80 -> org.bouncycastle:bctls-lts8on:2.73.7 (*) -+--- org.bouncycastle:bctls-jdk15on:1.70 -> org.bouncycastle:bctls-lts8on:2.73.7 (*) -+--- org.bouncycastle:bctls-jdk15to18:1.80 -> org.bouncycastle:bctls-lts8on:2.73.7 (*) -+--- org.bouncycastle:bctls-jdk18on:1.80 -> org.bouncycastle:bctls-lts8on:2.73.7 (*) -+--- org.bouncycastle:bctls-lts8on:2.73.7 (*) ++--- org.bouncycastle:bc-fips-debug:2.1.0 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bc-fips:2.1.0 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcjmail-jdk15on:1.70 -> org.bouncycastle:bcmail-jdk18on:1.80 +| \--- org.bouncycastle:bcpkix-jdk18on:[1.80,1.81) -> 1.80 +| \--- org.bouncycastle:bcutil-jdk18on:[1.80,1.81) -> 1.80 +| \--- org.bouncycastle:bcprov-jdk18on:[1.80,1.81) -> 1.80 ++--- org.bouncycastle:bcjmail-jdk15to18:1.80 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcjmail-jdk18on:1.80 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcjmail-lts8on:2.73.7 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcmail-fips:2.1.6 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcmail-jdk14:1.80 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcmail-jdk15+:1.46 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcmail-jdk15:1.46 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcmail-jdk15on:1.70 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcmail-jdk15to18:1.80 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcmail-jdk16:1.46 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcmail-lts8on:2.73.7 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpg-fips:2.1.11 -> org.bouncycastle:bcpg-jdk18on:1.80 +| \--- org.bouncycastle:bcprov-jdk18on:[1.80,1.81) -> 1.80 ++--- org.bouncycastle:bcpg-jdk12:130 -> org.bouncycastle:bcpg-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpg-jdk14:1.80 -> org.bouncycastle:bcpg-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpg-jdk15+:1.46 -> org.bouncycastle:bcpg-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpg-jdk15:1.46 -> org.bouncycastle:bcpg-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpg-jdk15on:1.70 -> org.bouncycastle:bcpg-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpg-jdk15to18:1.80 -> org.bouncycastle:bcpg-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpg-jdk16:1.46 -> org.bouncycastle:bcpg-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpg-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpg-lts8on:2.73.7 -> org.bouncycastle:bcpg-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpkix-fips:2.1.9 -> org.bouncycastle:bcpkix-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpkix-jdk14:1.80 -> org.bouncycastle:bcpkix-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpkix-jdk15on:1.70 -> org.bouncycastle:bcpkix-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpkix-jdk15to18:1.80 -> org.bouncycastle:bcpkix-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpkix-jdk18on:1.80 (*) ++--- org.bouncycastle:bcpkix-lts8on:2.73.7 -> org.bouncycastle:bcpkix-jdk18on:1.80 (*) ++--- org.bouncycastle:bcprov-debug-jdk14:1.80 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-debug-jdk15on:1.70 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-debug-jdk15to18:1.79 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-debug-jdk18on:1.79 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-debug-jdk14:1.74 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-debug-jdk15on:1.70 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-debug-jdk15to18:1.77 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-debug-jdk18on:1.77 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-jdk14:1.78.1 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-jdk15:1.46 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-jdk15on:1.70 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-jdk15to18:1.78.1 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-jdk16:1.46 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-ext-jdk18on:1.78.1 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-jdk12:130 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-jdk14:1.80 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-jdk15+:1.46 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-jdk15:1.46 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-jdk15on:1.70 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-jdk15to18:1.80 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-jdk16:1.46 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bcprov-lts8on:2.73.7 -> org.bouncycastle:bcprov-jdk18on:1.80 ++--- org.bouncycastle:bctls-fips:2.1.20 -> org.bouncycastle:bctls-jdk18on:1.80 +| \--- org.bouncycastle:bcutil-jdk18on:[1.80,1.81) -> 1.80 (*) ++--- org.bouncycastle:bctls-jdk14:1.80 -> org.bouncycastle:bctls-jdk18on:1.80 (*) ++--- org.bouncycastle:bctls-jdk15on:1.70 -> org.bouncycastle:bctls-jdk18on:1.80 (*) ++--- org.bouncycastle:bctls-jdk15to18:1.80 -> org.bouncycastle:bctls-jdk18on:1.80 (*) ++--- org.bouncycastle:bctls-jdk18on:1.80 (*) ++--- org.bouncycastle:bctls-lts8on:2.73.7 -> org.bouncycastle:bctls-jdk18on:1.80 (*) +--- org.bouncycastle:bctsp-jdk14:1.46 -> org.bouncycastle:bctsp-jdk15on:1.46 -| +--- org.bouncycastle:bcprov-jdk15on:1.46 -> org.bouncycastle:bcprov-lts8on:2.73.7 -| \--- org.bouncycastle:bcmail-jdk15on:1.46 -> org.bouncycastle:bcmail-lts8on:2.73.7 (*) +| +--- org.bouncycastle:bcprov-jdk15on:1.46 -> org.bouncycastle:bcprov-jdk18on:1.80 +| \--- org.bouncycastle:bcmail-jdk15on:1.46 -> org.bouncycastle:bcmail-jdk18on:1.80 (*) +--- org.bouncycastle:bctsp-jdk15+:1.46 -> org.bouncycastle:bctsp-jdk15on:1.46 (*) +--- org.bouncycastle:bctsp-jdk15:1.46 -> org.bouncycastle:bctsp-jdk15on:1.46 (*) +--- org.bouncycastle:bctsp-jdk15on:1.46 (*) +--- org.bouncycastle:bctsp-jdk16:1.46 -> org.bouncycastle:bctsp-jdk15on:1.46 (*) -+--- org.bouncycastle:bcutil-jdk14:1.80 -> org.bouncycastle:bcutil-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcutil-jdk15on:1.70 -> org.bouncycastle:bcutil-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcutil-jdk15to18:1.80 -> org.bouncycastle:bcutil-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcutil-jdk18on:1.80 -> org.bouncycastle:bcutil-lts8on:2.73.7 (*) -+--- org.bouncycastle:bcutil-lts8on:2.73.7 (*) ++--- org.bouncycastle:bcutil-jdk14:1.80 -> org.bouncycastle:bcutil-jdk18on:1.80 (*) ++--- org.bouncycastle:bcutil-jdk15on:1.70 -> org.bouncycastle:bcutil-jdk18on:1.80 (*) ++--- org.bouncycastle:bcutil-jdk15to18:1.80 -> org.bouncycastle:bcutil-jdk18on:1.80 (*) ++--- org.bouncycastle:bcutil-jdk18on:1.80 (*) ++--- org.bouncycastle:bcutil-lts8on:2.73.7 -> org.bouncycastle:bcutil-jdk18on:1.80 (*) +--- org.codehaus.woodstox:woodstox-core-asl:4.4.1 | +--- javax.xml.stream:stax-api:1.0-2 -> stax:stax-api:1.0.1 | \--- org.codehaus.woodstox:stax2-api:3.1.4 diff --git a/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/CapabilityDefinition.java b/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/CapabilityDefinition.java index 57f6b499..822cf1a7 100644 --- a/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/CapabilityDefinition.java +++ b/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/CapabilityDefinition.java @@ -17,6 +17,7 @@ package org.gradlex.jvm.dependency.conflict.detection.rules; import org.gradlex.jvm.dependency.conflict.detection.rules.aopalliance.AopallianceRule; +import org.gradlex.jvm.dependency.conflict.detection.rules.bouncycastle.BouncyCastleRule; import org.gradlex.jvm.dependency.conflict.detection.rules.guava.GuavaListenableFutureRule; import org.gradlex.jvm.dependency.conflict.detection.rules.jakarta.JakartaActivationApiRule; import org.gradlex.jvm.dependency.conflict.detection.rules.jakarta.JakartaAnnotationApiRule; @@ -69,7 +70,7 @@ public enum CapabilityDefinition { "asm:asm", "org.ow2.asm:asm" ), - BOUNCYCASTLE_BCMAIL(HIGHEST_VERSION, + BOUNCYCASTLE_BCMAIL(HIGHEST_VERSION, BouncyCastleRule.class, "org.bouncycastle:bcmail-fips", "org.bouncycastle:bcmail-jdk14", "org.bouncycastle:bcmail-jdk15", @@ -84,7 +85,7 @@ public enum CapabilityDefinition { "org.bouncycastle:bcjmail-jdk18on", "org.bouncycastle:bcjmail-lts8on" ), - BOUNCYCASTLE_BCPG(HIGHEST_VERSION, + BOUNCYCASTLE_BCPG(HIGHEST_VERSION, BouncyCastleRule.class, "org.bouncycastle:bcpg-fips", "org.bouncycastle:bcpg-jdk12", "org.bouncycastle:bcpg-jdk14", @@ -96,7 +97,7 @@ public enum CapabilityDefinition { "org.bouncycastle:bcpg-jdk18on", "org.bouncycastle:bcpg-lts8on" ), - BOUNCYCASTLE_BCPKIX(HIGHEST_VERSION, + BOUNCYCASTLE_BCPKIX(HIGHEST_VERSION, BouncyCastleRule.class, "org.bouncycastle:bcpkix-fips", "org.bouncycastle:bcpkix-jdk14", "org.bouncycastle:bcpkix-jdk15on", @@ -104,7 +105,7 @@ public enum CapabilityDefinition { "org.bouncycastle:bcpkix-jdk18on", "org.bouncycastle:bcpkix-lts8on" ), - BOUNCYCASTLE_BCPROV(HIGHEST_VERSION, + BOUNCYCASTLE_BCPROV(HIGHEST_VERSION, BouncyCastleRule.class, "org.bouncycastle:bcprov-debug-jdk14", "org.bouncycastle:bcprov-debug-jdk15on", "org.bouncycastle:bcprov-debug-jdk15to18", @@ -131,7 +132,7 @@ public enum CapabilityDefinition { "org.bouncycastle:bc-fips", "org.bouncycastle:bc-fips-debug" ), - BOUNCYCASTLE_BCTLS(HIGHEST_VERSION, + BOUNCYCASTLE_BCTLS(HIGHEST_VERSION, BouncyCastleRule.class, "org.bouncycastle:bctls-jdk14", "org.bouncycastle:bctls-jdk15on", "org.bouncycastle:bctls-jdk15to18", @@ -139,14 +140,14 @@ public enum CapabilityDefinition { "org.bouncycastle:bctls-lts8on", "org.bouncycastle:bctls-fips" ), - BOUNCYCASTLE_BCTSP(HIGHEST_VERSION, + BOUNCYCASTLE_BCTSP(HIGHEST_VERSION, BouncyCastleRule.class, "org.bouncycastle:bctsp-jdk14", "org.bouncycastle:bctsp-jdk15", "org.bouncycastle:bctsp-jdk15+", "org.bouncycastle:bctsp-jdk15on", "org.bouncycastle:bctsp-jdk16" ), - BOUNCYCASTLE_BCUTIL(HIGHEST_VERSION, + BOUNCYCASTLE_BCUTIL(HIGHEST_VERSION, BouncyCastleRule.class, "org.bouncycastle:bcutil-jdk14", "org.bouncycastle:bcutil-jdk15on", "org.bouncycastle:bcutil-jdk15to18", diff --git a/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/bouncycastle/BouncyCastleRule.java b/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/bouncycastle/BouncyCastleRule.java new file mode 100644 index 00000000..d590f408 --- /dev/null +++ b/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/bouncycastle/BouncyCastleRule.java @@ -0,0 +1,47 @@ +/* + * Copyright the GradleX team. + * + * 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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.gradlex.jvm.dependency.conflict.detection.rules.bouncycastle; + +import org.gradle.api.artifacts.CacheableRule; +import org.gradle.api.artifacts.ModuleVersionIdentifier; +import org.gradlex.jvm.dependency.conflict.detection.rules.CapabilityDefinition; +import org.gradlex.jvm.dependency.conflict.detection.rules.CapabilityDefinitionRule; + +import javax.inject.Inject; + +@CacheableRule +public abstract class BouncyCastleRule extends CapabilityDefinitionRule { + + @Inject + public BouncyCastleRule(CapabilityDefinition rule) { + super(rule); + } + + @Override + protected String getVersion(ModuleVersionIdentifier id) { + // The 2.x LTS versions correspond to the 1.x non-lts versions + String version = id.getVersion(); + if (id.getName().contains("-lts") && version.startsWith("2.")) { + return "1." + version.substring(2); + } + if (!version.contains(".")) { + // Weird version: bcprov-jdk12:130 + return "1.0"; + } + return super.getVersion(id); + } +} diff --git a/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/bouncycastle/package-info.java b/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/bouncycastle/package-info.java new file mode 100644 index 00000000..c7b903bc --- /dev/null +++ b/src/main/java/org/gradlex/jvm/dependency/conflict/detection/rules/bouncycastle/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright the GradleX team. + * + * 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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@NonNullApi +package org.gradlex.jvm.dependency.conflict.detection.rules.bouncycastle; + +import org.gradle.api.NonNullApi; \ No newline at end of file