Skip to content

Commit 243cc8f

Browse files
committed
chore: Remove instrumentation afterEvaluate
# Conflicts: # dd-java-agent/instrumentation/build.gradle # Conflicts: # dd-java-agent/instrumentation/build.gradle # Conflicts: # dd-java-agent/instrumentation/build.gradle
1 parent 6ccbc06 commit 243cc8f

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 {
@@ -11,51 +14,56 @@ tasks.register("latestDepTest", Test)
1114

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

25-
instrument.plugins = [
26-
'datadog.trace.agent.tooling.muzzle.MuzzleGradlePlugin',
27-
'datadog.trace.agent.tooling.bytebuddy.NewTaskForGradlePlugin',
28-
'datadog.trace.agent.tooling.bytebuddy.reqctx.RewriteRequestContextAdvicePlugin',
29-
]
26+
subProj.configurations.register("instrumentPluginClasspath") {
27+
it.visible = false
28+
it.canBeConsumed = false
29+
it.canBeResolved = true
3030

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

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

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

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

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

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

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

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

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

9195
dependencies {

0 commit comments

Comments
 (0)