Skip to content

Commit 5dfca97

Browse files
committed
fix: Replace weak configuration using tasks.matching {} by proper filetree.builtBy call
1 parent 9b7972f commit 5dfca97

1 file changed

Lines changed: 28 additions & 27 deletions

File tree

dd-java-agent/build.gradle

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ configurations {
1818
}
1919

2020
def includedAgentDir = project.layout.buildDirectory.dir("generated/included")
21-
def includedJarFileTree = fileTree(includedAgentDir) {
22-
builtBy(project.tasks.withType(Copy).matching { it.name.startsWith("expandAgentShadowJar") })
23-
}
21+
def includedJarFileTree = fileTree(includedAgentDir)
22+
2423
tasks.named("processResources") {
2524
dependsOn(includedJarFileTree)
2625
}
@@ -121,28 +120,28 @@ def generalShadowJarConfig(ShadowJar shadowJarTask) {
121120
}
122121
}
123122

124-
def includeShadowJar(TaskProvider<ShadowJar> includedShadowJarTask, String agentDir, Provider<Directory> includedAgentDir) {
125-
project.tasks.register("expandAgentShadowJar${agentDir.capitalize()}", Sync) {
126-
group = LifecycleBasePlugin.BUILD_GROUP
127-
description = "Expand the included shadow jar into the agent jar under ${agentDir}"
123+
def includeShadowJar(TaskProvider<ShadowJar> includedShadowJarTask, String agentDir, FileTree includedJarFileTree) {
124+
def expandTask = project.tasks.register("expandAgentShadowJar${agentDir.capitalize()}", Sync) {
125+
it.group = LifecycleBasePlugin.BUILD_GROUP
126+
it.description = "Expand the included shadow jar into the agent jar under ${agentDir}"
128127

129128
def opentracingFound = new AtomicBoolean()
130-
doFirst("detect-open-tracing") {
129+
it.doFirst("detect-open-tracing") {
131130
eachFile {
132131
// We seem unlikely to use this name somewhere else.
133132
if (it.path.contains("opentracing") && it.name.contains("Format\$Builtin")) {
134133
opentracingFound.set(true)
135134
}
136135
}
137136
}
138-
doLast("fail-on-detected-opentracing") {
137+
it.doLast("fail-on-detected-opentracing") {
139138
if (opentracingFound.get()) {
140139
throw new GradleException("OpenTracing direct dependency found!")
141140
}
142141
}
143142

144-
into includedAgentDir.map { it.dir(agentDir) }
145-
from(zipTree(includedShadowJarTask.map { it.archiveFile })) {
143+
it.into providers.provider { new File(includedJarFileTree.dir, agentDir) }
144+
it.from(zipTree(includedShadowJarTask.map { it.archiveFile })) {
146145
rename '(^.*)\\.class$', '$1.classdata'
147146
// Rename LICENSE file since it clashes with license dir on non-case sensitive FSs (i.e. Mac)
148147
rename '^LICENSE$', 'LICENSE.renamed'
@@ -158,30 +157,32 @@ def includeShadowJar(TaskProvider<ShadowJar> includedShadowJarTask, String agent
158157
}
159158
}
160159

161-
dependsOn includedShadowJarTask
160+
it.dependsOn includedShadowJarTask
162161
}
163162

163+
includedJarFileTree.builtBy(expandTask)
164+
164165
includedShadowJarTask.configure {
165166
generalShadowJarConfig(it as ShadowJar)
166167
}
167168
}
168169

169-
def includeSubprojShadowJar(Project includedProjectJar, String destinationDir, Provider<Directory> includedAgentDir) {
170+
def includeSubprojShadowJar(Project includedProjectJar, String destinationDir, FileTree includedJarFileTree) {
170171
evaluationDependsOn(includedProjectJar.path)
171-
includeShadowJar(includedProjectJar.tasks.named("shadowJar", ShadowJar), destinationDir, includedAgentDir)
172+
includeShadowJar(includedProjectJar.tasks.named("shadowJar", ShadowJar), destinationDir, includedJarFileTree)
172173
}
173174

174-
includeSubprojShadowJar(project(':dd-java-agent:instrumentation'), 'inst', includedAgentDir)
175-
includeSubprojShadowJar(project(':dd-java-agent:agent-jmxfetch'), 'metrics', includedAgentDir)
176-
includeSubprojShadowJar(project(':dd-java-agent:agent-profiling'), 'profiling', includedAgentDir)
177-
includeSubprojShadowJar(project(':dd-java-agent:appsec'), 'appsec', includedAgentDir)
178-
includeSubprojShadowJar(project(':dd-java-agent:agent-aiguard'), 'aiguard', includedAgentDir)
179-
includeSubprojShadowJar(project(':dd-java-agent:agent-iast'), 'iast', includedAgentDir)
180-
includeSubprojShadowJar(project(':dd-java-agent:agent-debugger'), 'debugger', includedAgentDir)
181-
includeSubprojShadowJar(project(':dd-java-agent:agent-ci-visibility'), 'ci-visibility', includedAgentDir)
182-
includeSubprojShadowJar(project(':dd-java-agent:agent-llmobs'), 'llm-obs', includedAgentDir)
183-
includeSubprojShadowJar(project(':dd-java-agent:agent-logs-intake'), 'logs-intake', includedAgentDir)
184-
includeSubprojShadowJar(project(':dd-java-agent:cws-tls'), 'cws-tls', includedAgentDir)
175+
includeSubprojShadowJar(project(':dd-java-agent:instrumentation'), 'inst', includedJarFileTree)
176+
includeSubprojShadowJar(project(':dd-java-agent:agent-jmxfetch'), 'metrics', includedJarFileTree)
177+
includeSubprojShadowJar(project(':dd-java-agent:agent-profiling'), 'profiling', includedJarFileTree)
178+
includeSubprojShadowJar(project(':dd-java-agent:appsec'), 'appsec', includedJarFileTree)
179+
includeSubprojShadowJar(project(':dd-java-agent:agent-aiguard'), 'aiguard', includedJarFileTree)
180+
includeSubprojShadowJar(project(':dd-java-agent:agent-iast'), 'iast', includedJarFileTree)
181+
includeSubprojShadowJar(project(':dd-java-agent:agent-debugger'), 'debugger', includedJarFileTree)
182+
includeSubprojShadowJar(project(':dd-java-agent:agent-ci-visibility'), 'ci-visibility', includedJarFileTree)
183+
includeSubprojShadowJar(project(':dd-java-agent:agent-llmobs'), 'llm-obs', includedJarFileTree)
184+
includeSubprojShadowJar(project(':dd-java-agent:agent-logs-intake'), 'logs-intake', includedJarFileTree)
185+
includeSubprojShadowJar(project(':dd-java-agent:cws-tls'), 'cws-tls', includedJarFileTree)
185186

186187
def sharedShadowJar = tasks.register('sharedShadowJar', ShadowJar) {
187188
it.configurations = [project.configurations.sharedShadowInclude]
@@ -202,7 +203,7 @@ def sharedShadowJar = tasks.register('sharedShadowJar', ShadowJar) {
202203
exclude(dependency('org.slf4j::'))
203204
}
204205
}
205-
includeShadowJar(sharedShadowJar, 'shared', includedAgentDir)
206+
includeShadowJar(sharedShadowJar, 'shared', includedJarFileTree)
206207

207208
// place the tracer in its own shadow jar separate to instrumentation
208209
def traceShadowJar = tasks.register('traceShadowJar', ShadowJar) {
@@ -211,7 +212,7 @@ def traceShadowJar = tasks.register('traceShadowJar', ShadowJar) {
211212
it.archiveClassifier = 'trace'
212213
it.dependencies deps.excludeShared
213214
}
214-
includeShadowJar(traceShadowJar, 'trace', includedAgentDir)
215+
includeShadowJar(traceShadowJar, 'trace', includedJarFileTree)
215216

216217
tasks.named("shadowJar", ShadowJar) {
217218
// Include AgentPreCheck compiled with Java 6.

0 commit comments

Comments
 (0)