Skip to content

Commit ccf1f59

Browse files
committed
chore: Remove instrumentation afterEvaluate
# Conflicts: # dd-java-agent/instrumentation/build.gradle
1 parent 46649f7 commit ccf1f59

File tree

1 file changed

+42
-38
lines changed

1 file changed

+42
-38
lines changed

dd-java-agent/instrumentation/build.gradle

Lines changed: 42 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import static org.gradle.api.plugins.JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME
2+
import static org.gradle.api.tasks.SourceSet.MAIN_SOURCE_SET_NAME
3+
14
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
25

36
plugins {
@@ -10,51 +13,56 @@ tasks.register("latestDepTest", Test)
1013

1114
Project parent_project = project
1215
subprojects { Project subProj ->
13-
apply plugin: 'instrument'
14-
apply plugin: 'muzzle'
15-
16-
configurations {
17-
instrumentPluginClasspath {
18-
visible = false
19-
canBeConsumed = false
20-
canBeResolved = true
16+
subProj.pluginManager.withPlugin("instrument") {
17+
subProj.extensions.configure(InstrumentExtension) {
18+
it.plugins.addAll(
19+
'datadog.trace.agent.tooling.muzzle.MuzzleGradlePlugin',
20+
'datadog.trace.agent.tooling.bytebuddy.NewTaskForGradlePlugin',
21+
'datadog.trace.agent.tooling.bytebuddy.reqctx.RewriteRequestContextAdvicePlugin',
22+
)
2123
}
22-
}
2324

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-
]
25+
subProj.configurations.register("instrumentPluginClasspath") {
26+
it.visible = false
27+
it.canBeConsumed = false
28+
it.canBeResolved = true
2929

30-
subProj.tasks.withType(Javadoc).configureEach { enabled = false }
30+
it.dependencies.add(subProj.dependencies.project(path: ':dd-java-agent:agent-tooling', configuration: 'instrumentPluginClasspath'))
31+
}
32+
}
3133

32-
subProj.afterEvaluate {
33-
if (!plugins.hasPlugin("java")) {
34-
return
34+
subProj.pluginManager.withPlugin("java") {
35+
subProj.pluginManager.withPlugin("muzzle") {
36+
subProj.configurations.matching { it.name == 'muzzleBootstrap' }.configureEach {
37+
exclude group: 'org.snakeyaml', module: 'snakeyaml-engine' // we vendor this in the agent jar
38+
}
3539
}
3640

41+
subProj.tasks.withType(Javadoc).configureEach { enabled = false }
42+
3743
// Configures base dependencies for additional sourceSet
38-
configurations
39-
.matching { it.name.matches("${SourceSet.MAIN_SOURCE_SET_NAME}_java\\d+${JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME.capitalize()}") }
44+
subProj.configurations
45+
.matching { it.name.matches("${MAIN_SOURCE_SET_NAME}_java\\d+${IMPLEMENTATION_CONFIGURATION_NAME.capitalize()}") }
4046
.configureEach {
41-
it.dependencies.add(project.dependencyFactory.create(project(':dd-trace-api')))
42-
it.dependencies.add(project.dependencyFactory.create(project(':dd-java-agent:agent-tooling')))
47+
it.dependencies.add(subProj.dependencyFactory.create(project(':dd-trace-api')))
48+
it.dependencies.add(subProj.dependencyFactory.create(project(':dd-java-agent:agent-tooling')))
4349
it.dependencies.addLater(libs.bytebuddy)
4450
}
4551

46-
configurations.named('muzzleBootstrap') {
47-
exclude group: 'org.snakeyaml', module: 'snakeyaml-engine' // we vendor this in the agent jar
48-
}
4952
dependencies {
53+
// Main
54+
annotationProcessor project(':dd-java-agent:instrumentation-annotation-processor')
55+
annotationProcessor libs.autoservice.processor
56+
compileOnly libs.autoservice.annotation
57+
5058
// Apply common dependencies for instrumentation.
5159
implementation project(':dd-trace-api')
5260
implementation project(':dd-java-agent:agent-tooling')
5361
implementation libs.bytebuddy
5462

55-
annotationProcessor project(':dd-java-agent:instrumentation-annotation-processor')
56-
annotationProcessor libs.autoservice.processor
57-
compileOnly libs.autoservice.annotation
63+
// Tests
64+
testAnnotationProcessor libs.autoservice.processor
65+
testCompileOnly libs.autoservice.annotation
5866

5967
// Include instrumentations instrumenting core JDK classes to ensure interoperability with other instrumentation
6068
testImplementation project(':dd-java-agent:instrumentation:java:java-concurrent:java-concurrent-1.8')
@@ -63,28 +71,24 @@ subprojects { Project subProj ->
6371
testImplementation project(':dd-java-agent:instrumentation:classloading')
6472

6573
testImplementation project(':dd-java-agent:instrumentation-testing')
66-
testAnnotationProcessor libs.autoservice.processor
67-
testCompileOnly libs.autoservice.annotation
68-
69-
instrumentPluginClasspath project(path: ':dd-java-agent:agent-tooling', configuration: 'instrumentPluginClasspath')
7074
}
7175

7276
subProj.tasks.withType(Test).configureEach { subTask ->
7377
if (subTask.name in ['latestDepTest', 'latestDepForkedTest']) {
7478
subTask.jvmArgs '-Dtest.dd.latestDepTest=true'
7579
}
7680
}
77-
}
7881

79-
def path = subProj.getPath()
80-
subProj.plugins.withId("java") {
81-
if (!path.equals(':dd-java-agent:instrumentation:vertx:vertx-redis-client-3.9:stubs')) {
82-
// don't include the redis RequestImpl stub
82+
if (subProj.path != ':dd-java-agent:instrumentation:vertx:vertx-redis-client-3.9:stubs') {
83+
// don't include the redis RequestImpl stubs
8384
parent_project.dependencies {
84-
implementation project(path)
85+
addProvider("implementation", providers.provider { project(subProj.path) })
8586
}
8687
}
8788
}
89+
90+
subProj.apply plugin: 'instrument'
91+
subProj.apply plugin: 'muzzle'
8892
}
8993

9094
dependencies {

0 commit comments

Comments
 (0)