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
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ dependencies {
main_java17CompileOnly(group: 'org.springframework', name: 'spring-webmvc', version: '6.0.0')
main_java17CompileOnly group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: '5.0.0'

implementation project(':dd-java-agent:instrumentation:span-origin')
main_java17Implementation project(':dd-java-agent:instrumentation:span-origin')

testImplementation(project(':dd-java-agent:testing')) {
exclude(module: 'jetty-server') // incompatible servlet api
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package datadog.trace.instrumentation.springweb6;

import static java.util.Arrays.asList;

import com.google.auto.service.AutoService;
import datadog.trace.agent.tooling.InstrumenterModule;
import datadog.trace.instrumentation.codeorigin.CodeOriginInstrumentation;
import java.util.HashSet;
import java.util.Set;

@AutoService(InstrumenterModule.class)
public class SpringWebCodeOriginInstrumentation extends CodeOriginInstrumentation {
private static final String WEB_BIND_ANNOTATION = "org.springframework.web.bind.annotation.";

public SpringWebCodeOriginInstrumentation() {
super("spring-web-code-origin");
}

@Override
protected Set<String> getAnnotations() {
return new HashSet<>(
asList(
WEB_BIND_ANNOTATION + "DeleteMapping",
WEB_BIND_ANNOTATION + "GetMapping",
WEB_BIND_ANNOTATION + "PatchMapping",
WEB_BIND_ANNOTATION + "PostMapping",
WEB_BIND_ANNOTATION + "PutMapping",
WEB_BIND_ANNOTATION + "RequestMapping"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import datadog.trace.api.IdGenerationStrategy
import datadog.trace.api.StatsDClient
import datadog.trace.api.TraceConfig
import datadog.trace.api.WellKnownTags
import datadog.trace.api.config.DebuggerConfig
import datadog.trace.api.config.GeneralConfig
import datadog.trace.api.config.TracerConfig
import datadog.trace.api.gateway.RequestContext
Expand Down Expand Up @@ -84,6 +85,7 @@ import static datadog.communication.http.OkHttpUtils.buildHttpClient
import static datadog.trace.api.ConfigDefaults.DEFAULT_AGENT_HOST
import static datadog.trace.api.ConfigDefaults.DEFAULT_AGENT_TIMEOUT
import static datadog.trace.api.ConfigDefaults.DEFAULT_TRACE_AGENT_PORT
import static datadog.trace.api.config.DebuggerConfig.*
import static datadog.trace.api.config.DebuggerConfig.DYNAMIC_INSTRUMENTATION_ENABLED
import static datadog.trace.api.config.DebuggerConfig.DYNAMIC_INSTRUMENTATION_VERIFY_BYTECODE
import static datadog.trace.api.config.TraceInstrumentationConfig.CODE_ORIGIN_FOR_SPANS_ENABLED
Expand Down Expand Up @@ -307,7 +309,6 @@ abstract class AgentTestRunner extends DDSpecification implements AgentBuilder.L

def codeOriginSetup() {
injectSysConfig(CODE_ORIGIN_FOR_SPANS_ENABLED, "true", true)
injectSysConfig(DYNAMIC_INSTRUMENTATION_ENABLED, "false", true)
injectSysConfig(DYNAMIC_INSTRUMENTATION_VERIFY_BYTECODE, "false", true)

def configuration = Configuration.builder()
Expand Down
Loading