Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 0 additions & 159 deletions dd-java-agent/instrumentation/play/play-2.4/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,24 @@ muzzle {
extraRepository("typesafe", "https://repo.typesafe.com/typesafe/maven-releases/")

pass {
name = "play24and25"
group = 'com.typesafe.play'
module = 'play_2.11'
versions = '[2.4.0,2.6)'
assertInverse = true
}
pass {
name = "play25only"
group = 'com.typesafe.play'
module = 'play_2.11'
versions = '[2.5.0,2.6)'
assertInverse = true
}
fail {
name = "play24and25"
group = 'com.typesafe.play'
module = 'play_2.12'
versions = '[,]'
}
fail {
name = "play24and25"
group = 'com.typesafe.play'
module = 'play_2.13'
versions = '[,]'
}
}

apply from: "$rootDir/gradle/java.gradle"
apply plugin: 'scala'

testJvmConstraints {
// Play doesn't work with Java 9+ until 2.6.12
Expand All @@ -46,154 +35,6 @@ repositories {
}
}

tasks.withType(ScalaCompile).configureEach {
configureCompiler(it, 8)
}

addTestSuiteForDir('latestDepTest', 'test')

sourceSets {
main_play25 {
java.srcDirs "${project.projectDir}/src/main/java_play25"
}
}

tasks.named("jar", Jar) {
from sourceSets.main_play25.output
}

project.afterEvaluate {
tasks.named('instrumentJava') { dependsOn 'compileMain_play25Java' }
tasks.named('forbiddenApisMain_play25') { dependsOn 'instrumentMain_play25Java' }
}

instrument {
additionalClasspath = [
instrumentJava: compileMain_play25Java.destinationDirectory
]
}

dependencies {
compileOnly group: 'com.typesafe.play', name: 'play_2.11', version: '2.4.0'
main_play25CompileOnly group: 'com.typesafe.play', name: 'play_2.11', version: '2.5.0'
main_play25CompileOnly project(':internal-api')
main_play25CompileOnly project(':dd-java-agent:agent-tooling')
main_play25CompileOnly project(':dd-java-agent:agent-bootstrap')

testRuntimeOnly project(':dd-java-agent:instrumentation:netty:netty-4.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:netty:netty-4.1')
testRuntimeOnly project(':dd-java-agent:instrumentation:akka:akka-http:akka-http-10.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:akka:akka-actor-2.5')
testRuntimeOnly project(':dd-java-agent:instrumentation:scala:scala-concurrent-2.8')
testRuntimeOnly project(':dd-java-agent:instrumentation:scala:scala-promise:scala-promise-2.10')
testRuntimeOnly project(':dd-java-agent:instrumentation:scala:scala-promise:scala-promise-2.13')

// Before 2.5, play used netty 3.x which isn't supported, so for better test consistency, we test with just 2.5
testImplementation group: 'com.typesafe.play', name: 'play-java_2.11', version: '2.5.0'
testImplementation group: 'com.typesafe.play', name: 'play-java-ws_2.11', version: '2.5.0'
testImplementation(group: 'com.typesafe.play', name: 'play-test_2.11', version: '2.5.0') {
exclude group: 'org.eclipse.jetty.websocket', module: 'websocket-client'
}
testRuntimeOnly sourceSets.main_play25.output

latestDepTestImplementation group: 'com.typesafe.play', name: 'play-java_2.11', version: '2.5.+'
latestDepTestImplementation group: 'com.typesafe.play', name: 'play-java-ws_2.11', version: '2.5.+'
latestDepTestImplementation(group: 'com.typesafe.play', name: 'play-test_2.11', version: '2.5.+') {
exclude group: 'org.eclipse.jetty.websocket', module: 'websocket-client'
}
}

tasks.named("compileTestGroovy", GroovyCompile) {
classpath = classpath + files(tasks.named('compileTestScala').map { it.destinationDirectory })
}

tasks.named("compileLatestDepTestGroovy", GroovyCompile) {
classpath = classpath + files(tasks.named('compileLatestDepTestScala').map { it.destinationDirectory })
}

sourceSets {
routeGenerator {
scala {
srcDir "${project.projectDir}/src/routeGenerator/scala"
}
}
testGenerated {
scala {
srcDir layout.buildDirectory.dir('generated/sources/testRoutes/scala')
}
}
latestDepTestGenerated {
scala {
srcDir layout.buildDirectory.dir('generated/sources/latestDepTestRoutes/scala')
}
}
}

dependencies {
routeGeneratorImplementation libs.scala211
routeGeneratorImplementation group: 'com.typesafe.play', name: "routes-compiler_2.11", version: '2.5.0'
}

configurations {
testGeneratedCompileClasspath.extendsFrom testCompileClasspath
latestDepTestGeneratedCompileClasspath.extendsFrom latestDepTestCompileClasspath
}

