Move random port generation to actual usage in tests using listening ports

This commit is contained in:
Nikolay Martynov 2018-07-20 11:51:22 -04:00
parent c3825d9d52
commit f1466304e8
13 changed files with 349 additions and 265 deletions

View File

@ -11,6 +11,7 @@ import okhttp3.Response
import org.apache.catalina.Context import org.apache.catalina.Context
import org.apache.catalina.startup.Tomcat import org.apache.catalina.startup.Tomcat
import org.apache.jasper.JasperException import org.apache.jasper.JasperException
import spock.lang.Shared
import spock.lang.Unroll import spock.lang.Unroll
import static datadog.trace.agent.test.ListWriterAssert.assertTraces import static datadog.trace.agent.test.ListWriterAssert.assertTraces
@ -27,7 +28,22 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
System.setProperty("org.apache.catalina.startup.TldConfig.jarsToSkip", "*") System.setProperty("org.apache.catalina.startup.TldConfig.jarsToSkip", "*")
} }
static final int PORT = TestUtils.randomOpenPort() @Shared
int port
@Shared
Tomcat tomcatServer
@Shared
Context appContext
@Shared
String jspWebappContext = "jsptest-context"
@Shared
File baseDir
@Shared
String baseUrl
@Shared
String expectedJspClassFilesDir = "/work/Tomcat/localhost/$jspWebappContext/org/apache/jsp/"
OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
// Uncomment when debugging: // Uncomment when debugging:
// .connectTimeout(1, TimeUnit.HOURS) // .connectTimeout(1, TimeUnit.HOURS)
@ -35,32 +51,25 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
// .readTimeout(1, TimeUnit.HOURS) // .readTimeout(1, TimeUnit.HOURS)
.build() .build()
static Tomcat tomcatServer
static Context appContext
static final String JSP_WEBAPP_CONTEXT = "jsptest-context"
static File baseDir
static String baseUrl
static String expectedJspClassFilesDir = "/work/Tomcat/localhost/$JSP_WEBAPP_CONTEXT/org/apache/jsp/"
def setupSpec() { def setupSpec() {
port = TestUtils.randomOpenPort()
tomcatServer = new Tomcat() tomcatServer = new Tomcat()
tomcatServer.setPort(PORT) tomcatServer.setPort(port)
// comment to debug // comment to debug
tomcatServer.setSilent(true) tomcatServer.setSilent(true)
baseDir = Files.createTempDir() baseDir = Files.createTempDir()
baseDir.deleteOnExit() baseDir.deleteOnExit()
expectedJspClassFilesDir = baseDir.getCanonicalFile().getAbsolutePath() + expectedJspClassFilesDir expectedJspClassFilesDir = baseDir.getCanonicalFile().getAbsolutePath() + expectedJspClassFilesDir
baseUrl = "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT" baseUrl = "http://localhost:$port/$jspWebappContext"
tomcatServer.setBaseDir(baseDir.getAbsolutePath()) tomcatServer.setBaseDir(baseDir.getAbsolutePath())
appContext = tomcatServer.addWebapp("/$JSP_WEBAPP_CONTEXT", appContext = tomcatServer.addWebapp("/$jspWebappContext",
JSPInstrumentationBasicTests.getResource("/webapps/jsptest").getPath()) JSPInstrumentationBasicTests.getResource("/webapps/jsptest").getPath())
tomcatServer.start() tomcatServer.start()
System.out.println( System.out.println(
"Tomcat server: http://" + tomcatServer.getHost().getName() + ":" + PORT + "/") "Tomcat server: http://" + tomcatServer.getHost().getName() + ":" + port + "/")
} }
def cleanupSpec() { def cleanupSpec() {
@ -82,25 +91,25 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
trace(0, 3) { trace(0, 3) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/$jspFileName" resourceName "GET /$jspWebappContext/$jspFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/$jspFileName" "http.url" "http://localhost:$port/$jspWebappContext/$jspFileName"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 200 "http.status_code" 200
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/$jspFileName" resourceName "/$jspFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -109,14 +118,14 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/$jspFileName" resourceName "/$jspFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -125,7 +134,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.$jspClassNamePrefix$jspClassName" "jsp.classFQCN" "org.apache.jsp.$jspClassNamePrefix$jspClassName"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -159,25 +168,25 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
trace(0, 3) { trace(0, 3) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/getQuery.jsp" resourceName "GET /$jspWebappContext/getQuery.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/getQuery.jsp" "http.url" "http://localhost:$port/$jspWebappContext/getQuery.jsp"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 200 "http.status_code" 200
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/getQuery.jsp" resourceName "/getQuery.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -186,14 +195,14 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/getQuery.jsp" resourceName "/getQuery.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -202,7 +211,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.getQuery_jsp" "jsp.classFQCN" "org.apache.jsp.getQuery_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -233,25 +242,25 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
trace(0, 3) { trace(0, 3) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "POST /$JSP_WEBAPP_CONTEXT/post.jsp" resourceName "POST /$jspWebappContext/post.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/post.jsp" "http.url" "http://localhost:$port/$jspWebappContext/post.jsp"
"http.method" "POST" "http.method" "POST"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 200 "http.status_code" 200
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/post.jsp" resourceName "/post.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -260,14 +269,14 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/post.jsp" resourceName "/post.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -276,7 +285,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.post_jsp" "jsp.classFQCN" "org.apache.jsp.post_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -304,18 +313,18 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
trace(0, 3) { trace(0, 3) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/$jspFileName" resourceName "GET /$jspWebappContext/$jspFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored true errored true
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/$jspFileName" "http.url" "http://localhost:$port/$jspWebappContext/$jspFileName"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 500 "http.status_code" 500
errorTags(JasperException, String) errorTags(JasperException, String)
defaultTags() defaultTags()
@ -323,7 +332,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/$jspFileName" resourceName "/$jspFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -332,7 +341,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
errorTags(exceptionClass, errorMessage) errorTags(exceptionClass, errorMessage)
defaultTags() defaultTags()
@ -340,7 +349,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
} }
span(2) { span(2) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/$jspFileName" resourceName "/$jspFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -349,7 +358,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.$jspClassName" "jsp.classFQCN" "org.apache.jsp.$jspClassName"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -382,25 +391,25 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
trace(0, 3) { trace(0, 3) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/includes/includeHtml.jsp" resourceName "GET /$jspWebappContext/includes/includeHtml.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/includes/includeHtml.jsp" "http.url" "http://localhost:$port/$jspWebappContext/includes/includeHtml.jsp"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 200 "http.status_code" 200
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/includes/includeHtml.jsp" resourceName "/includes/includeHtml.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -409,14 +418,14 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/includes/includeHtml.jsp" resourceName "/includes/includeHtml.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -425,7 +434,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.includes.includeHtml_jsp" "jsp.classFQCN" "org.apache.jsp.includes.includeHtml_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -452,25 +461,25 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
trace(0, 7) { trace(0, 7) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/includes/includeMulti.jsp" resourceName "GET /$jspWebappContext/includes/includeMulti.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/includes/includeMulti.jsp" "http.url" "http://localhost:$port/$jspWebappContext/includes/includeMulti.jsp"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 200 "http.status_code" 200
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/includes/includeMulti.jsp" resourceName "/includes/includeMulti.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -479,14 +488,14 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/common/javaLoopH2.jsp" resourceName "/common/javaLoopH2.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -495,14 +504,14 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(3) { span(3) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/common/javaLoopH2.jsp" resourceName "/common/javaLoopH2.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -511,7 +520,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.common.javaLoopH2_jsp" "jsp.classFQCN" "org.apache.jsp.common.javaLoopH2_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -519,7 +528,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
} }
span(4) { span(4) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/common/javaLoopH2.jsp" resourceName "/common/javaLoopH2.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -528,14 +537,14 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(5) { span(5) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/common/javaLoopH2.jsp" resourceName "/common/javaLoopH2.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -544,7 +553,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.common.javaLoopH2_jsp" "jsp.classFQCN" "org.apache.jsp.common.javaLoopH2_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -552,7 +561,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
} }
span(6) { span(6) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/includes/includeMulti.jsp" resourceName "/includes/includeMulti.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -561,7 +570,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.includes.includeMulti_jsp" "jsp.classFQCN" "org.apache.jsp.includes.includeMulti_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -588,18 +597,18 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
trace(0, 2) { trace(0, 2) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/$jspFileName" resourceName "GET /$jspWebappContext/$jspFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored true errored true
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/$jspFileName" "http.url" "http://localhost:$port/$jspWebappContext/$jspFileName"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 500 "http.status_code" 500
errorTags(JasperException, String) errorTags(JasperException, String)
defaultTags() defaultTags()
@ -607,7 +616,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/$jspFileName" resourceName "/$jspFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -616,7 +625,7 @@ class JSPInstrumentationBasicTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.$jspClassNamePrefix$jspClassName" "jsp.classFQCN" "org.apache.jsp.$jspClassNamePrefix$jspClassName"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
"jsp.javaFile" expectedJspClassFilesDir + jspClassNamePrefix.replace('.', '/') + jspClassName + ".java" "jsp.javaFile" expectedJspClassFilesDir + jspClassNamePrefix.replace('.', '/') + jspClassName + ".java"

View File

@ -7,6 +7,7 @@ import okhttp3.*
import org.apache.catalina.Context import org.apache.catalina.Context
import org.apache.catalina.startup.Tomcat import org.apache.catalina.startup.Tomcat
import org.apache.jasper.JasperException import org.apache.jasper.JasperException
import spock.lang.Shared
import spock.lang.Unroll import spock.lang.Unroll
import static datadog.trace.agent.test.ListWriterAssert.assertTraces import static datadog.trace.agent.test.ListWriterAssert.assertTraces
@ -23,7 +24,22 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
System.setProperty("org.apache.catalina.startup.TldConfig.jarsToSkip", "*") System.setProperty("org.apache.catalina.startup.TldConfig.jarsToSkip", "*")
} }
static final int PORT = TestUtils.randomOpenPort() @Shared
int port
@Shared
Tomcat tomcatServer
@Shared
Context appContext
@Shared
String jspWebappContext = "jsptest-context"
@Shared
File baseDir
@Shared
String baseUrl
@Shared
String expectedJspClassFilesDir = "/work/Tomcat/localhost/$jspWebappContext/org/apache/jsp/"
OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
// Uncomment when debugging: // Uncomment when debugging:
// .connectTimeout(1, TimeUnit.HOURS) // .connectTimeout(1, TimeUnit.HOURS)
@ -31,32 +47,25 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
// .readTimeout(1, TimeUnit.HOURS) // .readTimeout(1, TimeUnit.HOURS)
.build() .build()
static Tomcat tomcatServer
static Context appContext
static final String JSP_WEBAPP_CONTEXT = "jsptest-context"
static File baseDir
static String baseUrl
static String expectedJspClassFilesDir = "/work/Tomcat/localhost/$JSP_WEBAPP_CONTEXT/org/apache/jsp/"
def setupSpec() { def setupSpec() {
port = TestUtils.randomOpenPort()
tomcatServer = new Tomcat() tomcatServer = new Tomcat()
tomcatServer.setPort(PORT) tomcatServer.setPort(port)
// comment to debug // comment to debug
tomcatServer.setSilent(true) tomcatServer.setSilent(true)
baseDir = Files.createTempDir() baseDir = Files.createTempDir()
baseDir.deleteOnExit() baseDir.deleteOnExit()
expectedJspClassFilesDir = baseDir.getCanonicalFile().getAbsolutePath() + expectedJspClassFilesDir expectedJspClassFilesDir = baseDir.getCanonicalFile().getAbsolutePath() + expectedJspClassFilesDir
baseUrl = "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT" baseUrl = "http://localhost:$port/$jspWebappContext"
tomcatServer.setBaseDir(baseDir.getAbsolutePath()) tomcatServer.setBaseDir(baseDir.getAbsolutePath())
appContext = tomcatServer.addWebapp("/$JSP_WEBAPP_CONTEXT", appContext = tomcatServer.addWebapp("/$jspWebappContext",
JSPInstrumentationForwardTests.getResource("/webapps/jsptest").getPath()) JSPInstrumentationForwardTests.getResource("/webapps/jsptest").getPath())
tomcatServer.start() tomcatServer.start()
System.out.println( System.out.println(
"Tomcat server: http://" + tomcatServer.getHost().getName() + ":" + PORT + "/") "Tomcat server: http://" + tomcatServer.getHost().getName() + ":" + port + "/")
} }
def cleanupSpec() { def cleanupSpec() {
@ -78,25 +87,25 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
trace(0, 5) { trace(0, 5) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/$forwardFromFileName" resourceName "GET /$jspWebappContext/$forwardFromFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/$forwardFromFileName" "http.url" "http://localhost:$port/$jspWebappContext/$forwardFromFileName"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 200 "http.status_code" 200
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/$forwardFromFileName" resourceName "/$forwardFromFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -105,14 +114,14 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/$forwardDestFileName" resourceName "/$forwardDestFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -121,7 +130,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.forwardOrigin" "/$forwardFromFileName" "jsp.forwardOrigin" "/$forwardFromFileName"
"jsp.requestURL" baseUrl + "/$forwardDestFileName" "jsp.requestURL" baseUrl + "/$forwardDestFileName"
defaultTags() defaultTags()
@ -129,7 +138,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(3) { span(3) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/$forwardDestFileName" resourceName "/$forwardDestFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -138,7 +147,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.$jspForwardDestClassPrefix$jspForwardDestClassName" "jsp.classFQCN" "org.apache.jsp.$jspForwardDestClassPrefix$jspForwardDestClassName"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -146,7 +155,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(4) { span(4) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/$forwardFromFileName" resourceName "/$forwardFromFileName"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -155,7 +164,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.$jspForwardFromClassPrefix$jspForwardFromClassName" "jsp.classFQCN" "org.apache.jsp.$jspForwardFromClassPrefix$jspForwardFromClassName"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -187,25 +196,25 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
trace(0, 3) { trace(0, 3) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/forwards/forwardToHtml.jsp" resourceName "GET /$jspWebappContext/forwards/forwardToHtml.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/forwards/forwardToHtml.jsp" "http.url" "http://localhost:$port/$jspWebappContext/forwards/forwardToHtml.jsp"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 200 "http.status_code" 200
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/forwards/forwardToHtml.jsp" resourceName "/forwards/forwardToHtml.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -214,14 +223,14 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/forwards/forwardToHtml.jsp" resourceName "/forwards/forwardToHtml.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -230,7 +239,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.forwards.forwardToHtml_jsp" "jsp.classFQCN" "org.apache.jsp.forwards.forwardToHtml_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -257,25 +266,25 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
trace(0, 9) { trace(0, 9) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/forwards/forwardToIncludeMulti.jsp" resourceName "GET /$jspWebappContext/forwards/forwardToIncludeMulti.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/forwards/forwardToIncludeMulti.jsp" "http.url" "http://localhost:$port/$jspWebappContext/forwards/forwardToIncludeMulti.jsp"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 200 "http.status_code" 200
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/forwards/forwardToIncludeMulti.jsp" resourceName "/forwards/forwardToIncludeMulti.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -284,14 +293,14 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/includes/includeMulti.jsp" resourceName "/includes/includeMulti.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -300,7 +309,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.forwardOrigin" "/forwards/forwardToIncludeMulti.jsp" "jsp.forwardOrigin" "/forwards/forwardToIncludeMulti.jsp"
"jsp.requestURL" baseUrl + "/includes/includeMulti.jsp" "jsp.requestURL" baseUrl + "/includes/includeMulti.jsp"
defaultTags() defaultTags()
@ -308,7 +317,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(3) { span(3) {
childOf span(2) childOf span(2)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/common/javaLoopH2.jsp" resourceName "/common/javaLoopH2.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -317,7 +326,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.forwardOrigin" "/forwards/forwardToIncludeMulti.jsp" "jsp.forwardOrigin" "/forwards/forwardToIncludeMulti.jsp"
"jsp.requestURL" baseUrl + "/includes/includeMulti.jsp" "jsp.requestURL" baseUrl + "/includes/includeMulti.jsp"
defaultTags() defaultTags()
@ -325,7 +334,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(4) { span(4) {
childOf span(2) childOf span(2)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/common/javaLoopH2.jsp" resourceName "/common/javaLoopH2.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -334,7 +343,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.common.javaLoopH2_jsp" "jsp.classFQCN" "org.apache.jsp.common.javaLoopH2_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -342,7 +351,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(5) { span(5) {
childOf span(2) childOf span(2)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/common/javaLoopH2.jsp" resourceName "/common/javaLoopH2.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -351,7 +360,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.forwardOrigin" "/forwards/forwardToIncludeMulti.jsp" "jsp.forwardOrigin" "/forwards/forwardToIncludeMulti.jsp"
"jsp.requestURL" baseUrl + "/includes/includeMulti.jsp" "jsp.requestURL" baseUrl + "/includes/includeMulti.jsp"
defaultTags() defaultTags()
@ -359,7 +368,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(6) { span(6) {
childOf span(2) childOf span(2)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/common/javaLoopH2.jsp" resourceName "/common/javaLoopH2.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -368,7 +377,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.common.javaLoopH2_jsp" "jsp.classFQCN" "org.apache.jsp.common.javaLoopH2_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -376,7 +385,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(7) { span(7) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/includes/includeMulti.jsp" resourceName "/includes/includeMulti.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -385,7 +394,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.includes.includeMulti_jsp" "jsp.classFQCN" "org.apache.jsp.includes.includeMulti_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -393,7 +402,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(8) { span(8) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/forwards/forwardToIncludeMulti.jsp" resourceName "/forwards/forwardToIncludeMulti.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -402,7 +411,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.forwards.forwardToIncludeMulti_jsp" "jsp.classFQCN" "org.apache.jsp.forwards.forwardToIncludeMulti_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -429,25 +438,25 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
trace(0, 7) { trace(0, 7) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/forwards/forwardToJspForward.jsp" resourceName "GET /$jspWebappContext/forwards/forwardToJspForward.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/forwards/forwardToJspForward.jsp" "http.url" "http://localhost:$port/$jspWebappContext/forwards/forwardToJspForward.jsp"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 200 "http.status_code" 200
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/forwards/forwardToJspForward.jsp" resourceName "/forwards/forwardToJspForward.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -456,14 +465,14 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/forwards/forwardToSimpleJava.jsp" resourceName "/forwards/forwardToSimpleJava.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -472,7 +481,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.forwardOrigin" "/forwards/forwardToJspForward.jsp" "jsp.forwardOrigin" "/forwards/forwardToJspForward.jsp"
"jsp.requestURL" baseUrl + "/forwards/forwardToSimpleJava.jsp" "jsp.requestURL" baseUrl + "/forwards/forwardToSimpleJava.jsp"
defaultTags() defaultTags()
@ -480,7 +489,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(3) { span(3) {
childOf span(2) childOf span(2)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/common/loop.jsp" resourceName "/common/loop.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -489,7 +498,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.forwardOrigin" "/forwards/forwardToJspForward.jsp" "jsp.forwardOrigin" "/forwards/forwardToJspForward.jsp"
"jsp.requestURL" baseUrl + "/common/loop.jsp" "jsp.requestURL" baseUrl + "/common/loop.jsp"
defaultTags() defaultTags()
@ -497,7 +506,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(4) { span(4) {
childOf span(2) childOf span(2)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/common/loop.jsp" resourceName "/common/loop.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -506,7 +515,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.common.loop_jsp" "jsp.classFQCN" "org.apache.jsp.common.loop_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -514,7 +523,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(5) { span(5) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/forwards/forwardToSimpleJava.jsp" resourceName "/forwards/forwardToSimpleJava.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -523,7 +532,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.forwards.forwardToSimpleJava_jsp" "jsp.classFQCN" "org.apache.jsp.forwards.forwardToSimpleJava_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -531,7 +540,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(6) { span(6) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/forwards/forwardToJspForward.jsp" resourceName "/forwards/forwardToJspForward.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -540,7 +549,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.forwards.forwardToJspForward_jsp" "jsp.classFQCN" "org.apache.jsp.forwards.forwardToJspForward_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -567,18 +576,18 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
trace(0, 4) { trace(0, 4) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "GET /$JSP_WEBAPP_CONTEXT/forwards/forwardToCompileError.jsp" resourceName "GET /$jspWebappContext/forwards/forwardToCompileError.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored true errored true
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/forwards/forwardToCompileError.jsp" "http.url" "http://localhost:$port/$jspWebappContext/forwards/forwardToCompileError.jsp"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 500 "http.status_code" 500
errorTags(JasperException, String) errorTags(JasperException, String)
defaultTags() defaultTags()
@ -586,7 +595,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/forwards/forwardToCompileError.jsp" resourceName "/forwards/forwardToCompileError.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -595,7 +604,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
errorTags(JasperException, String) errorTags(JasperException, String)
defaultTags() defaultTags()
@ -603,7 +612,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(2) { span(2) {
childOf span(1) childOf span(1)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/compileError.jsp" resourceName "/compileError.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -612,7 +621,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.compileError_jsp" "jsp.classFQCN" "org.apache.jsp.compileError_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
"jsp.javaFile" expectedJspClassFilesDir + "compileError_jsp.java" "jsp.javaFile" expectedJspClassFilesDir + "compileError_jsp.java"
@ -623,7 +632,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
} }
span(3) { span(3) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/forwards/forwardToCompileError.jsp" resourceName "/forwards/forwardToCompileError.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -632,7 +641,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.forwards.forwardToCompileError_jsp" "jsp.classFQCN" "org.apache.jsp.forwards.forwardToCompileError_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()
@ -659,25 +668,25 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
trace(0, 3) { trace(0, 3) {
span(0) { span(0) {
parent() parent()
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "servlet.request" operationName "servlet.request"
resourceName "404" resourceName "404"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
errored false errored false
tags { tags {
"http.url" "http://localhost:$PORT/$JSP_WEBAPP_CONTEXT/forwards/forwardToNonExistent.jsp" "http.url" "http://localhost:$port/$jspWebappContext/forwards/forwardToNonExistent.jsp"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"http.status_code" 404 "http.status_code" 404
defaultTags() defaultTags()
} }
} }
span(1) { span(1) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.render" operationName "jsp.render"
resourceName "/forwards/forwardToNonExistent.jsp" resourceName "/forwards/forwardToNonExistent.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -686,14 +695,14 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.requestURL" reqUrl "jsp.requestURL" reqUrl
defaultTags() defaultTags()
} }
} }
span(2) { span(2) {
childOf span(0) childOf span(0)
serviceName JSP_WEBAPP_CONTEXT serviceName jspWebappContext
operationName "jsp.compile" operationName "jsp.compile"
resourceName "/forwards/forwardToNonExistent.jsp" resourceName "/forwards/forwardToNonExistent.jsp"
spanType DDSpanTypes.WEB_SERVLET spanType DDSpanTypes.WEB_SERVLET
@ -702,7 +711,7 @@ class JSPInstrumentationForwardTests extends AgentTestRunner {
"span.kind" "server" "span.kind" "server"
"component" "jsp-http-servlet" "component" "jsp-http-servlet"
"span.type" DDSpanTypes.WEB_SERVLET "span.type" DDSpanTypes.WEB_SERVLET
"servlet.context" "/$JSP_WEBAPP_CONTEXT" "servlet.context" "/$jspWebappContext"
"jsp.classFQCN" "org.apache.jsp.forwards.forwardToNonExistent_jsp" "jsp.classFQCN" "org.apache.jsp.forwards.forwardToNonExistent_jsp"
"jsp.compiler" "org.apache.jasper.compiler.JDTCompiler" "jsp.compiler" "org.apache.jasper.compiler.JDTCompiler"
defaultTags() defaultTags()

View File

@ -28,23 +28,25 @@ import static datadog.trace.instrumentation.lettuce.LettuceInstrumentationUtil.A
class LettuceAsyncClientTest extends AgentTestRunner { class LettuceAsyncClientTest extends AgentTestRunner {
public static final String HOST = "127.0.0.1" public static final String HOST = "127.0.0.1"
public static final int PORT = TestUtils.randomOpenPort()
public static final int INCORRECT_PORT = TestUtils.randomOpenPort()
public static final int DB_INDEX = 0 public static final int DB_INDEX = 0
public static final String DB_ADDR = HOST + ":" + PORT + "/" + DB_INDEX
public static final String DB_ADDR_NON_EXISTENT = HOST + ":" + INCORRECT_PORT + "/" + DB_INDEX
public static final String DB_URI_NON_EXISTENT = "redis://" + DB_ADDR_NON_EXISTENT
public static final String EMBEDDED_DB_URI = "redis://" + DB_ADDR
// Disable autoreconnect so we do not get stray traces popping up on server shutdown // Disable autoreconnect so we do not get stray traces popping up on server shutdown
public static final ClientOptions CLIENT_OPTIONS = ClientOptions.builder().autoReconnect(false).build() public static final ClientOptions CLIENT_OPTIONS = ClientOptions.builder().autoReconnect(false).build()
@Shared @Shared
RedisServer redisServer = RedisServer.builder() int port
// bind to localhost to avoid firewall popup @Shared
.setting("bind " + HOST) int incorrectPort
// set max memory to avoid problems in CI @Shared
.setting("maxmemory 128M") String dbAddr
.port(PORT).build() @Shared
String dbAddrNonExistent
@Shared
String dbUriNonExistent
@Shared
String embeddedDbUri
@Shared
RedisServer redisServer
@Shared @Shared
Map<String, String> testHashMap = [ Map<String, String> testHashMap = [
@ -53,12 +55,30 @@ class LettuceAsyncClientTest extends AgentTestRunner {
age: "53" age: "53"
] ]
RedisClient redisClient = RedisClient.create(EMBEDDED_DB_URI) RedisClient redisClient
StatefulConnection connection StatefulConnection connection
RedisAsyncCommands<String, ?> asyncCommands RedisAsyncCommands<String, ?> asyncCommands
RedisCommands<String, ?> syncCommands RedisCommands<String, ?> syncCommands
def setupSpec() {
port = TestUtils.randomOpenPort()
incorrectPort = TestUtils.randomOpenPort()
dbAddr = HOST + ":" + port + "/" + DB_INDEX
dbAddrNonExistent = HOST + ":" + incorrectPort + "/" + DB_INDEX
dbUriNonExistent = "redis://" + dbAddrNonExistent
embeddedDbUri = "redis://" + dbAddr
redisServer = RedisServer.builder()
// bind to localhost to avoid firewall popup
.setting("bind " + HOST)
// set max memory to avoid problems in CI
.setting("maxmemory 128M")
.port(port).build()
}
def setup() { def setup() {
redisClient = RedisClient.create(embeddedDbUri)
println "Using redis: $redisServer.args" println "Using redis: $redisServer.args"
redisServer.start() redisServer.start()
redisClient.setOptions(CLIENT_OPTIONS) redisClient.setOptions(CLIENT_OPTIONS)
@ -81,12 +101,12 @@ class LettuceAsyncClientTest extends AgentTestRunner {
def "connect using get on ConnectionFuture"() { def "connect using get on ConnectionFuture"() {
setup: setup:
RedisClient testConnectionClient = RedisClient.create(EMBEDDED_DB_URI) RedisClient testConnectionClient = RedisClient.create(embeddedDbUri)
testConnectionClient.setOptions(CLIENT_OPTIONS) testConnectionClient.setOptions(CLIENT_OPTIONS)
when: when:
ConnectionFuture connectionFuture = testConnectionClient.connectAsync(StringCodec.UTF8, ConnectionFuture connectionFuture = testConnectionClient.connectAsync(StringCodec.UTF8,
new RedisURI(HOST, PORT, 3, TimeUnit.SECONDS)) new RedisURI(HOST, port, 3, TimeUnit.SECONDS))
StatefulConnection connection = connectionFuture.get() StatefulConnection connection = connectionFuture.get()
then: then:
@ -97,17 +117,17 @@ class LettuceAsyncClientTest extends AgentTestRunner {
serviceName "redis" serviceName "redis"
operationName "redis.query" operationName "redis.query"
spanType "redis" spanType "redis"
resourceName "CONNECT:" + DB_ADDR resourceName "CONNECT:" + dbAddr
errored false errored false
tags { tags {
defaultTags() defaultTags()
"component" "redis-client" "component" "redis-client"
"db.redis.url" DB_ADDR "db.redis.url" dbAddr
"db.redis.dbIndex" 0 "db.redis.dbIndex" 0
"db.type" "redis" "db.type" "redis"
"peer.hostname" HOST "peer.hostname" HOST
"peer.port" PORT "peer.port" port
"span.kind" "client" "span.kind" "client"
"span.type" "redis" "span.type" "redis"
} }
@ -121,12 +141,12 @@ class LettuceAsyncClientTest extends AgentTestRunner {
def "connect exception inside the connection future"() { def "connect exception inside the connection future"() {
setup: setup:
RedisClient testConnectionClient = RedisClient.create(DB_URI_NON_EXISTENT) RedisClient testConnectionClient = RedisClient.create(dbUriNonExistent)
testConnectionClient.setOptions(CLIENT_OPTIONS) testConnectionClient.setOptions(CLIENT_OPTIONS)
when: when:
ConnectionFuture connectionFuture = testConnectionClient.connectAsync(StringCodec.UTF8, ConnectionFuture connectionFuture = testConnectionClient.connectAsync(StringCodec.UTF8,
new RedisURI(HOST, INCORRECT_PORT, 3, TimeUnit.SECONDS)) new RedisURI(HOST, incorrectPort, 3, TimeUnit.SECONDS))
StatefulConnection connection = connectionFuture.get() StatefulConnection connection = connectionFuture.get()
then: then:
@ -138,18 +158,18 @@ class LettuceAsyncClientTest extends AgentTestRunner {
serviceName "redis" serviceName "redis"
operationName "redis.query" operationName "redis.query"
spanType "redis" spanType "redis"
resourceName "CONNECT:" + DB_ADDR_NON_EXISTENT resourceName "CONNECT:" + dbAddrNonExistent
errored true errored true
tags { tags {
defaultTags() defaultTags()
"component" "redis-client" "component" "redis-client"
"db.redis.url" DB_ADDR_NON_EXISTENT "db.redis.url" dbAddrNonExistent
"db.redis.dbIndex" 0 "db.redis.dbIndex" 0
"db.type" "redis" "db.type" "redis"
errorTags CompletionException, String errorTags CompletionException, String
"peer.hostname" HOST "peer.hostname" HOST
"peer.port" INCORRECT_PORT "peer.port" incorrectPort
"span.kind" "client" "span.kind" "client"
"span.type" "redis" "span.type" "redis"
} }

View File

@ -15,27 +15,37 @@ import static datadog.trace.instrumentation.lettuce.LettuceInstrumentationUtil.A
class LettuceReactiveClientTest extends AgentTestRunner { class LettuceReactiveClientTest extends AgentTestRunner {
public static final String HOST = "127.0.0.1" public static final String HOST = "127.0.0.1"
public static final int PORT = TestUtils.randomOpenPort()
public static final int DB_INDEX = 0 public static final int DB_INDEX = 0
public static final String DB_ADDR = HOST + ":" + PORT + "/" + DB_INDEX
public static final String EMBEDDED_DB_URI = "redis://" + DB_ADDR
// Disable autoreconnect so we do not get stray traces popping up on server shutdown // Disable autoreconnect so we do not get stray traces popping up on server shutdown
public static final ClientOptions CLIENT_OPTIONS = ClientOptions.builder().autoReconnect(false).build() public static final ClientOptions CLIENT_OPTIONS = ClientOptions.builder().autoReconnect(false).build()
@Shared @Shared
RedisServer redisServer = RedisServer.builder() String embeddedDbUri
// bind to localhost to avoid firewall popup
.setting("bind " + HOST)
// set max memory to avoid problems in CI
.setting("maxmemory 128M")
.port(PORT).build()
RedisClient redisClient = RedisClient.create(EMBEDDED_DB_URI) @Shared
RedisServer redisServer
RedisClient redisClient
StatefulConnection connection StatefulConnection connection
RedisReactiveCommands<String, ?> reactiveCommands RedisReactiveCommands<String, ?> reactiveCommands
RedisCommands<String, ?> syncCommands RedisCommands<String, ?> syncCommands
def setupSpec() {
int port = TestUtils.randomOpenPort()
String dbAddr = HOST + ":" + port + "/" + DB_INDEX
embeddedDbUri = "redis://" + dbAddr
redisServer = RedisServer.builder()
// bind to localhost to avoid firewall popup
.setting("bind " + HOST)
// set max memory to avoid problems in CI
.setting("maxmemory 128M")
.port(port).build()
}
def setup() { def setup() {
redisClient = RedisClient.create(embeddedDbUri)
println "Using redis: $redisServer.args" println "Using redis: $redisServer.args"
redisServer.start() redisServer.start()
redisClient.setOptions(CLIENT_OPTIONS) redisClient.setOptions(CLIENT_OPTIONS)

View File

@ -15,23 +15,25 @@ import static datadog.trace.instrumentation.lettuce.LettuceInstrumentationUtil.A
class LettuceSyncClientTest extends AgentTestRunner { class LettuceSyncClientTest extends AgentTestRunner {
public static final String HOST = "127.0.0.1" public static final String HOST = "127.0.0.1"
public static final int PORT = TestUtils.randomOpenPort()
public static final int INCORRECT_PORT = TestUtils.randomOpenPort()
public static final int DB_INDEX = 0 public static final int DB_INDEX = 0
public static final String DB_ADDR = HOST + ":" + PORT + "/" + DB_INDEX
public static final String DB_ADDR_NON_EXISTENT = HOST + ":" + INCORRECT_PORT + "/" + DB_INDEX
public static final String DB_URI_NON_EXISTENT = "redis://" + DB_ADDR_NON_EXISTENT
public static final String EMBEDDED_DB_URI = "redis://" + DB_ADDR
// Disable autoreconnect so we do not get stray traces popping up on server shutdown // Disable autoreconnect so we do not get stray traces popping up on server shutdown
public static final ClientOptions CLIENT_OPTIONS = ClientOptions.builder().autoReconnect(false).build() public static final ClientOptions CLIENT_OPTIONS = ClientOptions.builder().autoReconnect(false).build()
@Shared @Shared
RedisServer redisServer = RedisServer.builder() int port
// bind to localhost to avoid firewall popup @Shared
.setting("bind " + HOST) int incorrectPort
// set max memory to avoid problems in CI @Shared
.setting("maxmemory 128M") String dbAddr
.port(PORT).build() @Shared
String dbAddrNonExistent
@Shared
String dbUriNonExistent
@Shared
String embeddedDbUri
@Shared
RedisServer redisServer
@Shared @Shared
Map<String, String> testHashMap = [ Map<String, String> testHashMap = [
@ -40,11 +42,29 @@ class LettuceSyncClientTest extends AgentTestRunner {
age: "53" age: "53"
] ]
RedisClient redisClient = RedisClient.create(EMBEDDED_DB_URI) RedisClient redisClient
StatefulConnection connection StatefulConnection connection
RedisCommands<String, ?> syncCommands RedisCommands<String, ?> syncCommands
def setupSpec() {
port = TestUtils.randomOpenPort()
incorrectPort = TestUtils.randomOpenPort()
dbAddr = HOST + ":" + port + "/" + DB_INDEX
dbAddrNonExistent = HOST + ":" + incorrectPort + "/" + DB_INDEX
dbUriNonExistent = "redis://" + dbAddrNonExistent
embeddedDbUri = "redis://" + dbAddr
redisServer = RedisServer.builder()
// bind to localhost to avoid firewall popup
.setting("bind " + HOST)
// set max memory to avoid problems in CI
.setting("maxmemory 128M")
.port(port).build()
}
def setup() { def setup() {
redisClient = RedisClient.create(embeddedDbUri)
redisServer.start() redisServer.start()
connection = redisClient.connect() connection = redisClient.connect()
syncCommands = connection.sync() syncCommands = connection.sync()
@ -64,7 +84,7 @@ class LettuceSyncClientTest extends AgentTestRunner {
def "connect"() { def "connect"() {
setup: setup:
RedisClient testConnectionClient = RedisClient.create(EMBEDDED_DB_URI) RedisClient testConnectionClient = RedisClient.create(embeddedDbUri)
testConnectionClient.setOptions(CLIENT_OPTIONS) testConnectionClient.setOptions(CLIENT_OPTIONS)
when: when:
@ -77,17 +97,17 @@ class LettuceSyncClientTest extends AgentTestRunner {
serviceName "redis" serviceName "redis"
operationName "redis.query" operationName "redis.query"
spanType "redis" spanType "redis"
resourceName "CONNECT:" + DB_ADDR resourceName "CONNECT:" + dbAddr
errored false errored false
tags { tags {
defaultTags() defaultTags()
"component" "redis-client" "component" "redis-client"
"db.redis.url" DB_ADDR "db.redis.url" dbAddr
"db.redis.dbIndex" 0 "db.redis.dbIndex" 0
"db.type" "redis" "db.type" "redis"
"peer.hostname" HOST "peer.hostname" HOST
"peer.port" PORT "peer.port" port
"span.kind" "client" "span.kind" "client"
"span.type" "redis" "span.type" "redis"
} }
@ -101,7 +121,7 @@ class LettuceSyncClientTest extends AgentTestRunner {
def "connect exception"() { def "connect exception"() {
setup: setup:
RedisClient testConnectionClient = RedisClient.create(DB_URI_NON_EXISTENT) RedisClient testConnectionClient = RedisClient.create(dbUriNonExistent)
testConnectionClient.setOptions(CLIENT_OPTIONS) testConnectionClient.setOptions(CLIENT_OPTIONS)
when: when:
@ -115,18 +135,18 @@ class LettuceSyncClientTest extends AgentTestRunner {
serviceName "redis" serviceName "redis"
operationName "redis.query" operationName "redis.query"
spanType "redis" spanType "redis"
resourceName "CONNECT:" + DB_ADDR_NON_EXISTENT resourceName "CONNECT:" + dbAddrNonExistent
errored true errored true
tags { tags {
defaultTags() defaultTags()
"component" "redis-client" "component" "redis-client"
"db.redis.url" DB_ADDR_NON_EXISTENT "db.redis.url" dbAddrNonExistent
"db.redis.dbIndex" 0 "db.redis.dbIndex" 0
"db.type" "redis" "db.type" "redis"
errorTags CompletionException, String errorTags CompletionException, String
"peer.hostname" HOST "peer.hostname" HOST
"peer.port" INCORRECT_PORT "peer.port" incorrectPort
"span.kind" "client" "span.kind" "client"
"span.type" "redis" "span.type" "redis"
} }

View File

@ -22,10 +22,10 @@ class Netty40ClientTest extends AgentTestRunner {
System.setProperty("dd.integration.netty.enabled", "true") System.setProperty("dd.integration.netty.enabled", "true")
} }
static final PORT = TestUtils.randomOpenPort()
@Shared @Shared
Server server = new Server(PORT) int port
@Shared
Server server
@Shared @Shared
AsyncHttpClient asyncHttpClient = asyncHttpClient() AsyncHttpClient asyncHttpClient = asyncHttpClient()
// DefaultAsyncHttpClientConfig.Builder.newInstance().setRequestTimeout(Integer.MAX_VALUE).build()) // DefaultAsyncHttpClientConfig.Builder.newInstance().setRequestTimeout(Integer.MAX_VALUE).build())
@ -34,6 +34,9 @@ class Netty40ClientTest extends AgentTestRunner {
def setupSpec() { def setupSpec() {
port = TestUtils.randomOpenPort()
server = new Server(port)
Handler handler = [ Handler handler = [
handle: { String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response -> handle: { String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response ->
request.getHeaderNames().each { request.getHeaderNames().each {
@ -59,7 +62,7 @@ class Netty40ClientTest extends AgentTestRunner {
def "test server request/response"() { def "test server request/response"() {
setup: setup:
def responseFuture = asyncHttpClient.prepareGet("http://localhost:$PORT/").execute() def responseFuture = asyncHttpClient.prepareGet("http://localhost:$port/").execute()
def response = responseFuture.get() def response = responseFuture.get()
expect: expect:
@ -79,7 +82,7 @@ class Netty40ClientTest extends AgentTestRunner {
"$Tags.COMPONENT.key" "netty-client" "$Tags.COMPONENT.key" "netty-client"
"$Tags.HTTP_METHOD.key" "GET" "$Tags.HTTP_METHOD.key" "GET"
"$Tags.HTTP_STATUS.key" 200 "$Tags.HTTP_STATUS.key" 200
"$Tags.HTTP_URL.key" "http://localhost:$PORT/" "$Tags.HTTP_URL.key" "http://localhost:$port/"
"$Tags.PEER_HOSTNAME.key" "localhost" "$Tags.PEER_HOSTNAME.key" "localhost"
"$Tags.PEER_PORT.key" Integer "$Tags.PEER_PORT.key" Integer
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT "$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT

View File

@ -22,10 +22,10 @@ class Netty41ClientTest extends AgentTestRunner {
System.setProperty("dd.integration.netty.enabled", "true") System.setProperty("dd.integration.netty.enabled", "true")
} }
static final PORT = TestUtils.randomOpenPort()
@Shared @Shared
Server server = new Server(PORT) int port
@Shared
Server server
@Shared @Shared
AsyncHttpClient asyncHttpClient = asyncHttpClient() AsyncHttpClient asyncHttpClient = asyncHttpClient()
// DefaultAsyncHttpClientConfig.Builder.newInstance().setRequestTimeout(Integer.MAX_VALUE).build()) // DefaultAsyncHttpClientConfig.Builder.newInstance().setRequestTimeout(Integer.MAX_VALUE).build())
@ -34,6 +34,9 @@ class Netty41ClientTest extends AgentTestRunner {
def setupSpec() { def setupSpec() {
port = TestUtils.randomOpenPort()
server = new Server(port)
Handler handler = [ Handler handler = [
handle: { String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response -> handle: { String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response ->
request.getHeaderNames().each { request.getHeaderNames().each {
@ -59,7 +62,7 @@ class Netty41ClientTest extends AgentTestRunner {
def "test server request/response"() { def "test server request/response"() {
setup: setup:
def responseFuture = asyncHttpClient.prepareGet("http://localhost:$PORT/").execute() def responseFuture = asyncHttpClient.prepareGet("http://localhost:$port/").execute()
def response = responseFuture.get() def response = responseFuture.get()
expect: expect:
@ -79,7 +82,7 @@ class Netty41ClientTest extends AgentTestRunner {
"$Tags.COMPONENT.key" "netty-client" "$Tags.COMPONENT.key" "netty-client"
"$Tags.HTTP_METHOD.key" "GET" "$Tags.HTTP_METHOD.key" "GET"
"$Tags.HTTP_STATUS.key" 200 "$Tags.HTTP_STATUS.key" 200
"$Tags.HTTP_URL.key" "http://localhost:$PORT/" "$Tags.HTTP_URL.key" "http://localhost:$port/"
"$Tags.PEER_HOSTNAME.key" "localhost" "$Tags.PEER_HOSTNAME.key" "localhost"
"$Tags.PEER_PORT.key" Integer "$Tags.PEER_PORT.key" Integer
"$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT "$Tags.SPAN_KIND.key" Tags.SPAN_KIND_CLIENT

View File

@ -14,11 +14,12 @@ class Play26Test extends AgentTestRunner {
} }
@Shared @Shared
int port = TestUtils.randomOpenPort() int port
@Shared @Shared
TestServer testServer TestServer testServer
def setupSpec() { def setupSpec() {
port = TestUtils.randomOpenPort()
testServer = Helpers.testServer(port, Play26TestUtils.buildTestApp()) testServer = Helpers.testServer(port, Play26TestUtils.buildTestApp())
testServer.start() testServer.start()
} }

View File

@ -9,11 +9,12 @@ import spock.lang.Shared
class Play24Test extends AgentTestRunner { class Play24Test extends AgentTestRunner {
@Shared @Shared
int port = TestUtils.randomOpenPort() int port
@Shared @Shared
TestServer testServer TestServer testServer
def setupSpec() { def setupSpec() {
port = TestUtils.randomOpenPort()
testServer = Helpers.testServer(port, Play24TestUtils.buildTestApp()) testServer = Helpers.testServer(port, Play24TestUtils.buildTestApp())
testServer.start() testServer.start()
} }

View File

@ -28,10 +28,11 @@ import static datadog.trace.agent.test.ListWriterAssert.assertTraces
class JettyServlet2Test extends AgentTestRunner { class JettyServlet2Test extends AgentTestRunner {
static final int PORT = TestUtils.randomOpenPort()
// Jetty needs this to ensure consistent ordering for async. // Jetty needs this to ensure consistent ordering for async.
CountDownLatch latch = new CountDownLatch(1) CountDownLatch latch = new CountDownLatch(1)
int port
OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
.addNetworkInterceptor(new Interceptor() { .addNetworkInterceptor(new Interceptor() {
@Override @Override
@ -60,7 +61,8 @@ class JettyServlet2Test extends AgentTestRunner {
DDTracer tracer = new DDTracer(writer) DDTracer tracer = new DDTracer(writer)
def setup() { def setup() {
jettyServer = new Server(PORT) port = TestUtils.randomOpenPort()
jettyServer = new Server(port)
servletContext = new ServletContextHandler() servletContext = new ServletContextHandler()
ConstraintSecurityHandler security = setupAuthentication(jettyServer) ConstraintSecurityHandler security = setupAuthentication(jettyServer)
@ -73,7 +75,7 @@ class JettyServlet2Test extends AgentTestRunner {
jettyServer.start() jettyServer.start()
System.out.println( System.out.println(
"Jetty server: http://localhost:" + PORT + "/") "Jetty server: http://localhost:" + port + "/")
try { try {
GlobalTracer.register(tracer) GlobalTracer.register(tracer)
@ -95,7 +97,7 @@ class JettyServlet2Test extends AgentTestRunner {
def "test #path servlet call"() { def "test #path servlet call"() {
setup: setup:
def requestBuilder = new Request.Builder() def requestBuilder = new Request.Builder()
.url("http://localhost:$PORT/$path") .url("http://localhost:$port/$path")
.get() .get()
if (auth) { if (auth) {
requestBuilder.header(HttpHeaders.AUTHORIZATION, Credentials.basic("user", "password")) requestBuilder.header(HttpHeaders.AUTHORIZATION, Credentials.basic("user", "password"))
@ -115,7 +117,7 @@ class JettyServlet2Test extends AgentTestRunner {
errored false errored false
parent() parent()
tags { tags {
"http.url" "http://localhost:$PORT/$path" "http.url" "http://localhost:$port/$path"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
@ -139,7 +141,7 @@ class JettyServlet2Test extends AgentTestRunner {
def "test #path error servlet call"() { def "test #path error servlet call"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/$path?error=true") .url("http://localhost:$port/$path?error=true")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
@ -157,7 +159,7 @@ class JettyServlet2Test extends AgentTestRunner {
errored true errored true
parent() parent()
tags { tags {
"http.url" "http://localhost:$PORT/$path" "http.url" "http://localhost:$port/$path"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
@ -179,7 +181,7 @@ class JettyServlet2Test extends AgentTestRunner {
// This doesn't actually detect the error because we can't get the status code via the old servlet API. // This doesn't actually detect the error because we can't get the status code via the old servlet API.
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/$path?non-throwing-error=true") .url("http://localhost:$port/$path?non-throwing-error=true")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
@ -197,7 +199,7 @@ class JettyServlet2Test extends AgentTestRunner {
errored false errored false
parent() parent()
tags { tags {
"http.url" "http://localhost:$PORT/$path" "http.url" "http://localhost:$port/$path"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"

View File

@ -28,11 +28,11 @@ import static datadog.trace.agent.test.ListWriterAssert.assertTraces
class JettyServlet3Test extends AgentTestRunner { class JettyServlet3Test extends AgentTestRunner {
static final int PORT = TestUtils.randomOpenPort()
// Jetty needs this to ensure consistent ordering for async. // Jetty needs this to ensure consistent ordering for async.
CountDownLatch latch = new CountDownLatch(1) CountDownLatch latch = new CountDownLatch(1)
int port
OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
.addNetworkInterceptor(new Interceptor() { .addNetworkInterceptor(new Interceptor() {
@Override @Override
@ -61,7 +61,8 @@ class JettyServlet3Test extends AgentTestRunner {
DDTracer tracer = new DDTracer(writer) DDTracer tracer = new DDTracer(writer)
def setup() { def setup() {
jettyServer = new Server(PORT) port = TestUtils.randomOpenPort()
jettyServer = new Server(port)
servletContext = new ServletContextHandler() servletContext = new ServletContextHandler()
ConstraintSecurityHandler security = setupAuthentication(jettyServer) ConstraintSecurityHandler security = setupAuthentication(jettyServer)
@ -76,7 +77,7 @@ class JettyServlet3Test extends AgentTestRunner {
jettyServer.start() jettyServer.start()
System.out.println( System.out.println(
"Jetty server: http://localhost:" + PORT + "/") "Jetty server: http://localhost:" + port + "/")
try { try {
GlobalTracer.register(tracer) GlobalTracer.register(tracer)
@ -98,7 +99,7 @@ class JettyServlet3Test extends AgentTestRunner {
def "test #path servlet call"() { def "test #path servlet call"() {
setup: setup:
def requestBuilder = new Request.Builder() def requestBuilder = new Request.Builder()
.url("http://localhost:$PORT/$path") .url("http://localhost:$port/$path")
.get() .get()
if (auth) { if (auth) {
requestBuilder.header(HttpHeaders.AUTHORIZATION, Credentials.basic("user", "password")) requestBuilder.header(HttpHeaders.AUTHORIZATION, Credentials.basic("user", "password"))
@ -118,7 +119,7 @@ class JettyServlet3Test extends AgentTestRunner {
errored false errored false
parent() parent()
tags { tags {
"http.url" "http://localhost:$PORT/$path" "http.url" "http://localhost:$port/$path"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
@ -145,7 +146,7 @@ class JettyServlet3Test extends AgentTestRunner {
def "servlet instrumentation clears state after async request"() { def "servlet instrumentation clears state after async request"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/async") .url("http://localhost:$port/async")
.get() .get()
.build() .build()
def numTraces = 5 def numTraces = 5
@ -170,7 +171,7 @@ class JettyServlet3Test extends AgentTestRunner {
def "test #path error servlet call"() { def "test #path error servlet call"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/$path?error=true") .url("http://localhost:$port/$path?error=true")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
@ -188,7 +189,7 @@ class JettyServlet3Test extends AgentTestRunner {
errored true errored true
parent() parent()
tags { tags {
"http.url" "http://localhost:$PORT/$path" "http.url" "http://localhost:$port/$path"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
@ -211,7 +212,7 @@ class JettyServlet3Test extends AgentTestRunner {
def "test #path non-throwing-error servlet call"() { def "test #path non-throwing-error servlet call"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/$path?non-throwing-error=true") .url("http://localhost:$port/$path?non-throwing-error=true")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
@ -229,7 +230,7 @@ class JettyServlet3Test extends AgentTestRunner {
errored true errored true
parent() parent()
tags { tags {
"http.url" "http://localhost:$PORT/$path" "http.url" "http://localhost:$port/$path"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"

View File

@ -18,7 +18,7 @@ import static datadog.trace.agent.test.ListWriterAssert.assertTraces
class TomcatServlet3Test extends AgentTestRunner { class TomcatServlet3Test extends AgentTestRunner {
static final int PORT = TestUtils.randomOpenPort() int port
OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
// Uncomment when debugging: // Uncomment when debugging:
// .connectTimeout(1, TimeUnit.HOURS) // .connectTimeout(1, TimeUnit.HOURS)
@ -33,8 +33,9 @@ class TomcatServlet3Test extends AgentTestRunner {
DDTracer tracer = new DDTracer(writer) DDTracer tracer = new DDTracer(writer)
def setup() { def setup() {
port = TestUtils.randomOpenPort()
tomcatServer = new Tomcat() tomcatServer = new Tomcat()
tomcatServer.setPort(PORT) tomcatServer.setPort(port)
def baseDir = Files.createTempDir() def baseDir = Files.createTempDir()
baseDir.deleteOnExit() baseDir.deleteOnExit()
@ -61,7 +62,7 @@ class TomcatServlet3Test extends AgentTestRunner {
tomcatServer.start() tomcatServer.start()
System.out.println( System.out.println(
"Tomcat server: http://" + tomcatServer.getHost().getName() + ":" + PORT + "/") "Tomcat server: http://" + tomcatServer.getHost().getName() + ":" + port + "/")
try { try {
@ -84,7 +85,7 @@ class TomcatServlet3Test extends AgentTestRunner {
def "test #path servlet call"() { def "test #path servlet call"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/my-context/$path") .url("http://localhost:$port/my-context/$path")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
@ -102,7 +103,7 @@ class TomcatServlet3Test extends AgentTestRunner {
errored false errored false
parent() parent()
tags { tags {
"http.url" "http://localhost:$PORT/my-context/$path" "http.url" "http://localhost:$port/my-context/$path"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
@ -124,7 +125,7 @@ class TomcatServlet3Test extends AgentTestRunner {
def "test #path error servlet call"() { def "test #path error servlet call"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/my-context/$path?error=true") .url("http://localhost:$port/my-context/$path?error=true")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
@ -142,7 +143,7 @@ class TomcatServlet3Test extends AgentTestRunner {
errored true errored true
parent() parent()
tags { tags {
"http.url" "http://localhost:$PORT/my-context/$path" "http.url" "http://localhost:$port/my-context/$path"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"
@ -165,7 +166,7 @@ class TomcatServlet3Test extends AgentTestRunner {
def "test #path error servlet call for non-throwing error"() { def "test #path error servlet call for non-throwing error"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/my-context/$path?non-throwing-error=true") .url("http://localhost:$port/my-context/$path?non-throwing-error=true")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
@ -183,7 +184,7 @@ class TomcatServlet3Test extends AgentTestRunner {
errored true errored true
parent() parent()
tags { tags {
"http.url" "http://localhost:$PORT/my-context/$path" "http.url" "http://localhost:$port/my-context/$path"
"http.method" "GET" "http.method" "GET"
"span.kind" "server" "span.kind" "server"
"component" "java-web-servlet" "component" "java-web-servlet"

View File

@ -5,6 +5,7 @@ import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import spark.Spark import spark.Spark
import spark.embeddedserver.jetty.JettyHandler import spark.embeddedserver.jetty.JettyHandler
import spock.lang.Shared
class SparkJavaBasedTest extends AgentTestRunner { class SparkJavaBasedTest extends AgentTestRunner {
@ -12,7 +13,9 @@ class SparkJavaBasedTest extends AgentTestRunner {
System.setProperty("dd.integration.jetty.enabled", "true") System.setProperty("dd.integration.jetty.enabled", "true")
System.setProperty("dd.integration.sparkjava.enabled", "true") System.setProperty("dd.integration.sparkjava.enabled", "true")
} }
static final int PORT = TestUtils.randomOpenPort()
@Shared
int port
OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
// Uncomment when debugging: // Uncomment when debugging:
@ -22,7 +25,8 @@ class SparkJavaBasedTest extends AgentTestRunner {
.build() .build()
def setupSpec() { def setupSpec() {
TestSparkJavaApplication.initSpark(PORT) port = TestUtils.randomOpenPort()
TestSparkJavaApplication.initSpark(port)
} }
def cleanupSpec() { def cleanupSpec() {
@ -32,26 +36,26 @@ class SparkJavaBasedTest extends AgentTestRunner {
def "valid response"() { def "valid response"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/") .url("http://localhost:$port/")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
expect: expect:
PORT != 0 port != 0
response.body().string() == "Hello World" response.body().string() == "Hello World"
} }
def "valid response with registered trace"() { def "valid response with registered trace"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/") .url("http://localhost:$port/")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
expect: expect:
PORT != 0 port != 0
response.body().string() == "Hello World" response.body().string() == "Hello World"
and: and:
@ -63,7 +67,7 @@ class SparkJavaBasedTest extends AgentTestRunner {
def "generates spans"() { def "generates spans"() {
setup: setup:
def request = new Request.Builder() def request = new Request.Builder()
.url("http://localhost:$PORT/param/asdf1234") .url("http://localhost:$port/param/asdf1234")
.get() .get()
.build() .build()
def response = client.newCall(request).execute() def response = client.newCall(request).execute()
@ -83,7 +87,7 @@ class SparkJavaBasedTest extends AgentTestRunner {
!context.getErrorFlag() !context.getErrorFlag()
context.parentId == 0 context.parentId == 0
def tags = context.tags def tags = context.tags
tags["http.url"] == "http://localhost:$PORT/param/asdf1234" tags["http.url"] == "http://localhost:$port/param/asdf1234"
tags["http.method"] == "GET" tags["http.method"] == "GET"
tags["span.kind"] == "server" tags["span.kind"] == "server"
tags["span.type"] == "web" tags["span.type"] == "web"