diff --git a/dd-java-agent/instrumentation/junit-5.3/gradle.lockfile b/dd-java-agent/instrumentation/junit-5.3/gradle.lockfile index 7f34530bc9c..32e8f83379c 100644 --- a/dd-java-agent/instrumentation/junit-5.3/gradle.lockfile +++ b/dd-java-agent/instrumentation/junit-5.3/gradle.lockfile @@ -132,39 +132,39 @@ org.jspecify:jspecify:1.0.0=latestDepTestCompileClasspath org.junit.jupiter:junit-jupiter-api:5.12.2=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.13.4=latest5TestCompileClasspath,latest5TestRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.3.0=compileClasspath -org.junit.jupiter:junit-jupiter-api:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.jupiter:junit-jupiter-api:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.12.2=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.13.4=latest5TestCompileClasspath,latest5TestRuntimeClasspath -org.junit.jupiter:junit-jupiter-engine:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.12.2=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.13.4=latest5TestCompileClasspath,latest5TestRuntimeClasspath -org.junit.jupiter:junit-jupiter-params:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.jupiter:junit-jupiter-params:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.jupiter:junit-jupiter:5.12.2=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter:5.13.4=latest5TestCompileClasspath,latest5TestRuntimeClasspath -org.junit.jupiter:junit-jupiter:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.jupiter:junit-jupiter:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.platform:junit-platform-commons:1.12.2=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.13.4=latest5TestCompileClasspath,latest5TestRuntimeClasspath org.junit.platform:junit-platform-commons:1.3.0=compileClasspath -org.junit.platform:junit-platform-commons:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.platform:junit-platform-commons:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.platform:junit-platform-engine:1.12.2=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.13.4=latest5TestCompileClasspath,latest5TestRuntimeClasspath org.junit.platform:junit-platform-engine:1.3.0=compileClasspath -org.junit.platform:junit-platform-engine:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.platform:junit-platform-engine:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.platform:junit-platform-launcher:1.12.2=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.13.4=latest5TestCompileClasspath,latest5TestRuntimeClasspath org.junit.platform:junit-platform-launcher:1.3.0=compileClasspath -org.junit.platform:junit-platform-launcher:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.platform:junit-platform-launcher:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.platform:junit-platform-runner:1.12.2=latestDepTestRuntimeClasspath,testRuntimeClasspath org.junit.platform:junit-platform-runner:1.13.4=latest5TestRuntimeClasspath org.junit.platform:junit-platform-suite-api:1.12.2=testRuntimeClasspath org.junit.platform:junit-platform-suite-api:1.13.4=latest5TestRuntimeClasspath -org.junit.platform:junit-platform-suite-api:6.0.0-RC2=latestDepTestRuntimeClasspath +org.junit.platform:junit-platform-suite-api:6.0.0-RC3=latestDepTestRuntimeClasspath org.junit.platform:junit-platform-suite-commons:1.12.2=latestDepTestRuntimeClasspath,testRuntimeClasspath org.junit.platform:junit-platform-suite-commons:1.13.4=latest5TestRuntimeClasspath org.junit:junit-bom:5.12.2=testCompileClasspath,testRuntimeClasspath org.junit:junit-bom:5.13.4=latest5TestCompileClasspath,latest5TestRuntimeClasspath org.junit:junit-bom:5.9.1=spotbugs -org.junit:junit-bom:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit:junit-bom:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.mockito:mockito-core:4.4.0=latest5TestRuntimeClasspath,latestDepTestRuntimeClasspath,testRuntimeClasspath org.msgpack:jackson-dataformat-msgpack:0.9.6=latest5TestCompileClasspath,latest5TestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.6=latest5TestCompileClasspath,latest5TestRuntimeClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath diff --git a/dd-java-agent/instrumentation/junit-5.3/junit-5.8/gradle.lockfile b/dd-java-agent/instrumentation/junit-5.3/junit-5.8/gradle.lockfile index b7862e23f69..2c03c6c54a4 100644 --- a/dd-java-agent/instrumentation/junit-5.3/junit-5.8/gradle.lockfile +++ b/dd-java-agent/instrumentation/junit-5.3/junit-5.8/gradle.lockfile @@ -130,31 +130,31 @@ org.jctools:jctools-core:3.3.0=instrumentPluginClasspath,latestDepTestRuntimeCla org.jspecify:jspecify:1.0.0=latestDepTestCompileClasspath org.junit.jupiter:junit-jupiter-api:5.12.2=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.8.0=compileClasspath -org.junit.jupiter:junit-jupiter-api:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.jupiter:junit-jupiter-api:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.12.2=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.8.0=compileClasspath -org.junit.jupiter:junit-jupiter-engine:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.12.2=testCompileClasspath,testRuntimeClasspath -org.junit.jupiter:junit-jupiter-params:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.jupiter:junit-jupiter-params:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.jupiter:junit-jupiter:5.12.2=testCompileClasspath,testRuntimeClasspath -org.junit.jupiter:junit-jupiter:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.jupiter:junit-jupiter:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.platform:junit-platform-commons:1.12.2=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.8.0=compileClasspath -org.junit.platform:junit-platform-commons:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.platform:junit-platform-commons:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.platform:junit-platform-engine:1.12.2=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.8.0=compileClasspath -org.junit.platform:junit-platform-engine:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.platform:junit-platform-engine:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.platform:junit-platform-launcher:1.12.2=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.8.0=compileClasspath -org.junit.platform:junit-platform-launcher:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit.platform:junit-platform-launcher:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.junit.platform:junit-platform-runner:1.12.2=latestDepTestRuntimeClasspath,testRuntimeClasspath org.junit.platform:junit-platform-suite-api:1.12.2=testRuntimeClasspath -org.junit.platform:junit-platform-suite-api:6.0.0-RC2=latestDepTestRuntimeClasspath +org.junit.platform:junit-platform-suite-api:6.0.0-RC3=latestDepTestRuntimeClasspath org.junit.platform:junit-platform-suite-commons:1.12.2=latestDepTestRuntimeClasspath,testRuntimeClasspath org.junit:junit-bom:5.12.2=testCompileClasspath,testRuntimeClasspath org.junit:junit-bom:5.8.0=compileClasspath org.junit:junit-bom:5.9.1=spotbugs -org.junit:junit-bom:6.0.0-RC2=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath +org.junit:junit-bom:6.0.0-RC3=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath org.mockito:mockito-core:4.4.0=latestDepTestRuntimeClasspath,testRuntimeClasspath org.msgpack:jackson-dataformat-msgpack:0.9.6=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.6=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath diff --git a/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/ExecutionRequestFactory.java b/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/ExecutionRequestFactory.java index 6193122c11f..1048932cf82 100644 --- a/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/ExecutionRequestFactory.java +++ b/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/ExecutionRequestFactory.java @@ -29,6 +29,11 @@ public class ExecutionRequestFactory { */ private static final MethodHandle GET_CANCELLATION_TOKEN = METHOD_HANDLES.method(ExecutionRequest.class, "getCancellationToken"); + /* + * From 6.0.0-RC3 onwards OutputDirectoryProvider is deprecated in favor of OutputDirectoryCreator + */ + private static final MethodHandle GET_OUTPUT_DIRECTORY_CREATOR = + METHOD_HANDLES.method(ExecutionRequest.class, "getOutputDirectoryCreator"); private static final String[] CREATE_PARAMETER_TYPES = new String[] { @@ -40,11 +45,48 @@ public class ExecutionRequestFactory { "org.junit.platform.engine.CancellationToken" }; + private static final String[] CREATE_PARAMETER_TYPES_WITH_CREATOR = + new String[] { + "org.junit.platform.engine.TestDescriptor", + "org.junit.platform.engine.EngineExecutionListener", + "org.junit.platform.engine.ConfigurationParameters", + "org.junit.platform.engine.OutputDirectoryCreator", + "org.junit.platform.engine.support.store.NamespacedHierarchicalStore", + "org.junit.platform.engine.CancellationToken" + }; + private static final BiFunction EXECUTION_REQUEST_CREATE = createExecutionRequestHandle(); private static BiFunction createExecutionRequestHandle() { + // 6.0.0-RC3 and later + if (GET_OUTPUT_DIRECTORY_CREATOR != null) { + MethodHandle createMethod = + METHOD_HANDLES.method( + ExecutionRequest.class, + m -> + "create".equals(m.getName()) + && m.getParameterCount() == 6 + && Arrays.equals( + Arrays.stream(m.getParameterTypes()).map(Class::getName).toArray(), + CREATE_PARAMETER_TYPES_WITH_CREATOR)); + + return (request, listener) -> { + Object creator = METHOD_HANDLES.invoke(GET_OUTPUT_DIRECTORY_CREATOR, request); + Object store = METHOD_HANDLES.invoke(GET_STORE, request); + Object cancellationToken = METHOD_HANDLES.invoke(GET_CANCELLATION_TOKEN, request); + return METHOD_HANDLES.invoke( + createMethod, + request.getRootTestDescriptor(), + listener, + request.getConfigurationParameters(), + creator, + store, + cancellationToken); + }; + } + // 6.0.0-M2 and later if (GET_CANCELLATION_TOKEN != null) { MethodHandle createMethod =