diff --git a/dd-java-agent/instrumentation/weaver-0.9/build.gradle b/dd-java-agent/instrumentation/weaver-0.9/build.gradle index d32c4a77959..6a80757116a 100644 --- a/dd-java-agent/instrumentation/weaver-0.9/build.gradle +++ b/dd-java-agent/instrumentation/weaver-0.9/build.gradle @@ -5,6 +5,18 @@ plugins { } muzzle { + ['2.12', '2.13'].each { scalaVersion -> + pass { + group = 'com.disneystreaming' + module = "weaver-cats_${scalaVersion}" + versions = '[0.8.4,)' + } + pass { + group = 'org.typelevel' + module = "weaver-cats_${scalaVersion}" + versions = '[0.9.0,)' + } + } pass { group = 'com.disneystreaming' module = 'weaver-cats_3' @@ -49,3 +61,29 @@ tasks.named("compileWeaver084TestGroovy", GroovyCompile) { dependsOn 'compileWeaver084TestScala' classpath += files(sourceSets.weaver084Test.scala.destinationDirectory) } + +// Scala 2 emits static suite-loaded callbacks with the task as its first argument. +['scala212Test', 'scala213Test'].each { suiteName -> + addTestSuiteForDir(suiteName, 'scala2Test') + sourceSets.named(suiteName) { + scala { + srcDirs = ['src/test/scala'] + include 'org/example/TestAutomationExcluded.scala', 'org/example/TestAutomationNamed.scala' + } + } + configurations.matching { it.name.startsWith(suiteName) }.configureEach { + exclude group: 'org.typelevel', module: 'weaver-cats_3' + } + tasks.named("compile${suiteName.capitalize()}Groovy", GroovyCompile) { + dependsOn "compile${suiteName.capitalize()}Scala" + classpath += files(sourceSets[suiteName].scala.destinationDirectory) + } + tasks.named("compile${suiteName.capitalize()}Scala", ScalaCompile) { + configureCompiler(it, 8, JavaVersion.VERSION_1_8, 'Scala 2 compiler compatibility') + } +} + +dependencies { + scala212TestImplementation group: 'org.typelevel', name: 'weaver-cats_2.12', version: '0.9.0' + scala213TestImplementation group: 'org.typelevel', name: 'weaver-cats_2.13', version: '0.9.0' +} diff --git a/dd-java-agent/instrumentation/weaver-0.9/gradle.lockfile b/dd-java-agent/instrumentation/weaver-0.9/gradle.lockfile index 4d66982283c..2db630eb49a 100644 --- a/dd-java-agent/instrumentation/weaver-0.9/gradle.lockfile +++ b/dd-java-agent/instrumentation/weaver-0.9/gradle.lockfile @@ -2,19 +2,21 @@ # Manual edits can break the build and are not advised. # This file is expected to be part of source control. # To regenerate this file, run: ./gradlew :dd-java-agent:instrumentation:weaver-0.9:dependencies --write-locks -cafe.cryptography:curve25519-elisabeth:0.1.0=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -cafe.cryptography:ed25519-elisabeth:0.1.0=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -ch.qos.logback:logback-classic:1.2.13=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -ch.qos.logback:logback-core:1.2.13=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +cafe.cryptography:curve25519-elisabeth:0.1.0=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +cafe.cryptography:ed25519-elisabeth:0.1.0=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +ch.qos.logback:logback-classic:1.2.13=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +ch.qos.logback:logback-core:1.2.13=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +co.fs2:fs2-core_2.12:3.10.2=scala212TestCompileClasspath,scala212TestRuntimeClasspath +co.fs2:fs2-core_2.13:3.10.2=scala213TestCompileClasspath,scala213TestRuntimeClasspath co.fs2:fs2-core_3:3.10.2=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath co.fs2:fs2-core_3:3.13.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath -com.blogspot.mydailyjava:weak-lock-free:0.17=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.datadoghq.okhttp3:okhttp:3.12.15=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.datadoghq.okio:okio:1.17.6=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.datadoghq:dd-instrument-java:0.0.6=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.datadoghq:dd-javac-plugin-client:0.2.2=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.datadoghq:java-dogstatsd-client:4.4.5=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -com.datadoghq:sketches-java:0.8.3=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.blogspot.mydailyjava:weak-lock-free:0.17=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.datadoghq.okhttp3:okhttp:3.12.15=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.datadoghq.okio:okio:1.17.6=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.datadoghq:dd-instrument-java:0.0.6=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.datadoghq:dd-javac-plugin-client:0.2.2=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.datadoghq:java-dogstatsd-client:4.4.5=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.datadoghq:sketches-java:0.8.3=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath com.disneystreaming:weaver-cats-core_3:0.8.4=weaver084TestCompileClasspath,weaver084TestRuntimeClasspath com.disneystreaming:weaver-cats_3:0.8.4=weaver084TestCompileClasspath,weaver084TestRuntimeClasspath com.disneystreaming:weaver-core_3:0.8.4=weaver084TestCompileClasspath,weaver084TestRuntimeClasspath @@ -24,63 +26,63 @@ com.eed3si9n:shaded-jawn-parser_2.13:1.3.2=zinc com.eed3si9n:shaded-scalajson_2.13:1.0.0-M4=zinc com.eed3si9n:sjson-new-core_2.13:0.10.1=zinc com.eed3si9n:sjson-new-scalajson_2.13:0.10.1=zinc -com.fasterxml.jackson.core:jackson-annotations:2.20=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.fasterxml.jackson.core:jackson-core:2.20.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.fasterxml.jackson.core:jackson-databind:2.20.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.fasterxml.jackson:jackson-bom:2.20.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.fasterxml.jackson.core:jackson-annotations:2.20=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.fasterxml.jackson.core:jackson-core:2.20.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.20.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.fasterxml.jackson:jackson-bom:2.20.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath com.github.javaparser:javaparser-core:3.25.6=codenarc -com.github.jnr:jffi:1.3.15=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -com.github.jnr:jnr-a64asm:1.0.0=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -com.github.jnr:jnr-constants:0.10.4=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -com.github.jnr:jnr-enxio:0.32.20=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -com.github.jnr:jnr-ffi:2.2.19=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -com.github.jnr:jnr-posix:3.1.22=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -com.github.jnr:jnr-unixsocket:0.38.25=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -com.github.jnr:jnr-x86asm:1.0.2=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.github.jnr:jffi:1.3.15=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.github.jnr:jnr-a64asm:1.0.0=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.github.jnr:jnr-constants:0.10.4=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.github.jnr:jnr-enxio:0.32.20=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.github.jnr:jnr-ffi:2.2.19=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.github.jnr:jnr-posix:3.1.22=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.github.jnr:jnr-unixsocket:0.38.25=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.github.jnr:jnr-x86asm:1.0.2=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath com.github.spotbugs:spotbugs-annotations:4.10.4=compileClasspath,spotbugs com.github.spotbugs:spotbugs:4.10.4=spotbugs com.github.stephenc.jcip:jcip-annotations:1.0-1=spotbugs -com.google.auto.service:auto-service-annotations:1.1.1=annotationProcessor,compileClasspath,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,testAnnotationProcessor,testCompileClasspath,weaver084TestAnnotationProcessor,weaver084TestCompileClasspath -com.google.auto.service:auto-service:1.1.1=annotationProcessor,latestDepTestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor -com.google.auto:auto-common:1.2.1=annotationProcessor,latestDepTestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor -com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,compileClasspath,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,spotbugs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath,weaver084TestAnnotationProcessor,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.google.auto.service:auto-service-annotations:1.1.1=annotationProcessor,compileClasspath,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,scala212TestAnnotationProcessor,scala212TestCompileClasspath,scala213TestAnnotationProcessor,scala213TestCompileClasspath,testAnnotationProcessor,testCompileClasspath,weaver084TestAnnotationProcessor,weaver084TestCompileClasspath +com.google.auto.service:auto-service:1.1.1=annotationProcessor,latestDepTestAnnotationProcessor,scala212TestAnnotationProcessor,scala213TestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,latestDepTestAnnotationProcessor,scala212TestAnnotationProcessor,scala213TestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor +com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,compileClasspath,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestAnnotationProcessor,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestAnnotationProcessor,scala213TestCompileClasspath,scala213TestRuntimeClasspath,spotbugs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath,weaver084TestAnnotationProcessor,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath com.google.code.gson:gson:2.14.0=spotbugs -com.google.errorprone:error_prone_annotations:2.18.0=annotationProcessor,latestDepTestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.google.errorprone:error_prone_annotations:2.18.0=annotationProcessor,latestDepTestAnnotationProcessor,scala212TestAnnotationProcessor,scala213TestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.47.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath com.google.errorprone:error_prone_annotations:2.48.0=spotbugs -com.google.guava:failureaccess:1.0.1=annotationProcessor,latestDepTestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor -com.google.guava:failureaccess:1.0.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.google.guava:guava:32.0.1-jre=annotationProcessor,latestDepTestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor -com.google.guava:guava:33.6.0-jre=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath,weaver084TestAnnotationProcessor,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.google.j2objc:j2objc-annotations:2.8=annotationProcessor,latestDepTestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor -com.google.j2objc:j2objc-annotations:3.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.google.re2j:re2j:1.8=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -com.jayway.jsonpath:json-path:2.8.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.google.guava:failureaccess:1.0.1=annotationProcessor,latestDepTestAnnotationProcessor,scala212TestAnnotationProcessor,scala213TestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor +com.google.guava:failureaccess:1.0.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.google.guava:guava:32.0.1-jre=annotationProcessor,latestDepTestAnnotationProcessor,scala212TestAnnotationProcessor,scala213TestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor +com.google.guava:guava:33.6.0-jre=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,latestDepTestAnnotationProcessor,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestAnnotationProcessor,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestAnnotationProcessor,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath,weaver084TestAnnotationProcessor,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.google.j2objc:j2objc-annotations:2.8=annotationProcessor,latestDepTestAnnotationProcessor,scala212TestAnnotationProcessor,scala213TestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor +com.google.j2objc:j2objc-annotations:3.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.google.re2j:re2j:1.8=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +com.jayway.jsonpath:json-path:2.8.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath com.lmax:disruptor:3.4.2=zinc -com.squareup.moshi:moshi:1.11.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.squareup.okhttp3:logging-interceptor:3.12.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.squareup.okhttp3:okhttp:3.12.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -com.squareup.okio:okio:1.17.5=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.squareup.moshi:moshi:1.11.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.squareup.okhttp3:logging-interceptor:3.12.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.squareup.okhttp3:okhttp:3.12.12=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.squareup.okio:okio:1.17.5=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath com.swoval:file-tree-views:2.1.12=zinc com.thoughtworks.qdox:qdox:1.12.1=codenarc -com.vaadin.external.google:android-json:0.0.20131108.vaadin1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -commons-fileupload:commons-fileupload:1.5=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -commons-io:commons-io:2.11.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +com.vaadin.external.google:android-json:0.0.20131108.vaadin1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +commons-fileupload:commons-fileupload:1.5=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +commons-io:commons-io:2.11.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath commons-io:commons-io:2.21.0=spotbugs -de.thetaphi:forbiddenapis:3.11=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +de.thetaphi:forbiddenapis:3.11=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath io.github.java-diff-utils:java-diff-utils:4.15=zinc -io.leangen.geantyref:geantyref:1.3.16=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -io.sqreen:libsqreen:17.5.0=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -javax.servlet:javax.servlet-api:3.1.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +io.leangen.geantyref:geantyref:1.3.16=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +io.sqreen:libsqreen:17.5.0=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +javax.servlet:javax.servlet-api:3.1.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath jaxen:jaxen:2.0.6=spotbugs -junit:junit:4.13.2=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -net.bytebuddy:byte-buddy-agent:1.18.12=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -net.bytebuddy:byte-buddy:1.18.12=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -net.java.dev.jna:jna-platform:5.8.0=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -net.java.dev.jna:jna:5.8.0=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -net.minidev:accessors-smart:2.4.9=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -net.minidev:json-smart:2.4.10=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +junit:junit:4.13.2=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +net.bytebuddy:byte-buddy-agent:1.18.12=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +net.bytebuddy:byte-buddy:1.18.12=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +net.java.dev.jna:jna-platform:5.8.0=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +net.java.dev.jna:jna:5.8.0=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +net.minidev:accessors-smart:2.4.9=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +net.minidev:json-smart:2.4.10=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath net.openhft:zero-allocation-hashing:0.16=zinc net.sf.saxon:Saxon-HE:12.10=spotbugs org.apache.ant:ant-antlr:1.10.14=codenarc @@ -92,65 +94,68 @@ org.apache.logging.log4j:log4j-api:2.17.1=zinc org.apache.logging.log4j:log4j-api:2.26.1=spotbugs org.apache.logging.log4j:log4j-core:2.17.1=zinc org.apache.logging.log4j:log4j-core:2.26.1=spotbugs -org.apiguardian:apiguardian-api:1.1.2=latestDepTestCompileClasspath,testCompileClasspath,weaver084TestCompileClasspath -org.checkerframework:checker-qual:3.33.0=annotationProcessor,latestDepTestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor +org.apiguardian:apiguardian-api:1.1.2=latestDepTestCompileClasspath,scala212TestCompileClasspath,scala213TestCompileClasspath,testCompileClasspath,weaver084TestCompileClasspath +org.checkerframework:checker-qual:3.33.0=annotationProcessor,latestDepTestAnnotationProcessor,scala212TestAnnotationProcessor,scala213TestAnnotationProcessor,testAnnotationProcessor,weaver084TestAnnotationProcessor org.codehaus.groovy:groovy-ant:3.0.23=codenarc org.codehaus.groovy:groovy-docgenerator:3.0.23=codenarc org.codehaus.groovy:groovy-groovydoc:3.0.23=codenarc org.codehaus.groovy:groovy-json:3.0.23=codenarc -org.codehaus.groovy:groovy-json:3.0.25=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.codehaus.groovy:groovy-json:3.0.25=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.codehaus.groovy:groovy-templates:3.0.23=codenarc org.codehaus.groovy:groovy-xml:3.0.23=codenarc org.codehaus.groovy:groovy:3.0.23=codenarc -org.codehaus.groovy:groovy:3.0.25=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.codehaus.groovy:groovy:3.0.25=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.codenarc:CodeNarc:3.7.0=codenarc org.dom4j:dom4j:2.2.0=spotbugs -org.freemarker:freemarker:2.3.31=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.freemarker:freemarker:2.3.31=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.fusesource.jansi:jansi:2.4.1=zinc org.gmetrics:GMetrics:2.1.0=codenarc -org.hamcrest:hamcrest-core:1.3=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.hamcrest:hamcrest:3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.jacoco:org.jacoco.core:0.8.15=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.jacoco:org.jacoco.report:0.8.15=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.jctools:jctools-core-jdk11:4.0.6=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.jctools:jctools-core:4.0.6=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.hamcrest:hamcrest-core:1.3=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.hamcrest:hamcrest:3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.jacoco:org.jacoco.core:0.8.15=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.jacoco:org.jacoco.report:0.8.15=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.jctools:jctools-core-jdk11:4.0.6=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.jctools:jctools-core:4.0.6=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath org.jline:jline-native:3.27.1=zinc org.jline:jline-terminal-jni:3.27.1=zinc org.jline:jline-terminal:3.27.1=zinc org.jline:jline:3.27.1=zinc -org.jspecify:jspecify:1.0.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.junit.jupiter:junit-jupiter-api:5.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.junit.jupiter:junit-jupiter-engine:5.14.1=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.junit.jupiter:junit-jupiter-params:5.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.junit.jupiter:junit-jupiter:5.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.junit.platform:junit-platform-commons:1.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.junit.platform:junit-platform-engine:1.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.junit.platform:junit-platform-launcher:1.14.1=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.junit.platform:junit-platform-runner:1.14.1=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.junit.platform:junit-platform-suite-api:1.14.1=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.junit.platform:junit-platform-suite-commons:1.14.1=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.junit:junit-bom:5.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.mockito:mockito-core:4.4.0=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.msgpack:jackson-dataformat-msgpack:0.9.6=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.msgpack:msgpack-core:0.9.6=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.objenesis:objenesis:3.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.opentest4j:opentest4j:1.3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.jspecify:jspecify:1.0.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.junit.jupiter:junit-jupiter-api:5.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:5.14.1=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.junit.jupiter:junit-jupiter-params:5.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.junit.jupiter:junit-jupiter:5.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.junit.platform:junit-platform-commons:1.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.junit.platform:junit-platform-engine:1.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.junit.platform:junit-platform-launcher:1.14.1=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.junit.platform:junit-platform-runner:1.14.1=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.junit.platform:junit-platform-suite-api:1.14.1=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.junit.platform:junit-platform-suite-commons:1.14.1=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.junit:junit-bom:5.14.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.mockito:mockito-core:4.4.0=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.msgpack:jackson-dataformat-msgpack:0.9.6=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.msgpack:msgpack-core:0.9.6=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.objenesis:objenesis:3.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.ow2.asm:asm-analysis:9.10.1=spotbugs -org.ow2.asm:asm-analysis:9.7.1=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.ow2.asm:asm-commons:9.10.1=latestDepTestRuntimeClasspath,spotbugs,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.ow2.asm:asm-tree:9.10.1=latestDepTestRuntimeClasspath,spotbugs,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.ow2.asm:asm-analysis:9.7.1=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.ow2.asm:asm-commons:9.10.1=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,spotbugs,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.ow2.asm:asm-tree:9.10.1=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,spotbugs,testRuntimeClasspath,weaver084TestRuntimeClasspath org.ow2.asm:asm-util:9.10.1=spotbugs -org.ow2.asm:asm-util:9.7.1=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.ow2.asm:asm:9.10.1=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,spotbugs,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.portable-scala:portable-scala-reflect_2.13:1.1.2=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.ow2.asm:asm-util:9.7.1=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.ow2.asm:asm:9.10.1=buildTimeInstrumentationPlugin,compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,spotbugs,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.portable-scala:portable-scala-reflect_2.12:1.1.2=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.portable-scala:portable-scala-reflect_2.13:1.1.2=compileClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.portable-scala:portable-scala-reflect_2.13:1.1.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.scala-lang.modules:scala-parallel-collections_2.13:0.2.0=zinc org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2=zinc org.scala-lang.modules:scala-xml_2.13:2.3.0=zinc org.scala-lang:scala-compiler:2.13.16=zinc -org.scala-lang:scala-library:2.13.12=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.scala-lang:scala-library:2.12.20=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.scala-lang:scala-library:2.13.12=compileClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.scala-lang:scala-library:2.13.16=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,zinc -org.scala-lang:scala-reflect:2.13.12=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.scala-lang:scala-reflect:2.12.19=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.scala-lang:scala-reflect:2.13.12=compileClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.scala-lang:scala-reflect:2.13.16=zinc org.scala-lang:scala3-library_3:3.3.3=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.scala-lang:scala3-library_3:3.3.7=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath @@ -162,7 +167,7 @@ org.scala-sbt:core-macros_2.13:1.11.5=zinc org.scala-sbt:io_2.13:1.10.5=zinc org.scala-sbt:launcher-interface:1.4.4=zinc org.scala-sbt:sbinary_2.13:0.5.1=zinc -org.scala-sbt:test-interface:1.0=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.scala-sbt:test-interface:1.0=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.scala-sbt:util-control_2.13:1.11.5=zinc org.scala-sbt:util-interface:1.11.5=zinc org.scala-sbt:util-logging_2.13:1.11.5=zinc @@ -176,43 +181,65 @@ org.scala-sbt:zinc-core_2.13:1.12.0=zinc org.scala-sbt:zinc-persist-core-assembly:1.12.0=zinc org.scala-sbt:zinc-persist_2.13:1.12.0=zinc org.scala-sbt:zinc_2.13:1.12.0=zinc +org.scodec:scodec-bits_2.12:1.1.38=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.scodec:scodec-bits_2.13:1.1.38=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.scodec:scodec-bits_3:1.1.38=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.scodec:scodec-bits_3:1.2.4=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath -org.skyscreamer:jsonassert:1.5.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.slf4j:jcl-over-slf4j:1.7.30=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.slf4j:jul-to-slf4j:1.7.30=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.slf4j:log4j-over-slf4j:1.7.30=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.skyscreamer:jsonassert:1.5.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.slf4j:jcl-over-slf4j:1.7.30=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.slf4j:jul-to-slf4j:1.7.30=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.slf4j:log4j-over-slf4j:1.7.30=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.slf4j:slf4j-api:1.7.30=buildTimeInstrumentationPlugin,compileClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath -org.slf4j:slf4j-api:1.7.32=latestDepTestCompileClasspath,testCompileClasspath,weaver084TestCompileClasspath -org.slf4j:slf4j-api:1.7.36=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.slf4j:slf4j-api:1.7.32=latestDepTestCompileClasspath,scala212TestCompileClasspath,scala213TestCompileClasspath,testCompileClasspath,weaver084TestCompileClasspath +org.slf4j:slf4j-api:1.7.36=latestDepTestRuntimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath org.slf4j:slf4j-api:2.0.17=spotbugsSlf4j org.slf4j:slf4j-api:2.0.18=spotbugs org.slf4j:slf4j-simple:2.0.17=spotbugsSlf4j -org.snakeyaml:snakeyaml-engine:2.9=buildTimeInstrumentationPlugin,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath -org.spockframework:spock-bom:2.4-groovy-3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.spockframework:spock-core:2.4-groovy-3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.tabletest:tabletest-junit:1.2.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath -org.tabletest:tabletest-parser:1.2.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.snakeyaml:snakeyaml-engine:2.9=buildTimeInstrumentationPlugin,latestDepTestRuntimeClasspath,muzzleTooling,runtimeClasspath,scala212TestRuntimeClasspath,scala213TestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath +org.spockframework:spock-bom:2.4-groovy-3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.spockframework:spock-core:2.4-groovy-3.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.tabletest:tabletest-junit:1.2.2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.tabletest:tabletest-parser:1.2.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.typelevel:cats-core_2.12:2.10.0=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:cats-core_2.13:2.10.0=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:cats-core_3:2.10.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.typelevel:cats-core_3:2.13.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.typelevel:cats-effect-kernel_2.12:3.5.4=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:cats-effect-kernel_2.13:3.5.4=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:cats-effect-kernel_3:3.5.4=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.typelevel:cats-effect-kernel_3:3.7.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.typelevel:cats-effect-std_2.12:3.5.4=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:cats-effect-std_2.13:3.5.4=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:cats-effect-std_3:3.5.4=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.typelevel:cats-effect-std_3:3.7.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.typelevel:cats-effect_2.12:3.5.4=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:cats-effect_2.13:3.5.4=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:cats-effect_3:3.5.4=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.typelevel:cats-effect_3:3.7.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.typelevel:cats-kernel_2.12:2.10.0=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:cats-kernel_2.13:2.10.0=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:cats-kernel_3:2.10.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.typelevel:cats-kernel_3:2.13.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.typelevel:cats-mtl_3:1.6.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.typelevel:scalac-compat-annotation_2.12:0.1.4=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:scalac-compat-annotation_2.13:0.1.4=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:scalac-compat-annotation_3:0.1.4=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.typelevel:weaver-cats-core_2.12:0.9.0=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:weaver-cats-core_2.13:0.9.0=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:weaver-cats-core_3:0.13.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.typelevel:weaver-cats-core_3:0.9.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.typelevel:weaver-cats_2.12:0.9.0=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:weaver-cats_2.13:0.9.0=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:weaver-cats_3:0.13.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.typelevel:weaver-cats_3:0.9.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.typelevel:weaver-core_2.12:0.9.0=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:weaver-core_2.13:0.9.0=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:weaver-core_3:0.13.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.typelevel:weaver-core_3:0.9.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.typelevel:weaver-framework_2.12:0.9.0=scala212TestCompileClasspath,scala212TestRuntimeClasspath +org.typelevel:weaver-framework_2.13:0.9.0=scala213TestCompileClasspath,scala213TestRuntimeClasspath org.typelevel:weaver-framework_3:0.13.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.typelevel:weaver-framework_3:0.9.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath org.xmlresolver:xmlresolver:5.3.3=spotbugs -org.xmlunit:xmlunit-core:2.10.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath +org.xmlunit:xmlunit-core:2.10.3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,scala212TestCompileClasspath,scala212TestRuntimeClasspath,scala213TestCompileClasspath,scala213TestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath empty=scalaCompilerPlugins,scalaToolchainRuntimeClasspath,spotbugsPlugins diff --git a/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/DatadogWeaverReporter.java b/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/DatadogWeaverReporter.java index aaf35631118..a2cd78a5755 100644 --- a/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/DatadogWeaverReporter.java +++ b/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/DatadogWeaverReporter.java @@ -10,11 +10,18 @@ import datadog.trace.api.time.SystemTimeSource; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import sbt.testing.TaskDef; import scala.Option; import weaver.Result; +import weaver.TestName; import weaver.TestOutcome; import weaver.framework.RunEvent; import weaver.framework.SuiteFinished; @@ -24,6 +31,38 @@ public class DatadogWeaverReporter { private static final String TEST_FRAMEWORK = "weaver"; + private static final Logger LOGGER = LoggerFactory.getLogger(DatadogWeaverReporter.class); + private static final Map>> TEST_TAGS = + new ConcurrentHashMap<>(); + + /** Takes a fresh snapshot per execution and retains only names and strings. */ + public static void registerTestTags(String suiteName, Object suite) { + try { + scala.collection.Iterable plan = + (scala.collection.Iterable) suite.getClass().getMethod("plan").invoke(suite); + Map> tagsByName = new HashMap<>(); + scala.collection.Iterator tests = plan.iterator(); + while (tests.hasNext()) { + TestName testName = (TestName) tests.next(); + Collection tags = new ArrayList<>(); + scala.collection.Iterator declaredTags = testName.tags().iterator(); + while (declaredTags.hasNext()) { + String tag = declaredTags.next(); + if ("datadog_no_auto_retry".equals(tag) + || "datadog_prevent_failure_suppression".equals(tag)) { + tags.add(tag); + } + } + if (!tags.isEmpty()) { + tagsByName.put(testName.name(), tags); + } + } + TEST_TAGS.put(suiteName, tagsByName); + } catch (Exception e) { + LOGGER.debug("Could not read Weaver test declaration tags", e); + } + } + private static final String TEST_FRAMEWORK_VERSION = WeaverUtils.getWeaverVersion(); private static volatile TestEventsHandler @@ -50,6 +89,7 @@ public static synchronized void stop() { if (TEST_EVENTS_HANDLER != null) { TEST_EVENTS_HANDLER.close(); TEST_EVENTS_HANDLER = null; + TEST_TAGS.clear(); } } @@ -89,6 +129,7 @@ public static void onSuiteFinish(SuiteFinished event) { Class testClass = WeaverUtils.getClass(testSuiteName); TEST_EVENTS_HANDLER.onTestSuiteFinish(new TestSuiteDescriptor(testSuiteName, testClass), null); + TEST_TAGS.remove(testSuiteName); } public static void onTestFinished(TestFinished event, TaskDef taskDef) { @@ -104,7 +145,10 @@ public static void onTestFinished(TestFinished event, TaskDef taskDef) { String testName = event.outcome().name(); Object testQualifier = null; String testParameters = null; - Collection categories = Collections.emptyList(); + Collection categories = + TEST_TAGS + .getOrDefault(testSuiteName, Collections.emptyMap()) + .getOrDefault(testName, Collections.emptyList()); TestDescriptor testDescriptor = new TestDescriptor(testSuiteName, testClass, testName, testParameters, testQualifier); String testMethodName = null; diff --git a/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/WeaverTestTagsInstrumentation.java b/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/WeaverTestTagsInstrumentation.java new file mode 100644 index 00000000000..a25ae85abf2 --- /dev/null +++ b/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/WeaverTestTagsInstrumentation.java @@ -0,0 +1,64 @@ +package datadog.trace.instrumentation.weaver; + +import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.isStatic; +import static net.bytebuddy.matcher.ElementMatchers.none; +import static net.bytebuddy.matcher.ElementMatchers.not; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; +import static net.bytebuddy.matcher.ElementMatchers.takesArguments; + +import com.google.auto.service.AutoService; +import datadog.trace.agent.tooling.Instrumenter; +import datadog.trace.agent.tooling.InstrumenterModule; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.matcher.ElementMatcher; + +/** Captures declaration tags with the task identity used by Weaver's reporting events. */ +@AutoService(InstrumenterModule.class) +public class WeaverTestTagsInstrumentation extends InstrumenterModule.CiVisibility + implements Instrumenter.ForSingleType, Instrumenter.HasMethodAdvice { + public WeaverTestTagsInstrumentation() { + super("ci-visibility", "weaver"); + } + + @Override + public String instrumentedType() { + return "weaver.framework.RunnerCompat$IOTask"; + } + + @Override + public ElementMatcher methodIgnoreMatcher() { + return none(); + } + + @Override + public void methodAdvice(MethodTransformer transformer) { + // The suite-loaded flatMap callback receives the actual suite returned by its provider. + transformer.applyAdvice( + takesArguments(2).and(not(isStatic())).and(takesArgument(1, named("weaver.EffectSuite"))), + WeaverTestTagsInstrumentation.class.getName() + "$CaptureTagsAdvice"); + // Scala 2 lifts the receiver into the first argument of its static callback. + transformer.applyAdvice( + isStatic() + .and(takesArguments(3)) + .and(takesArgument(0, named(instrumentedType()))) + .and(takesArgument(2, named("weaver.EffectSuite"))), + WeaverTestTagsInstrumentation.class.getName() + "$CaptureScala2TagsAdvice"); + } + + public static class CaptureTagsAdvice { + @Advice.OnMethodEnter(suppress = Throwable.class) + public static void capture( + @Advice.FieldValue("fqn") String suiteName, @Advice.Argument(1) Object suite) { + DatadogWeaverReporter.registerTestTags(suiteName, suite); + } + } + + public static class CaptureScala2TagsAdvice { + @Advice.OnMethodEnter(suppress = Throwable.class) + public static void capture(@Advice.Argument(0) Object task, @Advice.Argument(2) Object suite) { + DatadogWeaverReporter.registerTestTags(WeaverUtils.getTaskName(task), suite); + } + } +} diff --git a/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/WeaverUtils.java b/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/WeaverUtils.java index f4ed259cd24..8992908a9d2 100644 --- a/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/WeaverUtils.java +++ b/dd-java-agent/instrumentation/weaver-0.9/src/main/java/datadog/trace/instrumentation/weaver/WeaverUtils.java @@ -41,6 +41,14 @@ public abstract class WeaverUtils { private static final MethodHandle GET_EXPECTATION_FAILED_MESSAGE_HANDLE = METHOD_HANDLES.method(getClass(EXPECTATION_FAILED_CLASS_NAME), "message"); + // IOTask is private in the Scala 2 build of Weaver 0.8.4. + private static final MethodHandle GET_TASK_NAME_HANDLE = + METHOD_HANDLES.method(getClass("weaver.framework.RunnerCompat$IOTask"), "fqn"); + + public static String getTaskName(Object task) { + return METHOD_HANDLES.invoke(GET_TASK_NAME_HANDLE, task); + } + public static final List CAPABILITIES = Collections.emptyList(); private WeaverUtils() {} diff --git a/dd-java-agent/instrumentation/weaver-0.9/src/scala2Test/groovy/WeaverScala2Test.groovy b/dd-java-agent/instrumentation/weaver-0.9/src/scala2Test/groovy/WeaverScala2Test.groovy new file mode 100644 index 00000000000..2e2f974fe35 --- /dev/null +++ b/dd-java-agent/instrumentation/weaver-0.9/src/scala2Test/groovy/WeaverScala2Test.groovy @@ -0,0 +1,87 @@ +import datadog.trace.api.DisableTestTrace +import datadog.trace.civisibility.CiVisibilityInstrumentationTest +import datadog.trace.instrumentation.weaver.DatadogWeaverReporter +import datadog.trace.instrumentation.weaver.WeaverUtils +import org.example.TestAutomationExcluded +import org.example.TestAutomationNamed +import org.example.TestAutomationProvider +import org.slf4j.LoggerFactory +import sbt.testing.EventHandler +import sbt.testing.Logger +import sbt.testing.SubclassFingerprint +import sbt.testing.SuiteSelector +import sbt.testing.TaskDef +import weaver.framework.CatsEffect + +@DisableTestTrace(reason = 'avoid self-tracing') +class WeaverScala2Test extends CiVisibilityInstrumentationTest { + def "Scala 2 declarations preserve exclusion tags and native failure and skip outcomes"() { + when: + runNativeSuites([TestAutomationExcluded.name]) + + then: + def spans = TEST_WRITER.toList().flatten().findAll { it.getTag('test.name') in ['protected_failure', 'protected_skip'] } + spans.size() == 2 + spans.every { it.getTag('test.test_management.no_auto_retry') == true } + spans.every { it.getTag('test.test_management.prevent_failure_suppression') == true } + spans.find { it.getTag('test.name') == 'protected_failure' }.getTag('test.status').toString() == 'fail' + spans.find { it.getTag('test.name') == 'protected_skip' }.getTag('test.status').toString() == 'skip' + } + + def "Scala 2 task identities preserve distinct provider declarations"() { + when: + runNativeSuites([TestAutomationNamed.name, TestAutomationProvider.name]) + + then: + def spans = TEST_WRITER.toList().flatten().findAll { it.getTag('test.name') == 'named_test' } + spans.size() == 2 + def named = spans.find { it.getTag('test.suite') == TestAutomationNamed.name } + named.getTag('test.test_management.no_auto_retry') == true + named.getTag('test.test_management.prevent_failure_suppression') == null + def provided = spans.find { it.getTag('test.suite') == TestAutomationProvider.name } + provided.getTag('test.test_management.prevent_failure_suppression') == true + provided.getTag('test.test_management.no_auto_retry') == null + } + + private void runNativeSuites(List names) { + assert CatsEffect.protectionDomain.codeSource.location.toString().contains('weaver-cats_2.') + def output = new ByteArrayOutputStream() + def stream = new PrintStream(output, false, 'UTF-8') + def framework = new CatsEffect(stream) + def runner = framework.runner([] as String[], [] as String[], getClass().classLoader) + def fingerprint = framework.fingerprints().find { it instanceof SubclassFingerprint && it.isModule() && it.superclassName() == 'weaver.BaseCatsSuite' } + def definitions = names.collect { new TaskDef(it, fingerprint, false, [new SuiteSelector()] as sbt.testing.Selector[]) } as TaskDef[] + def events = [] + def handler = { event -> events.add(event) } as EventHandler + def log = LoggerFactory.getLogger(WeaverScala2Test) + def logger = [ + ansiCodesSupported: { false }, + error: { String message -> log.error(message) }, + warn: { String message -> log.warn(message) }, + info: { String message -> log.info(message) }, + debug: { String message -> log.debug(message) }, + trace: { Throwable error -> + log.error('Weaver error', error) + } + ] as Logger + DatadogWeaverReporter.start() + try { + runner.tasks(definitions).each { it.execute(handler, [logger] as Logger[]) } + assert !events.empty + } finally { + runner.done() + stream.close() + DatadogWeaverReporter.stop() + } + } + + @Override + String instrumentedLibraryName() { + 'weaver' + } + + @Override + String instrumentedLibraryVersion() { + WeaverUtils.weaverVersion + } +} diff --git a/dd-java-agent/instrumentation/weaver-0.9/src/test/groovy/WeaverTest.groovy b/dd-java-agent/instrumentation/weaver-0.9/src/test/groovy/WeaverTest.groovy index 93287de01e1..58bc799b643 100644 --- a/dd-java-agent/instrumentation/weaver-0.9/src/test/groovy/WeaverTest.groovy +++ b/dd-java-agent/instrumentation/weaver-0.9/src/test/groovy/WeaverTest.groovy @@ -5,6 +5,9 @@ import datadog.trace.instrumentation.weaver.WeaverIntegrationTestRunner import datadog.trace.instrumentation.weaver.WeaverUtils import org.example.TestCanceled import org.example.TestFailed +import org.example.TestAutomationExcluded +import org.example.TestAutomationNamed +import org.example.TestAutomationProvider import org.example.TestFailedExceptionPure import org.example.TestFailedPure import org.example.TestIgnored @@ -16,6 +19,48 @@ import org.example.TestSucceedSuiteResource @DisableTestTrace(reason = "avoid self-tracing") class WeaverTest extends CiVisibilityInstrumentationTest { + def "test automation exclusions retain native outcomes and declaration tags"() { + when: + runTests([TestAutomationExcluded]) + + then: + def testSpans = TEST_WRITER.toList().flatten().findAll { it.getTag("test.name") == "protected_failure" || it.getTag("test.name") == "protected_skip" } + testSpans.size() == 2 + def ordinary = TEST_WRITER.toList().flatten().find { it.getTag("test.name") == "ordinary_tagged" } + ordinary != null + ordinary.getTag("test.test_management.no_auto_retry") == null + ordinary.getTag("test.test_management.prevent_failure_suppression") == null + ordinary.getTag("test.traits") == null + testSpans.every { it.getTag("test.test_management.no_auto_retry") == true } + testSpans.every { it.getTag("test.test_management.prevent_failure_suppression") == true } + testSpans.find { it.getTag("test.name") == "protected_failure" }.getTag("test.status").toString() == "fail" + testSpans.find { it.getTag("test.name") == "protected_skip" }.getTag("test.status").toString() == "skip" + } + + def "custom suite and provider identities preserve distinct declaration tags"() { + when: + DatadogWeaverReporter.start() + WeaverIntegrationTestRunner.runTests([TestAutomationNamed.name, TestAutomationProvider.name]) + + then: + def spans = TEST_WRITER.toList().flatten().findAll { it.getTag("test.name") == "named_test" } + spans.size() == 2 + def named = spans.find { it.getTag("test.suite") == TestAutomationNamed.name } + named.getTag("test.test_management.no_auto_retry") == true + named.getTag("test.test_management.prevent_failure_suppression") == null + def provided = spans.find { it.getTag("test.suite") == TestAutomationProvider.name } + provided.getTag("test.test_management.prevent_failure_suppression") == true + provided.getTag("test.test_management.no_auto_retry") == null + + and: + def snapshots = DatadogWeaverReporter.getDeclaredField("TEST_TAGS") + snapshots.setAccessible(true) + snapshots.get(null).isEmpty() + + cleanup: + DatadogWeaverReporter.stop() + } + def "test #testcaseName"() { runTests(tests) diff --git a/dd-java-agent/instrumentation/weaver-0.9/src/test/scala/org/example/TestAutomationExcluded.scala b/dd-java-agent/instrumentation/weaver-0.9/src/test/scala/org/example/TestAutomationExcluded.scala new file mode 100644 index 00000000000..66c9d674733 --- /dev/null +++ b/dd-java-agent/instrumentation/weaver-0.9/src/test/scala/org/example/TestAutomationExcluded.scala @@ -0,0 +1,23 @@ +package org.example + +import cats.effect.IO +import datadog.trace.api.civisibility.TestAutomationExclusions +import weaver._ + +object TestAutomationExcluded extends SimpleIOSuite { + private def excluded(name: String): TestName = TestName + .fromString(name) + .tagged(TestAutomationExclusions.NO_AUTO_RETRY) + .tagged(TestAutomationExclusions.PREVENT_FAILURE_SUPPRESSION) + + test(excluded("protected_failure")) { + IO.pure(expect(false)) + } + + test(excluded("protected_skip")) { + ignore("developer skip") + } + test("ordinary_tagged".tagged("customer_tag")) { + IO.pure(expect(true)) + } +} diff --git a/dd-java-agent/instrumentation/weaver-0.9/src/test/scala/org/example/TestAutomationNamed.scala b/dd-java-agent/instrumentation/weaver-0.9/src/test/scala/org/example/TestAutomationNamed.scala new file mode 100644 index 00000000000..17b26d07fff --- /dev/null +++ b/dd-java-agent/instrumentation/weaver-0.9/src/test/scala/org/example/TestAutomationNamed.scala @@ -0,0 +1,20 @@ +package org.example + +import cats.effect.IO +import datadog.trace.api.civisibility.TestAutomationExclusions +import weaver._ + +class NamedExcludedSuite(tag: String) extends SimpleIOSuite { + override def name: String = "custom suite display name" + + test(TestName.fromString("named_test").tagged(tag)) { + IO.pure(expect(true)) + } +} + +object TestAutomationNamed extends NamedExcludedSuite(TestAutomationExclusions.NO_AUTO_RETRY) + +object TestAutomationProvider extends BaseCatsSuite with BaseSuiteClass { + def getSuite: EffectSuite[IO] = + new NamedExcludedSuite(TestAutomationExclusions.PREVENT_FAILURE_SUPPRESSION) +} diff --git a/docs/test-automation-exclusions.md b/docs/test-automation-exclusions.md index 898d9b8dadd..e9bda710df9 100644 --- a/docs/test-automation-exclusions.md +++ b/docs/test-automation-exclusions.md @@ -85,3 +85,13 @@ test("critical behavior" MUnit's existing category bridge passes these declarations to the shared policy and reporter. Ignored tests retain their known tags. MUnit currently has no Datadog disabling capability; exclusions do not enable unsupported automation. + +## Weaver + +Use `TestName.tagged(TestAutomationExclusions.NO_AUTO_RETRY)` and +`TestName.tagged(TestAutomationExclusions.PREVENT_FAILURE_SUPPRESSION)` on +native Weaver test declarations. The agent snapshots declaration tags at each +suite execution and reports them with native failure and skip outcomes. + +Weaver currently supports none of Datadog ATR, EFD, Attempt to Fix, quarantine +or disabling. The metadata bridge does not enable those capabilities.