['buildTestRoutes', 'buildLatestDepTestRoutes'].each { taskName ->
tasks.register(taskName, JavaExec) {
String routesFile = "${project.projectDir}/src/test/routes/conf/routes"
def subdir = taskName == 'buildTestRoutes' ? 'testRoutes' : 'latestDepTestRoutes'
def outputDir =
layout.buildDirectory.dir("generated/sources/$subdir/scala")

it.inputs.file routesFile
it.outputs.dir outputDir

it.mainClass.set 'generator.CompileRoutes'
it.args routesFile, outputDir.get().asFile.absolutePath

it.classpath configurations.named('routeGeneratorRuntimeClasspath')
it.classpath tasks.named('compileRouteGeneratorScala').map { it.destinationDirectory }

if (taskName == 'buildTestRoutes') {
it.classpath tasks.named('compileTestScala').map { it.destinationDirectory }
} else {
it.classpath tasks.named('compileLatestDepTestScala').map { it.destinationDirectory }
}
}
}

tasks.named("compileTestGeneratedScala", ScalaCompile) {
classpath += files(tasks.named('compileTestScala').map { it.destinationDirectory })
dependsOn 'buildTestRoutes', 'compileLatestDepTestScala'
}

tasks.named("compileLatestDepTestGeneratedScala", ScalaCompile) {
classpath += files(tasks.named('compileLatestDepTestScala').map { it.destinationDirectory })
dependsOn 'buildLatestDepTestRoutes'
}

tasks.named("compileTestGroovy", GroovyCompile) {
classpath += files(tasks.named('compileTestGeneratedScala').map { it.destinationDirectory })
}

tasks.named("compileLatestDepTestGroovy", GroovyCompile) {
classpath += files(tasks.named('compileLatestDepTestGeneratedScala').map { it.destinationDirectory })
}
// do it this way rather than through dependencies {} because
// latestDepTestImplementation extends testImplementation
tasks.named("test", Test) {
classpath += files(tasks.named('compileTestGeneratedScala').map { it.destinationDirectory })
}

tasks.named("latestDepTest", Test) {
classpath += files(tasks.named('compileLatestDepTestGeneratedScala').map { it.destinationDirectory })
}

tasks.named("forbiddenApisTestGenerated") {
enabled = false
}

