diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/build.gradle b/dd-java-agent/instrumentation/spring-scheduling-3.1/build.gradle index e7f76915624..ec67b53ab3a 100644 --- a/dd-java-agent/instrumentation/spring-scheduling-3.1/build.gradle +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/build.gradle @@ -1,7 +1,9 @@ ext { + latestDepForkedTestMinJavaVersionForTests = JavaVersion.VERSION_17 + latestDepTestMinJavaVersionForTests = JavaVersion.VERSION_17 spring6TestMinJavaVersionForTests = JavaVersion.VERSION_17 - spring6LatestDepTestMinJavaVersionForTests = JavaVersion.VERSION_17 } + muzzle { pass { group = 'org.springframework' @@ -20,22 +22,30 @@ muzzle { apply from: "$rootDir/gradle/java.gradle" -addTestSuiteForDir('latestDepTest', 'test') +addTestSuite('latestDepTest') +addTestSuiteExtendingForDir('latestDepForkedTest','latestDepTest', 'latestDepTest') addTestSuiteForDir('spring6Test', 'test') -addTestSuiteExtendingForDir('spring6LatestDepTest', 'latestDepTest', 'test') +addTestSuiteForDir('latestSpring5Test', 'test') -[compileSpring6TestJava, compileSpring6LatestDepTestJava].each { +[compileSpring6TestJava, compileLatestDepTestJava, compileLatestDepForkedTestJava].each { setJavaVersion(it, 17) sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } -[compileSpring6TestGroovy, compileSpring6LatestDepTestGroovy, spring6Test, spring6LatestDepTest].each { +[ + compileSpring6TestGroovy, + compileLatestDepTestGroovy, + compileLatestDepForkedTestGroovy, + spring6Test, + latestDepTest, + latestDepForkedTest +].each { it.javaLauncher = getJavaLauncherFor(17) } -[spring6Test, spring6LatestDepTest].each { +[spring6Test, latestDepTest, latestDepForkedTest].each { it.jvmArgs '--add-opens', 'java.base/java.util=ALL-UNNAMED' } @@ -55,19 +65,17 @@ dependencies { testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: '2.4.0' - latestDepTestImplementation group: 'org.springframework', name: 'spring-context', version: '5.+' + latestSpring5TestImplementation group: 'org.springframework', name: 'spring-context', version: '5.+' - latestDepTestImplementation group: 'net.javacrumbs.shedlock', name: 'shedlock-spring', version: '4.+' - latestDepTestImplementation group: 'net.javacrumbs.shedlock', name: 'shedlock-provider-jdbc-template', version: '4.+' - latestDepTestImplementation group: 'com.h2database', name: 'h2', version: '2.2.+' // 2.3+ requires Java 11 - latestDepTestImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.+' + latestSpring5TestImplementation group: 'net.javacrumbs.shedlock', name: 'shedlock-spring', version: '4.+' + latestSpring5TestImplementation group: 'net.javacrumbs.shedlock', name: 'shedlock-provider-jdbc-template', version: '4.+' + latestSpring5TestImplementation group: 'com.h2database', name: 'h2', version: '2.2.+' // 2.3+ requires Java 11 + latestSpring5TestImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.+' spring6TestImplementation group: 'org.springframework', name: 'spring-context', version: '6.0.0.RELEASE' spring6TestImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '3.0.0' - spring6LatestDepTestImplementation group: 'com.h2database', name: 'h2', version: '+' - spring6LatestDepTestImplementation group: 'org.springframework', name: 'spring-context', version: '6.+' - spring6LatestDepTestImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '3.+' - - + latestDepTestImplementation group: 'com.h2database', name: 'h2', version: '+' + latestDepTestImplementation group: 'org.springframework', name: 'spring-context', version: '6.+' + latestDepTestImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '3.+' } diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/gradle.lockfile b/dd-java-agent/instrumentation/spring-scheduling-3.1/gradle.lockfile index 400fcac5ad6..f4c064fb8cf 100644 --- a/dd-java-agent/instrumentation/spring-scheduling-3.1/gradle.lockfile +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/gradle.lockfile @@ -1,119 +1,120 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -antlr:antlr:2.7.7=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -cafe.cryptography:curve25519-elisabeth:0.1.0=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -cafe.cryptography:ed25519-elisabeth:0.1.0=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -ch.qos.logback:logback-classic:1.2.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +antlr:antlr:2.7.7=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +cafe.cryptography:curve25519-elisabeth:0.1.0=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +cafe.cryptography:ed25519-elisabeth:0.1.0=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +ch.qos.logback:logback-classic:1.2.12=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath ch.qos.logback:logback-classic:1.2.3=testCompileClasspath,testRuntimeClasspath ch.qos.logback:logback-classic:1.4.5=spring6TestCompileClasspath,spring6TestRuntimeClasspath -ch.qos.logback:logback-classic:1.5.12=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -ch.qos.logback:logback-core:1.2.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +ch.qos.logback:logback-classic:1.5.16=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +ch.qos.logback:logback-core:1.2.12=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath ch.qos.logback:logback-core:1.2.3=testCompileClasspath,testRuntimeClasspath ch.qos.logback:logback-core:1.4.5=spring6TestCompileClasspath,spring6TestRuntimeClasspath -ch.qos.logback:logback-core:1.5.12=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -com.beust:jcommander:1.78=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.blogspot.mydailyjava:weak-lock-free:0.17=compileClasspath,instrumentPluginClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.datadoghq.okhttp3:okhttp:3.12.15=compileClasspath,instrumentPluginClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.datadoghq.okio:okio:1.17.6=compileClasspath,instrumentPluginClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.datadoghq:dd-javac-plugin-client:0.2.2=compileClasspath,instrumentPluginClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.datadoghq:java-dogstatsd-client:4.4.3=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.datadoghq:sketches-java:0.8.3=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.core:jackson-annotations:2.11.3=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.core:jackson-core:2.11.3=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.core:jackson-databind:2.11.3=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.3=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.fasterxml:classmate:1.5.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.github.javaparser:javaparser-core:3.25.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.github.jnr:jffi:1.3.13=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-a64asm:1.0.0=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-constants:0.10.4=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-enxio:0.32.17=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-ffi:2.2.16=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-posix:3.1.19=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-unixsocket:0.38.22=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-x86asm:1.0.2=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -com.github.spotbugs:spotbugs-annotations:4.2.0=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +ch.qos.logback:logback-core:1.5.16=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +com.beust:jcommander:1.78=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.blogspot.mydailyjava:weak-lock-free:0.17=compileClasspath,instrumentPluginClasspath,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.datadoghq.okhttp3:okhttp:3.12.15=compileClasspath,instrumentPluginClasspath,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.datadoghq.okio:okio:1.17.6=compileClasspath,instrumentPluginClasspath,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.datadoghq:dd-javac-plugin-client:0.2.2=compileClasspath,instrumentPluginClasspath,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.datadoghq:java-dogstatsd-client:4.4.3=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.datadoghq:sketches-java:0.8.3=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-annotations:2.11.3=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-core:2.11.3=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.11.3=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.3=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.fasterxml:classmate:1.5.1=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.github.javaparser:javaparser-core:3.25.1=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.github.jnr:jffi:1.3.13=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.github.jnr:jnr-a64asm:1.0.0=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.github.jnr:jnr-constants:0.10.4=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.github.jnr:jnr-enxio:0.32.17=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.github.jnr:jnr-ffi:2.2.16=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.github.jnr:jnr-posix:3.1.19=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.github.jnr:jnr-unixsocket:0.38.22=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.github.jnr:jnr-x86asm:1.0.2=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.github.spotbugs:spotbugs-annotations:4.2.0=compileClasspath,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.spotbugs:spotbugs-annotations:4.7.3=spotbugs com.github.spotbugs:spotbugs:4.7.3=spotbugs -com.github.stefanbirkner:system-rules:1.19.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.auto.service:auto-service-annotations:1.0-rc7=annotationProcessor,compileClasspath,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,spring6LatestDepTestAnnotationProcessor,spring6LatestDepTestCompileClasspath,spring6TestAnnotationProcessor,spring6TestCompileClasspath,testAnnotationProcessor,testCompileClasspath -com.google.auto.service:auto-service:1.0-rc7=annotationProcessor,latestDepTestAnnotationProcessor,spring6LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor -com.google.auto:auto-common:0.10=annotationProcessor,latestDepTestAnnotationProcessor,spring6LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor -com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,compileClasspath,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spotbugs,spring6LatestDepTestAnnotationProcessor,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestAnnotationProcessor,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.github.stefanbirkner:system-rules:1.19.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auto.service:auto-service-annotations:1.0-rc7=annotationProcessor,compileClasspath,latestDepForkedTestAnnotationProcessor,latestDepForkedTestCompileClasspath,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,latestSpring5TestAnnotationProcessor,latestSpring5TestCompileClasspath,spring5LatestDepTestAnnotationProcessor,spring5LatestDepTestCompileClasspath,spring6TestAnnotationProcessor,spring6TestCompileClasspath,testAnnotationProcessor,testCompileClasspath +com.google.auto.service:auto-service:1.0-rc7=annotationProcessor,latestDepForkedTestAnnotationProcessor,latestDepTestAnnotationProcessor,latestSpring5TestAnnotationProcessor,spring5LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor +com.google.auto:auto-common:0.10=annotationProcessor,latestDepForkedTestAnnotationProcessor,latestDepTestAnnotationProcessor,latestSpring5TestAnnotationProcessor,spring5LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor +com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,compileClasspath,latestDepForkedTestAnnotationProcessor,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestAnnotationProcessor,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spotbugs,spring5LatestDepTestAnnotationProcessor,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestAnnotationProcessor,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.code.gson:gson:2.9.1=spotbugs -com.google.errorprone:error_prone_annotations:2.2.0=annotationProcessor,latestDepTestAnnotationProcessor,spring6LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor -com.google.guava:failureaccess:1.0.1=annotationProcessor,latestDepTestAnnotationProcessor,spring6LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor -com.google.guava:guava:20.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:guava:27.0.1-jre=annotationProcessor,latestDepTestAnnotationProcessor,spring6LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,latestDepTestAnnotationProcessor,spring6LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor -com.google.j2objc:j2objc-annotations:1.1=annotationProcessor,latestDepTestAnnotationProcessor,spring6LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor -com.google.re2j:re2j:1.7=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_annotations:2.2.0=annotationProcessor,latestDepForkedTestAnnotationProcessor,latestDepTestAnnotationProcessor,latestSpring5TestAnnotationProcessor,spring5LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor +com.google.guava:failureaccess:1.0.1=annotationProcessor,latestDepForkedTestAnnotationProcessor,latestDepTestAnnotationProcessor,latestSpring5TestAnnotationProcessor,spring5LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor +com.google.guava:guava:20.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.guava:guava:27.0.1-jre=annotationProcessor,latestDepForkedTestAnnotationProcessor,latestDepTestAnnotationProcessor,latestSpring5TestAnnotationProcessor,spring5LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,latestDepForkedTestAnnotationProcessor,latestDepTestAnnotationProcessor,latestSpring5TestAnnotationProcessor,spring5LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor +com.google.j2objc:j2objc-annotations:1.1=annotationProcessor,latestDepForkedTestAnnotationProcessor,latestDepTestAnnotationProcessor,latestSpring5TestAnnotationProcessor,spring5LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor +com.google.re2j:re2j:1.7=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath com.h2database:h2:1.4.199=spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.h2database:h2:2.2.224=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath -com.h2database:h2:2.3.232=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -com.squareup.moshi:moshi:1.11.0=compileClasspath,instrumentPluginClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.squareup.okhttp3:logging-interceptor:3.12.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.squareup.okhttp3:okhttp:3.12.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.squareup.okio:okio:1.17.5=compileClasspath,instrumentPluginClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.h2database:h2:2.2.224=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath +com.h2database:h2:2.3.232=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +com.squareup.moshi:moshi:1.11.0=compileClasspath,instrumentPluginClasspath,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.squareup.okhttp3:logging-interceptor:3.12.12=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.squareup.okhttp3:okhttp:3.12.12=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.squareup.okio:okio:1.17.5=compileClasspath,instrumentPluginClasspath,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath com.sun.activation:jakarta.activation:2.0.1=spring6TestRuntimeClasspath -com.sun.istack:istack-commons-runtime:3.0.7=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.sun.istack:istack-commons-runtime:3.0.7=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath com.sun.istack:istack-commons-runtime:4.0.1=spring6TestRuntimeClasspath -com.sun.istack:istack-commons-runtime:4.1.1=spring6LatestDepTestRuntimeClasspath -com.sun.xml.fastinfoset:FastInfoset:1.2.15=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -com.thoughtworks.qdox:qdox:1.12.1=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +com.sun.istack:istack-commons-runtime:4.1.1=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath +com.sun.xml.fastinfoset:FastInfoset:1.2.15=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +com.thoughtworks.qdox:qdox:1.12.1=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath com.zaxxer:HikariCP:3.4.5=testCompileClasspath,testRuntimeClasspath -com.zaxxer:HikariCP:4.0.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +com.zaxxer:HikariCP:4.0.3=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath com.zaxxer:HikariCP:5.0.1=spring6TestCompileClasspath,spring6TestRuntimeClasspath -com.zaxxer:HikariCP:5.1.0=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +com.zaxxer:HikariCP:5.1.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath commons-codec:commons-codec:1.15=spotbugs -commons-fileupload:commons-fileupload:1.5=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -commons-io:commons-io:2.11.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +commons-fileupload:commons-fileupload:1.5=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +commons-io:commons-io:2.11.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath de.thetaphi:forbiddenapis:3.8=compileClasspath -info.picocli:picocli:4.6.3=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -io.micrometer:micrometer-commons:1.14.3=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -io.micrometer:micrometer-core:1.6.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -io.micrometer:micrometer-observation:1.14.3=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -io.smallrye:jandex:3.2.0=spring6LatestDepTestRuntimeClasspath -io.sqreen:libsqreen:11.2.0=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -jakarta.activation:jakarta.activation-api:2.1.1=spring6LatestDepTestRuntimeClasspath -jakarta.annotation:jakarta.annotation-api:1.3.5=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -jakarta.annotation:jakarta.annotation-api:2.1.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath +info.picocli:picocli:4.6.3=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +io.micrometer:micrometer-commons:1.14.3=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +io.micrometer:micrometer-core:1.6.1=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +io.micrometer:micrometer-observation:1.14.3=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +io.smallrye:jandex:3.2.0=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath +io.sqreen:libsqreen:11.2.0=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +jakarta.activation:jakarta.activation-api:2.1.1=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath +jakarta.annotation:jakarta.annotation-api:1.3.5=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +jakarta.annotation:jakarta.annotation-api:2.1.1=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath jakarta.inject:jakarta.inject-api:2.0.0=spring6TestRuntimeClasspath -jakarta.inject:jakarta.inject-api:2.0.1=spring6LatestDepTestRuntimeClasspath -jakarta.persistence:jakarta.persistence-api:2.2.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +jakarta.inject:jakarta.inject-api:2.0.1=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath +jakarta.persistence:jakarta.persistence-api:2.2.3=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath jakarta.persistence:jakarta.persistence-api:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -jakarta.persistence:jakarta.persistence-api:3.1.0=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -jakarta.transaction:jakarta.transaction-api:1.3.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +jakarta.persistence:jakarta.persistence-api:3.1.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +jakarta.transaction:jakarta.transaction-api:1.3.3=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath jakarta.transaction:jakarta.transaction-api:2.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -jakarta.transaction:jakarta.transaction-api:2.0.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +jakarta.transaction:jakarta.transaction-api:2.0.1=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath jakarta.xml.bind:jakarta.xml.bind-api:3.0.1=spring6TestRuntimeClasspath -jakarta.xml.bind:jakarta.xml.bind-api:4.0.0=spring6LatestDepTestRuntimeClasspath -javax.servlet:javax.servlet-api:3.1.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +jakarta.xml.bind:jakarta.xml.bind-api:4.0.0=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath +javax.servlet:javax.servlet-api:3.1.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath jaxen:jaxen:1.2.0=spotbugs -jline:jline:2.14.6=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -junit:junit-dep:4.11=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -junit:junit:4.13.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -net.bytebuddy:byte-buddy-agent:1.14.18=compileClasspath,instrumentPluginClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -net.bytebuddy:byte-buddy:1.14.18=compileClasspath,instrumentPluginClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -net.java.dev.jna:jna-platform:5.8.0=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -net.java.dev.jna:jna:5.8.0=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -net.javacrumbs.shedlock:shedlock-core:4.21.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -net.javacrumbs.shedlock:shedlock-core:4.48.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -net.javacrumbs.shedlock:shedlock-provider-jdbc-template:4.21.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -net.javacrumbs.shedlock:shedlock-provider-jdbc-template:4.48.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -net.javacrumbs.shedlock:shedlock-spring:4.21.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -net.javacrumbs.shedlock:shedlock-spring:4.48.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -net.jcip:jcip-annotations:1.0=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spotbugs,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +jline:jline:2.14.6=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +junit:junit-dep:4.11=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +junit:junit:4.13.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +net.bytebuddy:byte-buddy-agent:1.14.18=compileClasspath,instrumentPluginClasspath,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +net.bytebuddy:byte-buddy:1.14.18=compileClasspath,instrumentPluginClasspath,latestDepForkedTestCompileClasspath,latestDepTestCompileClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestCompileClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +net.bytebuddy:byte-buddy:1.15.11=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath +net.java.dev.jna:jna-platform:5.8.0=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +net.java.dev.jna:jna:5.8.0=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +net.javacrumbs.shedlock:shedlock-core:4.21.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +net.javacrumbs.shedlock:shedlock-core:4.48.0=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +net.javacrumbs.shedlock:shedlock-provider-jdbc-template:4.21.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +net.javacrumbs.shedlock:shedlock-provider-jdbc-template:4.48.0=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +net.javacrumbs.shedlock:shedlock-spring:4.21.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +net.javacrumbs.shedlock:shedlock-spring:4.48.0=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +net.jcip:jcip-annotations:1.0=compileClasspath,latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spotbugs,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath net.sf.saxon:Saxon-HE:11.4=spotbugs org.antlr:antlr4-runtime:4.10.1=spring6TestRuntimeClasspath -org.antlr:antlr4-runtime:4.13.0=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -org.apache.ant:ant-antlr:1.10.12=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.antlr:antlr4-runtime:4.13.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +org.apache.ant:ant-antlr:1.10.12=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath org.apache.ant:ant-antlr:1.9.15=codenarc -org.apache.ant:ant-junit:1.10.12=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.apache.ant:ant-junit:1.10.12=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath org.apache.ant:ant-junit:1.9.15=codenarc -org.apache.ant:ant-launcher:1.10.12=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -org.apache.ant:ant:1.10.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.ant:ant-launcher:1.10.12=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.apache.ant:ant:1.10.12=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.apache.bcel:bcel:6.5.0=spotbugs org.apache.commons:commons-lang3:3.12.0=spotbugs org.apache.commons:commons-text:1.10.0=spotbugs @@ -121,212 +122,214 @@ org.apache.httpcomponents.client5:httpclient5:5.1.3=spotbugs org.apache.httpcomponents.core5:httpcore5-h2:5.1.3=spotbugs org.apache.httpcomponents.core5:httpcore5:5.1.3=spotbugs org.apache.logging.log4j:log4j-api:2.13.3=testCompileClasspath,testRuntimeClasspath -org.apache.logging.log4j:log4j-api:2.17.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.apache.logging.log4j:log4j-api:2.17.2=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.apache.logging.log4j:log4j-api:2.19.0=spotbugs,spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.apache.logging.log4j:log4j-api:2.24.3=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.apache.logging.log4j:log4j-api:2.24.3=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.apache.logging.log4j:log4j-core:2.19.0=spotbugs org.apache.logging.log4j:log4j-to-slf4j:2.13.3=testCompileClasspath,testRuntimeClasspath -org.apache.logging.log4j:log4j-to-slf4j:2.17.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.apache.logging.log4j:log4j-to-slf4j:2.17.2=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.apache.logging.log4j:log4j-to-slf4j:2.19.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.apache.logging.log4j:log4j-to-slf4j:2.24.3=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -org.apiguardian:apiguardian-api:1.1.2=latestDepTestCompileClasspath,spring6LatestDepTestCompileClasspath,spring6TestCompileClasspath,testCompileClasspath -org.aspectj:aspectjweaver:1.9.22.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.apache.logging.log4j:log4j-to-slf4j:2.24.3=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.aspectj:aspectjweaver:1.9.22.1=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.aspectj:aspectjweaver:1.9.6=testCompileClasspath,testRuntimeClasspath -org.aspectj:aspectjweaver:1.9.7=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.aspectj:aspectjweaver:1.9.7=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.aspectj:aspectjweaver:1.9.9.1=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.checkerframework:checker-qual:2.5.2=annotationProcessor,latestDepTestAnnotationProcessor,spring6LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor -org.codehaus.groovy:groovy-all:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.checkerframework:checker-qual:2.5.2=annotationProcessor,latestDepForkedTestAnnotationProcessor,latestDepTestAnnotationProcessor,latestSpring5TestAnnotationProcessor,spring5LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor +org.codehaus.groovy:groovy-all:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.groovy:groovy-ant:2.5.14=codenarc -org.codehaus.groovy:groovy-ant:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-astbuilder:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-cli-picocli:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-console:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-datetime:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-docgenerator:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-ant:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-astbuilder:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-cli-picocli:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-console:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-datetime:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-docgenerator:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.groovy:groovy-groovydoc:2.5.14=codenarc -org.codehaus.groovy:groovy-groovydoc:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-groovysh:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-jmx:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-groovydoc:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-groovysh:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-jmx:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.groovy:groovy-json:2.5.14=codenarc -org.codehaus.groovy:groovy-json:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-jsr223:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-macro:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-nio:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-servlet:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-sql:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-swing:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-json:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-jsr223:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-macro:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-nio:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-servlet:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-sql:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-swing:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.groovy:groovy-templates:2.5.14=codenarc -org.codehaus.groovy:groovy-templates:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-test-junit5:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-test:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.groovy:groovy-testng:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-templates:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-test-junit5:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-test:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-testng:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.groovy:groovy-xml:2.5.14=codenarc -org.codehaus.groovy:groovy-xml:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.groovy:groovy-xml:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.groovy:groovy:2.5.14=codenarc -org.codehaus.groovy:groovy:3.0.17=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,latestDepTestAnnotationProcessor,spring6LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor +org.codehaus.groovy:groovy:3.0.17=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,latestDepForkedTestAnnotationProcessor,latestDepTestAnnotationProcessor,latestSpring5TestAnnotationProcessor,spring5LatestDepTestAnnotationProcessor,spring6TestAnnotationProcessor,testAnnotationProcessor org.codenarc:CodeNarc:2.2.0=codenarc org.dom4j:dom4j:2.1.3=spotbugs,testCompileClasspath,testRuntimeClasspath -org.eclipse.angus:angus-activation:2.0.0=spring6LatestDepTestRuntimeClasspath -org.eclipse.jetty:jetty-http:9.4.56.v20240826=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:9.4.56.v20240826=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-server:9.4.56.v20240826=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:9.4.56.v20240826=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.angus:angus-activation:2.0.0=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath +org.eclipse.jetty:jetty-http:9.4.56.v20240826=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:9.4.56.v20240826=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-server:9.4.56.v20240826=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:9.4.56.v20240826=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.glassfish.jaxb:jaxb-core:3.0.2=spring6TestRuntimeClasspath -org.glassfish.jaxb:jaxb-core:4.0.2=spring6LatestDepTestRuntimeClasspath -org.glassfish.jaxb:jaxb-runtime:2.3.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.glassfish.jaxb:jaxb-core:4.0.2=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath +org.glassfish.jaxb:jaxb-runtime:2.3.1=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.glassfish.jaxb:jaxb-runtime:3.0.2=spring6TestRuntimeClasspath -org.glassfish.jaxb:jaxb-runtime:4.0.2=spring6LatestDepTestRuntimeClasspath -org.glassfish.jaxb:txw2:2.3.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.glassfish.jaxb:jaxb-runtime:4.0.2=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath +org.glassfish.jaxb:txw2:2.3.1=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.glassfish.jaxb:txw2:3.0.2=spring6TestRuntimeClasspath -org.glassfish.jaxb:txw2:4.0.2=spring6LatestDepTestRuntimeClasspath +org.glassfish.jaxb:txw2:4.0.2=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath org.gmetrics:GMetrics:1.1=codenarc -org.hamcrest:hamcrest-core:1.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.hamcrest:hamcrest:2.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.hdrhistogram:HdrHistogram:2.1.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.hibernate.common:hibernate-commons-annotations:5.1.2.Final=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.hamcrest:hamcrest-core:1.3=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.hamcrest:hamcrest:2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.hdrhistogram:HdrHistogram:2.1.12=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.hibernate.common:hibernate-commons-annotations:5.1.2.Final=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.hibernate.common:hibernate-commons-annotations:6.0.2.Final=spring6TestRuntimeClasspath -org.hibernate.common:hibernate-commons-annotations:7.0.3.Final=spring6LatestDepTestRuntimeClasspath +org.hibernate.common:hibernate-commons-annotations:7.0.3.Final=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath org.hibernate.orm:hibernate-core:6.1.5.Final=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.hibernate.orm:hibernate-core:6.6.4.Final=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.hibernate.orm:hibernate-core:6.6.5.Final=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.hibernate:hibernate-core:5.4.23.Final=testCompileClasspath,testRuntimeClasspath -org.hibernate:hibernate-core:5.6.15.Final=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.hibernate:hibernate-core:5.6.15.Final=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.javassist:javassist:3.24.0-GA=testCompileClasspath,testRuntimeClasspath org.jboss.logging:jboss-logging:3.4.1.Final=testCompileClasspath,testRuntimeClasspath -org.jboss.logging:jboss-logging:3.4.3.Final=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6TestRuntimeClasspath -org.jboss.logging:jboss-logging:3.5.0.Final=spring6LatestDepTestRuntimeClasspath +org.jboss.logging:jboss-logging:3.4.3.Final=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring6TestRuntimeClasspath +org.jboss.logging:jboss-logging:3.5.0.Final=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath org.jboss:jandex:2.1.3.Final=testCompileClasspath,testRuntimeClasspath -org.jboss:jandex:2.4.2.Final=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6TestRuntimeClasspath -org.jctools:jctools-core:3.3.0=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -org.junit.jupiter:junit-jupiter-api:5.9.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.junit.jupiter:junit-jupiter-engine:5.9.2=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-commons:1.9.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-engine:1.9.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-launcher:1.9.2=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-runner:1.9.2=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-suite-api:1.9.2=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-suite-commons:1.9.2=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.jboss:jandex:2.4.2.Final=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring6TestRuntimeClasspath +org.jctools:jctools-core:3.3.0=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-api:5.9.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:5.9.2=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-commons:1.9.0=latestDepForkedTestCompileClasspath,latestDepTestCompileClasspath,latestSpring5TestCompileClasspath,spring5LatestDepTestCompileClasspath,spring6TestCompileClasspath,testCompileClasspath +org.junit.platform:junit-platform-commons:1.9.2=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-engine:1.9.0=latestDepForkedTestCompileClasspath,latestDepTestCompileClasspath,latestSpring5TestCompileClasspath,spring5LatestDepTestCompileClasspath,spring6TestCompileClasspath,testCompileClasspath +org.junit.platform:junit-platform-engine:1.9.2=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-launcher:1.9.2=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-runner:1.9.0=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-suite-api:1.9.0=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-suite-commons:1.9.0=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.junit:junit-bom:5.9.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit:junit-bom:5.9.1=spotbugs -org.junit:junit-bom:5.9.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.jvnet.staxex:stax-ex:1.8=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.latencyutils:LatencyUtils:2.0.3=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -org.objenesis:objenesis:3.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.opentest4j:opentest4j:1.2.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.ow2.asm:asm-analysis:9.2=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.jvnet.staxex:stax-ex:1.8=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.latencyutils:LatencyUtils:2.0.3=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.objenesis:objenesis:3.3=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.opentest4j:opentest4j:1.2.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.ow2.asm:asm-analysis:9.2=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath org.ow2.asm:asm-analysis:9.4=spotbugs -org.ow2.asm:asm-commons:9.2=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.ow2.asm:asm-commons:9.2=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath org.ow2.asm:asm-commons:9.4=spotbugs -org.ow2.asm:asm-tree:9.2=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.ow2.asm:asm-tree:9.2=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath org.ow2.asm:asm-tree:9.4=spotbugs -org.ow2.asm:asm-util:9.2=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.ow2.asm:asm-util:9.2=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath org.ow2.asm:asm-util:9.4=spotbugs -org.ow2.asm:asm:9.2=instrumentPluginClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.ow2.asm:asm:9.2=instrumentPluginClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,muzzleTooling,runtimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath org.ow2.asm:asm:9.4=spotbugs -org.slf4j:jcl-over-slf4j:1.7.30=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.slf4j:jcl-over-slf4j:1.7.30=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.slf4j:jul-to-slf4j:1.7.30=testCompileClasspath,testRuntimeClasspath -org.slf4j:jul-to-slf4j:1.7.36=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath -org.slf4j:jul-to-slf4j:2.0.16=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.slf4j:jul-to-slf4j:1.7.36=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath +org.slf4j:jul-to-slf4j:2.0.16=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.slf4j:jul-to-slf4j:2.0.4=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.slf4j:log4j-over-slf4j:1.7.30=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.slf4j:log4j-over-slf4j:1.7.30=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.slf4j:slf4j-api:1.7.30=compileClasspath,instrumentPluginClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath,testCompileClasspath org.slf4j:slf4j-api:1.7.32=testRuntimeClasspath -org.slf4j:slf4j-api:1.7.36=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.slf4j:slf4j-api:1.7.36=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.slf4j:slf4j-api:2.0.0=spotbugs,spotbugsSlf4j -org.slf4j:slf4j-api:2.0.16=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.slf4j:slf4j-api:2.0.16=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.slf4j:slf4j-api:2.0.4=spring6TestCompileClasspath,spring6TestRuntimeClasspath org.slf4j:slf4j-simple:2.0.0=spotbugsSlf4j -org.spockframework:spock-core:2.2-groovy-3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.spockframework:spock-junit4:2.2-groovy-3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.springframework.boot:spring-boot-actuator-autoconfigure:2.4.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath -org.springframework.boot:spring-boot-actuator:2.4.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.spockframework:spock-core:2.2-groovy-3.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.spockframework:spock-junit4:2.2-groovy-3.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.springframework.boot:spring-boot-actuator-autoconfigure:2.4.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.springframework.boot:spring-boot-actuator:2.4.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.springframework.boot:spring-boot-autoconfigure:2.4.0=testCompileClasspath,testRuntimeClasspath -org.springframework.boot:spring-boot-autoconfigure:2.7.18=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-autoconfigure:2.7.18=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework.boot:spring-boot-autoconfigure:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework.boot:spring-boot-autoconfigure:3.4.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -org.springframework.boot:spring-boot-starter-actuator:2.4.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.springframework.boot:spring-boot-autoconfigure:3.4.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter-actuator:2.4.0=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestCompileClasspath,spring6TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.springframework.boot:spring-boot-starter-aop:2.4.0=testCompileClasspath,testRuntimeClasspath -org.springframework.boot:spring-boot-starter-aop:2.7.18=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter-aop:2.7.18=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework.boot:spring-boot-starter-aop:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath org.springframework.boot:spring-boot-starter-data-jpa:2.4.0=testCompileClasspath,testRuntimeClasspath -org.springframework.boot:spring-boot-starter-data-jpa:2.7.18=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter-data-jpa:2.7.18=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework.boot:spring-boot-starter-data-jpa:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework.boot:spring-boot-starter-data-jpa:3.4.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter-data-jpa:3.4.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework.boot:spring-boot-starter-jdbc:2.4.0=testCompileClasspath,testRuntimeClasspath -org.springframework.boot:spring-boot-starter-jdbc:2.7.18=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter-jdbc:2.7.18=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework.boot:spring-boot-starter-jdbc:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework.boot:spring-boot-starter-jdbc:3.4.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter-jdbc:3.4.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework.boot:spring-boot-starter-logging:2.4.0=testCompileClasspath,testRuntimeClasspath -org.springframework.boot:spring-boot-starter-logging:2.7.18=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter-logging:2.7.18=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework.boot:spring-boot-starter-logging:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework.boot:spring-boot-starter-logging:3.4.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter-logging:3.4.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework.boot:spring-boot-starter:2.4.0=testCompileClasspath,testRuntimeClasspath -org.springframework.boot:spring-boot-starter:2.7.18=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter:2.7.18=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework.boot:spring-boot-starter:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework.boot:spring-boot-starter:3.4.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework.boot:spring-boot-starter:3.4.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework.boot:spring-boot:2.4.0=testCompileClasspath,testRuntimeClasspath -org.springframework.boot:spring-boot:2.7.18=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework.boot:spring-boot:2.7.18=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework.boot:spring-boot:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework.boot:spring-boot:3.4.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework.boot:spring-boot:3.4.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework.data:spring-data-commons:2.4.1=testCompileClasspath,testRuntimeClasspath -org.springframework.data:spring-data-commons:2.7.18=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework.data:spring-data-commons:2.7.18=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework.data:spring-data-commons:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework.data:spring-data-commons:3.4.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework.data:spring-data-commons:3.4.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework.data:spring-data-jpa:2.4.1=testCompileClasspath,testRuntimeClasspath -org.springframework.data:spring-data-jpa:2.7.18=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework.data:spring-data-jpa:2.7.18=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework.data:spring-data-jpa:3.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework.data:spring-data-jpa:3.4.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework.data:spring-data-jpa:3.4.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework:spring-aop:5.0.0.RELEASE=compileClasspath -org.springframework:spring-aop:5.3.39=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-aop:5.3.39=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-aop:5.3.4=testCompileClasspath,testRuntimeClasspath org.springframework:spring-aop:6.0.2=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-aop:6.2.2=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework:spring-aop:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework:spring-aspects:5.3.1=testCompileClasspath,testRuntimeClasspath -org.springframework:spring-aspects:5.3.31=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-aspects:5.3.31=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-aspects:6.0.2=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-aspects:6.2.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework:spring-aspects:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework:spring-beans:5.0.0.RELEASE=compileClasspath -org.springframework:spring-beans:5.3.39=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-beans:5.3.39=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-beans:5.3.4=testCompileClasspath,testRuntimeClasspath org.springframework:spring-beans:6.0.2=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-beans:6.2.2=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework:spring-beans:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework:spring-context:5.0.0.RELEASE=compileClasspath -org.springframework:spring-context:5.3.39=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-context:5.3.39=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-context:5.3.4=testCompileClasspath,testRuntimeClasspath org.springframework:spring-context:6.0.2=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-context:6.2.2=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework:spring-context:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework:spring-core:5.0.0.RELEASE=compileClasspath -org.springframework:spring-core:5.3.39=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-core:5.3.39=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-core:5.3.4=testCompileClasspath,testRuntimeClasspath org.springframework:spring-core:6.0.2=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-core:6.2.2=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework:spring-core:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework:spring-expression:5.0.0.RELEASE=compileClasspath -org.springframework:spring-expression:5.3.39=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-expression:5.3.39=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-expression:5.3.4=testCompileClasspath,testRuntimeClasspath org.springframework:spring-expression:6.0.2=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-expression:6.2.2=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework:spring-expression:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework:spring-jcl:5.0.0.RELEASE=compileClasspath -org.springframework:spring-jcl:5.3.39=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-jcl:5.3.39=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-jcl:5.3.4=testCompileClasspath,testRuntimeClasspath org.springframework:spring-jcl:6.0.2=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-jcl:6.2.2=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -org.springframework:spring-jdbc:5.3.31=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-jcl:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +org.springframework:spring-jdbc:5.3.31=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-jdbc:5.3.4=testCompileClasspath,testRuntimeClasspath org.springframework:spring-jdbc:6.0.2=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-jdbc:6.2.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.springframework:spring-jdbc:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath org.springframework:spring-orm:5.3.1=testCompileClasspath,testRuntimeClasspath -org.springframework:spring-orm:5.3.31=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-orm:5.3.31=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-orm:6.0.0=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-orm:6.2.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -org.springframework:spring-tx:5.3.31=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.springframework:spring-orm:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +org.springframework:spring-tx:5.3.31=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.springframework:spring-tx:5.3.4=testCompileClasspath,testRuntimeClasspath org.springframework:spring-tx:6.0.2=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.springframework:spring-tx:6.2.1=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath -org.testng:testng:7.5=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath -org.webjars:jquery:3.5.1=latestDepTestRuntimeClasspath,spring6LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.springframework:spring-tx:6.2.2=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath +org.testng:testng:7.5=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath +org.webjars:jquery:3.5.1=latestDepForkedTestRuntimeClasspath,latestDepTestRuntimeClasspath,latestSpring5TestRuntimeClasspath,spring5LatestDepTestRuntimeClasspath,spring6TestRuntimeClasspath,testRuntimeClasspath org.xmlresolver:xmlresolver:4.4.3=spotbugs org.yaml:snakeyaml:1.27=testCompileClasspath,testRuntimeClasspath -org.yaml:snakeyaml:1.30=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.yaml:snakeyaml:1.30=latestSpring5TestCompileClasspath,latestSpring5TestRuntimeClasspath org.yaml:snakeyaml:1.33=spring6TestCompileClasspath,spring6TestRuntimeClasspath -org.yaml:snakeyaml:2.3=spring6LatestDepTestCompileClasspath,spring6LatestDepTestRuntimeClasspath +org.yaml:snakeyaml:2.3=latestDepForkedTestCompileClasspath,latestDepForkedTestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spring5LatestDepTestCompileClasspath,spring5LatestDepTestRuntimeClasspath xml-apis:xml-apis:1.4.01=spotbugs empty=spotbugsPlugins diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/groovy/ShedlockTest.groovy b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/groovy/ShedlockTest.groovy new file mode 100644 index 00000000000..8a112c4468e --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/groovy/ShedlockTest.groovy @@ -0,0 +1,27 @@ +import datadog.trace.agent.test.AgentTestRunner +import datadog.trace.test.util.Flaky +import org.springframework.context.annotation.AnnotationConfigApplicationContext +import org.springframework.jdbc.core.JdbcTemplate + +import javax.sql.DataSource +import java.util.concurrent.TimeUnit + +class ShedlockTest extends AgentTestRunner { + + @Flaky("task.invocationCount() == 0") + def "should not disable shedlock"() { + setup: + def context = new AnnotationConfigApplicationContext(ShedlockConfig) + JdbcTemplate jdbcTemplate = new JdbcTemplate(context.getBean(DataSource)) + jdbcTemplate.execute("CREATE TABLE shedlock(name VARCHAR(64) NOT NULL PRIMARY KEY, lock_until TIMESTAMP NOT NULL,\n" + + " locked_at TIMESTAMP NOT NULL, locked_by VARCHAR(255) NOT NULL);") + def task = context.getBean(ShedLockedTask) + + expect: "lock is held for more than one second" + !task.awaitInvocation(1000, TimeUnit.MILLISECONDS) + task.invocationCount() == 1 + + cleanup: + context.close() + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/groovy/SpringAsyncTest.groovy b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/groovy/SpringAsyncTest.groovy new file mode 100644 index 00000000000..442c0ea5c16 --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/groovy/SpringAsyncTest.groovy @@ -0,0 +1,35 @@ +import datadog.trace.agent.test.AgentTestRunner +import org.springframework.context.annotation.AnnotationConfigApplicationContext + +import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace + +class SpringAsyncTest extends AgentTestRunner { + + def "context propagated through @async annotation"() { + setup: + def context = new AnnotationConfigApplicationContext(AsyncTaskConfig) + AsyncTask asyncTask = context.getBean(AsyncTask) + when: + runUnderTrace("root") { + asyncTask.async().join() + } + then: + assertTraces(1) { + trace(3) { + span { + resourceName "root" + } + span { + resourceName "AsyncTask.async" + threadNameStartsWith "SimpleAsyncTaskExecutor" + childOf span(0) + } + span { + resourceName "AsyncTask.getInt" + threadNameStartsWith "SimpleAsyncTaskExecutor" + childOf span(1) + } + } + } + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/groovy/SpringSchedulingTest.groovy b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/groovy/SpringSchedulingTest.groovy new file mode 100644 index 00000000000..41b39568eef --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/groovy/SpringSchedulingTest.groovy @@ -0,0 +1,146 @@ +import static datadog.trace.agent.test.utils.TraceUtils.basicSpan + +import datadog.trace.agent.test.AgentTestRunner +import datadog.trace.bootstrap.instrumentation.api.Tags +import org.springframework.boot.actuate.scheduling.ScheduledTasksEndpoint +import org.springframework.context.annotation.AnnotationConfigApplicationContext + +import java.util.concurrent.TimeUnit + +class SpringSchedulingTest extends AgentTestRunner { + + def legacyTracing() { + false + } + + @Override + protected void configurePreAgent() { + super.configurePreAgent() + if (legacyTracing()) { + injectSysConfig("spring-scheduling.legacy.tracing.enabled", "true") + } + } + + def "schedule trigger test according to cron expression"() { + setup: + def context = new AnnotationConfigApplicationContext(TriggerTaskConfig, SchedulingConfig) + def task = context.getBean(TriggerTask) + + task.blockUntilExecute() + + expect: + assert task != null + def hasParent = legacyTracing() + assertTraces(hasParent ? 1 : 2) { + if (!hasParent) { + trace(1) { + basicSpan(it, "parent") + } + } + trace(hasParent ? 2 : 1) { + if (hasParent) { + basicSpan(it, "parent") + } + span { + resourceName "TriggerTask.run" + operationName "scheduled.call" + hasParent ? childOfPrevious() : parent() + errored false + tags { + "$Tags.COMPONENT" "spring-scheduling" + defaultTags() + } + } + } + } + and: + def scheduledTaskEndpoint = context.getBean(ScheduledTasksEndpoint) + assert scheduledTaskEndpoint != null + scheduledTaskEndpoint.scheduledTasks().getCron().each { + it.getRunnable().getTarget() == TriggerTask.getName() + } + cleanup: + context.close() + } + + def "schedule interval test"() { + setup: + def context = new AnnotationConfigApplicationContext(IntervalTaskConfig, SchedulingConfig) + def task = context.getBean(IntervalTask) + + task.blockUntilExecute() + + expect: + assert task != null + def hasParent = legacyTracing() + + assertTraces(hasParent ? 1 : 2) { + if (!hasParent) { + trace(1) { + basicSpan(it, "parent") + } + } + trace(hasParent ? 2 : 1) { + if (hasParent) { + basicSpan(it, "parent") + } + span { + resourceName "IntervalTask.run" + operationName "scheduled.call" + hasParent ? childOfPrevious() : parent() + errored false + tags { + "$Tags.COMPONENT" "spring-scheduling" + defaultTags() + } + } + } + } + cleanup: + context.close() + } + + def "schedule lambda test"() { + setup: + def context = new AnnotationConfigApplicationContext(LambdaTaskConfig, SchedulingConfig) + def configurer = context.getBean(LambdaTaskConfigurer) + + configurer.singleUseLatch.await(2000, TimeUnit.MILLISECONDS) + + expect: + def hasParent = legacyTracing() + assertTraces(hasParent ? 1 : 2) { + if (!hasParent) { + trace(1) { + basicSpan(it, "parent") + } + } + trace(hasParent ? 2 : 1) { + if (hasParent) { + basicSpan(it, "parent") + } + span { + resourceNameContains("LambdaTaskConfigurer\$\$Lambda") + operationName "scheduled.call" + hasParent ? childOfPrevious() : parent() + errored false + tags { + "$Tags.COMPONENT" "spring-scheduling" + defaultTags() + } + } + } + } + + cleanup: + context.close() + } +} + +class SpringSchedulingLegacyTracingForkedTest extends SpringSchedulingTest { + @Override + def legacyTracing() { + true + } +} + diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/AsyncTask.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/AsyncTask.java new file mode 100644 index 00000000000..168abee6ad4 --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/AsyncTask.java @@ -0,0 +1,17 @@ +import datadog.trace.api.Trace; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ThreadLocalRandom; +import org.springframework.scheduling.annotation.Async; + +public class AsyncTask { + + @Async + public CompletableFuture async() { + return CompletableFuture.completedFuture(getInt()); + } + + @Trace + public int getInt() { + return ThreadLocalRandom.current().nextInt(); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/AsyncTaskConfig.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/AsyncTaskConfig.java new file mode 100644 index 00000000000..94a9196dfac --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/AsyncTaskConfig.java @@ -0,0 +1,15 @@ +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; + +@Configuration +@EnableScheduling +@EnableAsync +public class AsyncTaskConfig { + + @Bean + AsyncTask asyncTask() { + return new AsyncTask(); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/IntervalTask.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/IntervalTask.java new file mode 100644 index 00000000000..7fcd1c92af2 --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/IntervalTask.java @@ -0,0 +1,20 @@ +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +public class IntervalTask implements Runnable { + + private final CountDownLatch latch = new CountDownLatch(1); + + @Scheduled(fixedRate = 5000, scheduler = "tracingTaskScheduler") + @Override + public void run() { + latch.countDown(); + } + + public void blockUntilExecute() throws InterruptedException { + latch.await(5, TimeUnit.SECONDS); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/IntervalTaskConfig.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/IntervalTaskConfig.java new file mode 100644 index 00000000000..58309a70ba3 --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/IntervalTaskConfig.java @@ -0,0 +1,12 @@ +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; + +@Configuration +@EnableScheduling +public class IntervalTaskConfig { + @Bean + public IntervalTask scheduledTasks() { + return new IntervalTask(); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/LambdaTaskConfig.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/LambdaTaskConfig.java new file mode 100644 index 00000000000..cd12e2f04f8 --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/LambdaTaskConfig.java @@ -0,0 +1,13 @@ +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; + +@Configuration +@EnableScheduling +public class LambdaTaskConfig { + + @Bean + LambdaTaskConfigurer lambdaTaskConfigurer() { + return new LambdaTaskConfigurer(); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/LambdaTaskConfigurer.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/LambdaTaskConfigurer.java new file mode 100644 index 00000000000..75d63d2cdc2 --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/LambdaTaskConfigurer.java @@ -0,0 +1,17 @@ +import java.util.concurrent.CountDownLatch; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.stereotype.Service; + +@Service +public class LambdaTaskConfigurer implements SchedulingConfigurer { + + public final CountDownLatch singleUseLatch = new CountDownLatch(1); + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + // need to manually set in this case since it won't use the scheduler in the annotation + taskRegistrar.setTaskScheduler(new SchedulingConfig.TracingTaskScheduler()); + taskRegistrar.addFixedDelayTask(singleUseLatch::countDown, 500); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/SchedulingConfig.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/SchedulingConfig.java new file mode 100644 index 00000000000..279e58be410 --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/SchedulingConfig.java @@ -0,0 +1,103 @@ +import static datadog.trace.agent.test.utils.TraceUtils.runnableUnderTrace; + +import java.time.Clock; +import java.time.Duration; +import java.time.Instant; +import java.util.Date; +import java.util.concurrent.ScheduledFuture; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.TaskScheduler; +import org.springframework.scheduling.Trigger; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; + +@Configuration +public class SchedulingConfig { + static class TracingTaskScheduler implements TaskScheduler { + final ThreadPoolTaskScheduler scheduler; + + TracingTaskScheduler() { + scheduler = new ThreadPoolTaskScheduler(); + scheduler.initialize(); + } + + @Override + public ScheduledFuture scheduleWithFixedDelay(Runnable task, Duration delay) { + return scheduler.scheduleWithFixedDelay(() -> runnableUnderTrace("parent", task), delay); + } + + @Override + public Clock getClock() { + return Clock.systemUTC(); + } + + @Override + public ScheduledFuture schedule(Runnable task, Instant startTime) { + return scheduler.schedule(() -> runnableUnderTrace("parent", task), startTime); + } + + @Override + public ScheduledFuture scheduleAtFixedRate( + Runnable task, Instant startTime, Duration period) { + return scheduler.scheduleAtFixedRate( + () -> runnableUnderTrace("parent", task), startTime, period); + } + + @Override + public ScheduledFuture scheduleAtFixedRate(Runnable task, Duration period) { + return scheduler.scheduleAtFixedRate(() -> runnableUnderTrace("parent", task), period); + } + + @Override + public ScheduledFuture scheduleWithFixedDelay( + Runnable task, Instant startTime, Duration delay) { + return scheduler.scheduleWithFixedDelay( + () -> runnableUnderTrace("parent", task), startTime, delay); + } + + @Override + public ScheduledFuture schedule(Runnable runnable, Trigger trigger) { + return scheduler.schedule(() -> runnableUnderTrace("parent", runnable), trigger); + } + + @Override + public ScheduledFuture schedule(Runnable runnable, Date date) { + return scheduler.schedule(() -> runnableUnderTrace("parent", runnable), date); + } + + @Override + public ScheduledFuture scheduleAtFixedRate(Runnable runnable, Date date, long l) { + return scheduler.scheduleAtFixedRate(() -> runnableUnderTrace("parent", runnable), date, l); + } + + @Override + public ScheduledFuture scheduleAtFixedRate(Runnable runnable, long l) { + return scheduler.scheduleAtFixedRate(() -> runnableUnderTrace("parent", runnable), l); + } + + @Override + public ScheduledFuture scheduleWithFixedDelay(Runnable runnable, Date date, long l) { + return scheduler.scheduleWithFixedDelay( + () -> runnableUnderTrace("parent", runnable), date, l); + } + + @Override + public ScheduledFuture scheduleWithFixedDelay(Runnable runnable, long l) { + return scheduler.scheduleWithFixedDelay(() -> runnableUnderTrace("parent", runnable), l); + } + } + + @Bean + TaskScheduler tracingTaskScheduler() { + return new TracingTaskScheduler(); + } + + // Having more than 1 Task scheduler will force spring to use a TaskSchedulerRouter. + // Hence the `scheduler` attribute on `@Scheduled` will be used. + // If we wrongly wrap and hide getQualifier from their runnable, the tracing won't happen in those + // tests that will fail. + @Bean + TaskScheduler unusedTaskScheduler() { + return new ThreadPoolTaskScheduler(); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/ShedLockedTask.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/ShedLockedTask.java new file mode 100644 index 00000000000..694a89ffedd --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/ShedLockedTask.java @@ -0,0 +1,33 @@ +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import net.javacrumbs.shedlock.core.LockAssert; +import net.javacrumbs.shedlock.spring.annotation.SchedulerLock; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +public class ShedLockedTask { + + private final CountDownLatch latch = new CountDownLatch(2); + private final AtomicInteger invoked = new AtomicInteger(); + + @Scheduled(fixedRate = 250) + @SchedulerLock(name = "schedlockedTask", lockAtMostFor = "10000", lockAtLeastFor = "10000") + public void schedlockedTask() { + LockAssert.assertLocked(); + invoked.incrementAndGet(); + latch.countDown(); + } + + public int invocationCount() { + return invoked.get(); + } + + public void awaitInvocation(long time, TimeUnit timeUnit) { + try { + latch.await(time, timeUnit); + } catch (InterruptedException ignored) { + } + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/ShedlockConfig.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/ShedlockConfig.java new file mode 100644 index 00000000000..ea264bc6816 --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/ShedlockConfig.java @@ -0,0 +1,40 @@ +import javax.sql.DataSource; +import net.javacrumbs.shedlock.core.LockProvider; +import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider; +import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.scheduling.annotation.EnableScheduling; + +@Configuration +@EnableScheduling +@EnableSchedulerLock(defaultLockAtMostFor = "1000") +public class ShedlockConfig { + + @Bean + public ShedLockedTask schedLockedTask() { + return new ShedLockedTask(); + } + + @Bean + public DataSource dataSource() { + DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); + dataSourceBuilder.driverClassName("org.h2.Driver"); + dataSourceBuilder.url("jdbc:h2:mem:test"); + dataSourceBuilder.username("SA"); + dataSourceBuilder.password(""); + return dataSourceBuilder.build(); + } + + @Bean + LockProvider lockProvider(@Autowired DataSource dataSource) { + return new JdbcTemplateLockProvider( + JdbcTemplateLockProvider.Configuration.builder() + .withJdbcTemplate(new JdbcTemplate(dataSource)) + .usingDbTime() + .build()); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/TriggerTask.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/TriggerTask.java new file mode 100644 index 00000000000..ed701651e7f --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/TriggerTask.java @@ -0,0 +1,20 @@ +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +public class TriggerTask implements Runnable { + + private final CountDownLatch latch = new CountDownLatch(1); + + @Scheduled(cron = "0/5 * * * * *", scheduler = "tracingTaskScheduler") + @Override + public void run() { + latch.countDown(); + } + + public void blockUntilExecute() throws InterruptedException { + latch.await(5, TimeUnit.SECONDS); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/TriggerTaskConfig.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/TriggerTaskConfig.java new file mode 100644 index 00000000000..ec7e435ee2b --- /dev/null +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/latestDepTest/java/TriggerTaskConfig.java @@ -0,0 +1,22 @@ +import java.util.stream.Collectors; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.boot.actuate.scheduling.ScheduledTasksEndpoint; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.config.ScheduledTaskHolder; + +@Configuration +@EnableScheduling +public class TriggerTaskConfig { + @Bean + public TriggerTask triggerTasks() { + return new TriggerTask(); + } + + @Bean + public ScheduledTasksEndpoint scheduledTasksEndpoint( + ObjectProvider holders) { + return new ScheduledTasksEndpoint(holders.orderedStream().collect(Collectors.toSet())); + } +} diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/main/java/datadog/trace/instrumentation/springscheduling/SpringSchedulingInstrumentation.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/main/java/datadog/trace/instrumentation/springscheduling/SpringSchedulingInstrumentation.java index 48ca492e65c..18b12243524 100644 --- a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/main/java/datadog/trace/instrumentation/springscheduling/SpringSchedulingInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/main/java/datadog/trace/instrumentation/springscheduling/SpringSchedulingInstrumentation.java @@ -30,7 +30,9 @@ public String instrumentedType() { @Override public String[] helperClassNames() { return new String[] { - packageName + ".SpringSchedulingDecorator", packageName + ".SpringSchedulingRunnableWrapper", + packageName + ".SpringSchedulingDecorator", + packageName + ".SpringSchedulingRunnableWrapper", + packageName + ".SpringSchedulingRunnableWrapper$SchedulingAware" }; } diff --git a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/main/java/datadog/trace/instrumentation/springscheduling/SpringSchedulingRunnableWrapper.java b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/main/java/datadog/trace/instrumentation/springscheduling/SpringSchedulingRunnableWrapper.java index 62c5cedd2b0..23ecc5f245b 100644 --- a/dd-java-agent/instrumentation/spring-scheduling-3.1/src/main/java/datadog/trace/instrumentation/springscheduling/SpringSchedulingRunnableWrapper.java +++ b/dd-java-agent/instrumentation/spring-scheduling-3.1/src/main/java/datadog/trace/instrumentation/springscheduling/SpringSchedulingRunnableWrapper.java @@ -10,11 +10,43 @@ import datadog.trace.api.Config; import datadog.trace.bootstrap.instrumentation.api.AgentScope; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; +import datadog.trace.util.MethodHandles; +import java.lang.invoke.MethodHandle; +import org.springframework.scheduling.SchedulingAwareRunnable; public class SpringSchedulingRunnableWrapper implements Runnable { private static final boolean LEGACY_TRACING = Config.get().isLegacyTracingEnabled(false, "spring-scheduling"); - private final Runnable runnable; + + private static final MethodHandle GET_QUALIFIER_MH = + new MethodHandles(Thread.currentThread().getContextClassLoader()) + .method(SchedulingAwareRunnable.class, "getQualifier"); + + static class SchedulingAware extends SpringSchedulingRunnableWrapper + implements SchedulingAwareRunnable { + + private SchedulingAware(Runnable runnable) { + super(runnable); + } + + @Override + public boolean isLongLived() { + return ((SchedulingAwareRunnable) runnable).isLongLived(); + } + + // this is implemented on 6.1+ + public String getQualifier() { + if (GET_QUALIFIER_MH != null) { + try { + return (String) GET_QUALIFIER_MH.invoke(runnable); + } catch (Throwable ignored) { + } + } + return null; + } + } + + protected final Runnable runnable; private SpringSchedulingRunnableWrapper(final Runnable runnable) { this.runnable = runnable; @@ -45,6 +77,9 @@ public static Runnable wrapIfNeeded(final Runnable task) { if (task instanceof SpringSchedulingRunnableWrapper || exclude(RUNNABLE, task)) { return task; } + if (task instanceof SchedulingAwareRunnable) { + return new SchedulingAware(task); + } return new SpringSchedulingRunnableWrapper(task); }