Skip to content

Commit b6d1c18

Browse files
author
Andrew Kent
committed
Allow muzzle directives to have extra dependencies
1 parent f06eb57 commit b6d1c18

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

buildSrc/src/main/groovy/MuzzlePlugin.groovy

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,14 @@ class MuzzlePlugin implements Plugin<Project> {
105105
project.getLogger().info("configured pass directive: ${pass.group}:${pass.module}:${pass.versions}")
106106

107107
muzzleDirectiveToArtifacts(pass, system, session).collect() { Artifact singleVersion ->
108-
runAfter = addMuzzleTask(true, singleVersion, project, runAfter, bootstrapProject, toolingProject)
108+
runAfter = addMuzzleTask(pass, true, singleVersion, project, runAfter, bootstrapProject, toolingProject)
109109
}
110110
}
111111
for (MuzzleDirective fail : project.muzzle.failDirectives) {
112112
project.getLogger().info("configured fail directive: ${fail.group}:${fail.module}:${fail.versions}")
113113

114114
muzzleDirectiveToArtifacts(fail, system, session).collect() { Artifact singleVersion ->
115-
runAfter = addMuzzleTask(false, singleVersion, project, runAfter, bootstrapProject, toolingProject)
115+
runAfter = addMuzzleTask(fail, false, singleVersion, project, runAfter, bootstrapProject, toolingProject)
116116
}
117117
}
118118
}
@@ -202,12 +202,17 @@ class MuzzlePlugin implements Plugin<Project> {
202202
*
203203
* @return The created muzzle task.
204204
*/
205-
private static Task addMuzzleTask(boolean assertPass, Artifact versionArtifact, Project instrumentationProject, Task runAfter, Project bootstrapProject, Project toolingProject) {
205+
private static Task addMuzzleTask(MuzzleDirective directive, boolean assertPass, Artifact versionArtifact, Project instrumentationProject, Task runAfter, Project bootstrapProject, Project toolingProject) {
206206
def taskName = "muzzle-Assert${assertPass ? "Pass" : "Fail"}-$versionArtifact.groupId-$versionArtifact.artifactId-$versionArtifact.version"
207207
def config = instrumentationProject.configurations.create(taskName)
208208
config.dependencies.add(instrumentationProject.dependencies.create("$versionArtifact.groupId:$versionArtifact.artifactId:$versionArtifact.version") {
209209
transitive = true
210210
})
211+
for (String additionalDependency : directive.additionalDependencies) {
212+
config.dependencies.add(instrumentationProject.dependencies.create(additionalDependency) {
213+
transitive = true
214+
})
215+
}
211216

212217
def muzzleTask = instrumentationProject.task(taskName) {
213218
doLast {
@@ -276,6 +281,10 @@ class MuzzleDirective {
276281
String group
277282
String module
278283
String versions
284+
List<String> additionalDependencies = new ArrayList<>()
285+
void extraDependency(String compileString) {
286+
additionalDependencies.add(compileString)
287+
}
279288
}
280289

281290
/**

dd-java-agent/instrumentation/akka-http-10.0/akka-http-10.0.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,16 @@ muzzle {
2121
pass {
2222
group = 'com.typesafe.akka'
2323
module = 'akka-http_2.11'
24-
versions = "[10.0.0,10.0.12)"
24+
versions = "[10.0.0,)"
25+
// later versions of akka-http expect streams to be provided
26+
extraDependency 'com.typesafe.akka:akka-stream_2.11:2.4.14'
2527
}
2628
pass {
2729
group = 'com.typesafe.akka'
2830
module = 'akka-http_2.12'
29-
versions = "[10.0.0,10.0.12)"
31+
versions = "[10.0.0,)"
32+
// later versions of akka-http expect streams to be provided
33+
extraDependency 'com.typesafe.akka:akka-stream_2.12:2.4.14'
3034
}
3135
}
3236

0 commit comments

Comments
 (0)