diff --git a/dd-java-agent/agent-bootstrap/build.gradle b/dd-java-agent/agent-bootstrap/build.gradle index 4b8b0cb2fa1..1ee2d9a6cde 100644 --- a/dd-java-agent/agent-bootstrap/build.gradle +++ b/dd-java-agent/agent-bootstrap/build.gradle @@ -27,6 +27,9 @@ dependencies { api project(':components:json') api libs.slf4j // ^ Generally a bad idea for libraries, but we're shadowing. + api(variantOf(libs.instrumentjava, { classifier("all") })) { + transitive = false + } testImplementation project(':dd-java-agent:testing') } diff --git a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Constants.java b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Constants.java index 3bb71f4a89c..08934e44579 100644 --- a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Constants.java +++ b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Constants.java @@ -11,7 +11,7 @@ public final class Constants { * packages which will be loaded on the bootstrap classloader * *
Updates should be mirrored in - * datadog.trace.agent.test.BootstrapClasspathSetup#BOOTSTRAP_PACKAGE_PREFIXES_COPY + * datadog.trace.agent.test.BootstrapClasspathSetupListener#BOOTSTRAP_PACKAGE_PREFIXES_COPY */ public static final String[] BOOTSTRAP_PACKAGE_PREFIXES = { "datadog.slf4j", @@ -19,6 +19,7 @@ public final class Constants { "datadog.environment", "datadog.json", "datadog.yaml", + "datadog.instrument", "datadog.appsec.api", "datadog.trace.api", "datadog.trace.bootstrap", diff --git a/dd-java-agent/agent-tooling/src/main/resources/datadog/trace/agent/tooling/bytebuddy/matcher/ignored_class_name.trie b/dd-java-agent/agent-tooling/src/main/resources/datadog/trace/agent/tooling/bytebuddy/matcher/ignored_class_name.trie index e479329c814..49c9b5e095e 100644 --- a/dd-java-agent/agent-tooling/src/main/resources/datadog/trace/agent/tooling/bytebuddy/matcher/ignored_class_name.trie +++ b/dd-java-agent/agent-tooling/src/main/resources/datadog/trace/agent/tooling/bytebuddy/matcher/ignored_class_name.trie @@ -31,6 +31,7 @@ 1 com.sun.* 0 com.sun.jersey.api.client.* 0 com.sun.messaging.* +1 datadog.instrument.* 1 datadog.opentracing.* 1 datadog.slf4j.* 1 datadog.trace.* diff --git a/dd-java-agent/instrumentation-testing/src/main/java/datadog/trace/agent/test/BootstrapClasspathSetupListener.java b/dd-java-agent/instrumentation-testing/src/main/java/datadog/trace/agent/test/BootstrapClasspathSetupListener.java index 9376a71a81b..65159a7c9c6 100644 --- a/dd-java-agent/instrumentation-testing/src/main/java/datadog/trace/agent/test/BootstrapClasspathSetupListener.java +++ b/dd-java-agent/instrumentation-testing/src/main/java/datadog/trace/agent/test/BootstrapClasspathSetupListener.java @@ -66,6 +66,7 @@ public void launcherSessionOpened(LauncherSession session) { "datadog.environment", "datadog.json", "datadog.yaml", + "datadog.instrument", "datadog.appsec.api", "datadog.trace.api", "datadog.trace.bootstrap", diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index abae8406a78..4c18ee280e7 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -31,6 +31,7 @@ final class CachedData { exclude(project(':dd-java-agent:agent-crashtracking')) exclude(project(':dd-java-agent:ddprof-lib')) exclude(dependency('org.slf4j::')) + exclude(dependency(':dd-instrument-java:')) // okhttp and its transitives (both fork and non-fork) exclude(dependency('com.datadoghq.okhttp3:okhttp')) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e5de39c1a25..ed7909b3a57 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,6 +12,7 @@ junit5 = "5.12.2" junit-platform = "1.12.2" logback = "1.2.13" bytebuddy = "1.17.7" +instrumentjava = "0.0.2" scala = "2.11.12" # Last version to support Java 7 (2.12+ require Java 8+) scala211 = "2.11.12" scala212 = "2.12.18" @@ -46,6 +47,7 @@ okhttp = { module = "com.datadoghq.okhttp3:okhttp", version.ref = "okhttp" } okio = { module = "com.datadoghq.okio:okio", version.ref = "okio" } bytebuddy = { module = "net.bytebuddy:byte-buddy", version.ref = "bytebuddy" } bytebuddyagent = { module = "net.bytebuddy:byte-buddy-agent", version.ref = "bytebuddy" } +instrumentjava = { module = "com.datadoghq:dd-instrument-java", version.ref = "instrumentjava" } autoservice-processor = { module = "com.google.auto.service:auto-service", version.ref = "autoservice" } autoservice-annotation = { module = "com.google.auto.service:auto-service-annotations", version.ref = "autoservice" } commons-math = { module = "org.apache.commons:commons-math3", version.ref = "commons" }