@@ -10,48 +10,51 @@ tasks.register("latestDepTest", Test)
1010
1111Project parent_project = project
1212subprojects { Project subProj ->
13- apply plugin : ' instrument'
14- apply plugin : ' muzzle'
13+ subProj. pluginManager. withPlugin(" instrument" ) {
14+ subProj. extensions. configure(InstrumentExtension ) {
15+ it. plugins. addAll(
16+ ' datadog.trace.agent.tooling.muzzle.MuzzleGradlePlugin' ,
17+ ' datadog.trace.agent.tooling.bytebuddy.NewTaskForGradlePlugin' ,
18+ ' datadog.trace.agent.tooling.bytebuddy.reqctx.RewriteRequestContextAdvicePlugin' ,
19+ )
20+ }
1521
16- configurations {
17- instrumentPluginClasspath {
18- visible = false
19- canBeConsumed = false
20- canBeResolved = true
22+ subProj. configurations. register(" instrumentPluginClasspath" ) {
23+ it. visible = false
24+ it. canBeConsumed = false
25+ it. canBeResolved = true
26+
27+ it. dependencies. add(subProj. dependencies. project(path : ' :dd-java-agent:agent-tooling' , configuration : ' instrumentPluginClasspath' ))
2128 }
2229 }
2330
24- instrument. plugins = [
25- ' datadog.trace.agent.tooling.muzzle.MuzzleGradlePlugin' ,
26- ' datadog.trace.agent.tooling.bytebuddy.NewTaskForGradlePlugin' ,
27- ' datadog.trace.agent.tooling.bytebuddy.reqctx.RewriteRequestContextAdvicePlugin' ,
28- ]
31+ subProj. pluginManager. withPlugin(" java" ) {
32+ subProj. pluginManager. withPlugin(" muzzle" ) {
33+ subProj. configurations. matching { it. name == " muzzleBootstrap" }. configureEach {
34+ exclude group : ' org.snakeyaml' , module : ' snakeyaml-engine' // we vendor this in the agent jar
35+ }
36+ }
2937
30- subProj. tasks. withType(Javadoc ). configureEach { enabled = false }
38+ subProj. tasks. withType(Javadoc ). configureEach { enabled = false }
3139
32- subProj. afterEvaluate {
33- if (! plugins. hasPlugin(" java" )) {
34- return
35- }
36- String jdkCompile = null
37- if (project. hasProperty(' minJavaVersionForTests' ) && project. getProperty(' minJavaVersionForTests' ) != JavaVersion . VERSION_1_8 ) {
38- def version = JavaVersion . toVersion(project. getProperty(' minJavaVersionForTests' ))
39- def name = " java$version . majorVersion "
40- jdkCompile = " main_${ name} Implementation"
41- }
42- configurations. named(' muzzleBootstrap' ) {
43- exclude group : ' org.snakeyaml' , module : ' snakeyaml-engine' // we vendor this in the agent jar
40+ if (subProj. hasProperty(' minJavaVersionForTests' ) && subProj. findProperty(' minJavaVersionForTests' ) != JavaVersion . VERSION_1_8 ) {
41+ def version = JavaVersion . toVersion(subProj. findProperty(' minJavaVersionForTests' ))
42+ def mainJavaConfigName = " main_name${ version.majorVersion} Implementation"
43+
44+ configurations
45+ .matching {it. name == mainJavaConfigName }
46+ .configureEach {
47+ it. dependencies. add(subProj. dependencies. project(path : ' :dd-trace-api' ))
48+ it. dependencies. add(subProj. dependencies. project(path : ' :dd-java-agent:agent-tooling' ))
49+ it. dependencies. addLater(libs. bytebuddy)
50+ }
4451 }
52+
4553 dependencies {
4654 // Apply common dependencies for instrumentation.
4755 implementation project(' :dd-trace-api' )
4856 implementation project(' :dd-java-agent:agent-tooling' )
4957 implementation libs. bytebuddy
50- if (jdkCompile) {
51- " $jdkCompile " project(' :dd-trace-api' )
52- " $jdkCompile " project(' :dd-java-agent:agent-tooling' )
53- " $jdkCompile " libs. bytebuddy
54- }
5558
5659 annotationProcessor project(' :dd-java-agent:instrumentation-annotation-processor' )
5760 annotationProcessor libs. autoservice. processor
@@ -66,26 +69,24 @@ subprojects { Project subProj ->
6669 testImplementation project(' :dd-java-agent:instrumentation-testing' )
6770 testAnnotationProcessor libs. autoservice. processor
6871 testCompileOnly libs. autoservice. annotation
69-
70- instrumentPluginClasspath project(path : ' :dd-java-agent:agent-tooling' , configuration : ' instrumentPluginClasspath' )
7172 }
7273
7374 subProj. tasks. withType(Test ). configureEach { subTask ->
7475 if (subTask. name in [' latestDepTest' , ' latestDepForkedTest' ]) {
7576 subTask. jvmArgs ' -Dtest.dd.latestDepTest=true'
7677 }
7778 }
78- }
7979
80- def path = subProj. getPath()
81- subProj. plugins. withId(" java" ) {
82- if (! path. equals(' :dd-java-agent:instrumentation:vertx:vertx-redis-client-3.9:stubs' )) {
83- // don't include the redis RequestImpl stub
80+ if (subProj. path != ' :dd-java-agent:instrumentation:vertx:vertx-redis-client-3.9:stubs' ) {
81+ // don't include the redis RequestImpl stubs
8482 parent_project. dependencies {
85- implementation project(path)
83+ addProvider( " implementation" , providers . provider { project(subProj . path) } )
8684 }
8785 }
8886 }
87+
88+ subProj. apply plugin : ' instrument'
89+ subProj. apply plugin : ' muzzle'
8990}
9091
9192dependencies {
0 commit comments