@@ -35,6 +35,9 @@ dependencies {
3535
3636shadowJar {
3737 configurations = [project. configurations. runtimeClasspath, project. configurations. testInstrumentation]
38+
39+ // mergeServiceFiles requires that duplicate strategy is set to include
40+ duplicatesStrategy = DuplicatesStrategy . INCLUDE
3841 mergeServiceFiles()
3942
4043 archiveFileName = ' agent-testing.jar'
@@ -46,13 +49,16 @@ tasks.withType(Test).configureEach {
4649 inputs. file(shadowJar. archiveFile)
4750
4851 jvmArgs " -Dotel.javaagent.debug=true"
49- jvmArgs " -javaagent:${ configurations.testAgent.files.first().absolutePath} "
5052 jvmArgs " -Dotel.javaagent.experimental.initializer.jar=${ shadowJar.archiveFile.get().asFile.absolutePath} "
5153 jvmArgs " -Dotel.javaagent.testing.additional-library-ignores.enabled=false"
5254 jvmArgs " -Dotel.javaagent.testing.fail-on-context-leak=true"
5355 // prevent sporadic gradle deadlocks, see SafeLogger for more details
5456 jvmArgs " -Dotel.javaagent.testing.transform-safe-logging.enabled=true"
5557
58+ jvmArgumentProviders. add(new JavaagentProvider (project. providers. provider {
59+ configurations. testAgent. files. first()
60+ }))
61+
5662 dependsOn shadowJar
5763 dependsOn configurations. testAgent. buildDependencies
5864
@@ -65,3 +71,18 @@ tasks.withType(Test).configureEach {
6571 return true
6672 }
6773}
74+
75+ class JavaagentProvider implements CommandLineArgumentProvider {
76+ @InputFile
77+ @PathSensitive (PathSensitivity .RELATIVE )
78+ Provider<File > agentJar
79+
80+ JavaagentProvider (Provider<File > agentJar ) {
81+ this . agentJar = agentJar
82+ }
83+
84+ @Override
85+ Iterable<String > asArguments () {
86+ return [" -javaagent:${ agentJar.get().absolutePath} " ]
87+ }
88+ }
0 commit comments