From 98d638a937bf943d66da58b40e4c6b13169715d9 Mon Sep 17 00:00:00 2001 From: Stuart McCulloch Date: Tue, 24 Jun 2025 12:10:36 +0100 Subject: [PATCH 1/2] Cleanup InstrumenterModule enablement * All instrumentations now declare a target system which they fall under * We introduce COMMON as the system for instrumentations shared across all systems and SECURITY for instrumentations shared between APPSEC and IAST * We now log when an instrumentation has been disabled * Special enablement of security instrumentations shared between APPSEC and IAST has been moved to `isEnabled` which is now told the enabled systems --- .../trace/agent/tooling/AgentInstaller.java | 12 +++- .../tooling/CombiningTransformerBuilder.java | 20 +++--- .../test/DefaultInstrumenterForkedTest.groovy | 20 +++--- .../csi/CallSiteBenchmarkInstrumentation.java | 12 ++-- .../csi/CalleeBenchmarkInstrumentation.java | 8 +-- .../agent/tooling/InstrumenterModule.java | 62 ++++++++----------- .../csi/CallSiteInstrumentation.java | 5 ++ .../tooling/InstrumenterIndexTest.groovy | 7 ++- .../agent/test/TestIndexFirstModule.java | 5 ++ .../trace/agent/test/TestIndexLastModule.java | 5 ++ .../agent/test/TestIndexMultiModule.java | 5 ++ .../trace/agent/test/TestIndexSelfModule.java | 5 ++ .../muzzle/TestInstrumentationClasses.java | 5 ++ .../sqs/SqsReceiveResultInstrumentation.java | 5 +- .../sqs/SqsReceiveResultInstrumentation.java | 5 +- .../ClassloadingInstrumentation.java | 5 +- .../DefineClassInstrumentation.java | 5 +- ...ableWallclockProfilingInstrumentation.java | 5 +- .../KnownExcludesInstrumentation.java | 5 +- .../ThrowableInstrumentation.java | 5 +- .../AbstractNativeImageInstrumentation.java | 9 ++- .../GradleBuildListenerInstrumentation.java | 4 +- ...ildScopeServices_8_10_Instrumentation.java | 4 +- ...uildScopeServices_8_3_Instrumentation.java | 4 +- .../GradlePluginInjectorInstrumentation.java | 4 +- ...radleServiceValidationInstrumentation.java | 4 +- ...UnitTestClassProcessorInstrumentation.java | 4 +- ...UnitTestClassProcessorInstrumentation.java | 4 +- .../server/MethodHandlersInstrumentation.java | 5 +- .../iastinstrumenter/IastInstrumentation.java | 5 +- .../IastInstrumentationForkedTest.groovy | 2 +- .../ClassInstrumenterInstrumentation.java | 4 +- .../jacoco/InstrumenterInstrumentation.java | 4 +- .../jacoco/ProbeInserterInstrumentation.java | 4 +- ...bleFutureUniCompletionInstrumentation.java | 4 -- .../StructuredTaskScopeInstrumentation.java | 5 +- .../TaskRunnerInstrumentation.java | 5 +- .../TaskUnwrappingInstrumentation.java | 5 +- .../JavaForkJoinWorkQueueInstrumentation.java | 5 +- .../ByteBufferInstrumentation.java | 5 +- .../DirectByteBufferInstrumentation.java | 5 +- .../FileChannelImplInstrumentation.java | 5 +- .../httpclient/HttpClientInstrumentation.java | 5 +- .../HttpHeadersInstrumentation.java | 5 +- .../CustomMBeanBuilderInstrumentation.java | 5 +- .../jetty10/JettyServerInstrumentation.java | 4 +- .../jetty9/JettyServerInstrumentation.java | 4 +- .../JUnit4CucumberSkipInstrumentation.java | 4 +- .../Cucumber4ExecutionInstrumentation.java | 5 +- .../JUnit4TestOrdererInstrumentation.java | 4 +- .../JUnit4TestSorterInstrumentation.java | 4 +- .../MUnitExecutionInstrumentation.java | 5 +- .../junit4/JUnit4SkipInstrumentation.java | 4 +- .../JUnit4ExecutionInstrumentation.java | 5 +- .../JUnit5CucumberSkipInstrumentation.java | 4 +- .../order/JUnit5TestOrderInstrumentation.java | 4 +- .../JUnit5SpockSkipInstrumentation.java | 4 +- ...ParameterizedExecutionInstrumentation.java | 5 +- .../junit5/JUnit5SkipInstrumentation.java | 4 +- .../JUnit5ExecutionInstrumentation.java | 5 +- ...it5NodeTestTaskContextInstrumentation.java | 5 +- .../MessageListenerInstrumentation.java | 5 +- .../KarateExecutionInstrumentation.java | 5 +- .../log4j2/LoggerConfigInstrumentation.java | 4 +- .../maven3/MavenInstrumentation.java | 4 +- .../JUnit4ClassOrderInstrumentation.java | 4 +- .../mule4/JpmsMuleInstrumentation.java | 5 +- ...gleThreadEventExecutorInstrumentation.java | 5 +- .../PromiseObjectInstrumentation.java | 5 +- .../DefaultPromiseInstrumentation.java | 5 +- .../PromiseObjectInstrumentation.java | 5 +- .../ScalatestForkInstrumentation.java | 4 +- .../scalatest/ScalatestInstrumentation.java | 4 +- .../ScalatestSkipInstrumentation.java | 4 +- .../ScalatestExecutionInstrumentation.java | 5 +- .../codeorigin/CodeOriginInstrumentation.java | 4 +- ...ppSecDispatcherServletInstrumentation.java | 5 +- ...lateAndMatrixVariablesInstrumentation.java | 10 ++- ...ateVariablesUrlHandlerInstrumentation.java | 10 ++- ...ervletWithPathPatternsInstrumentation.java | 5 +- ...lateAndMatrixVariablesInstrumentation.java | 10 ++- ...ateVariablesUrlHandlerInstrumentation.java | 10 ++- .../SocketConnectInstrumentation.java | 5 +- .../testng/TestNGSkipInstrumentation.java | 4 +- .../TestNGExecutionInstrumentation.java | 5 +- .../order/TestNGOrderInstrumentation.java | 4 +- .../TraceConfigInstrumentation.java | 4 +- .../server/RouteImplInstrumentation.java | 10 ++- .../server/RouteImplInstrumentation.java | 10 ++- .../WebsphereSecurityInstrumentation.java | 5 +- .../agent/test/base/TestInstrumentation.java | 5 +- 91 files changed, 320 insertions(+), 241 deletions(-) diff --git a/dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java b/dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java index e56fda40497..7479c7ad890 100644 --- a/dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java +++ b/dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java @@ -200,12 +200,18 @@ public static ClassFileTransformer installBytebuddyAgent( int installedCount = 0; for (InstrumenterModule module : instrumenterModules) { - if (!module.isApplicable(enabledSystems)) { + if (!enabledSystems.contains(module.targetSystem())) { if (DEBUG) { log.debug("Not applicable - instrumentation.class={}", module.getClass().getName()); } continue; } + if (!module.isEnabled(enabledSystems)) { + if (DEBUG) { + log.debug("Not enabled - instrumentation.class={}", module.getClass().getName()); + } + continue; + } if (DEBUG) { log.debug("Loading - instrumentation.class={}", module.getClass().getName()); } @@ -291,7 +297,7 @@ public InstrumenterModule next() { public static Set getEnabledSystems() { EnumSet enabledSystems = - EnumSet.noneOf(InstrumenterModule.TargetSystem.class); + EnumSet.of(InstrumenterModule.TargetSystem.COMMON); InstrumenterConfig cfg = InstrumenterConfig.get(); if (cfg.isTraceEnabled()) { enabledSystems.add(InstrumenterModule.TargetSystem.TRACING); @@ -300,9 +306,11 @@ public static Set getEnabledSystems() { enabledSystems.add(InstrumenterModule.TargetSystem.PROFILING); } if (cfg.getAppSecActivation() != ProductActivation.FULLY_DISABLED) { + enabledSystems.add(InstrumenterModule.TargetSystem.SECURITY); enabledSystems.add(InstrumenterModule.TargetSystem.APPSEC); } if (cfg.getIastActivation() != ProductActivation.FULLY_DISABLED) { + enabledSystems.add(InstrumenterModule.TargetSystem.SECURITY); enabledSystems.add(InstrumenterModule.TargetSystem.IAST); } if (cfg.isCiVisibilityEnabled()) { diff --git a/dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/CombiningTransformerBuilder.java b/dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/CombiningTransformerBuilder.java index 21a0b4c6e47..a18a246c990 100644 --- a/dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/CombiningTransformerBuilder.java +++ b/dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/CombiningTransformerBuilder.java @@ -93,17 +93,15 @@ public CombiningTransformerBuilder( /** Builds matchers and transformers for an instrumentation module and its members. */ public void applyInstrumentation(InstrumenterModule module) { - if (module.isEnabled()) { - int instrumentationId = instrumenterIndex.instrumentationId(module); - if (instrumentationId < 0) { - // this is a non-indexed instrumentation configured at runtime - instrumentationId = nextRuntimeInstrumentationId++; - } - InstrumenterState.registerInstrumentation(module, instrumentationId); - prepareInstrumentation(module, instrumentationId); - for (Instrumenter member : module.typeInstrumentations()) { - buildTypeInstrumentation(member); - } + int instrumentationId = instrumenterIndex.instrumentationId(module); + if (instrumentationId < 0) { + // this is a non-indexed instrumentation configured at runtime + instrumentationId = nextRuntimeInstrumentationId++; + } + InstrumenterState.registerInstrumentation(module, instrumentationId); + prepareInstrumentation(module, instrumentationId); + for (Instrumenter member : module.typeInstrumentations()) { + buildTypeInstrumentation(member); } } diff --git a/dd-java-agent/agent-builder/src/test/groovy/datadog/trace/agent/test/DefaultInstrumenterForkedTest.groovy b/dd-java-agent/agent-builder/src/test/groovy/datadog/trace/agent/test/DefaultInstrumenterForkedTest.groovy index eb448819bd2..d4fddcb6a7d 100644 --- a/dd-java-agent/agent-builder/src/test/groovy/datadog/trace/agent/test/DefaultInstrumenterForkedTest.groovy +++ b/dd-java-agent/agent-builder/src/test/groovy/datadog/trace/agent/test/DefaultInstrumenterForkedTest.groovy @@ -1,7 +1,7 @@ package datadog.trace.agent.test - import datadog.trace.agent.tooling.InstrumenterModule +import datadog.trace.agent.tooling.InstrumenterModule.TargetSystem import datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers import datadog.trace.agent.tooling.bytebuddy.outline.TypePoolFacade import datadog.trace.test.util.DDSpecification @@ -17,12 +17,12 @@ class DefaultInstrumenterForkedTest extends DDSpecification { def target = new TestDefaultInstrumenter("test") expect: - target.enabled + assertEnabled(target) } def "default enabled override #enabled"() { expect: - target.enabled == enabled + assertEnabled(target, enabled) where: enabled | target @@ -51,7 +51,7 @@ class DefaultInstrumenterForkedTest extends DDSpecification { } expect: - target.enabled == enabled + assertEnabled(target, enabled) where: enabled << [true, false] @@ -65,7 +65,7 @@ class DefaultInstrumenterForkedTest extends DDSpecification { def target = new TestDefaultInstrumenter("test") then: - target.enabled == enabled + assertEnabled(target, enabled) where: value | enabled @@ -80,7 +80,7 @@ class DefaultInstrumenterForkedTest extends DDSpecification { def target = new TestDefaultInstrumenter("test") expect: - target.enabled == enabled + assertEnabled(target, enabled) where: value | enabled @@ -96,7 +96,7 @@ class DefaultInstrumenterForkedTest extends DDSpecification { def target = new TestDefaultInstrumenter(name, altName) expect: - target.enabled == enabled + assertEnabled(target, enabled) where: value | enabled | name | altName @@ -119,7 +119,7 @@ class DefaultInstrumenterForkedTest extends DDSpecification { then: System.getenv("DD_INTEGRATION_${value}_ENABLED") == "true" - target.enabled == enabled + assertEnabled(target, enabled) where: value | enabled | name | altName @@ -132,6 +132,10 @@ class DefaultInstrumenterForkedTest extends DDSpecification { "PERIOD_TEST" | true | "period.test" | "asdf" } + def assertEnabled(target, enabled = true) { + target.isEnabled(EnumSet.of(TargetSystem.TRACING)) == enabled + } + class TestDefaultInstrumenter extends InstrumenterModule.Tracing { TestDefaultInstrumenter(String instrumentationName) { diff --git a/dd-java-agent/agent-tooling/src/jmh/java/datadog/trace/agent/tooling/bytebuddy/csi/CallSiteBenchmarkInstrumentation.java b/dd-java-agent/agent-tooling/src/jmh/java/datadog/trace/agent/tooling/bytebuddy/csi/CallSiteBenchmarkInstrumentation.java index 4796b15f4eb..ef16ba83bee 100644 --- a/dd-java-agent/agent-tooling/src/jmh/java/datadog/trace/agent/tooling/bytebuddy/csi/CallSiteBenchmarkInstrumentation.java +++ b/dd-java-agent/agent-tooling/src/jmh/java/datadog/trace/agent/tooling/bytebuddy/csi/CallSiteBenchmarkInstrumentation.java @@ -18,18 +18,18 @@ public CallSiteBenchmarkInstrumentation() { } @Override - public ElementMatcher callerType() { - return CallSiteMatcher.INSTANCE; + public TargetSystem targetSystem() { + return TargetSystem.COMMON; // always active during this benchmark } @Override - public boolean isEnabled() { - return "callSite".equals(System.getProperty("dd.benchmark.instrumentation", "")); + public ElementMatcher callerType() { + return CallSiteMatcher.INSTANCE; } @Override - public boolean isApplicable(final Set enabledSystems) { - return true; + public boolean isEnabled(Set enabledSystems) { + return "callSite".equals(System.getProperty("dd.benchmark.instrumentation", "")); } @Override diff --git a/dd-java-agent/agent-tooling/src/jmh/java/datadog/trace/agent/tooling/bytebuddy/csi/CalleeBenchmarkInstrumentation.java b/dd-java-agent/agent-tooling/src/jmh/java/datadog/trace/agent/tooling/bytebuddy/csi/CalleeBenchmarkInstrumentation.java index b8805a3f3ae..25601a7e969 100644 --- a/dd-java-agent/agent-tooling/src/jmh/java/datadog/trace/agent/tooling/bytebuddy/csi/CalleeBenchmarkInstrumentation.java +++ b/dd-java-agent/agent-tooling/src/jmh/java/datadog/trace/agent/tooling/bytebuddy/csi/CalleeBenchmarkInstrumentation.java @@ -34,13 +34,13 @@ public String[] helperClassNames() { } @Override - public boolean isEnabled() { - return "callee".equals(System.getProperty("dd.benchmark.instrumentation", "")); + public TargetSystem targetSystem() { + return TargetSystem.COMMON; // always active during this benchmark } @Override - public boolean isApplicable(final Set enabledSystems) { - return true; + public boolean isEnabled(Set enabledSystems) { + return "callee".equals(System.getProperty("dd.benchmark.instrumentation", "")); } public static class Muzzle extends ReferenceMatcher {} diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java index 42ea6b7207f..6b37304bef4 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java @@ -32,20 +32,13 @@ public abstract class InstrumenterModule implements Instrumenter { /** * Since several systems share the same instrumentation infrastructure in order to enable only the * applicable {@link Instrumenter instrumenters} on startup each {@linkplain InstrumenterModule} - * must declare its target system. The systems currently supported include: - * - *
    - *
  • {@link TargetSystem#TRACING tracing} - *
  • {@link TargetSystem#PROFILING profiling} - *
  • {@link TargetSystem#APPSEC appsec} - *
  • {@link TargetSystem#IAST iast} - *
  • {@link TargetSystem#CIVISIBILITY ci-visibility} - *
  • {@link TargetSystem#USM usm} - *
+ * must declare its target system. */ public enum TargetSystem { + COMMON, // instrumentation common to every system TRACING, PROFILING, + SECURITY, // instrumentation shared between APPSEC and IAST APPSEC, IAST, CIVISIBILITY, @@ -177,25 +170,16 @@ public Map contextStore() { return emptyMap(); } + public abstract TargetSystem targetSystem(); + protected boolean defaultEnabled() { return InstrumenterConfig.get().isIntegrationsEnabled(); } - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { return enabled; } - /** - * Indicates the applicability of an {@linkplain InstrumenterModule} to the given system.
- * - * @param enabledSystems a set of all the enabled target systems - * @return {@literal true} if the set of enabled systems contains all the ones required by this - * particular {@linkplain InstrumenterModule} - */ - public boolean isApplicable(Set enabledSystems) { - return false; - } - protected final boolean isShortcutMatchingEnabled(boolean defaultToShortcut) { return InstrumenterConfig.get() .isIntegrationShortcutMatchingEnabled(singletonList(name()), defaultToShortcut); @@ -208,8 +192,8 @@ public Tracing(String instrumentationName, String... additionalNames) { } @Override - public boolean isApplicable(Set enabledSystems) { - return enabledSystems.contains(TargetSystem.TRACING); + public TargetSystem targetSystem() { + return TargetSystem.TRACING; } } @@ -220,13 +204,13 @@ public Profiling(String instrumentationName, String... additionalNames) { } @Override - public boolean isApplicable(Set enabledSystems) { - return enabledSystems.contains(TargetSystem.PROFILING); + public TargetSystem targetSystem() { + return TargetSystem.PROFILING; } @Override - public boolean isEnabled() { - return super.isEnabled() + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && !ConfigProvider.getInstance() .getBoolean(ProfilingConfig.PROFILING_ULTRA_MINIMAL, false); } @@ -239,8 +223,8 @@ public AppSec(String instrumentationName, String... additionalNames) { } @Override - public boolean isApplicable(Set enabledSystems) { - return enabledSystems.contains(TargetSystem.APPSEC); + public TargetSystem targetSystem() { + return TargetSystem.APPSEC; } } @@ -251,6 +235,11 @@ public Iast(String instrumentationName, String... additionalNames) { super(instrumentationName, additionalNames); } + @Override + public TargetSystem targetSystem() { + return TargetSystem.SECURITY; + } + @Override public List typeInstrumentations() { preloadClassNames(); @@ -258,7 +247,10 @@ public List typeInstrumentations() { } @Override - public boolean isApplicable(Set enabledSystems) { + public boolean isEnabled(Set enabledSystems) { + if (!super.isEnabled(enabledSystems)) { + return false; + } if (enabledSystems.contains(TargetSystem.IAST)) { return true; } @@ -307,8 +299,8 @@ public Usm(String instrumentationName, String... additionalNames) { } @Override - public boolean isApplicable(Set enabledSystems) { - return enabledSystems.contains(TargetSystem.USM); + public TargetSystem targetSystem() { + return TargetSystem.USM; } } @@ -319,8 +311,8 @@ public CiVisibility(String instrumentationName, String... additionalNames) { } @Override - public boolean isApplicable(Set enabledSystems) { - return enabledSystems.contains(TargetSystem.CIVISIBILITY); + public TargetSystem targetSystem() { + return TargetSystem.CIVISIBILITY; } } } diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/csi/CallSiteInstrumentation.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/csi/CallSiteInstrumentation.java index 8b7ad6029d8..5d07e765b95 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/csi/CallSiteInstrumentation.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/csi/CallSiteInstrumentation.java @@ -21,6 +21,11 @@ public CallSiteInstrumentation( super(name, additionalNames); } + @Override + public TargetSystem targetSystem() { + return TargetSystem.SECURITY; + } + @Override public void typeAdvice(TypeTransformer transformer) { transformer.applyAdvice(new CallSiteTransformer(name(), advices())); diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/InstrumenterIndexTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/InstrumenterIndexTest.groovy index 09ee41ea1cd..96279c2b37d 100644 --- a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/InstrumenterIndexTest.groovy +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/InstrumenterIndexTest.groovy @@ -6,7 +6,12 @@ import spock.lang.Shared class InstrumenterIndexTest extends DDSpecification { @Shared - def unknownInstrumentation = new InstrumenterModule('unknown') {} + def unknownInstrumentation = new InstrumenterModule('unknown') { + @Override + InstrumenterModule.TargetSystem targetSystem() { + return InstrumenterModule.TargetSystem.COMMON + } + } @Shared def unknownTransformation = new Instrumenter() {} diff --git a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexFirstModule.java b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexFirstModule.java index 3e7cc562bf0..355bc73da17 100644 --- a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexFirstModule.java +++ b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexFirstModule.java @@ -7,6 +7,11 @@ public TestIndexFirstModule() { super("test-index-priority"); } + @Override + public TargetSystem targetSystem() { + return TargetSystem.COMMON; + } + @Override public int order() { return -100; // lower-values applied first diff --git a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexLastModule.java b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexLastModule.java index 1b72b63ce2a..643dbaee732 100644 --- a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexLastModule.java +++ b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexLastModule.java @@ -7,6 +7,11 @@ public TestIndexLastModule() { super("test-index-priority"); } + @Override + public TargetSystem targetSystem() { + return TargetSystem.COMMON; + } + @Override public int order() { return 100; // higher-values applied last diff --git a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexMultiModule.java b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexMultiModule.java index 2fcc2071d2f..d48c4973cff 100644 --- a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexMultiModule.java +++ b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexMultiModule.java @@ -11,6 +11,11 @@ public TestIndexMultiModule() { super("test-index-multi"); } + @Override + public TargetSystem targetSystem() { + return TargetSystem.COMMON; + } + @Override public List typeInstrumentations() { return asList( diff --git a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexSelfModule.java b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexSelfModule.java index 6940de61c0a..b55c79d3921 100644 --- a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexSelfModule.java +++ b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/test/TestIndexSelfModule.java @@ -6,4 +6,9 @@ public class TestIndexSelfModule extends InstrumenterModule { public TestIndexSelfModule() { super("test-index-self"); } + + @Override + public TargetSystem targetSystem() { + return TargetSystem.COMMON; + } } diff --git a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/tooling/muzzle/TestInstrumentationClasses.java b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/tooling/muzzle/TestInstrumentationClasses.java index e5b5a28a3a6..3a12f2124e8 100644 --- a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/tooling/muzzle/TestInstrumentationClasses.java +++ b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/tooling/muzzle/TestInstrumentationClasses.java @@ -21,6 +21,11 @@ public BaseInst() { super("test"); } + @Override + public TargetSystem targetSystem() { + return TargetSystem.COMMON; + } + @Override public void methodAdvice(MethodTransformer transformer) {} } diff --git a/dd-java-agent/instrumentation/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/SqsReceiveResultInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/SqsReceiveResultInstrumentation.java index 9c56fb8b2fe..74f06977da1 100644 --- a/dd-java-agent/instrumentation/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/SqsReceiveResultInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sqs-1.0/src/main/java/datadog/trace/instrumentation/aws/v1/sqs/SqsReceiveResultInstrumentation.java @@ -13,6 +13,7 @@ import datadog.trace.bootstrap.InstrumentationContext; import java.util.List; import java.util.Map; +import java.util.Set; import net.bytebuddy.asm.Advice; @AutoService(InstrumenterModule.class) @@ -25,8 +26,8 @@ public String instrumentedType() { } @Override - public boolean isEnabled() { - return super.isEnabled() + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) // we don't need to instrument messages when we're doing legacy AWS-SDK tracing && !InstrumenterConfig.get().isLegacyInstrumentationEnabled(false, "aws-sdk"); } diff --git a/dd-java-agent/instrumentation/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/SqsReceiveResultInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/SqsReceiveResultInstrumentation.java index e0e00d33e7b..049c4672827 100644 --- a/dd-java-agent/instrumentation/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/SqsReceiveResultInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sqs-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/sqs/SqsReceiveResultInstrumentation.java @@ -11,6 +11,7 @@ import datadog.trace.bootstrap.InstrumentationContext; import java.util.List; import java.util.Map; +import java.util.Set; import net.bytebuddy.asm.Advice; import software.amazon.awssdk.services.sqs.model.Message; import software.amazon.awssdk.services.sqs.model.ReceiveMessageResponse; @@ -25,8 +26,8 @@ public String instrumentedType() { } @Override - public boolean isEnabled() { - return super.isEnabled() + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) // we don't need to instrument messages when we're doing legacy AWS-SDK tracing && !InstrumenterConfig.get().isLegacyInstrumentationEnabled(false, "aws-sdk"); } diff --git a/dd-java-agent/instrumentation/classloading/src/main/java/datadog/trace/instrumentation/classloading/ClassloadingInstrumentation.java b/dd-java-agent/instrumentation/classloading/src/main/java/datadog/trace/instrumentation/classloading/ClassloadingInstrumentation.java index 15e0e626573..a54d815b3e8 100644 --- a/dd-java-agent/instrumentation/classloading/src/main/java/datadog/trace/instrumentation/classloading/ClassloadingInstrumentation.java +++ b/dd-java-agent/instrumentation/classloading/src/main/java/datadog/trace/instrumentation/classloading/ClassloadingInstrumentation.java @@ -16,7 +16,6 @@ import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.bootstrap.CallDepthThreadLocalMap; import datadog.trace.bootstrap.Constants; -import java.util.Set; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -41,8 +40,8 @@ public ClassloadingInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return true; + public TargetSystem targetSystem() { + return TargetSystem.COMMON; } @Override diff --git a/dd-java-agent/instrumentation/classloading/src/main/java/datadog/trace/instrumentation/classloading/DefineClassInstrumentation.java b/dd-java-agent/instrumentation/classloading/src/main/java/datadog/trace/instrumentation/classloading/DefineClassInstrumentation.java index 2d028627c11..9043d65a13a 100644 --- a/dd-java-agent/instrumentation/classloading/src/main/java/datadog/trace/instrumentation/classloading/DefineClassInstrumentation.java +++ b/dd-java-agent/instrumentation/classloading/src/main/java/datadog/trace/instrumentation/classloading/DefineClassInstrumentation.java @@ -11,6 +11,7 @@ import datadog.trace.bootstrap.DatadogClassLoader; import datadog.trace.bootstrap.instrumentation.classloading.ClassDefining; import java.security.ProtectionDomain; +import java.util.Set; import net.bytebuddy.asm.Advice; /** Updates j.l.ClassLoader to notify the tracer when classes are about to be defined. */ @@ -22,9 +23,9 @@ public DefineClassInstrumentation() { } @Override - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { // only enable this when memoizing type hierarchies, where it provides the most ROI - return super.isEnabled() && InstrumenterConfig.get().isResolverMemoizingEnabled(); + return super.isEnabled(enabledSystems) && InstrumenterConfig.get().isResolverMemoizingEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/enable-wallclock-profiling/src/main/java/datadog/trace/instrumentation/wallclock/EnableWallclockProfilingInstrumentation.java b/dd-java-agent/instrumentation/enable-wallclock-profiling/src/main/java/datadog/trace/instrumentation/wallclock/EnableWallclockProfilingInstrumentation.java index 33567a42048..0b68355b1da 100644 --- a/dd-java-agent/instrumentation/enable-wallclock-profiling/src/main/java/datadog/trace/instrumentation/wallclock/EnableWallclockProfilingInstrumentation.java +++ b/dd-java-agent/instrumentation/enable-wallclock-profiling/src/main/java/datadog/trace/instrumentation/wallclock/EnableWallclockProfilingInstrumentation.java @@ -17,6 +17,7 @@ import datadog.trace.bootstrap.instrumentation.api.AgentSpan; import datadog.trace.bootstrap.instrumentation.api.AgentTracer; import java.util.Arrays; +import java.util.Set; import net.bytebuddy.asm.Advice; @AutoService(InstrumenterModule.class) @@ -41,9 +42,9 @@ public EnableWallclockProfilingInstrumentation() { }; @Override - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { // only needed if wallclock profiling is enabled, which requires tracing - return super.isEnabled() + return super.isEnabled(enabledSystems) && ConfigProvider.getInstance() .getBoolean( PROFILING_DATADOG_PROFILER_WALL_ENABLED, diff --git a/dd-java-agent/instrumentation/exception-profiling/src/main/java/datadog/exceptions/instrumentation/KnownExcludesInstrumentation.java b/dd-java-agent/instrumentation/exception-profiling/src/main/java/datadog/exceptions/instrumentation/KnownExcludesInstrumentation.java index a483d78d7a4..c34adba2f77 100644 --- a/dd-java-agent/instrumentation/exception-profiling/src/main/java/datadog/exceptions/instrumentation/KnownExcludesInstrumentation.java +++ b/dd-java-agent/instrumentation/exception-profiling/src/main/java/datadog/exceptions/instrumentation/KnownExcludesInstrumentation.java @@ -6,6 +6,7 @@ import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.Platform; +import java.util.Set; /** * Provides instrumentation to exclude exception types known to be used for control flow or @@ -21,8 +22,8 @@ public KnownExcludesInstrumentation() { } @Override - public boolean isEnabled() { - return Platform.hasJfr() && super.isEnabled(); + public boolean isEnabled(Set enabledSystems) { + return Platform.hasJfr() && super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/exception-profiling/src/main/java/datadog/exceptions/instrumentation/ThrowableInstrumentation.java b/dd-java-agent/instrumentation/exception-profiling/src/main/java/datadog/exceptions/instrumentation/ThrowableInstrumentation.java index eb91b4e1088..354be9869f4 100644 --- a/dd-java-agent/instrumentation/exception-profiling/src/main/java/datadog/exceptions/instrumentation/ThrowableInstrumentation.java +++ b/dd-java-agent/instrumentation/exception-profiling/src/main/java/datadog/exceptions/instrumentation/ThrowableInstrumentation.java @@ -6,6 +6,7 @@ import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.Platform; +import java.util.Set; /** Provides instrumentation of {@linkplain Exception} and {@linkplain Error} constructors. */ @AutoService(InstrumenterModule.class) @@ -17,8 +18,8 @@ public ThrowableInstrumentation() { } @Override - public boolean isEnabled() { - return Platform.hasJfr() && super.isEnabled(); + public boolean isEnabled(Set enabledSystems) { + return Platform.hasJfr() && super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/AbstractNativeImageInstrumentation.java b/dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/AbstractNativeImageInstrumentation.java index 5179aea129d..0c7e70b574e 100644 --- a/dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/AbstractNativeImageInstrumentation.java +++ b/dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/AbstractNativeImageInstrumentation.java @@ -12,7 +12,12 @@ public AbstractNativeImageInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return Platform.isNativeImageBuilder(); + public TargetSystem targetSystem() { + return TargetSystem.COMMON; + } + + @Override + public boolean isEnabled(Set enabledSystems) { + return Platform.isNativeImageBuilder() && super.isEnabled(enabledSystems); } } diff --git a/dd-java-agent/instrumentation/gradle-3.0/src/main/groovy/datadog/trace/instrumentation/gradle/legacy/GradleBuildListenerInstrumentation.java b/dd-java-agent/instrumentation/gradle-3.0/src/main/groovy/datadog/trace/instrumentation/gradle/legacy/GradleBuildListenerInstrumentation.java index d9a650f3773..cf2ce868bd5 100644 --- a/dd-java-agent/instrumentation/gradle-3.0/src/main/groovy/datadog/trace/instrumentation/gradle/legacy/GradleBuildListenerInstrumentation.java +++ b/dd-java-agent/instrumentation/gradle-3.0/src/main/groovy/datadog/trace/instrumentation/gradle/legacy/GradleBuildListenerInstrumentation.java @@ -47,8 +47,8 @@ public String[] helperClassNames() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityBuildInstrumentationEnabled(); } diff --git a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_10_Instrumentation.java b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_10_Instrumentation.java index af6852465a5..f63697527bb 100644 --- a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_10_Instrumentation.java +++ b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_10_Instrumentation.java @@ -43,8 +43,8 @@ public String[] helperClassNames() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityBuildInstrumentationEnabled(); } diff --git a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_3_Instrumentation.java b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_3_Instrumentation.java index 6fd2b89398c..9df2b77d118 100644 --- a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_3_Instrumentation.java +++ b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_3_Instrumentation.java @@ -42,8 +42,8 @@ public String[] helperClassNames() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityBuildInstrumentationEnabled(); } diff --git a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradlePluginInjectorInstrumentation.java b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradlePluginInjectorInstrumentation.java index 6b47977bd62..907fabb021e 100644 --- a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradlePluginInjectorInstrumentation.java +++ b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradlePluginInjectorInstrumentation.java @@ -41,8 +41,8 @@ public String instrumentedType() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityBuildInstrumentationEnabled(); } diff --git a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleServiceValidationInstrumentation.java b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleServiceValidationInstrumentation.java index 92ac63f9ef2..6893178dada 100644 --- a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleServiceValidationInstrumentation.java +++ b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleServiceValidationInstrumentation.java @@ -38,8 +38,8 @@ public String instrumentedType() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityBuildInstrumentationEnabled(); } diff --git a/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/AbstractJUnitTestClassProcessorInstrumentation.java b/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/AbstractJUnitTestClassProcessorInstrumentation.java index 04ef0cd181b..1115c95b3f5 100644 --- a/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/AbstractJUnitTestClassProcessorInstrumentation.java +++ b/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/AbstractJUnitTestClassProcessorInstrumentation.java @@ -21,8 +21,8 @@ public AbstractJUnitTestClassProcessorInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; } @Override diff --git a/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/JUnitTestClassProcessorInstrumentation.java b/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/JUnitTestClassProcessorInstrumentation.java index 4b38d3151b9..b9f74269a2c 100644 --- a/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/JUnitTestClassProcessorInstrumentation.java +++ b/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/JUnitTestClassProcessorInstrumentation.java @@ -22,8 +22,8 @@ public JUnitTestClassProcessorInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; } @Override diff --git a/dd-java-agent/instrumentation/grpc-1.5/src/main/java/datadog/trace/instrumentation/grpc/server/MethodHandlersInstrumentation.java b/dd-java-agent/instrumentation/grpc-1.5/src/main/java/datadog/trace/instrumentation/grpc/server/MethodHandlersInstrumentation.java index d41f56b7a9f..c4f48e3933c 100644 --- a/dd-java-agent/instrumentation/grpc-1.5/src/main/java/datadog/trace/instrumentation/grpc/server/MethodHandlersInstrumentation.java +++ b/dd-java-agent/instrumentation/grpc-1.5/src/main/java/datadog/trace/instrumentation/grpc/server/MethodHandlersInstrumentation.java @@ -11,6 +11,7 @@ import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.Platform; import java.lang.reflect.Method; +import java.util.Set; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -36,8 +37,8 @@ public ElementMatcher hierarchyMatcher() { } @Override - public boolean isEnabled() { - return super.isEnabled() && !Platform.isGraalVM(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && !Platform.isGraalVM(); } @Override diff --git a/dd-java-agent/instrumentation/iast-instrumenter/src/main/java/datadog/trace/instrumentation/iastinstrumenter/IastInstrumentation.java b/dd-java-agent/instrumentation/iast-instrumenter/src/main/java/datadog/trace/instrumentation/iastinstrumenter/IastInstrumentation.java index c77ebe90dbb..e979c49f7d5 100644 --- a/dd-java-agent/instrumentation/iast-instrumenter/src/main/java/datadog/trace/instrumentation/iastinstrumenter/IastInstrumentation.java +++ b/dd-java-agent/instrumentation/iast-instrumenter/src/main/java/datadog/trace/instrumentation/iastinstrumenter/IastInstrumentation.java @@ -36,8 +36,9 @@ public ElementMatcher callerType() { } @Override - public boolean isApplicable(final Set enabledSystems) { - return enabledSystems.contains(TargetSystem.IAST) || isRaspEnabled(); + public boolean isEnabled(final Set enabledSystems) { + return super.isEnabled(enabledSystems) + && (enabledSystems.contains(TargetSystem.IAST) || isRaspEnabled()); } private boolean isRaspEnabled() { diff --git a/dd-java-agent/instrumentation/iast-instrumenter/src/test/groovy/IastInstrumentationForkedTest.groovy b/dd-java-agent/instrumentation/iast-instrumenter/src/test/groovy/IastInstrumentationForkedTest.groovy index 3bbec69ea4d..50f62dc0c22 100644 --- a/dd-java-agent/instrumentation/iast-instrumenter/src/test/groovy/IastInstrumentationForkedTest.groovy +++ b/dd-java-agent/instrumentation/iast-instrumenter/src/test/groovy/IastInstrumentationForkedTest.groovy @@ -49,7 +49,7 @@ class IastInstrumentationForkedTest extends AgentTestRunner { final instrumentation = new IastInstrumentation() when: - final shouldApply = instrumentation.isApplicable(enabledSystems) + final shouldApply = instrumentation.isEnabled(enabledSystems) then: shouldApply == applicable diff --git a/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/ClassInstrumenterInstrumentation.java b/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/ClassInstrumenterInstrumentation.java index 63378b05bf4..eef8a4021ba 100644 --- a/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/ClassInstrumenterInstrumentation.java +++ b/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/ClassInstrumenterInstrumentation.java @@ -23,8 +23,8 @@ public ClassInstrumenterInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().isCiVisibilityCoverageLinesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityCoverageLinesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/InstrumenterInstrumentation.java b/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/InstrumenterInstrumentation.java index 37cb8376d80..ab9c4729336 100644 --- a/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/InstrumenterInstrumentation.java +++ b/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/InstrumenterInstrumentation.java @@ -22,8 +22,8 @@ public InstrumenterInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/ProbeInserterInstrumentation.java b/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/ProbeInserterInstrumentation.java index 4cf58f32ddb..f8b43c2b282 100644 --- a/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/ProbeInserterInstrumentation.java +++ b/dd-java-agent/instrumentation/jacoco/src/main/java/datadog/trace/instrumentation/jacoco/ProbeInserterInstrumentation.java @@ -35,8 +35,8 @@ public ProbeInserterInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().isCiVisibilityCoverageLinesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityCoverageLinesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/java-concurrent/java-completablefuture/src/main/java/datadog/trace/instrumentation/java/completablefuture/CompletableFutureUniCompletionInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/java-completablefuture/src/main/java/datadog/trace/instrumentation/java/completablefuture/CompletableFutureUniCompletionInstrumentation.java index 659a0e53706..087a4ecdae5 100644 --- a/dd-java-agent/instrumentation/java-concurrent/java-completablefuture/src/main/java/datadog/trace/instrumentation/java/completablefuture/CompletableFutureUniCompletionInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/java-completablefuture/src/main/java/datadog/trace/instrumentation/java/completablefuture/CompletableFutureUniCompletionInstrumentation.java @@ -14,7 +14,6 @@ import datadog.trace.bootstrap.instrumentation.java.concurrent.ExcludeFilter.ExcludeType; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.EnumMap; import java.util.List; import java.util.Map; @@ -77,9 +76,6 @@ public void methodAdvice(MethodTransformer transformer) { @Override public Map> excludedClasses() { - if (!isEnabled()) { - return Collections.emptyMap(); - } String[] classes = { // This is not a subclass of UniCompletion and doesn't have a dependent CompletableFuture "java.util.concurrent.CompletableFuture$Completion", diff --git a/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/src/main/java/datadog/trace/instrumentation/java/concurrent/structuredconcurrency/StructuredTaskScopeInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/src/main/java/datadog/trace/instrumentation/java/concurrent/structuredconcurrency/StructuredTaskScopeInstrumentation.java index 5a9787f0b40..7110b46f183 100644 --- a/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/src/main/java/datadog/trace/instrumentation/java/concurrent/structuredconcurrency/StructuredTaskScopeInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/src/main/java/datadog/trace/instrumentation/java/concurrent/structuredconcurrency/StructuredTaskScopeInstrumentation.java @@ -12,6 +12,7 @@ import datadog.trace.bootstrap.InstrumentationContext; import datadog.trace.bootstrap.instrumentation.java.concurrent.State; import java.util.Map; +import java.util.Set; import net.bytebuddy.asm.Advice; /** @@ -34,8 +35,8 @@ public String instrumentedType() { } @Override - public boolean isEnabled() { - return Platform.isJavaVersionAtLeast(21) && super.isEnabled(); + public boolean isEnabled(Set enabledSystems) { + return Platform.isJavaVersionAtLeast(21) && super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/src/main/java/datadog/trace/instrumentation/java/concurrent/virtualthread/TaskRunnerInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/src/main/java/datadog/trace/instrumentation/java/concurrent/virtualthread/TaskRunnerInstrumentation.java index b54146a4b2e..17fc4893fd4 100644 --- a/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/src/main/java/datadog/trace/instrumentation/java/concurrent/virtualthread/TaskRunnerInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/src/main/java/datadog/trace/instrumentation/java/concurrent/virtualthread/TaskRunnerInstrumentation.java @@ -16,6 +16,7 @@ import datadog.trace.bootstrap.instrumentation.api.AgentScope; import datadog.trace.bootstrap.instrumentation.java.concurrent.State; import java.util.Map; +import java.util.Set; import net.bytebuddy.asm.Advice; /** @@ -35,8 +36,8 @@ public String instrumentedType() { } @Override - public boolean isEnabled() { - return Platform.isJavaVersionAtLeast(19) && super.isEnabled(); + public boolean isEnabled(Set enabledSystems) { + return Platform.isJavaVersionAtLeast(19) && super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/TaskUnwrappingInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/TaskUnwrappingInstrumentation.java index 01e810a9875..71ee84f4b3b 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/TaskUnwrappingInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/TaskUnwrappingInstrumentation.java @@ -8,6 +8,7 @@ import datadog.trace.agent.tooling.bytebuddy.profiling.UnwrappingVisitor; import datadog.trace.api.config.ProfilingConfig; import datadog.trace.bootstrap.config.provider.ConfigProvider; +import java.util.Set; @AutoService(InstrumenterModule.class) public class TaskUnwrappingInstrumentation extends InstrumenterModule.Profiling @@ -17,8 +18,8 @@ public TaskUnwrappingInstrumentation() { } @Override - public boolean isEnabled() { - return super.isEnabled() + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && ConfigProvider.getInstance() .getBoolean( ProfilingConfig.PROFILING_QUEUEING_TIME_ENABLED, diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/forkjoin/JavaForkJoinWorkQueueInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/forkjoin/JavaForkJoinWorkQueueInstrumentation.java index 3be741c9908..31b056e81b2 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/forkjoin/JavaForkJoinWorkQueueInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/forkjoin/JavaForkJoinWorkQueueInstrumentation.java @@ -22,6 +22,7 @@ import datadog.trace.bootstrap.instrumentation.java.concurrent.QueueTimerHelper; import datadog.trace.bootstrap.instrumentation.java.concurrent.State; import java.util.Map; +import java.util.Set; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import net.bytebuddy.asm.Advice; @@ -43,8 +44,8 @@ public String instrumentedType() { } @Override - public boolean isEnabled() { - return super.isEnabled() + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && ConfigProvider.getInstance() .getBoolean( ProfilingConfig.PROFILING_QUEUEING_TIME_ENABLED, diff --git a/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/ByteBufferInstrumentation.java b/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/ByteBufferInstrumentation.java index 29b6a963987..94290244eab 100644 --- a/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/ByteBufferInstrumentation.java +++ b/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/ByteBufferInstrumentation.java @@ -13,6 +13,7 @@ import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.Platform; import datadog.trace.bootstrap.config.provider.ConfigProvider; +import java.util.Set; @AutoService(InstrumenterModule.class) public final class ByteBufferInstrumentation extends InstrumenterModule.Profiling @@ -23,9 +24,9 @@ public ByteBufferInstrumentation() { } @Override - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { return Platform.isJavaVersionAtLeast(11) - && super.isEnabled() + && super.isEnabled(enabledSystems) && ConfigProvider.getInstance() .getBoolean( PROFILING_DIRECT_ALLOCATION_ENABLED, PROFILING_DIRECT_ALLOCATION_ENABLED_DEFAULT) diff --git a/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/DirectByteBufferInstrumentation.java b/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/DirectByteBufferInstrumentation.java index 76da219c253..898c4c3716d 100644 --- a/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/DirectByteBufferInstrumentation.java +++ b/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/DirectByteBufferInstrumentation.java @@ -11,6 +11,7 @@ import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.Platform; import datadog.trace.bootstrap.config.provider.ConfigProvider; +import java.util.Set; @AutoService(InstrumenterModule.class) public final class DirectByteBufferInstrumentation extends InstrumenterModule.Profiling @@ -21,9 +22,9 @@ public DirectByteBufferInstrumentation() { } @Override - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { return Platform.isJavaVersionAtLeast(11) - && super.isEnabled() + && super.isEnabled(enabledSystems) && ConfigProvider.getInstance() .getBoolean( PROFILING_DIRECT_ALLOCATION_ENABLED, PROFILING_DIRECT_ALLOCATION_ENABLED_DEFAULT) diff --git a/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/FileChannelImplInstrumentation.java b/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/FileChannelImplInstrumentation.java index fc5b2506a79..aac0a03d1bb 100644 --- a/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/FileChannelImplInstrumentation.java +++ b/dd-java-agent/instrumentation/java-directbytebuffer/src/main/java/datadog/trace/instrumentation/directbytebuffer/FileChannelImplInstrumentation.java @@ -12,6 +12,7 @@ import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.Platform; import datadog.trace.bootstrap.config.provider.ConfigProvider; +import java.util.Set; @AutoService(InstrumenterModule.class) public final class FileChannelImplInstrumentation extends InstrumenterModule.Profiling @@ -22,9 +23,9 @@ public FileChannelImplInstrumentation() { } @Override - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { return Platform.isJavaVersionAtLeast(11) - && super.isEnabled() + && super.isEnabled(enabledSystems) && ConfigProvider.getInstance() .getBoolean( PROFILING_DIRECT_ALLOCATION_ENABLED, PROFILING_DIRECT_ALLOCATION_ENABLED_DEFAULT) diff --git a/dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpClientInstrumentation.java b/dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpClientInstrumentation.java index b8c8b393afd..29918c02911 100644 --- a/dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpClientInstrumentation.java @@ -14,6 +14,7 @@ import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.Platform; +import java.util.Set; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -33,8 +34,8 @@ public ElementMatcher.Junction classLoaderMatcher() { } @Override - public boolean isEnabled() { - return Platform.isJavaVersionAtLeast(11) && super.isEnabled(); + public boolean isEnabled(Set enabledSystems) { + return Platform.isJavaVersionAtLeast(11) && super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpHeadersInstrumentation.java b/dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpHeadersInstrumentation.java index 0c19a1669b8..b86d3d8f968 100644 --- a/dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpHeadersInstrumentation.java +++ b/dd-java-agent/instrumentation/java-http-client/src/main/java/datadog/trace/instrumentation/httpclient/HttpHeadersInstrumentation.java @@ -10,6 +10,7 @@ import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.Platform; +import java.util.Set; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -29,8 +30,8 @@ public ElementMatcher.Junction classLoaderMatcher() { } @Override - public boolean isEnabled() { - return Platform.isJavaVersionAtLeast(11) && super.isEnabled(); + public boolean isEnabled(Set enabledSystems) { + return Platform.isJavaVersionAtLeast(11) && super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/management/CustomMBeanBuilderInstrumentation.java b/dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/management/CustomMBeanBuilderInstrumentation.java index df5dbbfaa8b..6385b8544cf 100644 --- a/dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/management/CustomMBeanBuilderInstrumentation.java +++ b/dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/management/CustomMBeanBuilderInstrumentation.java @@ -8,6 +8,7 @@ import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.bootstrap.instrumentation.jmx.MBeanServerRegistry; +import java.util.Set; import javax.management.MBeanServer; import net.bytebuddy.asm.Advice; @@ -24,8 +25,8 @@ public CustomMBeanBuilderInstrumentation() { } @Override - public boolean isEnabled() { - return super.isEnabled() && customBuilder != null && !customBuilder.isEmpty(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && customBuilder != null && !customBuilder.isEmpty(); } @Override diff --git a/dd-java-agent/instrumentation/jetty-9/src/main/java/datadog/trace/instrumentation/jetty10/JettyServerInstrumentation.java b/dd-java-agent/instrumentation/jetty-9/src/main/java/datadog/trace/instrumentation/jetty10/JettyServerInstrumentation.java index 874a618c0db..ff458468b50 100644 --- a/dd-java-agent/instrumentation/jetty-9/src/main/java/datadog/trace/instrumentation/jetty10/JettyServerInstrumentation.java +++ b/dd-java-agent/instrumentation/jetty-9/src/main/java/datadog/trace/instrumentation/jetty10/JettyServerInstrumentation.java @@ -69,9 +69,9 @@ public String[] helperClassNames() { } @Override - public boolean isApplicable(Set enabledSystems) { + public boolean isEnabled(Set enabledSystems) { this.appSecNotFullyDisabled = enabledSystems.contains(TargetSystem.APPSEC); - return super.isApplicable(enabledSystems); + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/jetty-9/src/main/java/datadog/trace/instrumentation/jetty9/JettyServerInstrumentation.java b/dd-java-agent/instrumentation/jetty-9/src/main/java/datadog/trace/instrumentation/jetty9/JettyServerInstrumentation.java index 667eadaa201..00069041aa5 100644 --- a/dd-java-agent/instrumentation/jetty-9/src/main/java/datadog/trace/instrumentation/jetty9/JettyServerInstrumentation.java +++ b/dd-java-agent/instrumentation/jetty-9/src/main/java/datadog/trace/instrumentation/jetty9/JettyServerInstrumentation.java @@ -82,9 +82,9 @@ public String[] helperClassNames() { } @Override - public boolean isApplicable(Set enabledSystems) { + public boolean isEnabled(Set enabledSystems) { this.appSecNotFullyDisabled = enabledSystems.contains(TargetSystem.APPSEC); - return super.isApplicable(enabledSystems); + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/junit-4.10/cucumber-junit-4/src/main/java/datadog/trace/instrumentation/junit4/JUnit4CucumberSkipInstrumentation.java b/dd-java-agent/instrumentation/junit-4.10/cucumber-junit-4/src/main/java/datadog/trace/instrumentation/junit4/JUnit4CucumberSkipInstrumentation.java index be878a1c397..ee2b63fff84 100644 --- a/dd-java-agent/instrumentation/junit-4.10/cucumber-junit-4/src/main/java/datadog/trace/instrumentation/junit4/JUnit4CucumberSkipInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-4.10/cucumber-junit-4/src/main/java/datadog/trace/instrumentation/junit4/JUnit4CucumberSkipInstrumentation.java @@ -34,8 +34,8 @@ public JUnit4CucumberSkipInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && (Config.get().isCiVisibilityTestSkippingEnabled() || Config.get().isCiVisibilityTestManagementEnabled()); } diff --git a/dd-java-agent/instrumentation/junit-4.10/cucumber-junit-4/src/main/java/datadog/trace/instrumentation/junit4/execution/Cucumber4ExecutionInstrumentation.java b/dd-java-agent/instrumentation/junit-4.10/cucumber-junit-4/src/main/java/datadog/trace/instrumentation/junit4/execution/Cucumber4ExecutionInstrumentation.java index 3cec47ee1af..0cbba66c342 100644 --- a/dd-java-agent/instrumentation/junit-4.10/cucumber-junit-4/src/main/java/datadog/trace/instrumentation/junit4/execution/Cucumber4ExecutionInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-4.10/cucumber-junit-4/src/main/java/datadog/trace/instrumentation/junit4/execution/Cucumber4ExecutionInstrumentation.java @@ -40,9 +40,8 @@ public Cucumber4ExecutionInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) - && Config.get().isCiVisibilityExecutionPoliciesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityExecutionPoliciesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/junit-4.10/junit-4.13/src/main/java/datadog/trace/instrumentation/junit4/order/JUnit4TestOrdererInstrumentation.java b/dd-java-agent/instrumentation/junit-4.10/junit-4.13/src/main/java/datadog/trace/instrumentation/junit4/order/JUnit4TestOrdererInstrumentation.java index e871fd9bb92..b8310568171 100644 --- a/dd-java-agent/instrumentation/junit-4.10/junit-4.13/src/main/java/datadog/trace/instrumentation/junit4/order/JUnit4TestOrdererInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-4.10/junit-4.13/src/main/java/datadog/trace/instrumentation/junit4/order/JUnit4TestOrdererInstrumentation.java @@ -32,8 +32,8 @@ public JUnit4TestOrdererInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; } @Override diff --git a/dd-java-agent/instrumentation/junit-4.10/junit-4.13/src/main/java/datadog/trace/instrumentation/junit4/order/JUnit4TestSorterInstrumentation.java b/dd-java-agent/instrumentation/junit-4.10/junit-4.13/src/main/java/datadog/trace/instrumentation/junit4/order/JUnit4TestSorterInstrumentation.java index d0d52f689eb..a1a9682e368 100644 --- a/dd-java-agent/instrumentation/junit-4.10/junit-4.13/src/main/java/datadog/trace/instrumentation/junit4/order/JUnit4TestSorterInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-4.10/junit-4.13/src/main/java/datadog/trace/instrumentation/junit4/order/JUnit4TestSorterInstrumentation.java @@ -34,8 +34,8 @@ public JUnit4TestSorterInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; } @Override diff --git a/dd-java-agent/instrumentation/junit-4.10/munit-junit-4/src/main/java/datadog/trace/instrumentation/junit4/execution/MUnitExecutionInstrumentation.java b/dd-java-agent/instrumentation/junit-4.10/munit-junit-4/src/main/java/datadog/trace/instrumentation/junit4/execution/MUnitExecutionInstrumentation.java index a722e20b3cb..e55749cafa9 100644 --- a/dd-java-agent/instrumentation/junit-4.10/munit-junit-4/src/main/java/datadog/trace/instrumentation/junit4/execution/MUnitExecutionInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-4.10/munit-junit-4/src/main/java/datadog/trace/instrumentation/junit4/execution/MUnitExecutionInstrumentation.java @@ -40,9 +40,8 @@ public MUnitExecutionInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) - && Config.get().isCiVisibilityExecutionPoliciesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityExecutionPoliciesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4SkipInstrumentation.java b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4SkipInstrumentation.java index fce0e9f2774..c4a65267176 100644 --- a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4SkipInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4SkipInstrumentation.java @@ -36,8 +36,8 @@ public JUnit4SkipInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && (Config.get().isCiVisibilityTestSkippingEnabled() || Config.get().isCiVisibilityTestManagementEnabled()); } diff --git a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/execution/JUnit4ExecutionInstrumentation.java b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/execution/JUnit4ExecutionInstrumentation.java index 2f356a2d7b9..3928830a7ed 100644 --- a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/execution/JUnit4ExecutionInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/execution/JUnit4ExecutionInstrumentation.java @@ -43,9 +43,8 @@ public JUnit4ExecutionInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) - && Config.get().isCiVisibilityExecutionPoliciesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityExecutionPoliciesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5CucumberSkipInstrumentation.java b/dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5CucumberSkipInstrumentation.java index c4c5a5b8f2e..cb1dc78c6a5 100644 --- a/dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5CucumberSkipInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5CucumberSkipInstrumentation.java @@ -39,8 +39,8 @@ public ElementMatcher.Junction classLoaderMatcher() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && (Config.get().isCiVisibilityTestSkippingEnabled() || Config.get().isCiVisibilityTestManagementEnabled()); } diff --git a/dd-java-agent/instrumentation/junit-5.3/junit-5.8/src/main/java/datadog/trace/instrumentation/junit5/order/JUnit5TestOrderInstrumentation.java b/dd-java-agent/instrumentation/junit-5.3/junit-5.8/src/main/java/datadog/trace/instrumentation/junit5/order/JUnit5TestOrderInstrumentation.java index 2e5686f5fc7..e88a91f7837 100644 --- a/dd-java-agent/instrumentation/junit-5.3/junit-5.8/src/main/java/datadog/trace/instrumentation/junit5/order/JUnit5TestOrderInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-5.3/junit-5.8/src/main/java/datadog/trace/instrumentation/junit5/order/JUnit5TestOrderInstrumentation.java @@ -35,8 +35,8 @@ public JUnit5TestOrderInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; } @Override diff --git a/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SpockSkipInstrumentation.java b/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SpockSkipInstrumentation.java index 465b85ff991..c8afeaa488c 100644 --- a/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SpockSkipInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SpockSkipInstrumentation.java @@ -39,8 +39,8 @@ public ElementMatcher.Junction classLoaderMatcher() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && (Config.get().isCiVisibilityTestSkippingEnabled() || Config.get().isCiVisibilityTestManagementEnabled()); } diff --git a/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5SpockParameterizedExecutionInstrumentation.java b/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5SpockParameterizedExecutionInstrumentation.java index a7642ad3259..2719265441e 100644 --- a/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5SpockParameterizedExecutionInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5SpockParameterizedExecutionInstrumentation.java @@ -33,9 +33,8 @@ public JUnit5SpockParameterizedExecutionInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) - && Config.get().isCiVisibilityExecutionPoliciesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityExecutionPoliciesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SkipInstrumentation.java b/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SkipInstrumentation.java index 35218d456a9..0c5c087f47f 100644 --- a/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SkipInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/JUnit5SkipInstrumentation.java @@ -35,8 +35,8 @@ public JUnit5SkipInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && (Config.get().isCiVisibilityTestSkippingEnabled() || Config.get().isCiVisibilityTestManagementEnabled()); } diff --git a/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5ExecutionInstrumentation.java b/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5ExecutionInstrumentation.java index 3f22d470a9c..8316ae90647 100644 --- a/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5ExecutionInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5ExecutionInstrumentation.java @@ -46,9 +46,8 @@ public JUnit5ExecutionInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) - && Config.get().isCiVisibilityExecutionPoliciesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityExecutionPoliciesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5NodeTestTaskContextInstrumentation.java b/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5NodeTestTaskContextInstrumentation.java index 73b0e41fe51..1b4647fad97 100644 --- a/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5NodeTestTaskContextInstrumentation.java +++ b/dd-java-agent/instrumentation/junit-5.3/src/main/java/datadog/trace/instrumentation/junit5/execution/JUnit5NodeTestTaskContextInstrumentation.java @@ -25,9 +25,8 @@ public JUnit5NodeTestTaskContextInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) - && Config.get().isCiVisibilityExecutionPoliciesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityExecutionPoliciesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/kafka-clients-3.8/src/main/java/datadog/trace/instrumentation/kafka_clients38/MessageListenerInstrumentation.java b/dd-java-agent/instrumentation/kafka-clients-3.8/src/main/java/datadog/trace/instrumentation/kafka_clients38/MessageListenerInstrumentation.java index da17835a1a2..b0cf181c421 100644 --- a/dd-java-agent/instrumentation/kafka-clients-3.8/src/main/java/datadog/trace/instrumentation/kafka_clients38/MessageListenerInstrumentation.java +++ b/dd-java-agent/instrumentation/kafka-clients-3.8/src/main/java/datadog/trace/instrumentation/kafka_clients38/MessageListenerInstrumentation.java @@ -9,6 +9,7 @@ import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.InstrumenterConfig; +import java.util.Set; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -21,8 +22,8 @@ public MessageListenerInstrumentation() { } @Override - public boolean isEnabled() { - return InstrumenterConfig.get().isCodeOriginEnabled() && super.isEnabled(); + public boolean isEnabled(Set enabledSystems) { + return InstrumenterConfig.get().isCodeOriginEnabled() && super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/karate/src/main/java/datadog/trace/instrumentation/karate/KarateExecutionInstrumentation.java b/dd-java-agent/instrumentation/karate/src/main/java/datadog/trace/instrumentation/karate/KarateExecutionInstrumentation.java index 83656a22f8c..a7001453fad 100644 --- a/dd-java-agent/instrumentation/karate/src/main/java/datadog/trace/instrumentation/karate/KarateExecutionInstrumentation.java +++ b/dd-java-agent/instrumentation/karate/src/main/java/datadog/trace/instrumentation/karate/KarateExecutionInstrumentation.java @@ -32,9 +32,8 @@ public KarateExecutionInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) - && Config.get().isCiVisibilityExecutionPoliciesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityExecutionPoliciesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/log4j2/logs-intake/src/main/java/datadog/trace/instrumentation/log4j2/LoggerConfigInstrumentation.java b/dd-java-agent/instrumentation/log4j2/logs-intake/src/main/java/datadog/trace/instrumentation/log4j2/LoggerConfigInstrumentation.java index 87e89808111..422086119a8 100644 --- a/dd-java-agent/instrumentation/log4j2/logs-intake/src/main/java/datadog/trace/instrumentation/log4j2/LoggerConfigInstrumentation.java +++ b/dd-java-agent/instrumentation/log4j2/logs-intake/src/main/java/datadog/trace/instrumentation/log4j2/LoggerConfigInstrumentation.java @@ -22,8 +22,8 @@ public LoggerConfigInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().isAgentlessLogSubmissionEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isAgentlessLogSubmissionEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenInstrumentation.java b/dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenInstrumentation.java index 47965ade30a..b9a2a986c25 100644 --- a/dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenInstrumentation.java +++ b/dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenInstrumentation.java @@ -45,8 +45,8 @@ public String[] helperClassNames() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityBuildInstrumentationEnabled(); } diff --git a/dd-java-agent/instrumentation/maven-surefire/src/main/java/datadog/trace/instrumentation/maven/surefire/junit4/JUnit4ClassOrderInstrumentation.java b/dd-java-agent/instrumentation/maven-surefire/src/main/java/datadog/trace/instrumentation/maven/surefire/junit4/JUnit4ClassOrderInstrumentation.java index 23445da5bda..a90b2ace710 100644 --- a/dd-java-agent/instrumentation/maven-surefire/src/main/java/datadog/trace/instrumentation/maven/surefire/junit4/JUnit4ClassOrderInstrumentation.java +++ b/dd-java-agent/instrumentation/maven-surefire/src/main/java/datadog/trace/instrumentation/maven/surefire/junit4/JUnit4ClassOrderInstrumentation.java @@ -28,8 +28,8 @@ public JUnit4ClassOrderInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; } @Override diff --git a/dd-java-agent/instrumentation/mule-4/src/main/java/datadog/trace/instrumentation/mule4/JpmsMuleInstrumentation.java b/dd-java-agent/instrumentation/mule-4/src/main/java/datadog/trace/instrumentation/mule4/JpmsMuleInstrumentation.java index c915a1a393d..3d861d10058 100644 --- a/dd-java-agent/instrumentation/mule-4/src/main/java/datadog/trace/instrumentation/mule4/JpmsMuleInstrumentation.java +++ b/dd-java-agent/instrumentation/mule-4/src/main/java/datadog/trace/instrumentation/mule4/JpmsMuleInstrumentation.java @@ -7,6 +7,7 @@ import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.agent.tooling.muzzle.Reference; import datadog.trace.api.Platform; +import java.util.Set; @AutoService(InstrumenterModule.class) public class JpmsMuleInstrumentation extends InstrumenterModule.Tracing @@ -16,8 +17,8 @@ public JpmsMuleInstrumentation() { } @Override - public boolean isEnabled() { - return super.isEnabled() && Platform.isJavaVersionAtLeast(9); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Platform.isJavaVersionAtLeast(9); } @Override diff --git a/dd-java-agent/instrumentation/netty-concurrent-4/src/main/java/datadog/trace/instrumentation/netty40/concurrent/SingleThreadEventExecutorInstrumentation.java b/dd-java-agent/instrumentation/netty-concurrent-4/src/main/java/datadog/trace/instrumentation/netty40/concurrent/SingleThreadEventExecutorInstrumentation.java index a9779e28b87..b592a9c45c6 100644 --- a/dd-java-agent/instrumentation/netty-concurrent-4/src/main/java/datadog/trace/instrumentation/netty40/concurrent/SingleThreadEventExecutorInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-concurrent-4/src/main/java/datadog/trace/instrumentation/netty40/concurrent/SingleThreadEventExecutorInstrumentation.java @@ -22,6 +22,7 @@ import java.util.Collections; import java.util.Map; import java.util.Queue; +import java.util.Set; import java.util.concurrent.RunnableFuture; import net.bytebuddy.asm.Advice; @@ -33,8 +34,8 @@ public SingleThreadEventExecutorInstrumentation() { } @Override - public boolean isEnabled() { - return super.isEnabled() + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && ConfigProvider.getInstance() .getBoolean( ProfilingConfig.PROFILING_QUEUEING_TIME_ENABLED, diff --git a/dd-java-agent/instrumentation/scala-promise/scala-promise-2.10/src/main/java/datadog/trace/instrumentation/scala210/concurrent/PromiseObjectInstrumentation.java b/dd-java-agent/instrumentation/scala-promise/scala-promise-2.10/src/main/java/datadog/trace/instrumentation/scala210/concurrent/PromiseObjectInstrumentation.java index 521cf157526..8e96e76f0a9 100644 --- a/dd-java-agent/instrumentation/scala-promise/scala-promise-2.10/src/main/java/datadog/trace/instrumentation/scala210/concurrent/PromiseObjectInstrumentation.java +++ b/dd-java-agent/instrumentation/scala-promise/scala-promise-2.10/src/main/java/datadog/trace/instrumentation/scala210/concurrent/PromiseObjectInstrumentation.java @@ -14,6 +14,7 @@ import datadog.trace.instrumentation.scala.PromiseHelper; import java.util.Collections; import java.util.Map; +import java.util.Set; import net.bytebuddy.asm.Advice; import scala.concurrent.impl.CallbackRunnable; import scala.util.Try; @@ -55,10 +56,10 @@ public String[] helperClassNames() { } @Override - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { // Only enable this if integrations have been enabled and the extra "integration" // scala_promise_completion_priority has been enabled specifically - return super.isEnabled() + return super.isEnabled(enabledSystems) && InstrumenterConfig.get() .isIntegrationEnabled( Collections.singletonList("scala_promise_completion_priority"), false); diff --git a/dd-java-agent/instrumentation/scala-promise/scala-promise-2.13/src/main/java/datadog/trace/instrumentation/scala213/concurrent/DefaultPromiseInstrumentation.java b/dd-java-agent/instrumentation/scala-promise/scala-promise-2.13/src/main/java/datadog/trace/instrumentation/scala213/concurrent/DefaultPromiseInstrumentation.java index 710c60716b0..6cf6261fbd1 100644 --- a/dd-java-agent/instrumentation/scala-promise/scala-promise-2.13/src/main/java/datadog/trace/instrumentation/scala213/concurrent/DefaultPromiseInstrumentation.java +++ b/dd-java-agent/instrumentation/scala-promise/scala-promise-2.13/src/main/java/datadog/trace/instrumentation/scala213/concurrent/DefaultPromiseInstrumentation.java @@ -15,6 +15,7 @@ import datadog.trace.instrumentation.scala.PromiseHelper; import java.util.Collections; import java.util.Map; +import java.util.Set; import net.bytebuddy.asm.Advice; import scala.util.Try; @@ -54,10 +55,10 @@ public String[] helperClassNames() { } @Override - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { // Only enable this if integrations have been enabled and the extra "integration" // scala_promise_completion_priority has been enabled specifically - return super.isEnabled() + return super.isEnabled(enabledSystems) && InstrumenterConfig.get() .isIntegrationEnabled( Collections.singletonList("scala_promise_completion_priority"), false); diff --git a/dd-java-agent/instrumentation/scala-promise/scala-promise-2.13/src/main/java/datadog/trace/instrumentation/scala213/concurrent/PromiseObjectInstrumentation.java b/dd-java-agent/instrumentation/scala-promise/scala-promise-2.13/src/main/java/datadog/trace/instrumentation/scala213/concurrent/PromiseObjectInstrumentation.java index cb6cc15d8a5..2040a297ac1 100644 --- a/dd-java-agent/instrumentation/scala-promise/scala-promise-2.13/src/main/java/datadog/trace/instrumentation/scala213/concurrent/PromiseObjectInstrumentation.java +++ b/dd-java-agent/instrumentation/scala-promise/scala-promise-2.13/src/main/java/datadog/trace/instrumentation/scala213/concurrent/PromiseObjectInstrumentation.java @@ -15,6 +15,7 @@ import datadog.trace.instrumentation.scala.PromiseHelper; import java.util.Collections; import java.util.Map; +import java.util.Set; import net.bytebuddy.asm.Advice; import scala.util.Try; @@ -55,10 +56,10 @@ public String[] helperClassNames() { } @Override - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { // Only enable this if integrations have been enabled and the extra "integration" // scala_promise_completion_priority has been enabled specifically - return super.isEnabled() + return super.isEnabled(enabledSystems) && InstrumenterConfig.get() .isIntegrationEnabled( Collections.singletonList("scala_promise_completion_priority"), false); diff --git a/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestForkInstrumentation.java b/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestForkInstrumentation.java index aabb967856c..a455a8c7273 100644 --- a/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestForkInstrumentation.java +++ b/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestForkInstrumentation.java @@ -22,8 +22,8 @@ public ScalatestForkInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityScalatestForkMonitorEnabled(); } diff --git a/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestInstrumentation.java b/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestInstrumentation.java index 11919c9a080..02cf5c30335 100644 --- a/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestInstrumentation.java +++ b/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestInstrumentation.java @@ -22,8 +22,8 @@ public ScalatestInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestSkipInstrumentation.java b/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestSkipInstrumentation.java index dfd6763c5df..eee6fc74d66 100644 --- a/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestSkipInstrumentation.java +++ b/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/ScalatestSkipInstrumentation.java @@ -28,8 +28,8 @@ public ScalatestSkipInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/execution/ScalatestExecutionInstrumentation.java b/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/execution/ScalatestExecutionInstrumentation.java index 187caa69b2d..741bcff3a39 100644 --- a/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/execution/ScalatestExecutionInstrumentation.java +++ b/dd-java-agent/instrumentation/scalatest/src/main/java/datadog/trace/instrumentation/scalatest/execution/ScalatestExecutionInstrumentation.java @@ -36,9 +36,8 @@ public ScalatestExecutionInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) - && Config.get().isCiVisibilityExecutionPoliciesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityExecutionPoliciesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/span-origin/src/main/java/datadog/trace/instrumentation/codeorigin/CodeOriginInstrumentation.java b/dd-java-agent/instrumentation/span-origin/src/main/java/datadog/trace/instrumentation/codeorigin/CodeOriginInstrumentation.java index bad0bc6ebd9..6ce0e0f1a08 100644 --- a/dd-java-agent/instrumentation/span-origin/src/main/java/datadog/trace/instrumentation/codeorigin/CodeOriginInstrumentation.java +++ b/dd-java-agent/instrumentation/span-origin/src/main/java/datadog/trace/instrumentation/codeorigin/CodeOriginInstrumentation.java @@ -24,8 +24,8 @@ public CodeOriginInstrumentation(String instrumentationName, String... additiona } @Override - public boolean isEnabled() { - return InstrumenterConfig.get().isCodeOriginEnabled() && super.isEnabled(); + public boolean isEnabled(Set enabledSystems) { + return InstrumenterConfig.get().isCodeOriginEnabled() && super.isEnabled(enabledSystems); } protected abstract Set getAnnotations(); diff --git a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/AppSecDispatcherServletInstrumentation.java b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/AppSecDispatcherServletInstrumentation.java index 2283932dab2..5a95ef7f45c 100644 --- a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/AppSecDispatcherServletInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/AppSecDispatcherServletInstrumentation.java @@ -14,6 +14,7 @@ import datadog.trace.api.Config; import datadog.trace.api.telemetry.EndpointCollector; import java.util.Map; +import java.util.Set; import net.bytebuddy.asm.Advice; import net.bytebuddy.matcher.ElementMatcher; import org.springframework.context.ApplicationContext; @@ -63,8 +64,8 @@ public void methodAdvice(MethodTransformer transformer) { } @Override - public boolean isEnabled() { - return super.isEnabled() && Config.get().isApiSecurityEndpointCollectionEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isApiSecurityEndpointCollectionEnabled(); } public static class AppSecHandlerMappingAdvice { diff --git a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/TemplateAndMatrixVariablesInstrumentation.java b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/TemplateAndMatrixVariablesInstrumentation.java index 1b67cabc27f..848c3ed3793 100644 --- a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/TemplateAndMatrixVariablesInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/TemplateAndMatrixVariablesInstrumentation.java @@ -45,12 +45,16 @@ public TemplateAndMatrixVariablesInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { + public TargetSystem targetSystem() { + return TargetSystem.SECURITY; + } + + @Override + public boolean isEnabled(Set enabledSystems) { if (enabledSystems.contains(TargetSystem.IAST)) { postProcessorFactory = IastPostProcessorFactory.INSTANCE; - return true; } - return enabledSystems.contains(TargetSystem.APPSEC); + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/TemplateVariablesUrlHandlerInstrumentation.java b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/TemplateVariablesUrlHandlerInstrumentation.java index 4a1df54f150..a07b02fea54 100644 --- a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/TemplateVariablesUrlHandlerInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/TemplateVariablesUrlHandlerInstrumentation.java @@ -44,12 +44,16 @@ public TemplateVariablesUrlHandlerInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { + public TargetSystem targetSystem() { + return TargetSystem.SECURITY; + } + + @Override + public boolean isEnabled(Set enabledSystems) { if (enabledSystems.contains(TargetSystem.IAST)) { postProcessorFactory = IastPostProcessorFactory.INSTANCE; - return true; } - return enabledSystems.contains(TargetSystem.APPSEC); + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/spring-webmvc-5.3/src/main/java/datadog/trace/instrumentation/springweb/AppSecDispatcherServletWithPathPatternsInstrumentation.java b/dd-java-agent/instrumentation/spring-webmvc-5.3/src/main/java/datadog/trace/instrumentation/springweb/AppSecDispatcherServletWithPathPatternsInstrumentation.java index 673ba9e8521..ba4b76136c2 100644 --- a/dd-java-agent/instrumentation/spring-webmvc-5.3/src/main/java/datadog/trace/instrumentation/springweb/AppSecDispatcherServletWithPathPatternsInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webmvc-5.3/src/main/java/datadog/trace/instrumentation/springweb/AppSecDispatcherServletWithPathPatternsInstrumentation.java @@ -13,6 +13,7 @@ import datadog.trace.api.Config; import datadog.trace.api.telemetry.EndpointCollector; import java.util.Map; +import java.util.Set; import net.bytebuddy.asm.Advice; import net.bytebuddy.matcher.ElementMatcher; import org.springframework.context.ApplicationContext; @@ -58,8 +59,8 @@ public void methodAdvice(MethodTransformer transformer) { } @Override - public boolean isEnabled() { - return super.isEnabled() && Config.get().isApiSecurityEndpointCollectionEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isApiSecurityEndpointCollectionEnabled(); } public static class AppSecHandlerMappingAdvice { diff --git a/dd-java-agent/instrumentation/spring-webmvc-6.0/src/main/java/datadog/trace/instrumentation/springweb6/TemplateAndMatrixVariablesInstrumentation.java b/dd-java-agent/instrumentation/spring-webmvc-6.0/src/main/java/datadog/trace/instrumentation/springweb6/TemplateAndMatrixVariablesInstrumentation.java index 912c9d78a4a..78e3187be75 100644 --- a/dd-java-agent/instrumentation/spring-webmvc-6.0/src/main/java/datadog/trace/instrumentation/springweb6/TemplateAndMatrixVariablesInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webmvc-6.0/src/main/java/datadog/trace/instrumentation/springweb6/TemplateAndMatrixVariablesInstrumentation.java @@ -27,12 +27,16 @@ public TemplateAndMatrixVariablesInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { + public TargetSystem targetSystem() { + return TargetSystem.SECURITY; + } + + @Override + public boolean isEnabled(Set enabledSystems) { if (enabledSystems.contains(TargetSystem.IAST)) { postProcessorFactory = IastPostProcessorFactory.INSTANCE; - return true; } - return enabledSystems.contains(TargetSystem.APPSEC); + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/spring-webmvc-6.0/src/main/java/datadog/trace/instrumentation/springweb6/TemplateVariablesUrlHandlerInstrumentation.java b/dd-java-agent/instrumentation/spring-webmvc-6.0/src/main/java/datadog/trace/instrumentation/springweb6/TemplateVariablesUrlHandlerInstrumentation.java index 6d99f64cf09..5e45cc44e05 100644 --- a/dd-java-agent/instrumentation/spring-webmvc-6.0/src/main/java/datadog/trace/instrumentation/springweb6/TemplateVariablesUrlHandlerInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webmvc-6.0/src/main/java/datadog/trace/instrumentation/springweb6/TemplateVariablesUrlHandlerInstrumentation.java @@ -27,12 +27,16 @@ public TemplateVariablesUrlHandlerInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { + public TargetSystem targetSystem() { + return TargetSystem.SECURITY; + } + + @Override + public boolean isEnabled(Set enabledSystems) { if (enabledSystems.contains(TargetSystem.IAST)) { postProcessorFactory = IastPostProcessorFactory.INSTANCE; - return true; } - return enabledSystems.contains(TargetSystem.APPSEC); + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/sslsocket/src/main/java/datadog/trace/instrumentation/sslsocket/SocketConnectInstrumentation.java b/dd-java-agent/instrumentation/sslsocket/src/main/java/datadog/trace/instrumentation/sslsocket/SocketConnectInstrumentation.java index e3764dde93e..7c81429cd71 100644 --- a/dd-java-agent/instrumentation/sslsocket/src/main/java/datadog/trace/instrumentation/sslsocket/SocketConnectInstrumentation.java +++ b/dd-java-agent/instrumentation/sslsocket/src/main/java/datadog/trace/instrumentation/sslsocket/SocketConnectInstrumentation.java @@ -13,6 +13,7 @@ import datadog.trace.bootstrap.config.provider.ConfigProvider; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; import datadog.trace.bootstrap.instrumentation.api.AgentTracer; +import java.util.Set; import net.bytebuddy.asm.Advice; @AutoService(InstrumenterModule.class) @@ -29,9 +30,9 @@ public String instrumentedType() { } @Override - public boolean isEnabled() { + public boolean isEnabled(Set enabledSystems) { // only needed if wallclock profiling is enabled, which requires tracing - return super.isEnabled() + return super.isEnabled(enabledSystems) && ConfigProvider.getInstance() .getBoolean( PROFILING_DATADOG_PROFILER_WALL_ENABLED, diff --git a/dd-java-agent/instrumentation/testng/src/main/java/datadog/trace/instrumentation/testng/TestNGSkipInstrumentation.java b/dd-java-agent/instrumentation/testng/src/main/java/datadog/trace/instrumentation/testng/TestNGSkipInstrumentation.java index 3302c986c55..ef6bf234e64 100644 --- a/dd-java-agent/instrumentation/testng/src/main/java/datadog/trace/instrumentation/testng/TestNGSkipInstrumentation.java +++ b/dd-java-agent/instrumentation/testng/src/main/java/datadog/trace/instrumentation/testng/TestNGSkipInstrumentation.java @@ -26,8 +26,8 @@ public TestNGSkipInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && (Config.get().isCiVisibilityTestSkippingEnabled() || Config.get().isCiVisibilityTestManagementEnabled()); } diff --git a/dd-java-agent/instrumentation/testng/testng-7/src/main/java/datadog/trace/instrumentation/testng7/TestNGExecutionInstrumentation.java b/dd-java-agent/instrumentation/testng/testng-7/src/main/java/datadog/trace/instrumentation/testng7/TestNGExecutionInstrumentation.java index 7a30dd10405..e62530fad1d 100644 --- a/dd-java-agent/instrumentation/testng/testng-7/src/main/java/datadog/trace/instrumentation/testng7/TestNGExecutionInstrumentation.java +++ b/dd-java-agent/instrumentation/testng/testng-7/src/main/java/datadog/trace/instrumentation/testng7/TestNGExecutionInstrumentation.java @@ -32,9 +32,8 @@ public TestNGExecutionInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) - && Config.get().isCiVisibilityExecutionPoliciesEnabled(); + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().isCiVisibilityExecutionPoliciesEnabled(); } @Override diff --git a/dd-java-agent/instrumentation/testng/testng-7/src/main/java/datadog/trace/instrumentation/testng7/order/TestNGOrderInstrumentation.java b/dd-java-agent/instrumentation/testng/testng-7/src/main/java/datadog/trace/instrumentation/testng7/order/TestNGOrderInstrumentation.java index e081ebcfdf0..c158c322b8f 100644 --- a/dd-java-agent/instrumentation/testng/testng-7/src/main/java/datadog/trace/instrumentation/testng7/order/TestNGOrderInstrumentation.java +++ b/dd-java-agent/instrumentation/testng/testng-7/src/main/java/datadog/trace/instrumentation/testng7/order/TestNGOrderInstrumentation.java @@ -27,8 +27,8 @@ public TestNGOrderInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return super.isApplicable(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && Config.get().getCiVisibilityTestOrder() != null; } @Override diff --git a/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceConfigInstrumentation.java b/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceConfigInstrumentation.java index 178ae8e5b2b..38b615b670a 100644 --- a/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceConfigInstrumentation.java +++ b/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceConfigInstrumentation.java @@ -46,8 +46,8 @@ public TraceConfigInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return enabledSystems.contains(TargetSystem.TRACING); + public TargetSystem targetSystem() { + return TargetSystem.TRACING; } @Override diff --git a/dd-java-agent/instrumentation/vertx-web-3.4/src/main/java/datadog/trace/instrumentation/vertx_3_4/server/RouteImplInstrumentation.java b/dd-java-agent/instrumentation/vertx-web-3.4/src/main/java/datadog/trace/instrumentation/vertx_3_4/server/RouteImplInstrumentation.java index 4de2a5d6995..7877a32dd35 100644 --- a/dd-java-agent/instrumentation/vertx-web-3.4/src/main/java/datadog/trace/instrumentation/vertx_3_4/server/RouteImplInstrumentation.java +++ b/dd-java-agent/instrumentation/vertx-web-3.4/src/main/java/datadog/trace/instrumentation/vertx_3_4/server/RouteImplInstrumentation.java @@ -32,12 +32,16 @@ public Reference[] additionalMuzzleReferences() { } @Override - public boolean isApplicable(Set enabledSystems) { + public TargetSystem targetSystem() { + return TargetSystem.SECURITY; + } + + @Override + public boolean isEnabled(Set enabledSystems) { if (enabledSystems.contains(TargetSystem.IAST)) { postProcessorFactory = IastPostProcessorFactory.INSTANCE; - return true; } - return enabledSystems.contains(TargetSystem.APPSEC); + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/vertx-web-4.0/src/main/java/datadog/trace/instrumentation/vertx_4_0/server/RouteImplInstrumentation.java b/dd-java-agent/instrumentation/vertx-web-4.0/src/main/java/datadog/trace/instrumentation/vertx_4_0/server/RouteImplInstrumentation.java index a2041f43264..5b3074317a6 100644 --- a/dd-java-agent/instrumentation/vertx-web-4.0/src/main/java/datadog/trace/instrumentation/vertx_4_0/server/RouteImplInstrumentation.java +++ b/dd-java-agent/instrumentation/vertx-web-4.0/src/main/java/datadog/trace/instrumentation/vertx_4_0/server/RouteImplInstrumentation.java @@ -30,12 +30,16 @@ public Reference[] additionalMuzzleReferences() { } @Override - public boolean isApplicable(Set enabledSystems) { + public TargetSystem targetSystem() { + return TargetSystem.SECURITY; + } + + @Override + public boolean isEnabled(Set enabledSystems) { if (enabledSystems.contains(TargetSystem.IAST)) { postProcessorFactory = IastPostProcessorFactory.INSTANCE; - return true; } - return enabledSystems.contains(TargetSystem.APPSEC); + return super.isEnabled(enabledSystems); } @Override diff --git a/dd-java-agent/instrumentation/websphere-jmx/src/main/java/datadog/trace/instrumentation/websphere_jmx/WebsphereSecurityInstrumentation.java b/dd-java-agent/instrumentation/websphere-jmx/src/main/java/datadog/trace/instrumentation/websphere_jmx/WebsphereSecurityInstrumentation.java index d7c6088122e..24f445d3a4c 100644 --- a/dd-java-agent/instrumentation/websphere-jmx/src/main/java/datadog/trace/instrumentation/websphere_jmx/WebsphereSecurityInstrumentation.java +++ b/dd-java-agent/instrumentation/websphere-jmx/src/main/java/datadog/trace/instrumentation/websphere_jmx/WebsphereSecurityInstrumentation.java @@ -10,6 +10,7 @@ import datadog.trace.bootstrap.config.provider.ConfigProvider; import datadog.trace.util.AgentThreadFactory; import java.util.Collections; +import java.util.Set; import net.bytebuddy.asm.Advice; /** @@ -33,8 +34,8 @@ public String instrumentedType() { } @Override - public boolean isEnabled() { - return super.isEnabled() + public boolean isEnabled(Set enabledSystems) { + return super.isEnabled(enabledSystems) && "com.ibm.ws.management.PlatformMBeanServerBuilder".equals(customBuilder) // we must avoid loading the global Config while setting up instrumentation, so use the same // underlying provider call as Config.get().isJmxFetchIntegrationEnabled("websphere", false) diff --git a/dd-java-agent/testing/src/main/java/datadog/trace/agent/test/base/TestInstrumentation.java b/dd-java-agent/testing/src/main/java/datadog/trace/agent/test/base/TestInstrumentation.java index 262b762be60..4749a4d76af 100644 --- a/dd-java-agent/testing/src/main/java/datadog/trace/agent/test/base/TestInstrumentation.java +++ b/dd-java-agent/testing/src/main/java/datadog/trace/agent/test/base/TestInstrumentation.java @@ -2,7 +2,6 @@ import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; -import java.util.Set; /** Skeleton single-class test instrumentation. */ public abstract class TestInstrumentation extends InstrumenterModule @@ -13,7 +12,7 @@ public TestInstrumentation() { } @Override - public boolean isApplicable(Set enabledSystems) { - return true; // always on for testing purposes + public TargetSystem targetSystem() { + return TargetSystem.COMMON; } } From 0e4a61656abf503be2533c837c942012e85e1add Mon Sep 17 00:00:00 2001 From: Stuart McCulloch Date: Tue, 24 Jun 2025 13:08:19 +0100 Subject: [PATCH 2/2] Prefer Strings.getPackageName() over ClassLoader.getPackage() when defining instrumentation if you just want the package name --- .../tooling/iast/IastPostProcessorFactory.java | 3 ++- ...tractJUnitTestClassProcessorInstrumentation.java | 13 ++++++++----- .../JUnitTestClassProcessorInstrumentation.java | 13 ++++++++----- .../junit4/JUnit4ClassOrderInstrumentation.java | 13 ++++++++----- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/iast/IastPostProcessorFactory.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/iast/IastPostProcessorFactory.java index 13b1f4eda4a..84db89496b2 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/iast/IastPostProcessorFactory.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/iast/IastPostProcessorFactory.java @@ -20,6 +20,7 @@ import datadog.trace.api.iast.telemetry.IastMetric; import datadog.trace.api.iast.telemetry.IastMetricCollector; import datadog.trace.api.iast.telemetry.Verbosity; +import datadog.trace.util.Strings; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; @@ -44,7 +45,7 @@ public class IastPostProcessorFactory implements Advice.PostProcessor.Factory { INSTANCE = verbosity == Verbosity.OFF ? null : new IastPostProcessorFactory(verbosity); } - private static final String IAST_ANNOTATIONS_PKG = Sink.class.getPackage().getName(); + private static final String IAST_ANNOTATIONS_PKG = Strings.getPackageName(Sink.class.getName()); private static final String SINK_NAME = Sink.class.getSimpleName(); private static final String PROPAGATION_NAME = Propagation.class.getSimpleName(); private static final String SOURCE_NAME = Source.class.getSimpleName(); diff --git a/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/AbstractJUnitTestClassProcessorInstrumentation.java b/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/AbstractJUnitTestClassProcessorInstrumentation.java index 1115c95b3f5..2079dd0f5ac 100644 --- a/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/AbstractJUnitTestClassProcessorInstrumentation.java +++ b/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/AbstractJUnitTestClassProcessorInstrumentation.java @@ -8,6 +8,7 @@ import datadog.trace.api.Config; import datadog.trace.api.civisibility.CIConstants; import datadog.trace.instrumentation.junit4.JUnit4Instrumentation; +import datadog.trace.util.Strings; import java.util.Set; import net.bytebuddy.asm.Advice; import org.gradle.api.Action; @@ -32,12 +33,14 @@ public String instrumentedType() { @Override public String[] helperClassNames() { + String junit4InstrumentationPackageName = + Strings.getPackageName(JUnit4Instrumentation.class.getName()); return new String[] { - JUnit4Instrumentation.class.getPackage().getName() + ".SkippedByDatadog", - JUnit4Instrumentation.class.getPackage().getName() + ".JUnit4Utils", - JUnit4Instrumentation.class.getPackage().getName() + ".TestEventsHandlerHolder", - JUnit4Instrumentation.class.getPackage().getName() + ".TracingListener", - JUnit4Instrumentation.class.getPackage().getName() + ".order.JUnit4FailFastClassOrderer", + junit4InstrumentationPackageName + ".SkippedByDatadog", + junit4InstrumentationPackageName + ".JUnit4Utils", + junit4InstrumentationPackageName + ".TestEventsHandlerHolder", + junit4InstrumentationPackageName + ".TracingListener", + junit4InstrumentationPackageName + ".order.JUnit4FailFastClassOrderer", packageName + ".DDCollectAllTestClassesExecutor", }; } diff --git a/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/JUnitTestClassProcessorInstrumentation.java b/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/JUnitTestClassProcessorInstrumentation.java index b9f74269a2c..ed211b7482c 100644 --- a/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/JUnitTestClassProcessorInstrumentation.java +++ b/dd-java-agent/instrumentation/gradle-testing/src/main/groovy/datadog/trace/instrumentation/gradle/junit4/JUnitTestClassProcessorInstrumentation.java @@ -10,6 +10,7 @@ import datadog.trace.api.Config; import datadog.trace.api.civisibility.CIConstants; import datadog.trace.instrumentation.junit4.JUnit4Instrumentation; +import datadog.trace.util.Strings; import java.util.Set; import net.bytebuddy.asm.Advice; import org.gradle.api.Action; @@ -33,12 +34,14 @@ public String instrumentedType() { @Override public String[] helperClassNames() { + String junit4InstrumentationPackageName = + Strings.getPackageName(JUnit4Instrumentation.class.getName()); return new String[] { - JUnit4Instrumentation.class.getPackage().getName() + ".JUnit4Utils", - JUnit4Instrumentation.class.getPackage().getName() + ".TestEventsHandlerHolder", - JUnit4Instrumentation.class.getPackage().getName() + ".SkippedByDatadog", - JUnit4Instrumentation.class.getPackage().getName() + ".TracingListener", - JUnit4Instrumentation.class.getPackage().getName() + ".order.JUnit4FailFastClassOrderer", + junit4InstrumentationPackageName + ".JUnit4Utils", + junit4InstrumentationPackageName + ".TestEventsHandlerHolder", + junit4InstrumentationPackageName + ".SkippedByDatadog", + junit4InstrumentationPackageName + ".TracingListener", + junit4InstrumentationPackageName + ".order.JUnit4FailFastClassOrderer", packageName + ".DDCollectAllTestClassesExecutor", }; } diff --git a/dd-java-agent/instrumentation/maven-surefire/src/main/java/datadog/trace/instrumentation/maven/surefire/junit4/JUnit4ClassOrderInstrumentation.java b/dd-java-agent/instrumentation/maven-surefire/src/main/java/datadog/trace/instrumentation/maven/surefire/junit4/JUnit4ClassOrderInstrumentation.java index a90b2ace710..a0372a27e13 100644 --- a/dd-java-agent/instrumentation/maven-surefire/src/main/java/datadog/trace/instrumentation/maven/surefire/junit4/JUnit4ClassOrderInstrumentation.java +++ b/dd-java-agent/instrumentation/maven-surefire/src/main/java/datadog/trace/instrumentation/maven/surefire/junit4/JUnit4ClassOrderInstrumentation.java @@ -12,6 +12,7 @@ import datadog.trace.instrumentation.junit4.JUnit4Utils; import datadog.trace.instrumentation.junit4.TestEventsHandlerHolder; import datadog.trace.instrumentation.junit4.order.JUnit4FailFastClassOrderer; +import datadog.trace.util.Strings; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.LinkedHashSet; @@ -42,12 +43,14 @@ public String[] knownMatchingTypes() { @Override public String[] helperClassNames() { + String junit4InstrumentationPackageName = + Strings.getPackageName(JUnit4Instrumentation.class.getName()); return new String[] { - JUnit4Instrumentation.class.getPackage().getName() + ".JUnit4Utils", - JUnit4Instrumentation.class.getPackage().getName() + ".TestEventsHandlerHolder", - JUnit4Instrumentation.class.getPackage().getName() + ".SkippedByDatadog", - JUnit4Instrumentation.class.getPackage().getName() + ".TracingListener", - JUnit4Instrumentation.class.getPackage().getName() + ".order.JUnit4FailFastClassOrderer", + junit4InstrumentationPackageName + ".JUnit4Utils", + junit4InstrumentationPackageName + ".TestEventsHandlerHolder", + junit4InstrumentationPackageName + ".SkippedByDatadog", + junit4InstrumentationPackageName + ".TracingListener", + junit4InstrumentationPackageName + ".order.JUnit4FailFastClassOrderer", }; }