Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 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
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@ private fun TestJvmConstraintsExtension.withinAllowedRange(currentJvmVersion: Ja
val definedMax = maxJavaVersion.isPresent

if (definedMin && (minJavaVersion.get()) > currentJvmVersion) {
logger.info("isWithinAllowedRange returns false b/o minProp=${minJavaVersion.get()} is defined and greater than version=$currentJvmVersion")
logger.info("'isWithinAllowedRange' returns false b/o testJvmConstraints.minJavaVersion=${minJavaVersion.get()} is defined and greater than test JVM version=$currentJvmVersion")
return false
}

if (definedMax && (maxJavaVersion.get()) < currentJvmVersion) {
logger.info("isWithinAllowedRange returns false b/o maxProp=${maxJavaVersion.get()} is defined and lower than version=$currentJvmVersion")
logger.info("'isWithinAllowedRange' returns false because testJvmConstraints.maxJavaVersion=${maxJavaVersion.get()} is defined and lower than test JVM version=$currentJvmVersion")
return false
}

Expand Down
1 change: 0 additions & 1 deletion dd-java-agent/instrumentation/play/play-2.3/.gitignore

This file was deleted.

2 changes: 1 addition & 1 deletion dd-java-agent/instrumentation/play/play-2.3/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,5 @@ dependencies {
}

tasks.named("compileLatestDepTestGroovy", GroovyCompile) {
classpath += files(tasks.named('compileLatestDepTestScala').map { it.destinationDirectory })
classpath += files(tasks.named('compileLatestDepTestScala'))
}
1 change: 0 additions & 1 deletion dd-java-agent/instrumentation/play/play-2.4/.gitignore

This file was deleted.

1 change: 0 additions & 1 deletion dd-java-agent/instrumentation/play/play-2.6/.gitignore

This file was deleted.

150 changes: 12 additions & 138 deletions dd-java-agent/instrumentation/play/play-2.6/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,27 +28,19 @@ muzzle {
assertInverse = true
javaVersion = 11
}

pass {
name = 'play26Only'
group = 'com.typesafe.play'
module = 'play-java_2.11'
versions = "[2.6.0,2.7.0)"
assertInverse = true
}

pass {
name = 'play27'
group = 'com.typesafe.play'
module = 'play-java_2.13'
versions = "[2.7.0,)"
assertInverse = true
javaVersion = 11
}
}

apply from: "$rootDir/gradle/java.gradle"
apply plugin: 'scala'
apply plugin: 'groovy'
apply plugin: 'java-test-fixtures'

testJvmConstraints {
// Play doesn't work with Java 9+ until 2.6.12
Expand All @@ -64,49 +56,22 @@ repositories {
}
}

addTestSuite('baseTest')
addTestSuite('latestDepTest')

sourceSets {
main_play27 {
java.srcDirs "${project.projectDir}/src/main/java_play27"
}
}

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

tasks.named("compileMain_play27Java", JavaCompile) {
dependsOn(compileJava)
}

project.afterEvaluate {
tasks.named('instrumentJava') { dependsOn 'compileMain_play27Java' }
tasks.named('forbiddenApisMain_play27') { dependsOn 'instrumentMain_play27Java' }
}

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