tasks.named("forbiddenApisLatestDepTestGenerated") {
enabled = false
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,6 @@ public PlayInstrumentation() {
super("play");
}

@Override
public String muzzleDirective() {
return "play24and25";
}

@Override
public String hierarchyMarkerType() {
return "play.api.mvc.Action";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
logs/
155 changes: 155 additions & 0 deletions dd-java-agent/instrumentation/play/play-appsec-2.5/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
muzzle {
extraRepository("typesafe", "https://repo.typesafe.com/typesafe/maven-releases/")

pass {
group = 'com.typesafe.play'
module = 'play_2.11'
versions = '[2.5.0,2.6)'
assertInverse = true
}
}

apply from: "$rootDir/gradle/java.gradle"
apply plugin: 'scala'

testJvmConstraints {
// Play doesn't work with Java 9+ until 2.6.12
maxJavaVersion = JavaVersion.VERSION_1_8
}

repositories {
maven {
// for muzzle because of play-2.3
// only place that has 'com.typesafe.netty:netty-http-pipelining:1.1.2' publicly accessible
name = 'typesafe'
url = 'https://repo.typesafe.com/typesafe/maven-releases/'
}
}

tasks.withType(ScalaCompile).configureEach {
configureCompiler(it, 8)
}

addTestSuiteForDir('latestDepTest', 'test')

dependencies {
compileOnly group: 'com.typesafe.play', name: 'play_2.11', version: '2.5.0'

testRuntimeOnly project(':dd-java-agent:instrumentation:netty:netty-4.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:netty:netty-4.1')
testRuntimeOnly project(':dd-java-agent:instrumentation:akka:akka-http:akka-http-10.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:akka:akka-actor-2.5')
testRuntimeOnly project(':dd-java-agent:instrumentation:scala:scala-concurrent-2.8')
testRuntimeOnly project(':dd-java-agent:instrumentation:scala:scala-promise:scala-promise-2.10')
testRuntimeOnly project(':dd-java-agent:instrumentation:scala:scala-promise:scala-promise-2.13')

// All play modules for testing
testImplementation project(':dd-java-agent:instrumentation:play:play-2.4')

testImplementation group: 'com.typesafe.play', name: 'play-java_2.11', version: '2.5.0'
testImplementation group: 'com.typesafe.play', name: 'play-java-ws_2.11', version: '2.5.0'
testImplementation(group: 'com.typesafe.play', name: 'play-test_2.11', version: '2.5.0') {
exclude group: 'org.eclipse.jetty.websocket', module: 'websocket-client'
}

latestDepTestImplementation group: 'com.typesafe.play', name: 'play-java_2.11', version: '2.5.+'
latestDepTestImplementation group: 'com.typesafe.play', name: 'play-java-ws_2.11', version: '2.5.+'
latestDepTestImplementation(group: 'com.typesafe.play', name: 'play-test_2.11', version: '2.5.+') {
exclude group: 'org.eclipse.jetty.websocket', module: 'websocket-client'
}
}

tasks.named("compileTestGroovy", GroovyCompile) {
classpath = classpath + files(tasks.named('compileTestScala').map { it.destinationDirectory })
}

tasks.named("compileLatestDepTestGroovy", GroovyCompile) {
classpath = classpath + files(tasks.named('compileLatestDepTestScala').map { it.destinationDirectory })
}

sourceSets {
routeGenerator {
scala {
srcDir "${project.projectDir}/src/routeGenerator/scala"
}
}
testGenerated {
scala {
srcDir layout.buildDirectory.dir('generated/sources/testRoutes/scala')
}
}
latestDepTestGenerated {
scala {
srcDir layout.buildDirectory.dir('generated/sources/latestDepTestRoutes/scala')
}
}
}

dependencies {
routeGeneratorImplementation libs.scala211
routeGeneratorImplementation group: 'com.typesafe.play', name: "routes-compiler_2.11", version: '2.5.0'
}

configurations {
testGeneratedCompileClasspath.extendsFrom testCompileClasspath
latestDepTestGeneratedCompileClasspath.extendsFrom latestDepTestCompileClasspath
}

['buildTestRoutes', 'buildLatestDepTestRoutes'].each { taskName ->
tasks.register(taskName, JavaExec) {
String routesFile = "${project.projectDir}/src/test/routes/conf/routes"
def subdir = taskName == 'buildTestRoutes' ? 'testRoutes' : 'latestDepTestRoutes'
def outputDir =
layout.buildDirectory.dir("generated/sources/$subdir/scala")

it.inputs.file routesFile
it.outputs.dir outputDir

it.mainClass.set 'generator.CompileRoutes'
it.args routesFile, outputDir.get().asFile.absolutePath

it.classpath configurations.named('routeGeneratorRuntimeClasspath')
it.classpath tasks.named('compileRouteGeneratorScala').map { it.destinationDirectory }

if (taskName == 'buildTestRoutes') {
it.classpath tasks.named('compileTestScala').map { it.destinationDirectory }
} else {
it.classpath tasks.named('compileLatestDepTestScala').map { it.destinationDirectory }
}
}
}

tasks.named("compileTestGeneratedScala", ScalaCompile) {
classpath += files(tasks.named('compileTestScala').map { it.destinationDirectory })
dependsOn 'buildTestRoutes', 'compileLatestDepTestScala'
}

tasks.named("compileLatestDepTestGeneratedScala", ScalaCompile) {
classpath += files(tasks.named('compileLatestDepTestScala').map { it.destinationDirectory })
dependsOn 'buildLatestDepTestRoutes'
}

tasks.named("compileTestGroovy", GroovyCompile) {
classpath += files(tasks.named('compileTestGeneratedScala').map { it.destinationDirectory })
}

tasks.named("compileLatestDepTestGroovy", GroovyCompile) {
classpath += files(tasks.named('compileLatestDepTestGeneratedScala').map { it.destinationDirectory })
}
// do it this way rather than through dependencies {} because
// latestDepTestImplementation extends testImplementation
tasks.named("test", Test) {
classpath += files(tasks.named('compileTestGeneratedScala').map { it.destinationDirectory })
}

tasks.named("latestDepTest", Test) {
classpath += files(tasks.named('compileLatestDepTestGeneratedScala').map { it.destinationDirectory })
}

tasks.named("forbiddenApisTestGenerated") {
enabled = false
}

tasks.named("forbiddenApisLatestDepTestGenerated") {
enabled = false
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,6 @@ public String instrumentedType() {
return "play.mvc.BodyParser$DelegatingBodyParser";
}

@Override
public String muzzleDirective() {
return "play25only";
}

@Override
public Reference[] additionalMuzzleReferences() {
return MuzzleReferences.PLAY_25_ONLY;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,6 @@ public FormUrlEncodedInstrumentation() {
super("play");
}

@Override
public String muzzleDirective() {
return "play25only";
}

@Override
public Reference[] additionalMuzzleReferences() {
return MuzzleReferences.PLAY_25_ONLY;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,6 @@ public HttpErrorHandlerInstrumentation() {
super("play");
}

@Override
public String muzzleDirective() {
return "play25only";
}

@Override
public Reference[] additionalMuzzleReferences() {
return MuzzleReferences.PLAY_25_ONLY;
Expand Down
Loading