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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dd-java-agent/instrumentation/cxf-2.1/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ dependencies {
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-7.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-7.6')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-10.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-11.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-12.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:trace-annotation')
Expand Down
2 changes: 2 additions & 0 deletions dd-java-agent/instrumentation/jersey/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ dependencies {
jersey2JettyTestRuntimeOnly group: 'javax.activation', name: 'javax.activation-api', version: '1.2.0'
jersey2JettyTestRuntimeOnly group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.3'
jersey2JettyTestRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0')
jersey2JettyTestRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0.4')
jersey2JettyTestRuntimeOnly project(':dd-java-agent:instrumentation:jersey-2-appsec')
jersey2JettyTestRuntimeOnly project(':dd-java-agent:instrumentation:jax-rs-annotations-2')

Expand All @@ -68,6 +69,7 @@ dependencies {
jersey3JettyTestRuntimeOnly group: 'javax.activation', name: 'javax.activation-api', version: '1.2.0'
jersey3JettyTestRuntimeOnly group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.3'
jersey3JettyTestRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0')
jersey3JettyTestRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-10.0')
jersey3JettyTestRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-11.0')
jersey3JettyTestRuntimeOnly project(':dd-java-agent:instrumentation:jersey-2-appsec')
jersey3JettyTestRuntimeOnly project(':dd-java-agent:instrumentation:jersey-3-appsec')
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
ext {
minJavaVersionForTests = JavaVersion.VERSION_11
}

muzzle {
pass {
name = "10_series"
group = "org.eclipse.jetty"
module = 'jetty-server'
versions = "[10,11)"
assertInverse = true
javaVersion = 11
}
pass {
name = "after_10"
group = "org.eclipse.jetty"
module = 'jetty-server'
versions = "[10,12)"
assertInverse = true
javaVersion = 11
}
pass {
name = 'named_dispatches'
group = 'org.eclipse.jetty'
module = 'jetty-server'
versions = "[10.0.16,11),[11.0.16,12)"
assertInverse = true
//extraDependency "javax.servlet:javax.servlet-api:3.1.0"
//extraDependency "jakarta.servlet:jakarta.servlet-api:5.0.0"
javaVersion = 11
}
}

apply from: "$rootDir/gradle/java.gradle"
apply plugin: "idea"

addTestSuiteForDir("latestDepTest", "test")
addTestSuiteExtendingForDir("latestDepForkedTest", "latestDepTest", "test")

dependencies {
main_java11Implementation project(':dd-java-agent:instrumentation:jetty:jetty-common')
main_java11Implementation project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0')
main_java11CompileOnly group: 'org.eclipse.jetty', name: 'jetty-server', version: '10.0.0'

// Don't want to conflict with jetty from the test server.
testImplementation(project(':dd-java-agent:instrumentation-testing')) {
exclude group: 'org.eclipse.jetty', module: 'jetty-server'
}
testImplementation project(':dd-java-agent:instrumentation:jetty:jetty-util-9.4.31')

testImplementation group: 'org.eclipse.jetty', name: 'jetty-server', version: '10.0.0'
testImplementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '10.0.0'
testImplementation group: 'org.eclipse.jetty.websocket', name: 'websocket-javax-server', version: '10.0.0'
testImplementation project(':dd-java-agent:appsec:appsec-test-fixtures')
testImplementation testFixtures(project(":dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0"))
testImplementation testFixtures(project(':dd-java-agent:instrumentation:servlet:javax-servlet:javax-servlet-3.0'))

// Include all jetty-server instrumentation modules for testing. Only the version-compatible module will apply at runtime.
testRuntimeOnly project(":dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0")
testRuntimeOnly project(':dd-java-agent:instrumentation:servlet:javax-servlet:javax-servlet-2.2')
testRuntimeOnly project(':dd-java-agent:instrumentation:websocket:javax-websocket-1.0')
// Include all appsec instrumentation modules for testing. Only the version-compatible module will apply at runtime.
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-appsec:jetty-appsec-7.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-appsec:jetty-appsec-8.1.3')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-appsec:jetty-appsec-9.2')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-appsec:jetty-appsec-9.3')
// Include all websocket instrumentation modules for testing. Only the version-compatible module will apply at runtime.
testRuntimeOnly project(':dd-java-agent:instrumentation:websocket:javax-websocket-1.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:websocket:jakarta-websocket-2.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:websocket:jetty-websocket:jetty-websocket-10')

latestDepTestImplementation group: 'org.eclipse.jetty', name: 'jetty-server', version: '10.+'
latestDepTestImplementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '10.+'
latestDepTestImplementation group: 'org.eclipse.jetty.websocket', name: 'websocket-javax-server', version: '10.+'
latestDepTestImplementation project(':dd-java-agent:instrumentation:jetty:jetty-appsec:jetty-appsec-9.3')
latestDepTestImplementation testFixtures(project(':dd-java-agent:instrumentation:servlet:javax-servlet:javax-servlet-3.0'))

latestDepForkedTestImplementation group: 'org.eclipse.jetty', name: 'jetty-server', version: '10.+'
latestDepForkedTestImplementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '10.+'
latestDepForkedTestImplementation group: 'org.eclipse.jetty.websocket', name: 'websocket-javax-server', version: '10.+'
latestDepForkedTestImplementation project(':dd-java-agent:instrumentation:jetty:jetty-appsec:jetty-appsec-9.3')
latestDepForkedTestImplementation testFixtures(project(':dd-java-agent:instrumentation:servlet:javax-servlet:javax-servlet-3.0'))
}

configurations.named('latestDepForkedTestRuntimeClasspath') {
resolutionStrategy {
force libs.slf4j
}
}

tasks.withType(AbstractCompile).configureEach {
configureCompiler(it, 11, JavaVersion.VERSION_1_8)
}

idea {
module {
jdkName = '11'
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,6 @@ public JettyServerInstrumentation() {
super("jetty");
}

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

@Override
public String instrumentedType() {
return "org.eclipse.jetty.server.HttpChannel";
Expand Down Expand Up @@ -90,6 +85,11 @@ public Reference[] additionalMuzzleReferences() {
};
}

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

@Override
public void typeAdvice(TypeTransformer transformer) {
transformer.applyAdvice(new HttpChannelHandleVisitorWrapper());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,15 @@ public RequestInstrumentation() {
super("jetty");
}

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

@Override
public String instrumentedType() {
return "org.eclipse.jetty.server.Request";
}

public String muzzleDirective() {
return "10_series";
}

@Override
public void methodAdvice(MethodTransformer transformer) {
transformer.applyAdvice(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package datadog.trace.instrumentation.jetty10

import com.datadog.appsec.AppSecInactiveHttpServerTest
import datadog.trace.agent.test.base.HttpServer
import test.JettyServer
import test.TestHandler

class Jetty10InactiveAppSecTest extends AppSecInactiveHttpServerTest {
HttpServer server() {
new JettyServer(TestHandler.INSTANCE)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package datadog.trace.instrumentation.jetty10

import datadog.trace.agent.test.base.HttpServer
import datadog.trace.agent.test.base.HttpServerTest
import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.server.handler.AbstractHandler
import test.JettyServer
import test.TestHandler

abstract class Jetty10Test extends HttpServerTest<Server> {

@Override
HttpServer server() {
new JettyServer(handler(), useWebsocketPojoEndpoint())
}

AbstractHandler handler() {
TestHandler.INSTANCE
}

@Override
String component() {
"jetty-server"
}

@Override
String expectedOperationName() {
operation()
}

protected boolean useWebsocketPojoEndpoint() {
// only supported in jetty 10+
isLatestDepTest
}


@Override
protected boolean enabledFinishTimingChecks() {
true
}

@Override
boolean testExceptionBody() {
false
}

@Override
boolean testBodyUrlencoded() {
true
}

@Override
boolean testRequestBody() {
true
}

@Override
boolean testRequestBodyISVariant() {
true
}

@Override
boolean testUserBlocking() {
true
}

@Override
boolean testBlocking() {
true
}

@Override
boolean testBlockingOnResponse() {
true
}

@Override
boolean hasExtraErrorInformation() {
true
}

@Override
boolean testBodyMultipart() {
true
}

@Override
boolean testSessionId() {
true
}

@Override
boolean testWebsockets() {
return super.testWebsockets() && (getServer() as JettyServer).websocketAvailable
}
}

class Jetty10V0ForkedTest extends Jetty10Test implements TestingGenericHttpNamingConventions.ServerV0 {
}

class Jetty10V1ForkedTest extends Jetty10Test implements TestingGenericHttpNamingConventions.ServerV1 {
@Override
protected boolean useWebsocketPojoEndpoint() {
false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,6 @@ apply plugin: "idea"
addTestSuiteForDir('latestDepTest', 'test')
addTestSuiteForDir('latestDepForkedTest', 'test')

tasks.named("compileMain_java11Java") {
configureCompiler(it, 11, JavaVersion.VERSION_1_8)
}

tasks.withType(GroovyCompile).configureEach {
javaLauncher = getJavaLauncherFor(11)
}
tasks.withType(Test).configureEach {
javaLauncher = getJavaLauncherFor(11)
}

dependencies {
main_java11CompileOnly ("org.eclipse.jetty:jetty-server:11.0.0") {
exclude group: 'org.slf4j', module: 'slf4j-api'
Expand All @@ -40,8 +29,6 @@ dependencies {
testFixturesCompileOnly "org.eclipse.jetty.websocket:websocket-jakarta-server:11.0.0"
testFixturesImplementation group: 'jakarta.websocket', name: 'jakarta.websocket-client-api', version: '2.0.0'



testFixturesImplementation(project(':dd-java-agent:instrumentation-testing')) {
exclude group: 'org.eclipse.jetty', module: 'jetty-server'
}
Expand All @@ -62,6 +49,7 @@ dependencies {
testImplementation testFixtures(project(':dd-java-agent:instrumentation:servlet:jakarta-servlet-5.0'))
testImplementation project(':dd-java-agent:appsec:appsec-test-fixtures')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-10.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:servlet:jakarta-servlet-5.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:websocket:javax-websocket-1.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:websocket:jakarta-websocket-2.0')
Expand All @@ -83,6 +71,14 @@ dependencies {
latestDepTestRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0')
}

tasks.withType(AbstractCompile).configureEach {
configureCompiler(it, 11, JavaVersion.VERSION_1_8)
}

tasks.withType(Test).configureEach {
javaLauncher = getJavaLauncherFor(11)
}

idea {
module {
jdkName = '11'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
muzzle {
pass {
group = "org.eclipse.jetty"
module = 'jetty-server'
versions = "[9.0.4,9.3.0.M1)"
assertInverse = true
}
}

apply from: "$rootDir/gradle/java.gradle"

addTestSuiteForDir("latestDepTest", "test")
addTestSuiteExtendingForDir("latestDepForkedTest", "latestDepTest", "test")

dependencies {
implementation project(':dd-java-agent:instrumentation:jetty:jetty-common')
implementation project(":dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0")
compileOnly group: 'org.eclipse.jetty', name: 'jetty-server', version: '9.0.4.v20130625'

// Don't want to conflict with jetty from the test server.
testImplementation(project(':dd-java-agent:instrumentation-testing')) {
exclude group: 'org.eclipse.jetty', module: 'jetty-server'
}
testImplementation project(':dd-java-agent:instrumentation:jetty:jetty-util-9.4.31')

testImplementation group: 'org.eclipse.jetty', name: 'jetty-server', version: '9.0.4.v20130625'
testImplementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '9.0.4.v20130625'
testImplementation group: 'org.eclipse.jetty', name: 'jetty-continuation', version: '9.0.4.v20130625'
testImplementation project(':dd-java-agent:appsec:appsec-test-fixtures')
testImplementation testFixtures(project(":dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0"))
testImplementation testFixtures(project(':dd-java-agent:instrumentation:servlet:javax-servlet:javax-servlet-3.0'))

// Include all jetty-server instrumentation modules for testing. Only the version-compatible module will apply at runtime.
testRuntimeOnly project(":dd-java-agent:instrumentation:jetty:jetty-server:jetty-server-9.0")
testRuntimeOnly project(':dd-java-agent:instrumentation:servlet:javax-servlet:javax-servlet-2.2')
testRuntimeOnly project(':dd-java-agent:instrumentation:websocket:javax-websocket-1.0')
// Include all appsec instrumentation modules for testing. Only the version-compatible module will apply at runtime.
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-appsec:jetty-appsec-7.0')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-appsec:jetty-appsec-8.1.3')
testRuntimeOnly project(':dd-java-agent:instrumentation:jetty:jetty-appsec:jetty-appsec-9.2')

latestDepTestImplementation group: 'org.eclipse.jetty.websocket', name: 'javax-websocket-server-impl', version: '9.2.30.v20200428'
latestDepTestImplementation group: 'org.eclipse.jetty', name: 'jetty-server', version: '9.2.+'
latestDepTestImplementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '9.2.+'
latestDepTestImplementation group: 'org.eclipse.jetty', name: 'jetty-continuation', version: '9.2.+'
latestDepTestImplementation group: 'org.eclipse.jetty.websocket', name: 'javax-websocket-server-impl', version: '9.2.+'

latestDepForkedTestImplementation group: 'org.eclipse.jetty', name: 'jetty-server', version: '9.2.+'
latestDepForkedTestImplementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '9.2.+'
latestDepForkedTestImplementation group: 'org.eclipse.jetty', name: 'jetty-continuation', version: '9.2.+'
latestDepForkedTestImplementation group: 'org.eclipse.jetty.websocket', name: 'javax-websocket-server-impl', version: '9.2.+'
}
Loading