dependencies {
compileOnly group: 'com.typesafe.play', name: "play_$scalaVersion", version: playVersion
compileOnly group: 'com.typesafe.play', name: "play-java_$scalaVersion", version: playVersion

main_play27CompileOnly group: 'com.typesafe.play', name: "play-java_$scalaVersion", version: '2.7.0'
main_play27CompileOnly project(':internal-api')
main_play27CompileOnly project(':dd-java-agent:agent-tooling')
main_play27CompileOnly project(':dd-java-agent:agent-bootstrap')
main_play27CompileOnly files("${project.buildDir}/classes/java/raw") {
builtBy = ['compileJava']
testFixturesCompileOnly group: 'com.typesafe.play', name: "play-java_$scalaVersion", version: playVersion
// TODO: Play WS is a separately versioned library starting with 2.6 and needs separate instrumentation.
testFixturesCompileOnly(group: 'com.typesafe.play', name: "play-test_$scalaVersion", version: playVersion) {
exclude group: 'org.eclipse.jetty.websocket', module: 'websocket-client'
}
testFixturesApi project(':dd-java-agent:instrumentation-testing')
testFixturesApi libs.spock.core

baseTestImplementation group: 'com.typesafe.play', name: "play-java_$scalaVersion", version: playVersion
// TODO: Play WS is a separately versioned library starting with 2.6 and needs separate instrumentation.
baseTestImplementation(group: 'com.typesafe.play', name: "play-test_$scalaVersion", version: playVersion) {
testImplementation group: 'com.typesafe.play', name: "play-java_$scalaVersion", version: playVersion
testImplementation testFixtures(project(':dd-java-agent:instrumentation:play:play-2.6'))
testImplementation group: 'com.typesafe.play', name: "play-java_$scalaVersion", version: playVersion
testImplementation(group: 'com.typesafe.play', name: "play-test_$scalaVersion", version: playVersion) {
exclude group: 'org.eclipse.jetty.websocket', module: 'websocket-client'
}

Expand All @@ -117,96 +82,5 @@ dependencies {
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')

latestDepTestRuntimeOnly sourceSets.baseTest.output
latestDepTestImplementation libs.scala213
latestDepTestImplementation group: 'com.typesafe.play', name: "play-java_2.13", version: '2.+'
latestDepTestImplementation(group: 'com.typesafe.play', name: "play-test_2.13", version: '2.+') {
exclude group: 'org.eclipse.jetty.websocket', module: 'websocket-client'
}
latestDepTestImplementation group: 'com.typesafe.play', name: 'play-akka-http-server_2.13', version: '2.+'
}

configurations.matching({ it.name.startsWith('latestDepTest') }).configureEach({
it.resolutionStrategy {
// logback-classic 1.4.11 doesn't like being loaded in the bootstrap classloader (NPE)
force group: 'ch.qos.logback', name: 'logback-classic', version: '1.4.5'
}
})

tasks.named("compileLatestDepTestJava", JavaCompile) {
configureCompiler(it, 11)
}

tasks.named("compileLatestDepTestScala", ScalaCompile) {
configureCompiler(it, 11)
classpath = classpath + files(tasks.named('compileBaseTestJava').map { it.destinationDirectory })
}

tasks.named("latestDepTest", Test) {
javaLauncher = getJavaLauncherFor(11)
testClassesDirs = testClassesDirs + sourceSets.baseTest.output.classesDirs
}

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

dependencies {
routeGeneratorImplementation libs.scala213
routeGeneratorImplementation group: 'com.typesafe.play', name: "routes-compiler_2.13", version: '2.+'
}

configurations {
latestDepTestGeneratedCompileClasspath.extendsFrom(latestDepTestCompileClasspath)
}

tasks.register('buildLatestDepTestRoutes', JavaExec) {
String routesFile = "${project.projectDir}/src/latestDepTest/routes/conf/routes"
def outputDir = generatedRoutes

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

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

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

it.javaLauncher = getJavaLauncherFor(11)
}

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

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

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

dependencies {
latestDepTestRuntimeOnly sourceSets.latestDepTestGenerated.output
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import spock.lang.Shared

import java.util.concurrent.Executors

class PlayAsyncServerTest extends PlayServerTest {
class PlayAsyncServerTest extends AbstractPlayServerTest {
@Shared
def executor

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package datadog.trace.instrumentation.play26.server

class PlayServerTest extends AbstractPlayServerTest {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package datadog.trace.instrumentation.play26.server

class PlayServerWithErrorHandlerTest extends AbstractPlayServerTest {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package datadog.trace.instrumentation.play26.server

import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.BODY_XML

import datadog.trace.agent.test.asserts.TraceAssert
import datadog.trace.agent.test.base.HttpServer
import datadog.trace.agent.test.base.HttpServerTest
Expand All @@ -12,13 +14,12 @@ import okhttp3.MediaType
import okhttp3.RequestBody
import play.server.Server

import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.BODY_XML
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.CUSTOM_EXCEPTION
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.EXCEPTION
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.FORWARDED
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.SUCCESS

class PlayServerTest extends HttpServerTest<Server> {
class AbstractPlayServerTest extends HttpServerTest<Server> {

@Override
@CompileStatic
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package datadog.trace.instrumentation.play26.server

import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.CUSTOM_EXCEPTION

import datadog.trace.agent.test.base.HttpServer
import spock.lang.IgnoreIf

import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.CUSTOM_EXCEPTION

class PlayServerWithErrorHandlerTest extends PlayServerTest {
abstract class AbstractPlayServerWithErrorHandlerTest extends AbstractPlayServerTest {
@Override
HttpServer server() {
new PlayHttpServer(PlayRouters.&sync, new TestHttpErrorHandler())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,14 @@ import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.REDIRE
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.SUCCESS
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.USER_BLOCK
import static datadog.trace.agent.test.base.HttpServerTest.controller
import static java.lang.Class.forName

class PlayRouters {
static Router sync(BuiltInComponents components) {
try {
forName("datadog.trace.instrumentation.play26.server.latestdep.PlayRouters").sync components
} catch (ClassNotFoundException cnf) {
sync26(components)
}
sync26(components)
}

static Router async(ExecutorService executor, BuiltInComponents components) {
try {
forName("datadog.trace.instrumentation.play26.server.latestdep.PlayRouters").async executor, components
} catch (ClassNotFoundException cnf) {
async26(executor, components)
}
async26(executor, components)
}

private static Router sync26(BuiltInComponents components) {
Expand Down

This file was deleted.

Loading