From 8949d6c05f9de4c1287fe98cec0a6d6d564a8c11 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 13 Feb 2020 14:17:47 -0800 Subject: [PATCH 01/11] Make sure CallDepthThreadLocalMap is always reset --- .../CouchbaseBucketInstrumentation.java | 2 +- .../CouchbaseClusterInstrumentation.java | 2 +- .../PreparedStatementInstrumentation.java | 8 +++--- .../jdbc/StatementInstrumentation.java | 8 +++--- .../NettyChannelPipelineInstrumentation.java | 2 +- .../NettyChannelPipelineInstrumentation.java | 2 +- .../MemcachedClientInstrumentation.java | 27 ++++++++++++------- 7 files changed, 30 insertions(+), 21 deletions(-) diff --git a/dd-java-agent/instrumentation/couchbase-2.0/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseBucketInstrumentation.java b/dd-java-agent/instrumentation/couchbase-2.0/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseBucketInstrumentation.java index 4a805b6aef..89e10472e3 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseBucketInstrumentation.java +++ b/dd-java-agent/instrumentation/couchbase-2.0/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseBucketInstrumentation.java @@ -64,7 +64,7 @@ public class CouchbaseBucketInstrumentation extends Instrumenter.Default { return CallDepthThreadLocalMap.incrementCallDepth(CouchbaseCluster.class); } - @Advice.OnMethodExit + @Advice.OnMethodExit(onThrowable = Throwable.class) public static void subscribeResult( @Advice.Enter final int callDepth, @Advice.Origin final Method method, diff --git a/dd-java-agent/instrumentation/couchbase-2.0/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseClusterInstrumentation.java b/dd-java-agent/instrumentation/couchbase-2.0/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseClusterInstrumentation.java index 0af4109ec6..b9f58044d6 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseClusterInstrumentation.java +++ b/dd-java-agent/instrumentation/couchbase-2.0/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseClusterInstrumentation.java @@ -64,7 +64,7 @@ public class CouchbaseClusterInstrumentation extends Instrumenter.Default { return CallDepthThreadLocalMap.incrementCallDepth(CouchbaseCluster.class); } - @Advice.OnMethodExit + @Advice.OnMethodExit(onThrowable = Throwable.class) public static void subscribeResult( @Advice.Enter final int callDepth, @Advice.Origin final Method method, diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java index 8d2c5aa675..0e4f413b33 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java @@ -61,13 +61,13 @@ public final class PreparedStatementInstrumentation extends Instrumenter.Default @Advice.OnMethodEnter(suppress = Throwable.class) public static AgentScope onEnter(@Advice.This final PreparedStatement statement) { - final int callDepth = CallDepthThreadLocalMap.incrementCallDepth(PreparedStatement.class); - if (callDepth > 0) { + final Connection connection = connectionFromStatement(statement); + if (connection == null) { return null; } - final Connection connection = connectionFromStatement(statement); - if (connection == null) { + final int callDepth = CallDepthThreadLocalMap.incrementCallDepth(PreparedStatement.class); + if (callDepth > 0) { return null; } diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java index 345529f58c..25e4782bd0 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java @@ -62,13 +62,13 @@ public final class StatementInstrumentation extends Instrumenter.Default { @Advice.OnMethodEnter(suppress = Throwable.class) public static AgentScope onEnter( @Advice.Argument(0) final String sql, @Advice.This final Statement statement) { - final int callDepth = CallDepthThreadLocalMap.incrementCallDepth(Statement.class); - if (callDepth > 0) { + final Connection connection = connectionFromStatement(statement); + if (connection == null) { return null; } - final Connection connection = connectionFromStatement(statement); - if (connection == null) { + final int callDepth = CallDepthThreadLocalMap.incrementCallDepth(Statement.class); + if (callDepth > 0) { return null; } diff --git a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java index 7beb747880..22dcc87d78 100644 --- a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java @@ -101,7 +101,7 @@ public class NettyChannelPipelineInstrumentation extends Instrumenter.Default { return CallDepthThreadLocalMap.incrementCallDepth(ChannelPipeline.class); } - @Advice.OnMethodExit(suppress = Throwable.class) + @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void addHandler( @Advice.Enter final int depth, @Advice.This final ChannelPipeline pipeline, diff --git a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java index f96732cadd..b8903651cf 100644 --- a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java @@ -110,7 +110,7 @@ public class NettyChannelPipelineInstrumentation extends Instrumenter.Default { return CallDepthThreadLocalMap.incrementCallDepth(handler.getClass()); } - @Advice.OnMethodExit(suppress = Throwable.class) + @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void addHandler( @Advice.Enter final int depth, @Advice.This final ChannelPipeline pipeline, diff --git a/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/MemcachedClientInstrumentation.java b/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/MemcachedClientInstrumentation.java index fbb571eb48..087b70e16a 100644 --- a/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/MemcachedClientInstrumentation.java +++ b/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/MemcachedClientInstrumentation.java @@ -81,14 +81,17 @@ public final class MemcachedClientInstrumentation extends Instrumenter.Default { return CallDepthThreadLocalMap.incrementCallDepth(MemcachedClient.class) <= 0; } - @Advice.OnMethodExit(suppress = Throwable.class) + @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void methodExit( @Advice.Enter final boolean shouldInjectListener, @Advice.This final MemcachedClient client, @Advice.Origin("#m") final String methodName, @Advice.Return final OperationFuture future) { - if (shouldInjectListener && future != null) { - CallDepthThreadLocalMap.reset(MemcachedClient.class); + if (!shouldInjectListener) { + return; + } + CallDepthThreadLocalMap.reset(MemcachedClient.class); + if (future != null) { final OperationCompletionListener listener = new OperationCompletionListener(client.getConnection(), methodName); future.addListener(listener); @@ -103,14 +106,17 @@ public final class MemcachedClientInstrumentation extends Instrumenter.Default { return CallDepthThreadLocalMap.incrementCallDepth(MemcachedClient.class) <= 0; } - @Advice.OnMethodExit(suppress = Throwable.class) + @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void methodExit( @Advice.Enter final boolean shouldInjectListener, @Advice.This final MemcachedClient client, @Advice.Origin("#m") final String methodName, @Advice.Return final GetFuture future) { - if (shouldInjectListener && future != null) { - CallDepthThreadLocalMap.reset(MemcachedClient.class); + if (!shouldInjectListener) { + return; + } + CallDepthThreadLocalMap.reset(MemcachedClient.class); + if (future != null) { final GetCompletionListener listener = new GetCompletionListener(client.getConnection(), methodName); future.addListener(listener); @@ -125,14 +131,17 @@ public final class MemcachedClientInstrumentation extends Instrumenter.Default { return CallDepthThreadLocalMap.incrementCallDepth(MemcachedClient.class) <= 0; } - @Advice.OnMethodExit(suppress = Throwable.class) + @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void methodExit( @Advice.Enter final boolean shouldInjectListener, @Advice.This final MemcachedClient client, @Advice.Origin("#m") final String methodName, @Advice.Return final BulkFuture future) { - if (shouldInjectListener && future != null) { - CallDepthThreadLocalMap.reset(MemcachedClient.class); + if (!shouldInjectListener) { + return; + } + CallDepthThreadLocalMap.reset(MemcachedClient.class); + if (future != null) { final BulkGetCompletionListener listener = new BulkGetCompletionListener(client.getConnection(), methodName); future.addListener(listener); From e1964e526e72edd5b93c5f17524cee3e3db1422b Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Thu, 20 Feb 2020 16:03:41 -0800 Subject: [PATCH 02/11] Update JMH benchmarks Benchmark is run with `./gradlew :dd-java-agent:benchmark:jmh` -- after updating the absolute paths to the various agents in `ClassRetransformingBenchmark`. Unfortunately I was unable to have it launch correctly with a relative path. --- dd-java-agent/benchmark/benchmark.gradle | 70 +++++---------- .../ClassRetransformingBenchmark.java | 85 ++----------------- .../jmh/java/datadog/benchmark/classes/C.java | 2 +- .../jmh/java/datadog/benchmark/classes/D.java | 2 +- .../jmh/java/datadog/benchmark/classes/E.java | 2 +- .../benchmark/src/jmh/resources/dd-trace.yaml | 1 - dd-trace-ot/dd-trace-ot.gradle | 2 +- 7 files changed, 32 insertions(+), 132 deletions(-) delete mode 100644 dd-java-agent/benchmark/src/jmh/resources/dd-trace.yaml diff --git a/dd-java-agent/benchmark/benchmark.gradle b/dd-java-agent/benchmark/benchmark.gradle index 8d0205b087..7fcce09041 100644 --- a/dd-java-agent/benchmark/benchmark.gradle +++ b/dd-java-agent/benchmark/benchmark.gradle @@ -6,68 +6,44 @@ apply from: "${rootDir}/gradle/java.gradle" dependencies { jmh project(':dd-trace-api') - jmh group: 'net.bytebuddy', name: 'byte-buddy-agent', version: '1.7.6' - - // Add a bunch of dependencies so instrumentation is not disabled. - jmh group: 'javax.jms', name: 'javax.jms-api', version: '2.0.1' - jmh group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1' - jmh group: 'org.mongodb', name: 'mongo-java-driver', version: '3.4.2' - jmh group: 'org.mongodb', name: 'mongodb-driver-async', version: '3.4.2' - jmh(group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.11.119') { - exclude(module: 'httpclient') - exclude(module: 'jackson-databind') - exclude(module: 'jackson-dataformat-cbor') - } - jmh group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.6.0' - jmh group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.3' - jmh(group: 'com.datastax.cassandra', name: 'cassandra-driver-core', version: '3.2.0') + jmh deps.bytebuddyagent } -configurations.testRuntimeClasspath.dependencies.clear() - - jmh { timeUnit = 'us' // Output time unit. Available time units are: [m, s, ms, us, ns]. - benchmarkMode = ['thrpt', 'avgt'] -// timeOnIteration = '5s' - iterations = 5 // Number of measurement iterations to do. + benchmarkMode = ['avgt'] + timeOnIteration = '20s' + iterations = 1 // Number of measurement iterations to do. fork = 1 // How many times to forks a single benchmark. Use 0 to disable forking altogether -// jvmArgs = ["-Dasdf=123"] -// jvmArgs = ["-javaagent:${project(':dd-java-agent').shadowJar.archivePath}"] + jvmArgs = ["-Ddd.jmxfetch.enabled=false", "-Ddd.writer.type=LoggingWriter"] +// jvmArgs += ["-XX:+UnlockDiagnosticVMOptions", "-XX:+DebugNonSafepoints", "-XX:StartFlightRecording=delay=5s,dumponexit=true,name=jmh-benchmark,filename=${rootDir}/dd-java-agent/benchmark/build/reports/jmh/jmh-benchmark.jfr"] +// jvmArgs += ["-agentpath:${rootDir}/dd-java-agent/benchmark/src/jmh/resources/libasyncProfiler.so=start,collapsed,file=${rootDir}/dd-java-agent/benchmark/build/reports/jmh/profiler.txt"] failOnError = true // Should JMH fail immediately if any benchmark had experienced the unrecoverable error? -// warmup = '2s' // Time to spend at each warmup iteration. -// warmupIterations = 2 // Number of warmup iterations to do. -// warmupForks = 0 // How many warmup forks to make for a single benchmark. 0 to disable warmup forks. + warmup = '5s' // Time to spend at each warmup iteration. +// warmupBatchSize = 10 // Warmup batch size: number of benchmark method calls per operation. + warmupForks = 0 // How many warmup forks to make for a single benchmark. 0 to disable warmup forks. + warmupIterations = 1 // Number of warmup iterations to do. -// profilers = ['stack'] +// profilers = ['stack:lines=5;detailLine=true;period=5;excludePackages=true'] // Use profilers to collect additional data. Supported profilers: [cl, comp, gc, stack, perf, perfnorm, perfasm, xperf, xperfasm, hs_cl, hs_comp, hs_gc, hs_rt, hs_thr] // humanOutputFile = project.file("${project.buildDir}/reports/jmh/human.txt") // human-readable output file // operationsPerInvocation = 10 // Operations per invocation. // synchronizeIterations = false // Synchronize iterations? - timeout = '1s' // Timeout for benchmark iteration. - includeTests = false + timeout = '5s' // Timeout for benchmark iteration. +// includeTests = false // Allows to include test sources into generate JMH jar, i.e. use it when benchmarks depend on the test classes. - duplicateClassesStrategy = 'fail' - jmhVersion = '1.20' // Specifies JMH version + duplicateClassesStrategy = DuplicatesStrategy.EXCLUDE + jmhVersion = '1.23' // Specifies JMH version } -// configured as a separate task since the 'jmh' task did not like adding a javaagent argument. -tasks.register("jmhAgent", JavaExec) { - classpath = files(project.jmhCompileGeneratedClasses.destinationDir) - classpath += sourceSets.jmh.runtimeClasspath - main = "org.openjdk.jmh.Main" - args += ["-tu", "us"] - args += ["-bm", "avgt"] -// args += ["-prof", "stack:lines=5;detailLine=true;period=5;excludePackages=true"] - args += ["-f", "1"] - args += ["-foe", "true"] +tasks.jmh.dependsOn project(':dd-java-agent').shadowJar -// args += ["-wi", "2"] -// args += ["-i", "5"] - dependsOn project.tasks.jmhCompileGeneratedClasses -} - -tasks.jmhAgent.dependsOn project(':dd-java-agent').shadowJar +/* +If using libasyncProfiler, use the following to generate nice svg flamegraphs. +sed '/unknown/d' dd-java-agent/benchmark/build/reports/jmh/profiler.txt | sed '/^thread_start/d' | sed '/not_walkable/d' > dd-java-agent/benchmark/build/reports/jmh/profiler-cleaned.txt +(using https://github.com/brendangregg/FlameGraph) +./flamegraph.pl --color=java dd-java-agent/benchmark/build/reports/jmh/profiler-cleaned.txt > dd-java-agent/benchmark/build/reports/jmh/jmh-master.svg + */ diff --git a/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/ClassRetransformingBenchmark.java b/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/ClassRetransformingBenchmark.java index baec44ec36..e8c8986a45 100644 --- a/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/ClassRetransformingBenchmark.java +++ b/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/ClassRetransformingBenchmark.java @@ -4,49 +4,17 @@ import datadog.benchmark.classes.TracedClass; import datadog.benchmark.classes.UntracedClass; import java.lang.instrument.Instrumentation; import java.lang.instrument.UnmodifiableClassException; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.nio.file.Paths; import net.bytebuddy.agent.ByteBuddyAgent; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.Fork; import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.Setup; import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.TearDown; public class ClassRetransformingBenchmark { - public static final String BENCHMARK_HOME = - Paths.get(".").toAbsolutePath().normalize().toString(); - - static { - if (!BENCHMARK_HOME.endsWith("benchmark")) { - throw new IllegalArgumentException("Invalid Home directory: " + BENCHMARK_HOME); - } - } @State(Scope.Benchmark) public static class BenchmarkState { private final Instrumentation inst = ByteBuddyAgent.install(); - - @Setup - public void initializeInstrumentation() { - // loading TracedClass will initialize helper injection - TracedClass.class.getName(); - } - - @TearDown - public void stopAgent() { - try { - final Class gt = Class.forName("io.opentracing.util.GlobalTracer"); - final Field tracerField = gt.getDeclaredField("tracer"); - tracerField.setAccessible(true); - final Object tracer = tracerField.get(null); - final Method close = tracer.getClass().getMethod("close"); - close.invoke(tracer); - } catch (final Exception e) { - } - } } @Benchmark @@ -60,54 +28,11 @@ public class ClassRetransformingBenchmark { state.inst.retransformClasses(TracedClass.class); } - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.2.2.jar") - public static class WithAgent022 extends ClassRetransformingBenchmark {} + @Fork(jvmArgsAppend = "-javaagent:/path/to/dd-java-agent-master.jar") + public static class WithAgentMaster extends ClassRetransformingBenchmark {} - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.2.4.jar") - public static class WithAgent024 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.2.6.jar") - public static class WithAgent026 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.2.7.jar") - public static class WithAgent027 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.2.8.jar") - public static class WithAgent028 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.2.9.jar") - public static class WithAgent029 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.2.10.jar") - public static class WithAgent0210 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.2.11.jar") - public static class WithAgent0211 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.2.12.jar") - public static class WithAgent0212 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.3.0.jar") - public static class WithAgent030 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.3.1.jar") - public static class WithAgent031 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.3.2.jar") - public static class WithAgent032 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.3.3.jar") - public static class WithAgent033 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.4.0.jar") - public static class WithAgent040 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.4.1.jar") - public static class WithAgent041 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:releases/dd-java-agent-0.5.0.jar") - public static class WithAgent050 extends ClassRetransformingBenchmark {} - - @Fork(jvmArgsAppend = "-javaagent:../build/libs/dd-java-agent.jar") + @Fork( + jvmArgsAppend = + "-javaagent:/path/to/dd-trace-java/dd-java-agent/build/libs/dd-java-agent.jar") public static class WithAgent extends ClassRetransformingBenchmark {} } diff --git a/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/C.java b/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/C.java index d124f05c42..b7a256697c 100644 --- a/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/C.java +++ b/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/C.java @@ -1,5 +1,5 @@ package datadog.benchmark.classes; -public interface C extends B { +public interface C extends A, B { void c(); } diff --git a/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/D.java b/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/D.java index ea8ffba11a..a52a49aa62 100644 --- a/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/D.java +++ b/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/D.java @@ -1,5 +1,5 @@ package datadog.benchmark.classes; -public interface D extends C { +public interface D extends A, B, C { void d(); } diff --git a/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/E.java b/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/E.java index 3ac6694578..9846b8802c 100644 --- a/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/E.java +++ b/dd-java-agent/benchmark/src/jmh/java/datadog/benchmark/classes/E.java @@ -1,5 +1,5 @@ package datadog.benchmark.classes; -public interface E extends D { +public interface E extends B, C, D { void e(); } diff --git a/dd-java-agent/benchmark/src/jmh/resources/dd-trace.yaml b/dd-java-agent/benchmark/src/jmh/resources/dd-trace.yaml deleted file mode 100644 index 22d9698b6f..0000000000 --- a/dd-java-agent/benchmark/src/jmh/resources/dd-trace.yaml +++ /dev/null @@ -1 +0,0 @@ -enableCustomAnnotationTracingOver: ["datadog.benchmark"] diff --git a/dd-trace-ot/dd-trace-ot.gradle b/dd-trace-ot/dd-trace-ot.gradle index 3d5772654e..a44b148d24 100644 --- a/dd-trace-ot/dd-trace-ot.gradle +++ b/dd-trace-ot/dd-trace-ot.gradle @@ -138,7 +138,7 @@ jmh { // warmupBenchmarks = ['.*Warmup'] // Warmup benchmarks to include in the run in addition to already selected. JMH will not measure these benchmarks, but only use them for the warmup. // zip64 = true // Use ZIP64 format for bigger archives - jmhVersion = '1.21' // Specifies JMH version + jmhVersion = '1.23' // Specifies JMH version // includeTests = true // Allows to include test sources into generate JMH jar, i.e. use it when benchmarks depend on the test classes. duplicateClassesStrategy = 'warn' // Strategy to apply when encountring duplicate classes during creation of the fat jar (i.e. while executing jmhJar task) From b1d314aff17338ab069c680818c3e9e313d28283 Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 21 Feb 2020 11:34:25 -0500 Subject: [PATCH 03/11] Specify types in jaxrs mtcher to help Idea with type inference --- .../instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java | 2 +- .../instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-1/src/main/java/datadog/trace/instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-1/src/main/java/datadog/trace/instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java index 8db418592c..95c2421b02 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-1/src/main/java/datadog/trace/instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-1/src/main/java/datadog/trace/instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java @@ -44,7 +44,7 @@ public final class JaxRsAnnotationsInstrumentation extends Instrumenter.Default public ElementMatcher typeMatcher() { return safeHasSuperType( isAnnotatedWith(named("javax.ws.rs.Path")) - .or(declaresMethod(isAnnotatedWith(named("javax.ws.rs.Path"))))); + .or(declaresMethod(isAnnotatedWith(named("javax.ws.rs.Path"))))); } @Override diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java index efdf692e70..58e5811d75 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java @@ -43,7 +43,7 @@ public final class JaxRsAnnotationsInstrumentation extends Instrumenter.Default public ElementMatcher typeMatcher() { return safeHasSuperType( isAnnotatedWith(named("javax.ws.rs.Path")) - .or(declaresMethod(isAnnotatedWith(named("javax.ws.rs.Path"))))); + .or(declaresMethod(isAnnotatedWith(named("javax.ws.rs.Path"))))); } @Override From 0c659770ccf1e4ec027343fb819450ad7458b101 Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 21 Feb 2020 11:34:55 -0500 Subject: [PATCH 04/11] Collect all ignore matchers into one This should allow us to optimize this as a single function later --- .../trace/agent/tooling/AgentInstaller.java | 74 +--------- .../tooling/ByteBuddyElementMatchers.java | 10 +- .../agent/tooling/GlobalIgnoresMatcher.java | 126 ++++++++++++++++++ 3 files changed, 133 insertions(+), 77 deletions(-) create mode 100644 dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java index f9ceb3839b..99bb4e2d53 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java @@ -1,13 +1,11 @@ package datadog.trace.agent.tooling; import static datadog.trace.agent.tooling.ClassLoaderMatcher.skipClassLoader; +import static datadog.trace.agent.tooling.GlobalIgnoresMatcher.globalIgnoresMatcher; import static net.bytebuddy.matcher.ElementMatchers.any; -import static net.bytebuddy.matcher.ElementMatchers.nameContains; -import static net.bytebuddy.matcher.ElementMatchers.nameMatches; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.none; -import static net.bytebuddy.matcher.ElementMatchers.not; import datadog.trace.api.Config; import java.lang.instrument.Instrumentation; @@ -64,75 +62,7 @@ public class AgentInstaller { // https://github.com/raphw/byte-buddy/issues/558 // .with(AgentBuilder.LambdaInstrumentationStrategy.ENABLED) .ignore(any(), skipClassLoader()) - /** - * Be very careful about the types of matchers used in this section as they are called - * on every class load, so they must be fast. Generally speaking try to only use name - * matchers as they don't have to load additional info. - */ - .or( - nameStartsWith("datadog.trace.") - // FIXME: We should remove this once - // https://github.com/raphw/byte-buddy/issues/558 is fixed - .and( - not( - named( - "datadog.trace.bootstrap.instrumentation.java.concurrent.RunnableWrapper") - .or( - named( - "datadog.trace.bootstrap.instrumentation.java.concurrent.CallableWrapper"))))) - .or(nameStartsWith("datadog.opentracing.")) - .or(nameStartsWith("datadog.slf4j.")) - .or(nameStartsWith("net.bytebuddy.")) - .or( - nameStartsWith("java.") - .and( - not( - named("java.net.URL") - .or(named("java.net.HttpURLConnection")) - .or(nameStartsWith("java.rmi.")) - .or(nameStartsWith("java.util.concurrent.")) - .or( - nameStartsWith("java.util.logging.") - // Concurrent instrumentation modifies the strucutre of - // Cleaner class incompaibly with java9+ modules. - // Working around until a long-term fix for modules can be - // put in place. - .and(not(named("java.util.logging.LogManager$Cleaner"))))))) - .or( - nameStartsWith("com.sun.") - .and( - not( - nameStartsWith("com.sun.messaging.") - .or(nameStartsWith("com.sun.jersey.api.client"))))) - .or( - nameStartsWith("sun.") - .and( - not( - nameStartsWith("sun.net.www.protocol.") - .or(nameStartsWith("sun.rmi.server")) - .or(nameStartsWith("sun.rmi.transport")) - .or(named("sun.net.www.http.HttpClient"))))) - .or(nameStartsWith("jdk.")) - .or(nameStartsWith("org.aspectj.")) - .or(nameStartsWith("org.groovy.")) - .or(nameStartsWith("org.codehaus.groovy.macro.")) - .or(nameStartsWith("com.intellij.rt.debugger.")) - .or(nameStartsWith("com.p6spy.")) - .or(nameStartsWith("com.newrelic.")) - .or(nameStartsWith("com.dynatrace.")) - .or(nameStartsWith("com.jloadtrace.")) - .or(nameStartsWith("com.appdynamics.")) - .or(nameStartsWith("com.singularity.")) - .or(nameStartsWith("com.jinspired.")) - .or(nameStartsWith("org.jinspired.")) - .or(nameStartsWith("org.apache.log4j.").and(not(named("org.apache.log4j.MDC")))) - .or(nameStartsWith("org.slf4j.").and(not(named("org.slf4j.MDC")))) - .or(nameContains("$JaxbAccessor")) - .or(nameContains("CGLIB$$")) - .or(nameContains("javassist")) - .or(nameContains(".asm.")) - .or(nameContains("$__sisu")) - .or(nameMatches("com\\.mchange\\.v2\\.c3p0\\..*Proxy")) + .or(globalIgnoresMatcher()) .or(matchesConfiguredExcludes()); if (log.isDebugEnabled()) { diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ByteBuddyElementMatchers.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ByteBuddyElementMatchers.java index 847975681b..4270c2d1d1 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ByteBuddyElementMatchers.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ByteBuddyElementMatchers.java @@ -93,7 +93,7 @@ public class ByteBuddyElementMatchers { * @see net.bytebuddy.matcher.HasSuperTypeMatcher */ @HashCodeAndEqualsPlugin.Enhance - public static class SafeHasSuperTypeMatcher + private static class SafeHasSuperTypeMatcher extends ElementMatcher.Junction.AbstractBase { /** The matcher to apply to any super type of the matched type. */ @@ -192,7 +192,7 @@ public class ByteBuddyElementMatchers { * @see net.bytebuddy.matcher.ErasureMatcher */ @HashCodeAndEqualsPlugin.Enhance - public static class SafeErasureMatcher + private static class SafeErasureMatcher extends ElementMatcher.Junction.AbstractBase { /** The matcher to apply to the raw type of the matched element. */ @@ -234,7 +234,7 @@ public class ByteBuddyElementMatchers { * @see net.bytebuddy.matcher.FailSafeMatcher */ @HashCodeAndEqualsPlugin.Enhance - public static class SafeMatcher extends ElementMatcher.Junction.AbstractBase { + private static class SafeMatcher extends ElementMatcher.Junction.AbstractBase { /** The delegate matcher that might throw an exception. */ private final ElementMatcher matcher; @@ -296,7 +296,7 @@ public class ByteBuddyElementMatchers { // TODO: add javadoc @HashCodeAndEqualsPlugin.Enhance - public static class HasSuperMethodMatcher + private static class HasSuperMethodMatcher extends ElementMatcher.Junction.AbstractBase { private final ElementMatcher matcher; @@ -367,7 +367,7 @@ public class ByteBuddyElementMatchers { } } - public static class SafeExtendsClassMatcher + private static class SafeExtendsClassMatcher extends ElementMatcher.Junction.AbstractBase { private final ElementMatcher matcher; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java new file mode 100644 index 0000000000..a62f238ed4 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java @@ -0,0 +1,126 @@ +package datadog.trace.agent.tooling; + +import java.util.regex.Pattern; +import net.bytebuddy.build.HashCodeAndEqualsPlugin; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; + +@HashCodeAndEqualsPlugin.Enhance +class GlobalIgnoresMatcher + extends ElementMatcher.Junction.AbstractBase { + + private static final Pattern COM_MCHANGE_PROXY = + Pattern.compile("com\\.mchange\\.v2\\.c3p0\\..*Proxy"); + + public static ElementMatcher.Junction globalIgnoresMatcher() { + return new GlobalIgnoresMatcher<>(); + } + + /** + * Be very careful about the types of matchers used in this section as they are called on every + * class load, so they must be fast. Generally speaking try to only use name matchers as they + * don't have to load additional info. + */ + @Override + public boolean matches(final T target) { + final String name = target.getActualName(); + + if (name.startsWith("datadog.opentracing.") + || name.startsWith("datadog.slf4j.") + || name.startsWith("net.bytebuddy.") + || name.startsWith("jdk.") + || name.startsWith("org.aspectj.") + || name.startsWith("org.groovy.") + || name.startsWith("org.codehaus.groovy.macro.") + || name.startsWith("com.intellij.rt.debugger.") + || name.startsWith("com.p6spy.") + || name.startsWith("com.newrelic.") + || name.startsWith("com.dynatrace.") + || name.startsWith("com.jloadtrace.") + || name.startsWith("com.appdynamics.") + || name.startsWith("com.singularity.") + || name.startsWith("com.jinspired.") + || name.startsWith("org.jinspired.")) { + return true; + } + + if (name.startsWith("datadog.trace.")) { + // FIXME: We should remove this once + // https://github.com/raphw/byte-buddy/issues/558 is fixed + if (name.equals("datadog.trace.bootstrap.instrumentation.java.concurrent.RunnableWrapper") + || name.equals( + "datadog.trace.bootstrap.instrumentation.java.concurrent.CallableWrapper")) { + return false; + } + return true; + } + + if (name.startsWith("java.")) { + if (name.equals("java.net.URL") || name.equals("java.net.HttpURLConnection")) { + return false; + } + if (name.startsWith("java.rmi.") || name.startsWith("java.util.concurrent.")) { + return false; + } + // Concurrent instrumentation modifies the structure of + // Cleaner class incompatibly with java9+ modules. + // Working around until a long-term fix for modules can be + // put in place. + if (name.startsWith("java.util.logging.") + && !name.equals("java.util.logging.LogManager$Cleaner")) { + return false; + } + + return true; + } + + if (name.startsWith("com.sun.")) { + if (name.startsWith("com.sun.messaging.") || name.startsWith("com.sun.jersey.api.client")) { + return false; + } + + return true; + } + + if (name.startsWith("sun.")) { + if (name.startsWith("sun.net.www.protocol.") + || name.startsWith("sun.rmi.server") + || name.startsWith("sun.rmi.transport") + || name.equals("sun.net.www.http.HttpClient")) { + return false; + } + + return true; + } + + if (name.startsWith("org.apache.log4j.")) { + if (name.equals("org.apache.log4j.MDC")) { + return false; + } + + return true; + } + + if (name.startsWith("org.slf4j.")) { + if (name.equals("org.slf4j.MDC")) { + return false; + } + + return true; + } + + if (name.contains("$JaxbAccessor") + || name.contains("CGLIB$$") + || name.contains("javassist") + || name.contains(".asm.") + || name.contains("$__sisu")) { + return true; + } + + if (COM_MCHANGE_PROXY.matcher(name).matches()) { + return true; + } + + return false; + } +} From 27842d8479d4a1d18505897831d98da18941de14 Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 21 Feb 2020 11:50:03 -0500 Subject: [PATCH 05/11] Ignore cglib packaged with springboot --- .../java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java index a62f238ed4..39b4271705 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java @@ -40,7 +40,8 @@ class GlobalIgnoresMatcher || name.startsWith("com.appdynamics.") || name.startsWith("com.singularity.") || name.startsWith("com.jinspired.") - || name.startsWith("org.jinspired.")) { + || name.startsWith("org.jinspired.") + || name.startsWith("org.springframework.cglib.")) { return true; } From faccb0d48364641b7ca99076e17cda17d30ce87d Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Fri, 21 Feb 2020 09:51:04 -0800 Subject: [PATCH 06/11] Set ByteBuddy raw setting at startup This reduces the complexity of TypeDefinitions. ``` Benchmark Mode Cnt Score Error Units ClassRetransformingBenchmark.WithAgent.testTracedRetransform avgt 22.450 ms/op ClassRetransformingBenchmark.WithAgent.testUntracedRetransform avgt 6.842 ms/op ClassRetransformingBenchmark.WithAgentMaster.testTracedRetransform avgt 23.188 ms/op ClassRetransformingBenchmark.WithAgentMaster.testUntracedRetransform avgt 7.009 ms/op ``` It also improved startup time by about 1 sec. --- .../trace/agent/tooling/AgentInstaller.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java index 99bb4e2d53..63405cad6a 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java @@ -18,6 +18,7 @@ import java.util.ServiceLoader; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.agent.builder.ResettableClassFileTransformer; +import net.bytebuddy.description.type.TypeDefinition; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.dynamic.DynamicType; import net.bytebuddy.matcher.ElementMatcher; @@ -50,6 +51,8 @@ public class AgentInstaller { final Instrumentation inst, final AgentBuilder.Listener... listeners) { INSTRUMENTATION = inst; + addByteBuddyRawSetting(); + AgentBuilder agentBuilder = new AgentBuilder.Default() .disableClassFormatChanges() @@ -93,6 +96,23 @@ public class AgentInstaller { return agentBuilder.installOn(inst); } + private static void addByteBuddyRawSetting() { + final String savedPropertyValue = System.getProperty(TypeDefinition.RAW_TYPES_PROPERTY); + try { + System.setProperty(TypeDefinition.RAW_TYPES_PROPERTY, "true"); + final boolean rawTypes = TypeDescription.AbstractBase.RAW_TYPES; + if (!rawTypes) { + log.debug("Too late to enable {}", TypeDefinition.RAW_TYPES_PROPERTY); + } + } finally { + if (savedPropertyValue == null) { + System.clearProperty(TypeDefinition.RAW_TYPES_PROPERTY); + } else { + System.setProperty(TypeDefinition.RAW_TYPES_PROPERTY, savedPropertyValue); + } + } + } + private static ElementMatcher.Junction matchesConfiguredExcludes() { final List excludedClasses = Config.get().getExcludedClasses(); ElementMatcher.Junction matcher = none(); From b6d374e3a0aaaffdcbdec4933c06888a198acc11 Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 21 Feb 2020 14:01:48 -0500 Subject: [PATCH 07/11] Avoid calling superclass matcher where possible Saves about 100ms of startup time on test app --- .../aws/v0/RequestInstrumentation.java | 4 +++- .../aws/v2/AwsClientInstrumentation.java | 4 +++- .../aws/v2/AwsHttpClientInstrumentation.java | 14 +++++++++----- .../client/CouchbaseNetworkInstrumentation.java | 5 ++++- .../finatra/FinatraInstrumentation.java | 4 +++- .../HttpUrlConnectionInstrumentation.java | 8 ++++++-- .../http_url_connection/UrlInstrumentation.java | 5 ++++- .../playws1/PlayWSClientInstrumentation.java | 7 +++++-- .../ratpack/ContinuationInstrumentation.java | 4 +++- 9 files changed, 40 insertions(+), 15 deletions(-) diff --git a/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java index 71dd9d9aa4..30ae28e54f 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java @@ -2,6 +2,7 @@ package datadog.trace.instrumentation.aws.v0; import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; import static java.util.Collections.singletonMap; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; @@ -26,7 +27,8 @@ public final class RequestInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return safeExtendsClass(named("com.amazonaws.AmazonWebServiceRequest")); + return nameStartsWith("com.amazonaws.") + .and(safeExtendsClass(named("com.amazonaws.AmazonWebServiceRequest"))); } @Override diff --git a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java index 91babf1474..05e170d605 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java @@ -5,6 +5,7 @@ import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; @@ -23,7 +24,8 @@ public final class AwsClientInstrumentation extends AbstractAwsClientInstrumenta @Override public ElementMatcher typeMatcher() { - return not(isInterface()) + return nameStartsWith("software.amazon.awssdk.") + .and(not(isInterface())) .and( safeHasInterface(named("software.amazon.awssdk.core.client.builder.SdkClientBuilder"))); } diff --git a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java index f02ad94e35..709e730391 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java @@ -5,6 +5,7 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScop import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; @@ -28,11 +29,14 @@ public final class AwsHttpClientInstrumentation extends AbstractAwsClientInstrum @Override public ElementMatcher typeMatcher() { - return safeExtendsClass( - named("software.amazon.awssdk.core.internal.http.pipeline.stages.MakeHttpRequestStage") - .or( - named( - "software.amazon.awssdk.core.internal.http.pipeline.stages.MakeAsyncHttpRequestStage"))) + return nameStartsWith("software.amazon.awssdk.") + .and( + safeExtendsClass( + named( + "software.amazon.awssdk.core.internal.http.pipeline.stages.MakeHttpRequestStage") + .or( + named( + "software.amazon.awssdk.core.internal.http.pipeline.stages.MakeAsyncHttpRequestStage")))) .and(not(isInterface())); } diff --git a/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java b/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java index b2c6654f1c..41c336c4b0 100644 --- a/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java +++ b/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java @@ -3,6 +3,7 @@ package datadog.trace.instrumentation.couchbase.client; import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; @@ -31,7 +32,9 @@ public class CouchbaseNetworkInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { // Exact class because private fields are used - return safeExtendsClass(named("com.couchbase.client.core.endpoint.AbstractGenericHandler")); + return nameStartsWith("com.couchbase.client.") + .and( + safeExtendsClass(named("com.couchbase.client.core.endpoint.AbstractGenericHandler"))); } @Override diff --git a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java index a7ba385db5..bbd9d76b63 100644 --- a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java +++ b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java @@ -8,6 +8,7 @@ import static datadog.trace.instrumentation.finatra.FinatraDecorator.DECORATE; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; @@ -51,7 +52,8 @@ public class FinatraInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()) + return nameStartsWith("com.twitter.finatra.") + .and(not(isInterface())) .and(safeExtendsClass(named("com.twitter.finatra.http.internal.routing.Route"))); } diff --git a/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java b/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java index 8b9ca4ff5b..56ad22250b 100644 --- a/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java +++ b/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java @@ -9,6 +9,7 @@ import static datadog.trace.instrumentation.http_url_connection.HttpUrlConnectio import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; @@ -25,6 +26,7 @@ import net.bytebuddy.asm.Advice; import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; +import net.bytebuddy.matcher.ElementMatchers; @AutoService(Instrumenter.class) public class HttpUrlConnectionInstrumentation extends Instrumenter.Default { @@ -35,8 +37,10 @@ public class HttpUrlConnectionInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - // This class is a simple delegator. Skip because it does not update its `connected` field. - return not(named("sun.net.www.protocol.https.HttpsURLConnectionImpl")) + return nameStartsWith("java.net.") + .or(ElementMatchers.nameStartsWith("sun.net")) + // This class is a simple delegator. Skip because it does not update its `connected` field. + .and(not(named("sun.net.www.protocol.https.HttpsURLConnectionImpl"))) .and(safeExtendsClass(named("java.net.HttpURLConnection"))); } diff --git a/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/UrlInstrumentation.java b/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/UrlInstrumentation.java index 83b9af779a..68ea254f58 100644 --- a/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/UrlInstrumentation.java +++ b/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/UrlInstrumentation.java @@ -3,7 +3,10 @@ package datadog.trace.instrumentation.http_url_connection; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static java.util.Collections.singletonMap; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.is; +import static net.bytebuddy.matcher.ElementMatchers.isMethod; +import static net.bytebuddy.matcher.ElementMatchers.isPublic; +import static net.bytebuddy.matcher.ElementMatchers.named; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; diff --git a/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java index 8805ecc9f6..ab7371ff6d 100644 --- a/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java +++ b/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java @@ -7,6 +7,7 @@ import static datadog.trace.instrumentation.playws1.HeadersInjectAdapter.SETTER; import static datadog.trace.instrumentation.playws1.PlayWSClientDecorator.DECORATE; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; @@ -33,8 +34,10 @@ public class PlayWSClientInstrumentation extends Instrumenter.Default { public ElementMatcher typeMatcher() { // CachingAsyncHttpClient rejects overrides to AsyncHandler // It also delegates to another AsyncHttpClient - return safeHasInterface(named("play.shaded.ahc.org.asynchttpclient.AsyncHttpClient")) - .and(not(named("play.api.libs.ws.ahc.cache.CachingAsyncHttpClient"))); + return nameStartsWith("play.") + .and( + safeHasInterface(named("play.shaded.ahc.org.asynchttpclient.AsyncHttpClient")) + .and(not(named("play.api.libs.ws.ahc.cache.CachingAsyncHttpClient")))); } @Override diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java index a712facf74..612b845397 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java +++ b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java @@ -3,6 +3,7 @@ package datadog.trace.instrumentation.ratpack; import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static java.util.Collections.singletonMap; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; @@ -25,7 +26,8 @@ public final class ContinuationInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return safeHasInterface(named("ratpack.exec.internal.Continuation")); + return nameStartsWith("ratpack.exec.") + .and(safeHasInterface(named("ratpack.exec.internal.Continuation"))); } @Override From f70c35842d05f8e97de1028cc88421cf14cde33c Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Fri, 21 Feb 2020 11:36:10 -0800 Subject: [PATCH 08/11] Move matchers to separate package and split matcher classes out --- .../trace/agent/tooling/AgentTooling.java | 2 + .../tooling/ByteBuddyElementMatchers.java | 393 ------------------ .../trace/agent/tooling/Instrumenter.java | 3 +- .../DDCachingPoolStrategy.java | 2 +- .../{ => bytebuddy}/DDLocationStrategy.java | 3 +- .../{ => bytebuddy}/DDTransformers.java | 10 +- .../bytebuddy/matcher/DDElementMatchers.java | 72 ++++ .../matcher/HasSuperMethodMatcher.java | 71 ++++ .../bytebuddy/matcher/SafeErasureMatcher.java | 65 +++ .../matcher/SafeExtendsClassMatcher.java | 29 ++ .../matcher/SafeHasSuperTypeMatcher.java | 135 ++++++ .../bytebuddy/matcher/SafeMatcher.java | 57 +++ .../tooling/context/FieldBackedProvider.java | 2 +- .../agent/test/ResourceLocatingTest.groovy | 2 +- .../agent/tooling/CacheProviderTest.groovy | 6 +- .../ApacheHttpAsyncClientInstrumentation.java | 2 +- ...acheHttpClientRedirectInstrumentation.java | 2 +- .../ApacheHttpClientInstrumentation.java | 2 +- .../aws/v0/RequestInstrumentation.java | 2 +- .../aws/v2/AwsClientInstrumentation.java | 2 +- .../aws/v2/AwsHttpClientInstrumentation.java | 2 +- .../ClassloadingInstrumentation.java | 2 +- .../CouchbaseNetworkInstrumentation.java | 2 +- .../view/DropwizardViewInstrumentation.java | 2 +- .../finatra/FinatraInstrumentation.java | 2 +- .../core/v3_3/CriteriaInstrumentation.java | 2 +- .../core/v3_3/QueryInstrumentation.java | 2 +- .../v3_3/SessionFactoryInstrumentation.java | 2 +- .../core/v3_3/SessionInstrumentation.java | 2 +- .../core/v3_3/TransactionInstrumentation.java | 2 +- .../core/v4_0/CriteriaInstrumentation.java | 2 +- .../core/v4_0/QueryInstrumentation.java | 2 +- .../v4_0/SessionFactoryInstrumentation.java | 2 +- .../core/v4_0/SessionInstrumentation.java | 2 +- .../core/v4_0/TransactionInstrumentation.java | 2 +- .../v4_3/ProcedureCallInstrumentation.java | 2 +- .../core/v4_3/SessionInstrumentation.java | 2 +- .../HttpUrlConnectionInstrumentation.java | 2 +- .../hystrix/HystrixInstrumentation.java | 2 +- .../AbstractExecutorInstrumentation.java | 2 +- .../AkkaForkJoinTaskInstrumentation.java | 2 +- ...syncPropagatingDisableInstrumentation.java | 2 +- .../concurrent/FutureInstrumentation.java | 2 +- .../JavaForkJoinTaskInstrumentation.java | 2 +- .../RunnableCallableInstrumentation.java | 2 +- .../ScalaForkJoinTaskInstrumentation.java | 2 +- .../JaxRsAnnotationsInstrumentation.java | 4 +- ...AbstractRequestContextInstrumentation.java | 2 +- ...ContainerRequestFilterInstrumentation.java | 2 +- .../JaxRsAnnotationsInstrumentation.java | 4 +- .../JaxRsAsyncResponseInstrumentation.java | 2 +- .../v1/JaxRsClientV1Instrumentation.java | 4 +- .../jaxrs/JaxRsClientInstrumentation.java | 4 +- .../jdbc/ConnectionInstrumentation.java | 2 +- .../jdbc/DataSourceInstrumentation.java | 2 +- .../jdbc/DriverInstrumentation.java | 2 +- .../PreparedStatementInstrumentation.java | 2 +- .../jdbc/StatementInstrumentation.java | 2 +- .../jetty8/JettyHandlerInstrumentation.java | 2 +- .../JMSMessageConsumerInstrumentation.java | 2 +- .../JMSMessageListenerInstrumentation.java | 2 +- .../JMSMessageProducerInstrumentation.java | 2 +- .../jsp/JSPInstrumentation.java | 2 +- .../ChannelFutureListenerInstrumentation.java | 2 +- .../NettyChannelPipelineInstrumentation.java | 2 +- .../ChannelFutureListenerInstrumentation.java | 2 +- .../NettyChannelPipelineInstrumentation.java | 2 +- .../play24/PlayInstrumentation.java | 2 +- .../play26/PlayInstrumentation.java | 2 +- .../playws1/PlayWSClientInstrumentation.java | 2 +- .../playws21/PlayWSClientInstrumentation.java | 2 +- .../playws2/PlayWSClientInstrumentation.java | 2 +- .../amqp/RabbitChannelInstrumentation.java | 2 +- .../amqp/RabbitCommandInstrumentation.java | 2 +- .../ratpack/ContinuationInstrumentation.java | 2 +- .../ServerErrorHandlerInstrumentation.java | 2 +- .../core/FluxAndMonoInstrumentation.java | 2 +- .../rmi/client/RmiClientInstrumentation.java | 2 +- .../RmiClientContextInstrumentation.java | 2 +- .../RmiServerContextInstrumentation.java | 2 +- .../rmi/server/RmiServerInstrumentation.java | 2 +- .../servlet2/Servlet2Instrumentation.java | 2 +- .../servlet3/AsyncContextInstrumentation.java | 2 +- .../servlet3/Servlet3Instrumentation.java | 2 +- .../RequestDispatcherInstrumentation.java | 2 +- .../ServletContextInstrumentation.java | 2 +- .../servlet/filter/FilterInstrumentation.java | 2 +- .../http/HttpServletInstrumentation.java | 2 +- .../HttpServletResponseInstrumentation.java | 2 +- .../DefaultWebClientInstrumentation.java | 2 +- .../server/HandlerAdapterInstrumentation.java | 2 +- .../server/RouterFunctionInstrumentation.java | 2 +- .../HandlerAdapterInstrumentation.java | 2 +- .../TraceAnnotationsInstrumentation.java | 2 +- .../TraceConfigInstrumentation.java | 6 +- .../twilio/TwilioAsyncInstrumentation.java | 2 +- .../twilio/TwilioSyncInstrumentation.java | 2 +- 97 files changed, 535 insertions(+), 493 deletions(-) delete mode 100644 dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ByteBuddyElementMatchers.java rename dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/{ => bytebuddy}/DDCachingPoolStrategy.java (99%) rename dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/{ => bytebuddy}/DDLocationStrategy.java (93%) rename dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/{ => bytebuddy}/DDTransformers.java (73%) create mode 100644 dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/DDElementMatchers.java create mode 100644 dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcher.java create mode 100644 dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeErasureMatcher.java create mode 100644 dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcher.java create mode 100644 dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasSuperTypeMatcher.java create mode 100644 dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcher.java diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentTooling.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentTooling.java index e6b302ae89..bd98181a71 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentTooling.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentTooling.java @@ -1,5 +1,7 @@ package datadog.trace.agent.tooling; +import datadog.trace.agent.tooling.bytebuddy.DDCachingPoolStrategy; +import datadog.trace.agent.tooling.bytebuddy.DDLocationStrategy; import datadog.trace.bootstrap.WeakMap; /** diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ByteBuddyElementMatchers.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ByteBuddyElementMatchers.java deleted file mode 100644 index 4270c2d1d1..0000000000 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ByteBuddyElementMatchers.java +++ /dev/null @@ -1,393 +0,0 @@ -package datadog.trace.agent.tooling; - -import static net.bytebuddy.matcher.ElementMatchers.hasSignature; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; -import lombok.extern.slf4j.Slf4j; -import net.bytebuddy.build.HashCodeAndEqualsPlugin; -import net.bytebuddy.description.method.MethodDescription; -import net.bytebuddy.description.type.TypeDefinition; -import net.bytebuddy.description.type.TypeDescription; -import net.bytebuddy.description.type.TypeList; -import net.bytebuddy.matcher.ElementMatcher; -import net.bytebuddy.matcher.ElementMatchers; - -/** - * This class provides some custom ByteBuddy element matchers to use when applying instrumentation - */ -@Slf4j -public class ByteBuddyElementMatchers { - - public static ElementMatcher.Junction safeExtendsClass( - final ElementMatcher matcher) { - return new SafeExtendsClassMatcher<>(new SafeErasureMatcher<>(matcher)); - } - - public static ElementMatcher.Junction safeHasInterface( - final ElementMatcher matcher) { - return new SafeHasSuperTypeMatcher<>(new SafeErasureMatcher<>(matcher), true); - } - - /** - * Matches any type description that declares a super type that matches the provided matcher. - * Exceptions during matching process are logged and ignored. - * - * @param matcher The type to be checked for being a super type of the matched type. - * @param The type of the matched object. - * @return A matcher that matches any type description that declares a super type that matches the - * provided matcher. - * @see ElementMatchers#hasSuperType(net.bytebuddy.matcher.ElementMatcher) - */ - public static ElementMatcher.Junction safeHasSuperType( - final ElementMatcher matcher) { - return new SafeHasSuperTypeMatcher<>(new SafeErasureMatcher<>(matcher), false); - } - - /** - * Wraps another matcher to assure that an element is not matched in case that the matching causes - * an {@link Exception}. Logs exception if it happens. - * - * @param matcher The element matcher that potentially throws an exception. - * @param The type of the matched object. - * @return A matcher that returns {@code false} in case that the given matcher throws an - * exception. - */ - public static ElementMatcher.Junction failSafe( - final ElementMatcher matcher, final String description) { - return new SafeMatcher<>(matcher, false, description); - } - - private static TypeDescription safeAsErasure(final TypeDefinition typeDefinition) { - try { - return typeDefinition.asErasure(); - } catch (final Exception e) { - log.debug( - "{} trying to get erasure for target {}: {}", - e.getClass().getSimpleName(), - safeTypeDefinitionName(typeDefinition), - e.getMessage()); - return null; - } - } - - /** - * An element matcher that matches a super type. This is different from {@link - * net.bytebuddy.matcher.HasSuperTypeMatcher} in the following way: - * - *
    - *
  • Exceptions are logged - *
  • When exception happens the rest of the inheritance subtree is discarded (since ByteBuddy - * cannot load/parse type information for it) but search in other subtrees continues - *
- * - *

This is useful because this allows us to see when matcher's check is not complete (i.e. part - * of it fails), at the same time it makes best effort instead of failing quickly (like {@code - * failSafe(hasSuperType(...))} does) which means the code is more resilient to classpath - * inconsistencies - * - * @param The type of the matched entity. - * @see net.bytebuddy.matcher.HasSuperTypeMatcher - */ - @HashCodeAndEqualsPlugin.Enhance - private static class SafeHasSuperTypeMatcher - extends ElementMatcher.Junction.AbstractBase { - - /** The matcher to apply to any super type of the matched type. */ - private final ElementMatcher matcher; - - private final boolean interfacesOnly; - /** - * Creates a new matcher for a super type. - * - * @param matcher The matcher to apply to any super type of the matched type. - */ - public SafeHasSuperTypeMatcher( - final ElementMatcher matcher, - final boolean interfacesOnly) { - this.matcher = matcher; - this.interfacesOnly = interfacesOnly; - } - - @Override - public boolean matches(final T target) { - final Set checkedInterfaces = new HashSet<>(); - // We do not use foreach loop and iterator interface here because we need to catch exceptions - // in {@code getSuperClass} calls - TypeDefinition typeDefinition = target; - while (typeDefinition != null) { - if (((!interfacesOnly || typeDefinition.isInterface()) - && matcher.matches(typeDefinition.asGenericType())) - || hasInterface(typeDefinition, checkedInterfaces)) { - return true; - } - typeDefinition = safeGetSuperClass(typeDefinition); - } - return false; - } - - /** - * Matches a type's interfaces against the provided matcher. - * - * @param typeDefinition The type for which to check all implemented interfaces. - * @param checkedInterfaces The interfaces that have already been checked. - * @return {@code true} if any interface matches the supplied matcher. - */ - private boolean hasInterface( - final TypeDefinition typeDefinition, final Set checkedInterfaces) { - for (final TypeDefinition interfaceType : safeGetInterfaces(typeDefinition)) { - final TypeDescription erasure = safeAsErasure(interfaceType); - if (erasure != null) { - if (checkedInterfaces.add(interfaceType.asErasure()) - && (matcher.matches(interfaceType.asGenericType()) - || hasInterface(interfaceType, checkedInterfaces))) { - return true; - } - } - } - return false; - } - - /** - * TypeDefinition#getInterfaces() produces an interator which may throw an exception during - * iteration if an interface is absent from the classpath. - * - *

This method exists to allow getting interfaces even if the lookup on one fails. - */ - private List safeGetInterfaces(final TypeDefinition typeDefinition) { - final List interfaceTypes = new ArrayList<>(); - try { - final Iterator interfaceIter = - typeDefinition.getInterfaces().iterator(); - while (interfaceIter.hasNext()) { - interfaceTypes.add(interfaceIter.next()); - } - } catch (final Exception e) { - log.debug( - "{} trying to get interfaces for target {}: {}", - e.getClass().getSimpleName(), - safeTypeDefinitionName(typeDefinition), - e.getMessage()); - } - return interfaceTypes; - } - - @Override - public String toString() { - return "safeHasSuperType(" + matcher + ")"; - } - } - - /** - * An element matcher that matches its argument's {@link TypeDescription.Generic} raw type against - * the given matcher for a {@link TypeDescription}. As a wildcard does not define an erasure, a - * runtime exception is thrown when this matcher is applied to a wildcard. - * - *

Catches and logs exception if it was thrown when getting erasure, returning false. - * - * @param The type of the matched entity. - * @see net.bytebuddy.matcher.ErasureMatcher - */ - @HashCodeAndEqualsPlugin.Enhance - private static class SafeErasureMatcher - extends ElementMatcher.Junction.AbstractBase { - - /** The matcher to apply to the raw type of the matched element. */ - private final ElementMatcher matcher; - - /** - * Creates a new erasure matcher. - * - * @param matcher The matcher to apply to the raw type. - */ - public SafeErasureMatcher(final ElementMatcher matcher) { - this.matcher = matcher; - } - - @Override - public boolean matches(final T target) { - final TypeDescription erasure = safeAsErasure(target); - if (erasure == null) { - return false; - } else { - // We would like matcher exceptions to propagate - return matcher.matches(erasure); - } - } - - @Override - public String toString() { - return "safeErasure(" + matcher + ")"; - } - } - - /** - * A fail-safe matcher catches exceptions that are thrown by a delegate matcher and returns an - * alternative value. - * - *

Logs exception if it was thrown. - * - * @param The type of the matched entity. - * @see net.bytebuddy.matcher.FailSafeMatcher - */ - @HashCodeAndEqualsPlugin.Enhance - private static class SafeMatcher extends ElementMatcher.Junction.AbstractBase { - - /** The delegate matcher that might throw an exception. */ - private final ElementMatcher matcher; - - /** The fallback value in case of an exception. */ - private final boolean fallback; - - /** The text description to log if exception happens. */ - private final String description; - - /** - * Creates a new fail-safe element matcher. - * - * @param matcher The delegate matcher that might throw an exception. - * @param fallback The fallback value in case of an exception. - * @param description Descriptive string to log along with exception. - */ - public SafeMatcher( - final ElementMatcher matcher, final boolean fallback, final String description) { - this.matcher = matcher; - this.fallback = fallback; - this.description = description; - } - - @Override - public boolean matches(final T target) { - try { - return matcher.matches(target); - } catch (final Exception e) { - log.debug(description, e); - return fallback; - } - } - - @Override - public String toString() { - return "safeMatcher(try(" + matcher + ") or " + fallback + ")"; - } - } - - private static String safeTypeDefinitionName(final TypeDefinition td) { - try { - return td.getTypeName(); - } catch (final IllegalStateException ex) { - final String message = ex.getMessage(); - if (message.startsWith("Cannot resolve type description for ")) { - return message.replace("Cannot resolve type description for ", ""); - } else { - return "?"; - } - } - } - - // TODO: add javadoc - public static ElementMatcher.Junction hasSuperMethod( - final ElementMatcher matcher) { - return new HasSuperMethodMatcher<>(matcher); - } - - // TODO: add javadoc - @HashCodeAndEqualsPlugin.Enhance - private static class HasSuperMethodMatcher - extends ElementMatcher.Junction.AbstractBase { - - private final ElementMatcher matcher; - - public HasSuperMethodMatcher(final ElementMatcher matcher) { - this.matcher = matcher; - } - - @Override - public boolean matches(final MethodDescription target) { - if (target.isConstructor()) { - return false; - } - final Junction signatureMatcher = hasSignature(target.asSignatureToken()); - TypeDefinition declaringType = target.getDeclaringType(); - final Set checkedInterfaces = new HashSet<>(); - - while (declaringType != null) { - for (final MethodDescription methodDescription : declaringType.getDeclaredMethods()) { - if (signatureMatcher.matches(methodDescription) && matcher.matches(methodDescription)) { - return true; - } - } - if (matchesInterface(declaringType.getInterfaces(), signatureMatcher, checkedInterfaces)) { - return true; - } - declaringType = safeGetSuperClass(declaringType); - } - return false; - } - - private boolean matchesInterface( - final TypeList.Generic interfaces, - final Junction signatureMatcher, - final Set checkedInterfaces) { - for (final TypeDefinition type : interfaces) { - if (!checkedInterfaces.contains(type)) { - checkedInterfaces.add(type); - for (final MethodDescription methodDescription : type.getDeclaredMethods()) { - if (signatureMatcher.matches(methodDescription) && matcher.matches(methodDescription)) { - return true; - } - } - if (matchesInterface(type.getInterfaces(), signatureMatcher, checkedInterfaces)) { - return true; - } - } - } - return false; - } - - @Override - public String toString() { - return "hasSuperMethodMatcher(" + matcher + ")"; - } - } - - private static TypeDefinition safeGetSuperClass(final TypeDefinition typeDefinition) { - try { - return typeDefinition.getSuperClass(); - } catch (final Exception e) { - log.debug( - "{} trying to get super class for target {}: {}", - e.getClass().getSimpleName(), - safeTypeDefinitionName(typeDefinition), - e.getMessage()); - return null; - } - } - - private static class SafeExtendsClassMatcher - extends ElementMatcher.Junction.AbstractBase { - - private final ElementMatcher matcher; - - public SafeExtendsClassMatcher(final ElementMatcher matcher) { - this.matcher = matcher; - } - - @Override - public boolean matches(final T target) { - // We do not use foreach loop and iterator interface here because we need to catch exceptions - // in {@code getSuperClass} calls - TypeDefinition typeDefinition = target; - while (typeDefinition != null) { - if (matcher.matches(typeDefinition.asGenericType())) { - return true; - } - typeDefinition = safeGetSuperClass(typeDefinition); - } - return false; - } - } -} diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java index 9f4975f10d..26550e07d0 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java @@ -1,11 +1,12 @@ package datadog.trace.agent.tooling; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.failSafe; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.failSafe; import static net.bytebuddy.matcher.ElementMatchers.any; import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; +import datadog.trace.agent.tooling.bytebuddy.DDTransformers; import datadog.trace.agent.tooling.context.FieldBackedProvider; import datadog.trace.agent.tooling.context.InstrumentationContextProvider; import datadog.trace.agent.tooling.context.NoopContextProvider; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/DDCachingPoolStrategy.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDCachingPoolStrategy.java similarity index 99% rename from dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/DDCachingPoolStrategy.java rename to dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDCachingPoolStrategy.java index 1d4cccdb35..7d01e81b5a 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/DDCachingPoolStrategy.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDCachingPoolStrategy.java @@ -1,4 +1,4 @@ -package datadog.trace.agent.tooling; +package datadog.trace.agent.tooling.bytebuddy; import static net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/DDLocationStrategy.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDLocationStrategy.java similarity index 93% rename from dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/DDLocationStrategy.java rename to dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDLocationStrategy.java index 7a9ce42179..a3ec740f9d 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/DDLocationStrategy.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDLocationStrategy.java @@ -1,5 +1,6 @@ -package datadog.trace.agent.tooling; +package datadog.trace.agent.tooling.bytebuddy; +import datadog.trace.agent.tooling.Utils; import java.util.ArrayList; import java.util.List; import net.bytebuddy.agent.builder.AgentBuilder; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/DDTransformers.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDTransformers.java similarity index 73% rename from dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/DDTransformers.java rename to dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDTransformers.java index fe4bc25d32..e50ca8d3c9 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/DDTransformers.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDTransformers.java @@ -1,4 +1,4 @@ -package datadog.trace.agent.tooling; +package datadog.trace.agent.tooling.bytebuddy; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.TypeConstantAdjustment; @@ -12,10 +12,10 @@ public class DDTransformers { new AgentBuilder.Transformer() { @Override public DynamicType.Builder transform( - DynamicType.Builder builder, - TypeDescription typeDescription, - ClassLoader classLoader, - JavaModule javaModule) { + final DynamicType.Builder builder, + final TypeDescription typeDescription, + final ClassLoader classLoader, + final JavaModule javaModule) { return builder.visit(TypeConstantAdjustment.INSTANCE); } }; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/DDElementMatchers.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/DDElementMatchers.java new file mode 100644 index 0000000000..5f3eb899cc --- /dev/null +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/DDElementMatchers.java @@ -0,0 +1,72 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher; + +import lombok.extern.slf4j.Slf4j; +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.description.type.TypeDefinition; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; +import net.bytebuddy.matcher.ElementMatchers; + +/** + * This class provides some custom ByteBuddy element matchers to use when applying instrumentation + */ +@Slf4j +public class DDElementMatchers { + + public static ElementMatcher.Junction safeExtendsClass( + final ElementMatcher matcher) { + return new SafeExtendsClassMatcher<>(new SafeErasureMatcher<>(matcher)); + } + + public static ElementMatcher.Junction safeHasInterface( + final ElementMatcher matcher) { + return new SafeHasSuperTypeMatcher<>(new SafeErasureMatcher<>(matcher), true); + } + + /** + * Matches any type description that declares a super type that matches the provided matcher. + * Exceptions during matching process are logged and ignored. + * + * @param matcher The type to be checked for being a super type of the matched type. + * @param The type of the matched object. + * @return A matcher that matches any type description that declares a super type that matches the + * provided matcher. + * @see ElementMatchers#hasSuperType(net.bytebuddy.matcher.ElementMatcher) + */ + public static ElementMatcher.Junction safeHasSuperType( + final ElementMatcher matcher) { + return new SafeHasSuperTypeMatcher<>(new SafeErasureMatcher<>(matcher), false); + } + // TODO: add javadoc + public static ElementMatcher.Junction hasSuperMethod( + final ElementMatcher matcher) { + return new HasSuperMethodMatcher<>(matcher); + } + + /** + * Wraps another matcher to assure that an element is not matched in case that the matching causes + * an {@link Exception}. Logs exception if it happens. + * + * @param matcher The element matcher that potentially throws an exception. + * @param The type of the matched object. + * @return A matcher that returns {@code false} in case that the given matcher throws an + * exception. + */ + public static ElementMatcher.Junction failSafe( + final ElementMatcher matcher, final String description) { + return new SafeMatcher<>(matcher, false, description); + } + + static String safeTypeDefinitionName(final TypeDefinition td) { + try { + return td.getTypeName(); + } catch (final IllegalStateException ex) { + final String message = ex.getMessage(); + if (message.startsWith("Cannot resolve type description for ")) { + return message.replace("Cannot resolve type description for ", ""); + } else { + return "?"; + } + } + } +} diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcher.java new file mode 100644 index 0000000000..51ff6e81f4 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcher.java @@ -0,0 +1,71 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher; + +import static net.bytebuddy.matcher.ElementMatchers.hasSignature; + +import java.util.HashSet; +import java.util.Set; +import net.bytebuddy.build.HashCodeAndEqualsPlugin; +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.description.type.TypeDefinition; +import net.bytebuddy.description.type.TypeList; +import net.bytebuddy.matcher.ElementMatcher; + +// TODO: add javadoc +@HashCodeAndEqualsPlugin.Enhance +class HasSuperMethodMatcher + extends ElementMatcher.Junction.AbstractBase { + + private final ElementMatcher matcher; + + public HasSuperMethodMatcher(final ElementMatcher matcher) { + this.matcher = matcher; + } + + @Override + public boolean matches(final MethodDescription target) { + if (target.isConstructor()) { + return false; + } + final Junction signatureMatcher = hasSignature(target.asSignatureToken()); + TypeDefinition declaringType = target.getDeclaringType(); + final Set checkedInterfaces = new HashSet<>(); + + while (declaringType != null) { + for (final MethodDescription methodDescription : declaringType.getDeclaredMethods()) { + if (signatureMatcher.matches(methodDescription) && matcher.matches(methodDescription)) { + return true; + } + } + if (matchesInterface(declaringType.getInterfaces(), signatureMatcher, checkedInterfaces)) { + return true; + } + declaringType = DDElementMatchers.safeGetSuperClass(declaringType); + } + return false; + } + + private boolean matchesInterface( + final TypeList.Generic interfaces, + final Junction signatureMatcher, + final Set checkedInterfaces) { + for (final TypeDefinition type : interfaces) { + if (!checkedInterfaces.contains(type)) { + checkedInterfaces.add(type); + for (final MethodDescription methodDescription : type.getDeclaredMethods()) { + if (signatureMatcher.matches(methodDescription) && matcher.matches(methodDescription)) { + return true; + } + } + if (matchesInterface(type.getInterfaces(), signatureMatcher, checkedInterfaces)) { + return true; + } + } + } + return false; + } + + @Override + public String toString() { + return "hasSuperMethodMatcher(" + matcher + ")"; + } +} diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeErasureMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeErasureMatcher.java new file mode 100644 index 0000000000..29430da3ed --- /dev/null +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeErasureMatcher.java @@ -0,0 +1,65 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher; + +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeTypeDefinitionName; + +import lombok.extern.slf4j.Slf4j; +import net.bytebuddy.build.HashCodeAndEqualsPlugin; +import net.bytebuddy.description.type.TypeDefinition; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; + +/** + * An element matcher that matches its argument's {@link TypeDescription.Generic} raw type against + * the given matcher for a {@link TypeDescription}. As a wildcard does not define an erasure, a + * runtime exception is thrown when this matcher is applied to a wildcard. + * + *

Catches and logs exception if it was thrown when getting erasure, returning false. + * + * @param The type of the matched entity. + * @see net.bytebuddy.matcher.ErasureMatcher + */ +@Slf4j +@HashCodeAndEqualsPlugin.Enhance +class SafeErasureMatcher extends ElementMatcher.Junction.AbstractBase { + + /** The matcher to apply to the raw type of the matched element. */ + private final ElementMatcher matcher; + + /** + * Creates a new erasure matcher. + * + * @param matcher The matcher to apply to the raw type. + */ + public SafeErasureMatcher(final ElementMatcher matcher) { + this.matcher = matcher; + } + + @Override + public boolean matches(final T target) { + final TypeDescription erasure = safeAsErasure(target); + if (erasure == null) { + return false; + } else { + // We would like matcher exceptions to propagate + return matcher.matches(erasure); + } + } + + @Override + public String toString() { + return "safeErasure(" + matcher + ")"; + } + + static TypeDescription safeAsErasure(final TypeDefinition typeDefinition) { + try { + return typeDefinition.asErasure(); + } catch (final Exception e) { + log.debug( + "{} trying to get erasure for target {}: {}", + e.getClass().getSimpleName(), + safeTypeDefinitionName(typeDefinition), + e.getMessage()); + return null; + } + } +} diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcher.java new file mode 100644 index 0000000000..73249a9347 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcher.java @@ -0,0 +1,29 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher; + +import net.bytebuddy.description.type.TypeDefinition; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; + +class SafeExtendsClassMatcher + extends ElementMatcher.Junction.AbstractBase { + + private final ElementMatcher matcher; + + public SafeExtendsClassMatcher(final ElementMatcher matcher) { + this.matcher = matcher; + } + + @Override + public boolean matches(final T target) { + // We do not use foreach loop and iterator interface here because we need to catch exceptions + // in {@code getSuperClass} calls + TypeDefinition typeDefinition = target; + while (typeDefinition != null) { + if (matcher.matches(typeDefinition.asGenericType())) { + return true; + } + typeDefinition = DDElementMatchers.safeGetSuperClass(typeDefinition); + } + return false; + } +} diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasSuperTypeMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasSuperTypeMatcher.java new file mode 100644 index 0000000000..c3a0d74f66 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasSuperTypeMatcher.java @@ -0,0 +1,135 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher; + +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeTypeDefinitionName; +import static datadog.trace.agent.tooling.bytebuddy.matcher.SafeErasureMatcher.safeAsErasure; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import lombok.extern.slf4j.Slf4j; +import net.bytebuddy.build.HashCodeAndEqualsPlugin; +import net.bytebuddy.description.type.TypeDefinition; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; + +/** + * An element matcher that matches a super type. This is different from {@link + * net.bytebuddy.matcher.HasSuperTypeMatcher} in the following way: + * + *

    + *
  • Exceptions are logged + *
  • When exception happens the rest of the inheritance subtree is discarded (since ByteBuddy + * cannot load/parse type information for it) but search in other subtrees continues + *
+ * + *

This is useful because this allows us to see when matcher's check is not complete (i.e. part + * of it fails), at the same time it makes best effort instead of failing quickly (like {@code + * failSafe(hasSuperType(...))} does) which means the code is more resilient to classpath + * inconsistencies + * + * @param The type of the matched entity. + * @see net.bytebuddy.matcher.HasSuperTypeMatcher + */ +@Slf4j +@HashCodeAndEqualsPlugin.Enhance +class SafeHasSuperTypeMatcher + extends ElementMatcher.Junction.AbstractBase { + + /** The matcher to apply to any super type of the matched type. */ + private final ElementMatcher matcher; + + private final boolean interfacesOnly; + /** + * Creates a new matcher for a super type. + * + * @param matcher The matcher to apply to any super type of the matched type. + */ + public SafeHasSuperTypeMatcher( + final ElementMatcher matcher, final boolean interfacesOnly) { + this.matcher = matcher; + this.interfacesOnly = interfacesOnly; + } + + @Override + public boolean matches(final T target) { + final Set checkedInterfaces = new HashSet<>(); + // We do not use foreach loop and iterator interface here because we need to catch exceptions + // in {@code getSuperClass} calls + TypeDefinition typeDefinition = target; + while (typeDefinition != null) { + if (((!interfacesOnly || typeDefinition.isInterface()) + && matcher.matches(typeDefinition.asGenericType())) + || hasInterface(typeDefinition, checkedInterfaces)) { + return true; + } + typeDefinition = safeGetSuperClass(typeDefinition); + } + return false; + } + + /** + * Matches a type's interfaces against the provided matcher. + * + * @param typeDefinition The type for which to check all implemented interfaces. + * @param checkedInterfaces The interfaces that have already been checked. + * @return {@code true} if any interface matches the supplied matcher. + */ + private boolean hasInterface( + final TypeDefinition typeDefinition, final Set checkedInterfaces) { + for (final TypeDefinition interfaceType : safeGetInterfaces(typeDefinition)) { + final TypeDescription erasure = safeAsErasure(interfaceType); + if (erasure != null) { + if (checkedInterfaces.add(interfaceType.asErasure()) + && (matcher.matches(interfaceType.asGenericType()) + || hasInterface(interfaceType, checkedInterfaces))) { + return true; + } + } + } + return false; + } + + /** + * TypeDefinition#getInterfaces() produces an interator which may throw an exception during + * iteration if an interface is absent from the classpath. + * + *

This method exists to allow getting interfaces even if the lookup on one fails. + */ + private List safeGetInterfaces(final TypeDefinition typeDefinition) { + final List interfaceTypes = new ArrayList<>(); + try { + final Iterator interfaceIter = + typeDefinition.getInterfaces().iterator(); + while (interfaceIter.hasNext()) { + interfaceTypes.add(interfaceIter.next()); + } + } catch (final Exception e) { + log.debug( + "{} trying to get interfaces for target {}: {}", + e.getClass().getSimpleName(), + safeTypeDefinitionName(typeDefinition), + e.getMessage()); + } + return interfaceTypes; + } + + static TypeDefinition safeGetSuperClass(final TypeDefinition typeDefinition) { + try { + return typeDefinition.getSuperClass(); + } catch (final Exception e) { + log.debug( + "{} trying to get super class for target {}: {}", + e.getClass().getSimpleName(), + safeTypeDefinitionName(typeDefinition), + e.getMessage()); + return null; + } + } + + @Override + public String toString() { + return "safeHasSuperType(" + matcher + ")"; + } +} diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcher.java new file mode 100644 index 0000000000..e539bb28d5 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcher.java @@ -0,0 +1,57 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher; + +import lombok.extern.slf4j.Slf4j; +import net.bytebuddy.build.HashCodeAndEqualsPlugin; +import net.bytebuddy.matcher.ElementMatcher; + +/** + * A fail-safe matcher catches exceptions that are thrown by a delegate matcher and returns an + * alternative value. + * + *

Logs exception if it was thrown. + * + * @param The type of the matched entity. + * @see net.bytebuddy.matcher.FailSafeMatcher + */ +@Slf4j +@HashCodeAndEqualsPlugin.Enhance +class SafeMatcher extends ElementMatcher.Junction.AbstractBase { + + /** The delegate matcher that might throw an exception. */ + private final ElementMatcher matcher; + + /** The fallback value in case of an exception. */ + private final boolean fallback; + + /** The text description to log if exception happens. */ + private final String description; + + /** + * Creates a new fail-safe element matcher. + * + * @param matcher The delegate matcher that might throw an exception. + * @param fallback The fallback value in case of an exception. + * @param description Descriptive string to log along with exception. + */ + public SafeMatcher( + final ElementMatcher matcher, final boolean fallback, final String description) { + this.matcher = matcher; + this.fallback = fallback; + this.description = description; + } + + @Override + public boolean matches(final T target) { + try { + return matcher.matches(target); + } catch (final Exception e) { + log.debug(description, e); + return fallback; + } + } + + @Override + public String toString() { + return "safeMatcher(try(" + matcher + ") or " + fallback + ")"; + } +} diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/context/FieldBackedProvider.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/context/FieldBackedProvider.java index e3dce626f2..522e8e6cf9 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/context/FieldBackedProvider.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/context/FieldBackedProvider.java @@ -1,7 +1,7 @@ package datadog.trace.agent.tooling.context; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; import static datadog.trace.agent.tooling.ClassLoaderMatcher.BOOTSTRAP_CLASSLOADER; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasSuperType; import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ResourceLocatingTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ResourceLocatingTest.groovy index 6b4a33c9d2..ff95afd609 100644 --- a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ResourceLocatingTest.groovy +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ResourceLocatingTest.groovy @@ -1,6 +1,6 @@ package datadog.trace.agent.test -import datadog.trace.agent.tooling.DDLocationStrategy +import datadog.trace.agent.tooling.bytebuddy.DDLocationStrategy import datadog.trace.util.test.DDSpecification import net.bytebuddy.agent.builder.AgentBuilder import spock.lang.Shared diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/CacheProviderTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/CacheProviderTest.groovy index 73d0a1fe19..204c1538b5 100644 --- a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/CacheProviderTest.groovy +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/CacheProviderTest.groovy @@ -1,5 +1,6 @@ package datadog.trace.agent.tooling +import datadog.trace.agent.tooling.bytebuddy.DDCachingPoolStrategy import datadog.trace.util.test.DDSpecification import net.bytebuddy.description.type.TypeDescription import net.bytebuddy.dynamic.ClassFileLocator @@ -204,7 +205,7 @@ class CacheProviderTest extends DDSpecification { } static newClassLoader() { - return new URLClassLoader([] as URL[], (ClassLoader)null) + return new URLClassLoader([] as URL[], (ClassLoader) null) } static newLocator() { @@ -215,7 +216,8 @@ class CacheProviderTest extends DDSpecification { } @Override - void close() throws IOException {} + void close() throws IOException { + } } } } diff --git a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java index 0f09146013..167408bbfa 100644 --- a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java +++ b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.apachehttpasyncclient; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpClientRedirectInstrumentation.java b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpClientRedirectInstrumentation.java index 6d1fcdaf0e..6124f1ad38 100644 --- a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpClientRedirectInstrumentation.java +++ b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpClientRedirectInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.apachehttpasyncclient; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/ApacheHttpClientInstrumentation.java b/dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/ApacheHttpClientInstrumentation.java index 26d75907c0..f94525959b 100644 --- a/dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/ApacheHttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/ApacheHttpClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.apachehttpclient; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java index 30ae28e54f..3efca1c94b 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.aws.v0; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java index 05e170d605..abe1df2eb0 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.aws.v2; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java index 709e730391..83d5ae5989 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.aws.v2; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; 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 087f5c1c63..006867c100 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 @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.classloading; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isProtected; diff --git a/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java b/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java index 41c336c4b0..c47d05e312 100644 --- a/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java +++ b/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.couchbase.client; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; diff --git a/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java b/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java index a9fa6841c8..eee079b08e 100644 --- a/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java +++ b/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.dropwizard.view; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java index bbd9d76b63..2b1385ac45 100644 --- a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java +++ b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.finatra; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/CriteriaInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/CriteriaInstrumentation.java index 195cfc4cac..7ebe2e5e1c 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/CriteriaInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/CriteriaInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/QueryInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/QueryInstrumentation.java index 63ac466880..6046cb2c36 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/QueryInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/QueryInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionFactoryInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionFactoryInstrumentation.java index b70c15f046..576c474593 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionFactoryInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionFactoryInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static java.util.Collections.singletonMap; diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionInstrumentation.java index 8021599141..355f66028e 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static datadog.trace.instrumentation.hibernate.SessionMethodUtils.SCOPE_ONLY_METHODS; import static net.bytebuddy.matcher.ElementMatchers.isInterface; diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/TransactionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/TransactionInstrumentation.java index 6fe2471bb3..dca5a0671c 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/TransactionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/TransactionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/CriteriaInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/CriteriaInstrumentation.java index c9cf90e9bd..88d5c0896b 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/CriteriaInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/CriteriaInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/QueryInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/QueryInstrumentation.java index fc7a9c6996..64f65b7621 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/QueryInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/QueryInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionFactoryInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionFactoryInstrumentation.java index 4e0ad3cc02..34fbb10543 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionFactoryInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionFactoryInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static java.util.Collections.singletonMap; diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionInstrumentation.java index f95612d8b5..493e8226ce 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static datadog.trace.instrumentation.hibernate.SessionMethodUtils.SCOPE_ONLY_METHODS; import static net.bytebuddy.matcher.ElementMatchers.isInterface; diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/TransactionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/TransactionInstrumentation.java index cd5425952d..f7a0101066 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/TransactionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/TransactionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/ProcedureCallInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/ProcedureCallInstrumentation.java index a35576b82e..5c86cbfaf4 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/ProcedureCallInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/ProcedureCallInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_3; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/SessionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/SessionInstrumentation.java index d58dbdea38..a588f57ace 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/SessionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/SessionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_3; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java b/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java index 56ad22250b..487557dc87 100644 --- a/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java +++ b/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.http_url_connection; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixInstrumentation.java b/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixInstrumentation.java index 7939b2846b..8c2f6f98be 100644 --- a/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixInstrumentation.java +++ b/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hystrix; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.instrumentation.hystrix.HystrixDecorator.DECORATE; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AbstractExecutorInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AbstractExecutorInstrumentation.java index a7f52c27ae..f0d1ba63ed 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AbstractExecutorInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AbstractExecutorInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AkkaForkJoinTaskInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AkkaForkJoinTaskInstrumentation.java index 26380bc20e..de090aab89 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AkkaForkJoinTaskInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AkkaForkJoinTaskInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AsyncPropagatingDisableInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AsyncPropagatingDisableInstrumentation.java index 334ccf081f..c53712c7b6 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AsyncPropagatingDisableInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AsyncPropagatingDisableInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan; diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java index 11e67055b4..4aec13e1e6 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/JavaForkJoinTaskInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/JavaForkJoinTaskInstrumentation.java index 1ac50be415..d75ad08ee2 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/JavaForkJoinTaskInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/JavaForkJoinTaskInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/RunnableCallableInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/RunnableCallableInstrumentation.java index e17bfc8b94..dd131432f3 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/RunnableCallableInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/RunnableCallableInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ScalaForkJoinTaskInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ScalaForkJoinTaskInstrumentation.java index f0c9fabf8d..dd3257c862 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ScalaForkJoinTaskInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ScalaForkJoinTaskInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-1/src/main/java/datadog/trace/instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-1/src/main/java/datadog/trace/instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java index 95c2421b02..6250c78dbe 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-1/src/main/java/datadog/trace/instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-1/src/main/java/datadog/trace/instrumentation/jaxrs1/JaxRsAnnotationsInstrumentation.java @@ -1,8 +1,8 @@ package datadog.trace.instrumentation.jaxrs1; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.hasSuperMethod; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasSuperMethod; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasSuperType; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/AbstractRequestContextInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/AbstractRequestContextInstrumentation.java index 22339c70cb..eeefd496be 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/AbstractRequestContextInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/AbstractRequestContextInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jaxrs2; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/ContainerRequestFilterInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/ContainerRequestFilterInstrumentation.java index 5601dbc7c0..f0985009f8 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/ContainerRequestFilterInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/ContainerRequestFilterInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jaxrs2; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java index 58e5811d75..30843bfa9d 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAnnotationsInstrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.jaxrs2; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.hasSuperMethod; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasSuperMethod; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasSuperType; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAsyncResponseInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAsyncResponseInstrumentation.java index b5e3a380f8..72400df73b 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAsyncResponseInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAsyncResponseInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jaxrs2; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.instrumentation.jaxrs2.JaxRsAnnotationsDecorator.DECORATE; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/instrumentation/jax-rs-client-1.1/src/main/java/datadog/trace/instrumentation/jaxrs/v1/JaxRsClientV1Instrumentation.java b/dd-java-agent/instrumentation/jax-rs-client-1.1/src/main/java/datadog/trace/instrumentation/jaxrs/v1/JaxRsClientV1Instrumentation.java index 5ad1787f30..6947dfc490 100644 --- a/dd-java-agent/instrumentation/jax-rs-client-1.1/src/main/java/datadog/trace/instrumentation/jaxrs/v1/JaxRsClientV1Instrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-client-1.1/src/main/java/datadog/trace/instrumentation/jaxrs/v1/JaxRsClientV1Instrumentation.java @@ -1,8 +1,8 @@ package datadog.trace.instrumentation.jaxrs.v1; import static datadog.trace.agent.decorator.HttpServerDecorator.DD_SPAN_ATTRIBUTE; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/jax-rs-client-2.0/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-client-2.0/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java index ce2b8dd453..8972ed1175 100644 --- a/dd-java-agent/instrumentation/jax-rs-client-2.0/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-client-2.0/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.jaxrs; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java index 7b2b2fc670..5fef9d4846 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java index 0fdc695dc0..5b12b209c3 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DriverInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DriverInstrumentation.java index 53c3d017e2..d56f9a049a 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DriverInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DriverInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java index 0e4f413b33..7dcaf961c9 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.jdbc.JDBCDecorator.DECORATE; diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java index 25e4782bd0..cf6f15340c 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.jdbc.JDBCDecorator.DECORATE; diff --git a/dd-java-agent/instrumentation/jetty-8/src/main/java/datadog/trace/instrumentation/jetty8/JettyHandlerInstrumentation.java b/dd-java-agent/instrumentation/jetty-8/src/main/java/datadog/trace/instrumentation/jetty8/JettyHandlerInstrumentation.java index 551c728e63..eef4a0841e 100644 --- a/dd-java-agent/instrumentation/jetty-8/src/main/java/datadog/trace/instrumentation/jetty8/JettyHandlerInstrumentation.java +++ b/dd-java-agent/instrumentation/jetty-8/src/main/java/datadog/trace/instrumentation/jetty8/JettyHandlerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jetty8; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isPublic; diff --git a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java index 0cb8777531..d60a411822 100644 --- a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java +++ b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jms; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageListenerInstrumentation.java b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageListenerInstrumentation.java index 1347d056b4..9c54e26150 100644 --- a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageListenerInstrumentation.java +++ b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageListenerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jms; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageProducerInstrumentation.java b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageProducerInstrumentation.java index 201be7e3b4..60f129337e 100644 --- a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageProducerInstrumentation.java +++ b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageProducerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jms; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java b/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java index 1385c1622a..9ab2b8fe68 100644 --- a/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java +++ b/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jsp; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.jsp.JSPDecorator.DECORATE; diff --git a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java index bb1282dd3a..31eb92fa81 100644 --- a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.netty40; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static java.util.Collections.singletonMap; diff --git a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java index 22dcc87d78..11193bb054 100644 --- a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.netty40; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java index 97a61b6f27..6d9eeedbfa 100644 --- a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.netty41; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static java.util.Collections.singletonMap; diff --git a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java index b8903651cf..31474d0041 100644 --- a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.netty41; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play24/PlayInstrumentation.java b/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play24/PlayInstrumentation.java index 2bd873f4b0..4315957eed 100644 --- a/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play24/PlayInstrumentation.java +++ b/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play24/PlayInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.play24; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; diff --git a/dd-java-agent/instrumentation/play-2.6/src/main/java/datadog/trace/instrumentation/play26/PlayInstrumentation.java b/dd-java-agent/instrumentation/play-2.6/src/main/java/datadog/trace/instrumentation/play26/PlayInstrumentation.java index 8c0c24ac70..e994799f0e 100644 --- a/dd-java-agent/instrumentation/play-2.6/src/main/java/datadog/trace/instrumentation/play26/PlayInstrumentation.java +++ b/dd-java-agent/instrumentation/play-2.6/src/main/java/datadog/trace/instrumentation/play26/PlayInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.play26; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; diff --git a/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java index ab7371ff6d..9a18756f1a 100644 --- a/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java +++ b/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.playws1; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.playws1.HeadersInjectAdapter.SETTER; diff --git a/dd-java-agent/instrumentation/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java index 04adcfd040..8082a05cd6 100644 --- a/dd-java-agent/instrumentation/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java +++ b/dd-java-agent/instrumentation/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.playws21; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.playws21.HeadersInjectAdapter.SETTER; diff --git a/dd-java-agent/instrumentation/play-ws-2/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws-2/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java index 8ac3b77473..a4b9f518a6 100644 --- a/dd-java-agent/instrumentation/play-ws-2/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java +++ b/dd-java-agent/instrumentation/play-ws-2/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.playws2; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.playws2.HeadersInjectAdapter.SETTER; diff --git a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitChannelInstrumentation.java b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitChannelInstrumentation.java index 63c0278f22..39d7a647ac 100644 --- a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitChannelInstrumentation.java +++ b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitChannelInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rabbitmq.amqp; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan; diff --git a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitCommandInstrumentation.java b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitCommandInstrumentation.java index 9ea2907480..b8fb532cb6 100644 --- a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitCommandInstrumentation.java +++ b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitCommandInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rabbitmq.amqp; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.instrumentation.rabbitmq.amqp.RabbitDecorator.DECORATE; import static java.util.Collections.singletonMap; diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java index 612b845397..a6b44cb45c 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java +++ b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.ratpack; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java index d95992f630..4a0c553ffd 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java +++ b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.ratpack; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; diff --git a/dd-java-agent/instrumentation/reactor-core-3.1/src/main/java/datadog/trace/instrumentation/reactor/core/FluxAndMonoInstrumentation.java b/dd-java-agent/instrumentation/reactor-core-3.1/src/main/java/datadog/trace/instrumentation/reactor/core/FluxAndMonoInstrumentation.java index 75c1f287ae..b58b464caf 100644 --- a/dd-java-agent/instrumentation/reactor-core-3.1/src/main/java/datadog/trace/instrumentation/reactor/core/FluxAndMonoInstrumentation.java +++ b/dd-java-agent/instrumentation/reactor-core-3.1/src/main/java/datadog/trace/instrumentation/reactor/core/FluxAndMonoInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.reactor.core; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/client/RmiClientInstrumentation.java b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/client/RmiClientInstrumentation.java index 645e7210c7..bbee6a185a 100644 --- a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/client/RmiClientInstrumentation.java +++ b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/client/RmiClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rmi.client; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java index 2f48f050fc..08b0fdeaaf 100644 --- a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java +++ b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rmi.context.client; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.instrumentation.rmi.context.ContextPropagator.PROPAGATOR; import static java.util.Collections.singletonMap; diff --git a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/server/RmiServerContextInstrumentation.java b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/server/RmiServerContextInstrumentation.java index 3cc6cb2d4d..aa4413085a 100644 --- a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/server/RmiServerContextInstrumentation.java +++ b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/server/RmiServerContextInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rmi.context.server; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.instrumentation.rmi.context.ContextPropagator.DD_CONTEXT_CALL_ID; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; diff --git a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/server/RmiServerInstrumentation.java b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/server/RmiServerInstrumentation.java index 68f09d720b..c20210aa90 100644 --- a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/server/RmiServerInstrumentation.java +++ b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/server/RmiServerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rmi.server; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.bootstrap.instrumentation.rmi.ThreadLocalContext.THREAD_LOCAL_CONTEXT; diff --git a/dd-java-agent/instrumentation/servlet/request-2/src/main/java/datadog/trace/instrumentation/servlet2/Servlet2Instrumentation.java b/dd-java-agent/instrumentation/servlet/request-2/src/main/java/datadog/trace/instrumentation/servlet2/Servlet2Instrumentation.java index 8490d7a237..a3f1e2994e 100644 --- a/dd-java-agent/instrumentation/servlet/request-2/src/main/java/datadog/trace/instrumentation/servlet2/Servlet2Instrumentation.java +++ b/dd-java-agent/instrumentation/servlet/request-2/src/main/java/datadog/trace/instrumentation/servlet2/Servlet2Instrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.servlet2; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasSuperType; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isPublic; diff --git a/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/AsyncContextInstrumentation.java b/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/AsyncContextInstrumentation.java index cccde3a85c..2bba9da497 100644 --- a/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/AsyncContextInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/AsyncContextInstrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.servlet3; import static datadog.trace.agent.decorator.HttpServerDecorator.DD_SPAN_ATTRIBUTE; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.instrumentation.servlet3.HttpServletRequestInjectAdapter.SETTER; import static java.util.Collections.singletonMap; diff --git a/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/Servlet3Instrumentation.java b/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/Servlet3Instrumentation.java index 42c982b169..1a9fa58ff6 100644 --- a/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/Servlet3Instrumentation.java +++ b/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/Servlet3Instrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.servlet3; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasSuperType; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isPublic; diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java index 3c520bafca..763468e982 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.servlet.dispatcher; import static datadog.trace.agent.decorator.HttpServerDecorator.DD_SPAN_ATTRIBUTE; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/ServletContextInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/ServletContextInstrumentation.java index 5d6aa9eed6..ed741c0451 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/ServletContextInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/ServletContextInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.servlet.dispatcher; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isPublic; diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java index 357ad29496..9c3ecf4dae 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.servlet.filter; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java index 4674cb7ec8..b9ca3e60c8 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.servlet.http; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java index 26a70d0047..ff827122e1 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.servlet.http; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; diff --git a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/client/DefaultWebClientInstrumentation.java b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/client/DefaultWebClientInstrumentation.java index d65723ecfd..74344f80a5 100644 --- a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/client/DefaultWebClientInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/client/DefaultWebClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.springwebflux.client; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; diff --git a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/HandlerAdapterInstrumentation.java b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/HandlerAdapterInstrumentation.java index 0bdfc20121..9c1b1f69fb 100644 --- a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/HandlerAdapterInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/HandlerAdapterInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.springwebflux.server; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; diff --git a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/RouterFunctionInstrumentation.java b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/RouterFunctionInstrumentation.java index 784091456f..8a4c6dca6a 100644 --- a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/RouterFunctionInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/RouterFunctionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.springwebflux.server; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isMethod; diff --git a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java index a9f79608f5..99490b5cec 100644 --- a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.springweb; import static datadog.trace.agent.decorator.HttpServerDecorator.DD_SPAN_ATTRIBUTE; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; diff --git a/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceAnnotationsInstrumentation.java b/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceAnnotationsInstrumentation.java index b557891110..9fa6ad989c 100644 --- a/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceAnnotationsInstrumentation.java +++ b/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceAnnotationsInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.trace_annotation; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasSuperType; import static datadog.trace.instrumentation.trace_annotation.TraceConfigInstrumentation.PACKAGE_CLASS_NAME_REGEX; import static net.bytebuddy.matcher.ElementMatchers.declaresMethod; import static net.bytebuddy.matcher.ElementMatchers.is; 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 5be4930288..e9217453da 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 @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.trace_annotation; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasSuperType; import static net.bytebuddy.matcher.ElementMatchers.named; import com.google.auto.service.AutoService; @@ -46,8 +46,8 @@ public class TraceConfigInstrumentation implements Instrumenter { private final Map> classMethodsToTrace; - private boolean validateConfigString(String configString) { - for (String segment : configString.split(";")) { + private boolean validateConfigString(final String configString) { + for (final String segment : configString.split(";")) { if (!segment.trim().matches(CONFIG_FORMAT)) { return false; } diff --git a/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioAsyncInstrumentation.java b/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioAsyncInstrumentation.java index c6ee8011fe..d5e24e01fe 100644 --- a/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioAsyncInstrumentation.java +++ b/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioAsyncInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.twilio; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.twilio.TwilioClientDecorator.DECORATE; diff --git a/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioSyncInstrumentation.java b/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioSyncInstrumentation.java index 58223e17a1..86c88bd124 100644 --- a/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioSyncInstrumentation.java +++ b/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioSyncInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.twilio; -import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.twilio.TwilioClientDecorator.DECORATE; From bd82166b581c0bfe813f3e13b2c64cc7c9806a73 Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Fri, 21 Feb 2020 16:08:46 -0800 Subject: [PATCH 09/11] Rename methods that don't require disambiguation. --- .../tooling/bytebuddy/matcher/DDElementMatchers.java | 6 +++--- .../bytebuddy/matcher/HasSuperMethodMatcher.java | 3 ++- ...{SafeMatcher.java => LoggingFailSafeMatcher.java} | 4 ++-- .../bytebuddy/matcher/SafeExtendsClassMatcher.java | 4 +++- .../ApacheHttpAsyncClientInstrumentation.java | 4 ++-- .../ApacheHttpClientRedirectInstrumentation.java | 4 ++-- .../ApacheHttpClientInstrumentation.java | 4 ++-- .../aws/v0/RequestInstrumentation.java | 4 ++-- .../aws/v2/AwsClientInstrumentation.java | 5 ++--- .../aws/v2/AwsHttpClientInstrumentation.java | 4 ++-- .../classloading/ClassloadingInstrumentation.java | 4 ++-- .../client/CouchbaseNetworkInstrumentation.java | 4 ++-- .../view/DropwizardViewInstrumentation.java | 4 ++-- .../finatra/FinatraInstrumentation.java | 4 ++-- .../hibernate/core/v3_3/CriteriaInstrumentation.java | 4 ++-- .../hibernate/core/v3_3/QueryInstrumentation.java | 4 ++-- .../core/v3_3/SessionFactoryInstrumentation.java | 6 +++--- .../hibernate/core/v3_3/SessionInstrumentation.java | 8 ++++---- .../core/v3_3/TransactionInstrumentation.java | 4 ++-- .../hibernate/core/v4_0/CriteriaInstrumentation.java | 4 ++-- .../hibernate/core/v4_0/QueryInstrumentation.java | 4 ++-- .../core/v4_0/SessionFactoryInstrumentation.java | 4 ++-- .../hibernate/core/v4_0/SessionInstrumentation.java | 8 ++++---- .../core/v4_0/TransactionInstrumentation.java | 4 ++-- .../core/v4_3/ProcedureCallInstrumentation.java | 4 ++-- .../hibernate/core/v4_3/SessionInstrumentation.java | 6 +++--- .../HttpUrlConnectionInstrumentation.java | 4 ++-- .../hystrix/HystrixInstrumentation.java | 4 ++-- .../concurrent/AbstractExecutorInstrumentation.java | 4 ++-- .../concurrent/AkkaForkJoinTaskInstrumentation.java | 4 ++-- .../AsyncPropagatingDisableInstrumentation.java | 4 ++-- .../java/concurrent/FutureInstrumentation.java | 4 ++-- .../concurrent/JavaForkJoinTaskInstrumentation.java | 4 ++-- .../concurrent/RunnableCallableInstrumentation.java | 4 ++-- .../concurrent/ScalaForkJoinTaskInstrumentation.java | 4 ++-- .../AbstractRequestContextInstrumentation.java | 4 ++-- .../ContainerRequestFilterInstrumentation.java | 4 ++-- .../jaxrs2/JaxRsAsyncResponseInstrumentation.java | 4 ++-- .../jaxrs/v1/JaxRsClientV1Instrumentation.java | 12 +++++------- .../jaxrs/JaxRsClientInstrumentation.java | 8 ++++---- .../jdbc/ConnectionInstrumentation.java | 6 +++--- .../jdbc/DataSourceInstrumentation.java | 4 ++-- .../instrumentation/jdbc/DriverInstrumentation.java | 4 ++-- .../jdbc/PreparedStatementInstrumentation.java | 4 ++-- .../jdbc/StatementInstrumentation.java | 4 ++-- .../jetty8/JettyHandlerInstrumentation.java | 4 ++-- .../jms/JMSMessageConsumerInstrumentation.java | 4 ++-- .../jms/JMSMessageListenerInstrumentation.java | 4 ++-- .../jms/JMSMessageProducerInstrumentation.java | 4 ++-- .../instrumentation/jsp/JSPInstrumentation.java | 4 ++-- .../ChannelFutureListenerInstrumentation.java | 5 ++--- .../netty40/NettyChannelPipelineInstrumentation.java | 4 ++-- .../ChannelFutureListenerInstrumentation.java | 5 ++--- .../netty41/NettyChannelPipelineInstrumentation.java | 4 ++-- .../instrumentation/play24/PlayInstrumentation.java | 4 ++-- .../instrumentation/play26/PlayInstrumentation.java | 4 ++-- .../playws1/PlayWSClientInstrumentation.java | 4 ++-- .../playws21/PlayWSClientInstrumentation.java | 4 ++-- .../playws2/PlayWSClientInstrumentation.java | 4 ++-- .../rabbitmq/amqp/RabbitChannelInstrumentation.java | 4 ++-- .../rabbitmq/amqp/RabbitCommandInstrumentation.java | 4 ++-- .../ratpack/ContinuationInstrumentation.java | 4 ++-- .../ratpack/ServerErrorHandlerInstrumentation.java | 4 ++-- .../reactor/core/FluxAndMonoInstrumentation.java | 4 ++-- .../rmi/client/RmiClientInstrumentation.java | 4 ++-- .../client/RmiClientContextInstrumentation.java | 4 ++-- .../server/RmiServerContextInstrumentation.java | 4 ++-- .../rmi/server/RmiServerInstrumentation.java | 4 ++-- .../servlet3/AsyncContextInstrumentation.java | 4 ++-- .../dispatcher/RequestDispatcherInstrumentation.java | 4 ++-- .../dispatcher/ServletContextInstrumentation.java | 4 ++-- .../servlet/filter/FilterInstrumentation.java | 4 ++-- .../servlet/http/HttpServletInstrumentation.java | 4 ++-- .../http/HttpServletResponseInstrumentation.java | 5 ++--- .../client/DefaultWebClientInstrumentation.java | 5 ++--- .../server/HandlerAdapterInstrumentation.java | 4 ++-- .../server/RouterFunctionInstrumentation.java | 4 ++-- .../springweb/HandlerAdapterInstrumentation.java | 4 ++-- .../twilio/TwilioAsyncInstrumentation.java | 4 ++-- .../twilio/TwilioSyncInstrumentation.java | 4 ++-- 80 files changed, 174 insertions(+), 178 deletions(-) rename dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/{SafeMatcher.java => LoggingFailSafeMatcher.java} (93%) diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/DDElementMatchers.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/DDElementMatchers.java index 5f3eb899cc..0762349620 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/DDElementMatchers.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/DDElementMatchers.java @@ -13,12 +13,12 @@ import net.bytebuddy.matcher.ElementMatchers; @Slf4j public class DDElementMatchers { - public static ElementMatcher.Junction safeExtendsClass( + public static ElementMatcher.Junction extendsClass( final ElementMatcher matcher) { return new SafeExtendsClassMatcher<>(new SafeErasureMatcher<>(matcher)); } - public static ElementMatcher.Junction safeHasInterface( + public static ElementMatcher.Junction hasInterface( final ElementMatcher matcher) { return new SafeHasSuperTypeMatcher<>(new SafeErasureMatcher<>(matcher), true); } @@ -54,7 +54,7 @@ public class DDElementMatchers { */ public static ElementMatcher.Junction failSafe( final ElementMatcher matcher, final String description) { - return new SafeMatcher<>(matcher, false, description); + return new LoggingFailSafeMatcher<>(matcher, false, description); } static String safeTypeDefinitionName(final TypeDefinition td) { diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcher.java index 51ff6e81f4..e0dd0ae66a 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcher.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcher.java @@ -1,5 +1,6 @@ package datadog.trace.agent.tooling.bytebuddy.matcher; +import static datadog.trace.agent.tooling.bytebuddy.matcher.SafeHasSuperTypeMatcher.safeGetSuperClass; import static net.bytebuddy.matcher.ElementMatchers.hasSignature; import java.util.HashSet; @@ -39,7 +40,7 @@ class HasSuperMethodMatcher if (matchesInterface(declaringType.getInterfaces(), signatureMatcher, checkedInterfaces)) { return true; } - declaringType = DDElementMatchers.safeGetSuperClass(declaringType); + declaringType = safeGetSuperClass(declaringType); } return false; } diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/LoggingFailSafeMatcher.java similarity index 93% rename from dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcher.java rename to dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/LoggingFailSafeMatcher.java index e539bb28d5..3d7552dff3 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcher.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/LoggingFailSafeMatcher.java @@ -15,7 +15,7 @@ import net.bytebuddy.matcher.ElementMatcher; */ @Slf4j @HashCodeAndEqualsPlugin.Enhance -class SafeMatcher extends ElementMatcher.Junction.AbstractBase { +class LoggingFailSafeMatcher extends ElementMatcher.Junction.AbstractBase { /** The delegate matcher that might throw an exception. */ private final ElementMatcher matcher; @@ -33,7 +33,7 @@ class SafeMatcher extends ElementMatcher.Junction.AbstractBase { * @param fallback The fallback value in case of an exception. * @param description Descriptive string to log along with exception. */ - public SafeMatcher( + public LoggingFailSafeMatcher( final ElementMatcher matcher, final boolean fallback, final String description) { this.matcher = matcher; this.fallback = fallback; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcher.java index 73249a9347..9438be49e8 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcher.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcher.java @@ -1,5 +1,7 @@ package datadog.trace.agent.tooling.bytebuddy.matcher; +import static datadog.trace.agent.tooling.bytebuddy.matcher.SafeHasSuperTypeMatcher.safeGetSuperClass; + import net.bytebuddy.description.type.TypeDefinition; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -22,7 +24,7 @@ class SafeExtendsClassMatcher if (matcher.matches(typeDefinition.asGenericType())) { return true; } - typeDefinition = DDElementMatchers.safeGetSuperClass(typeDefinition); + typeDefinition = safeGetSuperClass(typeDefinition); } return false; } diff --git a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java index 167408bbfa..181b83bd14 100644 --- a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java +++ b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.apachehttpasyncclient; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -40,7 +40,7 @@ public class ApacheHttpAsyncClientInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return safeHasInterface(named("org.apache.http.nio.client.HttpAsyncClient")); + return hasInterface(named("org.apache.http.nio.client.HttpAsyncClient")); } @Override diff --git a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpClientRedirectInstrumentation.java b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpClientRedirectInstrumentation.java index 6124f1ad38..0205f961f0 100644 --- a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpClientRedirectInstrumentation.java +++ b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpClientRedirectInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.apachehttpasyncclient; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -31,7 +31,7 @@ public class ApacheHttpClientRedirectInstrumentation extends Instrumenter.Defaul @Override public ElementMatcher typeMatcher() { - return safeHasInterface(named("org.apache.http.client.RedirectStrategy")); + return hasInterface(named("org.apache.http.client.RedirectStrategy")); } @Override diff --git a/dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/ApacheHttpClientInstrumentation.java b/dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/ApacheHttpClientInstrumentation.java index f94525959b..26fae65cdc 100644 --- a/dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/ApacheHttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/ApacheHttpClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.apachehttpclient; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -44,7 +44,7 @@ public class ApacheHttpClientInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.apache.http.client.HttpClient"))); + return not(isInterface()).and(hasInterface(named("org.apache.http.client.HttpClient"))); } @Override diff --git a/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java index 3efca1c94b..26bda37872 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/RequestInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.aws.v0; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -28,7 +28,7 @@ public final class RequestInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { return nameStartsWith("com.amazonaws.") - .and(safeExtendsClass(named("com.amazonaws.AmazonWebServiceRequest"))); + .and(extendsClass(named("com.amazonaws.AmazonWebServiceRequest"))); } @Override diff --git a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java index abe1df2eb0..ae60adc8b5 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.aws.v2; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -26,8 +26,7 @@ public final class AwsClientInstrumentation extends AbstractAwsClientInstrumenta public ElementMatcher typeMatcher() { return nameStartsWith("software.amazon.awssdk.") .and(not(isInterface())) - .and( - safeHasInterface(named("software.amazon.awssdk.core.client.builder.SdkClientBuilder"))); + .and(hasInterface(named("software.amazon.awssdk.core.client.builder.SdkClientBuilder"))); } @Override diff --git a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java index 83d5ae5989..0d3db6540d 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsHttpClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.aws.v2; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -31,7 +31,7 @@ public final class AwsHttpClientInstrumentation extends AbstractAwsClientInstrum public ElementMatcher typeMatcher() { return nameStartsWith("software.amazon.awssdk.") .and( - safeExtendsClass( + extendsClass( named( "software.amazon.awssdk.core.internal.http.pipeline.stages.MakeHttpRequestStage") .or( 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 006867c100..0078c2bd2e 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 @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.classloading; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isProtected; @@ -44,7 +44,7 @@ public final class ClassloadingInstrumentation extends Instrumenter.Default { return not(named("java.lang.ClassLoader")) .and(not(named("com.ibm.oti.vm.BootstrapClassLoader"))) .and(not(named("datadog.trace.bootstrap.AgentClassLoader"))) - .and(safeExtendsClass(named("java.lang.ClassLoader"))); + .and(extendsClass(named("java.lang.ClassLoader"))); } @Override diff --git a/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java b/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java index c47d05e312..09b9b1f3ae 100644 --- a/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java +++ b/dd-java-agent/instrumentation/couchbase-2.6/src/main/java/datadog/trace/instrumentation/couchbase/client/CouchbaseNetworkInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.couchbase.client; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; @@ -34,7 +34,7 @@ public class CouchbaseNetworkInstrumentation extends Instrumenter.Default { // Exact class because private fields are used return nameStartsWith("com.couchbase.client.") .and( - safeExtendsClass(named("com.couchbase.client.core.endpoint.AbstractGenericHandler"))); + extendsClass(named("com.couchbase.client.core.endpoint.AbstractGenericHandler"))); } @Override diff --git a/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java b/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java index eee079b08e..1c9d131d77 100644 --- a/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java +++ b/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.dropwizard.view; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -34,7 +34,7 @@ public final class DropwizardViewInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("io.dropwizard.views.ViewRenderer"))); + return not(isInterface()).and(hasInterface(named("io.dropwizard.views.ViewRenderer"))); } @Override diff --git a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java index 2b1385ac45..6f3e068d98 100644 --- a/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java +++ b/dd-java-agent/instrumentation/finatra-2.9/src/main/java/datadog/trace/instrumentation/finatra/FinatraInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.finatra; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -54,7 +54,7 @@ public class FinatraInstrumentation extends Instrumenter.Default { public ElementMatcher typeMatcher() { return nameStartsWith("com.twitter.finatra.") .and(not(isInterface())) - .and(safeExtendsClass(named("com.twitter.finatra.http.internal.routing.Route"))); + .and(extendsClass(named("com.twitter.finatra.http.internal.routing.Route"))); } @Override diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/CriteriaInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/CriteriaInstrumentation.java index 7ebe2e5e1c..73067a20ad 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/CriteriaInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/CriteriaInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -31,7 +31,7 @@ public class CriteriaInstrumentation extends AbstractHibernateInstrumentation { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.Criteria"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.Criteria"))); } @Override diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/QueryInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/QueryInstrumentation.java index 6046cb2c36..6a9b80514b 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/QueryInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/QueryInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; @@ -33,7 +33,7 @@ public class QueryInstrumentation extends AbstractHibernateInstrumentation { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.Query"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.Query"))); } @Override diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionFactoryInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionFactoryInstrumentation.java index 576c474593..7c7813b2aa 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionFactoryInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionFactoryInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static java.util.Collections.singletonMap; @@ -40,7 +40,7 @@ public class SessionFactoryInstrumentation extends AbstractHibernateInstrumentat @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.SessionFactory"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.SessionFactory"))); } @Override @@ -53,7 +53,7 @@ public class SessionFactoryInstrumentation extends AbstractHibernateInstrumentat returns( named("org.hibernate.Session") .or(named("org.hibernate.StatelessSession")) - .or(safeHasInterface(named("org.hibernate.Session"))))), + .or(hasInterface(named("org.hibernate.Session"))))), SessionFactoryInstrumentation.class.getName() + "$SessionFactoryAdvice"); } diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionInstrumentation.java index 355f66028e..2a58a8cf3e 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/SessionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static datadog.trace.instrumentation.hibernate.SessionMethodUtils.SCOPE_ONLY_METHODS; import static net.bytebuddy.matcher.ElementMatchers.isInterface; @@ -50,7 +50,7 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation { public ElementMatcher typeMatcher() { return not(isInterface()) .and( - safeHasInterface( + hasInterface( named("org.hibernate.Session").or(named("org.hibernate.StatelessSession")))); } @@ -99,11 +99,11 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation { SessionInstrumentation.class.getName() + "$GetTransactionAdvice"); transformers.put( - isMethod().and(returns(safeHasInterface(named("org.hibernate.Query")))), + isMethod().and(returns(hasInterface(named("org.hibernate.Query")))), SessionInstrumentation.class.getName() + "$GetQueryAdvice"); transformers.put( - isMethod().and(returns(safeHasInterface(named("org.hibernate.Criteria")))), + isMethod().and(returns(hasInterface(named("org.hibernate.Criteria")))), SessionInstrumentation.class.getName() + "$GetCriteriaAdvice"); return transformers; diff --git a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/TransactionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/TransactionInstrumentation.java index dca5a0671c..da42d003d3 100644 --- a/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/TransactionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-3.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v3_3/TransactionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v3_3; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -31,7 +31,7 @@ public class TransactionInstrumentation extends AbstractHibernateInstrumentation @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.Transaction"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.Transaction"))); } @Override diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/CriteriaInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/CriteriaInstrumentation.java index 88d5c0896b..e160da2ee7 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/CriteriaInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/CriteriaInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -31,7 +31,7 @@ public class CriteriaInstrumentation extends AbstractHibernateInstrumentation { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.Criteria"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.Criteria"))); } @Override diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/QueryInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/QueryInstrumentation.java index 64f65b7621..e0ce08126d 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/QueryInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/QueryInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; @@ -33,7 +33,7 @@ public class QueryInstrumentation extends AbstractHibernateInstrumentation { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.Query"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.Query"))); } @Override diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionFactoryInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionFactoryInstrumentation.java index 34fbb10543..70ca64df9d 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionFactoryInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionFactoryInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static java.util.Collections.singletonMap; @@ -34,7 +34,7 @@ public class SessionFactoryInstrumentation extends AbstractHibernateInstrumentat @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.SessionFactory"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.SessionFactory"))); } @Override diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionInstrumentation.java index 493e8226ce..f7e33dcf7b 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/SessionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.instrumentation.hibernate.HibernateDecorator.DECORATOR; import static datadog.trace.instrumentation.hibernate.SessionMethodUtils.SCOPE_ONLY_METHODS; import static net.bytebuddy.matcher.ElementMatchers.isInterface; @@ -46,7 +46,7 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.SharedSessionContract"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.SharedSessionContract"))); } @Override @@ -93,11 +93,11 @@ public class SessionInstrumentation extends AbstractHibernateInstrumentation { SessionInstrumentation.class.getName() + "$GetTransactionAdvice"); transformers.put( - isMethod().and(returns(safeHasInterface(named("org.hibernate.Query")))), + isMethod().and(returns(hasInterface(named("org.hibernate.Query")))), SessionInstrumentation.class.getName() + "$GetQueryAdvice"); transformers.put( - isMethod().and(returns(safeHasInterface(named("org.hibernate.Criteria")))), + isMethod().and(returns(hasInterface(named("org.hibernate.Criteria")))), SessionInstrumentation.class.getName() + "$GetCriteriaAdvice"); return transformers; diff --git a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/TransactionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/TransactionInstrumentation.java index f7a0101066..57d58bda7d 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/TransactionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.0/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_0/TransactionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_0; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -31,7 +31,7 @@ public class TransactionInstrumentation extends AbstractHibernateInstrumentation @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.Transaction"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.Transaction"))); } @Override diff --git a/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/ProcedureCallInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/ProcedureCallInstrumentation.java index 5c86cbfaf4..ee97c66dc5 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/ProcedureCallInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/ProcedureCallInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_3; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -47,7 +47,7 @@ public class ProcedureCallInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.procedure.ProcedureCall"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.procedure.ProcedureCall"))); } @Override diff --git a/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/SessionInstrumentation.java b/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/SessionInstrumentation.java index a588f57ace..991dd466d5 100644 --- a/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/SessionInstrumentation.java +++ b/dd-java-agent/instrumentation/hibernate/core-4.3/src/main/java/datadog/trace/instrumentation/hibernate/core/v4_3/SessionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hibernate.core.v4_3; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -53,7 +53,7 @@ public class SessionInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("org.hibernate.SharedSessionContract"))); + return not(isInterface()).and(hasInterface(named("org.hibernate.SharedSessionContract"))); } @Override @@ -61,7 +61,7 @@ public class SessionInstrumentation extends Instrumenter.Default { final Map, String> transformers = new HashMap<>(); transformers.put( - isMethod().and(returns(safeHasInterface(named("org.hibernate.procedure.ProcedureCall")))), + isMethod().and(returns(hasInterface(named("org.hibernate.procedure.ProcedureCall")))), SessionInstrumentation.class.getName() + "$GetProcedureCallAdvice"); return transformers; diff --git a/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java b/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java index 487557dc87..0c160dbdb6 100644 --- a/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java +++ b/dd-java-agent/instrumentation/http-url-connection/src/main/java/datadog/trace/instrumentation/http_url_connection/HttpUrlConnectionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.http_url_connection; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -41,7 +41,7 @@ public class HttpUrlConnectionInstrumentation extends Instrumenter.Default { .or(ElementMatchers.nameStartsWith("sun.net")) // This class is a simple delegator. Skip because it does not update its `connected` field. .and(not(named("sun.net.www.protocol.https.HttpsURLConnectionImpl"))) - .and(safeExtendsClass(named("java.net.HttpURLConnection"))); + .and(extendsClass(named("java.net.HttpURLConnection"))); } @Override diff --git a/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixInstrumentation.java b/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixInstrumentation.java index 8c2f6f98be..7629cc09ad 100644 --- a/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixInstrumentation.java +++ b/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.hystrix; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.instrumentation.hystrix.HystrixDecorator.DECORATE; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; @@ -29,7 +29,7 @@ public class HystrixInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return safeExtendsClass( + return extendsClass( named("com.netflix.hystrix.HystrixCommand") .or(named("com.netflix.hystrix.HystrixObservableCommand"))); } diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AbstractExecutorInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AbstractExecutorInstrumentation.java index f0d1ba63ed..8b18b8c3a7 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AbstractExecutorInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AbstractExecutorInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; @@ -129,7 +129,7 @@ public abstract class AbstractExecutorInstrumentation extends Instrumenter.Defau }); } return matcher.and( - safeHasInterface(named(Executor.class.getName()))); // Apply expensive matcher last. + hasInterface(named(Executor.class.getName()))); // Apply expensive matcher last. } @Override diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AkkaForkJoinTaskInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AkkaForkJoinTaskInstrumentation.java index de090aab89..864683faaa 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AkkaForkJoinTaskInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AkkaForkJoinTaskInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; @@ -44,7 +44,7 @@ public final class AkkaForkJoinTaskInstrumentation extends Instrumenter.Default @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeExtendsClass(named(TASK_CLASS_NAME))); + return not(isInterface()).and(extendsClass(named(TASK_CLASS_NAME))); } @Override diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AsyncPropagatingDisableInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AsyncPropagatingDisableInstrumentation.java index c53712c7b6..d759a6224a 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AsyncPropagatingDisableInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/AsyncPropagatingDisableInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan; @@ -36,7 +36,7 @@ public final class AsyncPropagatingDisableInstrumentation implements Instrumente new ImmutableMap.Builder< ElementMatcher, ElementMatcher>() - .put(safeExtendsClass(named("rx.Scheduler$Worker")), named("schedulePeriodically")) + .put(extendsClass(named("rx.Scheduler$Worker")), named("schedulePeriodically")) .build(); @Override diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java index 4aec13e1e6..731aaaed1d 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -90,7 +90,7 @@ public final class FutureInstrumentation extends Instrumenter.Default { return whitelisted; } }) - .and(safeHasInterface(named(Future.class.getName()))); // Apply expensive matcher last. + .and(hasInterface(named(Future.class.getName()))); // Apply expensive matcher last. } @Override diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/JavaForkJoinTaskInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/JavaForkJoinTaskInstrumentation.java index d75ad08ee2..39e4e2b099 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/JavaForkJoinTaskInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/JavaForkJoinTaskInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -41,7 +41,7 @@ public final class JavaForkJoinTaskInstrumentation extends Instrumenter.Default @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeExtendsClass(named(ForkJoinTask.class.getName()))); + return not(isInterface()).and(extendsClass(named(ForkJoinTask.class.getName()))); } @Override diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/RunnableCallableInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/RunnableCallableInstrumentation.java index dd131432f3..407574f49e 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/RunnableCallableInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/RunnableCallableInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -35,7 +35,7 @@ public final class RunnableCallableInstrumentation extends Instrumenter.Default @Override public ElementMatcher typeMatcher() { return not(isInterface()) - .and(safeHasInterface(named(Runnable.class.getName()).or(named(Callable.class.getName())))); + .and(hasInterface(named(Runnable.class.getName()).or(named(Callable.class.getName())))); } @Override diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ScalaForkJoinTaskInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ScalaForkJoinTaskInstrumentation.java index dd3257c862..d7e3c94c8c 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ScalaForkJoinTaskInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ScalaForkJoinTaskInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.java.concurrent; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -43,7 +43,7 @@ public final class ScalaForkJoinTaskInstrumentation extends Instrumenter.Default @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeExtendsClass(named(TASK_CLASS_NAME))); + return not(isInterface()).and(extendsClass(named(TASK_CLASS_NAME))); } @Override diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/AbstractRequestContextInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/AbstractRequestContextInstrumentation.java index eeefd496be..7fa7742847 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/AbstractRequestContextInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/AbstractRequestContextInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jaxrs2; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -31,7 +31,7 @@ public abstract class AbstractRequestContextInstrumentation extends Instrumenter @Override public ElementMatcher typeMatcher() { return not(isInterface()) - .and(safeHasInterface(named("javax.ws.rs.container.ContainerRequestContext"))); + .and(hasInterface(named("javax.ws.rs.container.ContainerRequestContext"))); } @Override diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/ContainerRequestFilterInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/ContainerRequestFilterInstrumentation.java index f0985009f8..fa5d6a6f32 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/ContainerRequestFilterInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/ContainerRequestFilterInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jaxrs2; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -33,7 +33,7 @@ public class ContainerRequestFilterInstrumentation extends Instrumenter.Default @Override public ElementMatcher typeMatcher() { return not(isInterface()) - .and(safeHasInterface(named("javax.ws.rs.container.ContainerRequestFilter"))); + .and(hasInterface(named("javax.ws.rs.container.ContainerRequestFilter"))); } @Override diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAsyncResponseInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAsyncResponseInstrumentation.java index 72400df73b..df365d1dcb 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAsyncResponseInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/main/java/datadog/trace/instrumentation/jaxrs2/JaxRsAsyncResponseInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jaxrs2; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.instrumentation.jaxrs2.JaxRsAnnotationsDecorator.DECORATE; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -35,7 +35,7 @@ public final class JaxRsAsyncResponseInstrumentation extends Instrumenter.Defaul @Override public ElementMatcher typeMatcher() { - return safeHasInterface(named("javax.ws.rs.container.AsyncResponse")); + return hasInterface(named("javax.ws.rs.container.AsyncResponse")); } @Override diff --git a/dd-java-agent/instrumentation/jax-rs-client-1.1/src/main/java/datadog/trace/instrumentation/jaxrs/v1/JaxRsClientV1Instrumentation.java b/dd-java-agent/instrumentation/jax-rs-client-1.1/src/main/java/datadog/trace/instrumentation/jaxrs/v1/JaxRsClientV1Instrumentation.java index 6947dfc490..6ff82b98a2 100644 --- a/dd-java-agent/instrumentation/jax-rs-client-1.1/src/main/java/datadog/trace/instrumentation/jaxrs/v1/JaxRsClientV1Instrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-client-1.1/src/main/java/datadog/trace/instrumentation/jaxrs/v1/JaxRsClientV1Instrumentation.java @@ -1,8 +1,8 @@ package datadog.trace.instrumentation.jaxrs.v1; import static datadog.trace.agent.decorator.HttpServerDecorator.DD_SPAN_ATTRIBUTE; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -36,7 +36,7 @@ public final class JaxRsClientV1Instrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return safeHasInterface(named("com.sun.jersey.api.client.ClientHandler")); + return hasInterface(named("com.sun.jersey.api.client.ClientHandler")); } @Override @@ -54,10 +54,8 @@ public final class JaxRsClientV1Instrumentation extends Instrumenter.Default { public Map, String> transformers() { return singletonMap( named("handle") - .and( - takesArgument( - 0, safeExtendsClass(named("com.sun.jersey.api.client.ClientRequest")))) - .and(returns(safeExtendsClass(named("com.sun.jersey.api.client.ClientResponse")))), + .and(takesArgument(0, extendsClass(named("com.sun.jersey.api.client.ClientRequest")))) + .and(returns(extendsClass(named("com.sun.jersey.api.client.ClientResponse")))), JaxRsClientV1Instrumentation.class.getName() + "$HandleAdvice"); } diff --git a/dd-java-agent/instrumentation/jax-rs-client-2.0/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-client-2.0/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java index 8972ed1175..fe81be3cef 100644 --- a/dd-java-agent/instrumentation/jax-rs-client-2.0/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-client-2.0/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.jaxrs; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; @@ -25,7 +25,7 @@ public final class JaxRsClientInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return safeExtendsClass(named("javax.ws.rs.client.ClientBuilder")); + return extendsClass(named("javax.ws.rs.client.ClientBuilder")); } @Override @@ -44,7 +44,7 @@ public final class JaxRsClientInstrumentation extends Instrumenter.Default { @Override public Map, String> transformers() { return singletonMap( - named("build").and(returns(safeHasInterface(named("javax.ws.rs.client.Client")))), + named("build").and(returns(hasInterface(named("javax.ws.rs.client.Client")))), JaxRsClientInstrumentation.class.getName() + "$ClientBuilderAdvice"); } diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java index 5fef9d4846..64de23b5d8 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/ConnectionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; @@ -27,7 +27,7 @@ public final class ConnectionInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("java.sql.Connection"))); + return not(isInterface()).and(hasInterface(named("java.sql.Connection"))); } @Override @@ -43,7 +43,7 @@ public final class ConnectionInstrumentation extends Instrumenter.Default { nameStartsWith("prepare") .and(takesArgument(0, String.class)) // Also include CallableStatement, which is a sub type of PreparedStatement - .and(returns(safeHasInterface(named("java.sql.PreparedStatement")))), + .and(returns(hasInterface(named("java.sql.PreparedStatement")))), ConnectionInstrumentation.class.getName() + "$ConnectionPrepareAdvice"); } diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java index 5b12b209c3..937d348119 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -42,7 +42,7 @@ public final class DataSourceInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("javax.sql.DataSource"))); + return not(isInterface()).and(hasInterface(named("javax.sql.DataSource"))); } @Override diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DriverInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DriverInstrumentation.java index d56f9a049a..b26ef6489f 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DriverInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DriverInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; @@ -30,7 +30,7 @@ public final class DriverInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("java.sql.Driver"))); + return not(isInterface()).and(hasInterface(named("java.sql.Driver"))); } @Override diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java index 7dcaf961c9..e9d6a39eb0 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.jdbc.JDBCDecorator.DECORATE; @@ -35,7 +35,7 @@ public final class PreparedStatementInstrumentation extends Instrumenter.Default @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("java.sql.PreparedStatement"))); + return not(isInterface()).and(hasInterface(named("java.sql.PreparedStatement"))); } @Override diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java index cf6f15340c..e740f9f86c 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/StatementInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jdbc; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.jdbc.JDBCDecorator.DECORATE; @@ -35,7 +35,7 @@ public final class StatementInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("java.sql.Statement"))); + return not(isInterface()).and(hasInterface(named("java.sql.Statement"))); } @Override diff --git a/dd-java-agent/instrumentation/jetty-8/src/main/java/datadog/trace/instrumentation/jetty8/JettyHandlerInstrumentation.java b/dd-java-agent/instrumentation/jetty-8/src/main/java/datadog/trace/instrumentation/jetty8/JettyHandlerInstrumentation.java index eef4a0841e..e358f60774 100644 --- a/dd-java-agent/instrumentation/jetty-8/src/main/java/datadog/trace/instrumentation/jetty8/JettyHandlerInstrumentation.java +++ b/dd-java-agent/instrumentation/jetty-8/src/main/java/datadog/trace/instrumentation/jetty8/JettyHandlerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jetty8; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isPublic; @@ -30,7 +30,7 @@ public final class JettyHandlerInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { return not(isInterface()) - .and(safeHasInterface(named("org.eclipse.jetty.server.Handler"))) + .and(hasInterface(named("org.eclipse.jetty.server.Handler"))) .and(not(named("org.eclipse.jetty.server.handler.HandlerWrapper"))); } diff --git a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java index d60a411822..5d8d927980 100644 --- a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java +++ b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jms; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -37,7 +37,7 @@ public final class JMSMessageConsumerInstrumentation extends Instrumenter.Defaul @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("javax.jms.MessageConsumer"))); + return not(isInterface()).and(hasInterface(named("javax.jms.MessageConsumer"))); } @Override diff --git a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageListenerInstrumentation.java b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageListenerInstrumentation.java index 9c54e26150..e76e1031bd 100644 --- a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageListenerInstrumentation.java +++ b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageListenerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jms; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -35,7 +35,7 @@ public final class JMSMessageListenerInstrumentation extends Instrumenter.Defaul @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("javax.jms.MessageListener"))); + return not(isInterface()).and(hasInterface(named("javax.jms.MessageListener"))); } @Override diff --git a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageProducerInstrumentation.java b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageProducerInstrumentation.java index 60f129337e..2b28a61cb1 100644 --- a/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageProducerInstrumentation.java +++ b/dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms/JMSMessageProducerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jms; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -37,7 +37,7 @@ public final class JMSMessageProducerInstrumentation extends Instrumenter.Defaul @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("javax.jms.MessageProducer"))); + return not(isInterface()).and(hasInterface(named("javax.jms.MessageProducer"))); } @Override diff --git a/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java b/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java index 9ab2b8fe68..4ad9c7ca1e 100644 --- a/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java +++ b/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.jsp; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.jsp.JSPDecorator.DECORATE; @@ -31,7 +31,7 @@ public final class JSPInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("javax.servlet.jsp.HttpJspPage"))); + return not(isInterface()).and(hasInterface(named("javax.servlet.jsp.HttpJspPage"))); } @Override diff --git a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java index 31eb92fa81..3e407c9b0a 100644 --- a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/ChannelFutureListenerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.netty40; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static java.util.Collections.singletonMap; @@ -35,8 +35,7 @@ public class ChannelFutureListenerInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()) - .and(safeHasInterface(named("io.netty.channel.ChannelFutureListener"))); + return not(isInterface()).and(hasInterface(named("io.netty.channel.ChannelFutureListener"))); } @Override diff --git a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java index 11193bb054..49de0c4e81 100644 --- a/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.netty40; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -48,7 +48,7 @@ public class NettyChannelPipelineInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("io.netty.channel.ChannelPipeline"))); + return not(isInterface()).and(hasInterface(named("io.netty.channel.ChannelPipeline"))); } @Override diff --git a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java index 6d9eeedbfa..c664aa5078 100644 --- a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/ChannelFutureListenerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.netty41; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static java.util.Collections.singletonMap; @@ -35,8 +35,7 @@ public class ChannelFutureListenerInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()) - .and(safeHasInterface(named("io.netty.channel.ChannelFutureListener"))); + return not(isInterface()).and(hasInterface(named("io.netty.channel.ChannelFutureListener"))); } @Override diff --git a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java index 31474d0041..25c965d015 100644 --- a/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java +++ b/dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.netty41; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -48,7 +48,7 @@ public class NettyChannelPipelineInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("io.netty.channel.ChannelPipeline"))); + return not(isInterface()).and(hasInterface(named("io.netty.channel.ChannelPipeline"))); } @Override diff --git a/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play24/PlayInstrumentation.java b/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play24/PlayInstrumentation.java index 4315957eed..122ee9cfbd 100644 --- a/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play24/PlayInstrumentation.java +++ b/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play24/PlayInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.play24; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; @@ -22,7 +22,7 @@ public final class PlayInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return safeHasInterface(named("play.api.mvc.Action")); + return hasInterface(named("play.api.mvc.Action")); } @Override diff --git a/dd-java-agent/instrumentation/play-2.6/src/main/java/datadog/trace/instrumentation/play26/PlayInstrumentation.java b/dd-java-agent/instrumentation/play-2.6/src/main/java/datadog/trace/instrumentation/play26/PlayInstrumentation.java index e994799f0e..c55b8f7a8b 100644 --- a/dd-java-agent/instrumentation/play-2.6/src/main/java/datadog/trace/instrumentation/play26/PlayInstrumentation.java +++ b/dd-java-agent/instrumentation/play-2.6/src/main/java/datadog/trace/instrumentation/play26/PlayInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.play26; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; @@ -22,7 +22,7 @@ public final class PlayInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return safeHasInterface(named("play.api.mvc.Action")); + return hasInterface(named("play.api.mvc.Action")); } @Override diff --git a/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java index 9a18756f1a..97a5170256 100644 --- a/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java +++ b/dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/PlayWSClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.playws1; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.playws1.HeadersInjectAdapter.SETTER; @@ -36,7 +36,7 @@ public class PlayWSClientInstrumentation extends Instrumenter.Default { // It also delegates to another AsyncHttpClient return nameStartsWith("play.") .and( - safeHasInterface(named("play.shaded.ahc.org.asynchttpclient.AsyncHttpClient")) + hasInterface(named("play.shaded.ahc.org.asynchttpclient.AsyncHttpClient")) .and(not(named("play.api.libs.ws.ahc.cache.CachingAsyncHttpClient")))); } diff --git a/dd-java-agent/instrumentation/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java index 8082a05cd6..f7418bc538 100644 --- a/dd-java-agent/instrumentation/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java +++ b/dd-java-agent/instrumentation/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/PlayWSClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.playws21; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.playws21.HeadersInjectAdapter.SETTER; @@ -33,7 +33,7 @@ public class PlayWSClientInstrumentation extends Instrumenter.Default { public ElementMatcher typeMatcher() { // CachingAsyncHttpClient rejects overrides to AsyncHandler // It also delegates to another AsyncHttpClient - return safeHasInterface(named("play.shaded.ahc.org.asynchttpclient.AsyncHttpClient")) + return hasInterface(named("play.shaded.ahc.org.asynchttpclient.AsyncHttpClient")) .and(not(named("play.api.libs.ws.ahc.cache.CachingAsyncHttpClient"))); } diff --git a/dd-java-agent/instrumentation/play-ws-2/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws-2/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java index a4b9f518a6..be4b069e14 100644 --- a/dd-java-agent/instrumentation/play-ws-2/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java +++ b/dd-java-agent/instrumentation/play-ws-2/src/main/java/datadog/trace/instrumentation/playws2/PlayWSClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.playws2; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.playws2.HeadersInjectAdapter.SETTER; @@ -33,7 +33,7 @@ public class PlayWSClientInstrumentation extends Instrumenter.Default { public ElementMatcher typeMatcher() { // CachingAsyncHttpClient rejects overrides to AsyncHandler // It also delegates to another AsyncHttpClient - return safeHasInterface(named("play.shaded.ahc.org.asynchttpclient.AsyncHttpClient")) + return hasInterface(named("play.shaded.ahc.org.asynchttpclient.AsyncHttpClient")) .and(not(named("play.api.libs.ws.ahc.cache.CachingAsyncHttpClient"))); } diff --git a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitChannelInstrumentation.java b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitChannelInstrumentation.java index 39d7a647ac..77e0703093 100644 --- a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitChannelInstrumentation.java +++ b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitChannelInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rabbitmq.amqp; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan; @@ -56,7 +56,7 @@ public class RabbitChannelInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("com.rabbitmq.client.Channel"))); + return not(isInterface()).and(hasInterface(named("com.rabbitmq.client.Channel"))); } @Override diff --git a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitCommandInstrumentation.java b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitCommandInstrumentation.java index b8fb532cb6..b2202496d6 100644 --- a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitCommandInstrumentation.java +++ b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/RabbitCommandInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rabbitmq.amqp; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.instrumentation.rabbitmq.amqp.RabbitDecorator.DECORATE; import static java.util.Collections.singletonMap; @@ -28,7 +28,7 @@ public class RabbitCommandInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("com.rabbitmq.client.Command"))); + return not(isInterface()).and(hasInterface(named("com.rabbitmq.client.Command"))); } @Override diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java index a6b44cb45c..43ecd3d213 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java +++ b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.ratpack; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; @@ -27,7 +27,7 @@ public final class ContinuationInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { return nameStartsWith("ratpack.exec.") - .and(safeHasInterface(named("ratpack.exec.internal.Continuation"))); + .and(hasInterface(named("ratpack.exec.internal.Continuation"))); } @Override diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java index 4a0c553ffd..32972f5d99 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java +++ b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.ratpack; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; @@ -25,7 +25,7 @@ public class ServerErrorHandlerInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { return not(isInterface().or(isAbstract())) - .and(safeHasInterface(named("ratpack.error.ServerErrorHandler"))); + .and(hasInterface(named("ratpack.error.ServerErrorHandler"))); } @Override diff --git a/dd-java-agent/instrumentation/reactor-core-3.1/src/main/java/datadog/trace/instrumentation/reactor/core/FluxAndMonoInstrumentation.java b/dd-java-agent/instrumentation/reactor-core-3.1/src/main/java/datadog/trace/instrumentation/reactor/core/FluxAndMonoInstrumentation.java index b58b464caf..9b0b1aaec7 100644 --- a/dd-java-agent/instrumentation/reactor-core-3.1/src/main/java/datadog/trace/instrumentation/reactor/core/FluxAndMonoInstrumentation.java +++ b/dd-java-agent/instrumentation/reactor-core-3.1/src/main/java/datadog/trace/instrumentation/reactor/core/FluxAndMonoInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.reactor.core; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -36,7 +36,7 @@ public final class FluxAndMonoInstrumentation extends Instrumenter.Default { public ElementMatcher typeMatcher() { return not(isAbstract()) .and( - safeExtendsClass( + extendsClass( named("reactor.core.publisher.Mono").or(named("reactor.core.publisher.Flux")))); } diff --git a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/client/RmiClientInstrumentation.java b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/client/RmiClientInstrumentation.java index bbee6a185a..8e4af4de2a 100644 --- a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/client/RmiClientInstrumentation.java +++ b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/client/RmiClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rmi.client; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -33,7 +33,7 @@ public final class RmiClientInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeExtendsClass(named("sun.rmi.server.UnicastRef"))); + return not(isInterface()).and(extendsClass(named("sun.rmi.server.UnicastRef"))); } @Override diff --git a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java index 08b0fdeaaf..1f7c4befd6 100644 --- a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java +++ b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rmi.context.client; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.instrumentation.rmi.context.ContextPropagator.PROPAGATOR; import static java.util.Collections.singletonMap; @@ -53,7 +53,7 @@ public class RmiClientContextInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeExtendsClass(named("sun.rmi.transport.StreamRemoteCall"))); + return not(isInterface()).and(extendsClass(named("sun.rmi.transport.StreamRemoteCall"))); } @Override diff --git a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/server/RmiServerContextInstrumentation.java b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/server/RmiServerContextInstrumentation.java index aa4413085a..3be20c9f9c 100644 --- a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/server/RmiServerContextInstrumentation.java +++ b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/context/server/RmiServerContextInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rmi.context.server; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.instrumentation.rmi.context.ContextPropagator.DD_CONTEXT_CALL_ID; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; @@ -28,7 +28,7 @@ public class RmiServerContextInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeExtendsClass(named("sun.rmi.transport.ObjectTable"))); + return not(isInterface()).and(extendsClass(named("sun.rmi.transport.ObjectTable"))); } @Override diff --git a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/server/RmiServerInstrumentation.java b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/server/RmiServerInstrumentation.java index c20210aa90..bfef355e10 100644 --- a/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/server/RmiServerInstrumentation.java +++ b/dd-java-agent/instrumentation/rmi/src/main/java/datadog/trace/instrumentation/rmi/server/RmiServerInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.rmi.server; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.bootstrap.instrumentation.rmi.ThreadLocalContext.THREAD_LOCAL_CONTEXT; @@ -43,7 +43,7 @@ public final class RmiServerInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeExtendsClass(named("java.rmi.server.RemoteServer"))); + return not(isInterface()).and(extendsClass(named("java.rmi.server.RemoteServer"))); } @Override diff --git a/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/AsyncContextInstrumentation.java b/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/AsyncContextInstrumentation.java index 2bba9da497..312937a978 100644 --- a/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/AsyncContextInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/request-3/src/main/java/datadog/trace/instrumentation/servlet3/AsyncContextInstrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.servlet3; import static datadog.trace.agent.decorator.HttpServerDecorator.DD_SPAN_ATTRIBUTE; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; import static datadog.trace.instrumentation.servlet3.HttpServletRequestInjectAdapter.SETTER; import static java.util.Collections.singletonMap; @@ -38,7 +38,7 @@ public final class AsyncContextInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("javax.servlet.AsyncContext"))); + return not(isInterface()).and(hasInterface(named("javax.servlet.AsyncContext"))); } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java index 763468e982..53c53b59c5 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.servlet.dispatcher; import static datadog.trace.agent.decorator.HttpServerDecorator.DD_SPAN_ATTRIBUTE; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; @@ -46,7 +46,7 @@ public final class RequestDispatcherInstrumentation extends Instrumenter.Default @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("javax.servlet.RequestDispatcher"))); + return not(isInterface()).and(hasInterface(named("javax.servlet.RequestDispatcher"))); } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/ServletContextInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/ServletContextInstrumentation.java index ed741c0451..a98f87e13e 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/ServletContextInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/ServletContextInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.servlet.dispatcher; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isPublic; @@ -27,7 +27,7 @@ public final class ServletContextInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("javax.servlet.ServletContext"))); + return not(isInterface()).and(hasInterface(named("javax.servlet.ServletContext"))); } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java index 9c3ecf4dae..c8d417efee 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.servlet.filter; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -44,7 +44,7 @@ public final class FilterInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeHasInterface(named("javax.servlet.Filter"))); + return not(isInterface()).and(hasInterface(named("javax.servlet.Filter"))); } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java index b9ca3e60c8..7a07d2bcb5 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.servlet.http; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -46,7 +46,7 @@ public final class HttpServletInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return not(isInterface()).and(safeExtendsClass(named("javax.servlet.http.HttpServlet"))); + return not(isInterface()).and(extendsClass(named("javax.servlet.http.HttpServlet"))); } /** diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java index ff827122e1..50931e97bc 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.servlet.http; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate; @@ -43,8 +43,7 @@ public final class HttpServletResponseInstrumentation extends Instrumenter.Defau @Override public ElementMatcher typeMatcher() { - return not(isInterface()) - .and(safeHasInterface(named("javax.servlet.http.HttpServletResponse"))); + return not(isInterface()).and(hasInterface(named("javax.servlet.http.HttpServletResponse"))); } @Override diff --git a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/client/DefaultWebClientInstrumentation.java b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/client/DefaultWebClientInstrumentation.java index 74344f80a5..b340b87055 100644 --- a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/client/DefaultWebClientInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/client/DefaultWebClientInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.springwebflux.client; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; @@ -37,8 +37,7 @@ public class DefaultWebClientInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { - return safeHasInterface( - named("org.springframework.web.reactive.function.client.ExchangeFunction")); + return hasInterface(named("org.springframework.web.reactive.function.client.ExchangeFunction")); } @Override diff --git a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/HandlerAdapterInstrumentation.java b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/HandlerAdapterInstrumentation.java index 9c1b1f69fb..f0e258a18e 100644 --- a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/HandlerAdapterInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/HandlerAdapterInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.springwebflux.server; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isInterface; @@ -25,7 +25,7 @@ public final class HandlerAdapterInstrumentation extends AbstractWebfluxInstrume public ElementMatcher typeMatcher() { return not(isInterface()) .and(not(isAbstract())) - .and(safeHasInterface(named("org.springframework.web.reactive.HandlerAdapter"))); + .and(hasInterface(named("org.springframework.web.reactive.HandlerAdapter"))); } @Override diff --git a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/RouterFunctionInstrumentation.java b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/RouterFunctionInstrumentation.java index 8a4c6dca6a..c6a6bf6443 100644 --- a/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/RouterFunctionInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/server/RouterFunctionInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.springwebflux.server; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -28,7 +28,7 @@ public final class RouterFunctionInstrumentation extends AbstractWebfluxInstrume public ElementMatcher typeMatcher() { return not(isAbstract()) .and( - safeExtendsClass( + extendsClass( // TODO: this doesn't handle nested routes (DefaultNestedRouterFunction) named( "org.springframework.web.reactive.function.server.RouterFunctions$DefaultRouterFunction"))); diff --git a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java index 99490b5cec..1861b2dfd2 100644 --- a/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java +++ b/dd-java-agent/instrumentation/spring-webmvc-3.1/src/main/java/datadog/trace/instrumentation/springweb/HandlerAdapterInstrumentation.java @@ -1,7 +1,7 @@ package datadog.trace.instrumentation.springweb; import static datadog.trace.agent.decorator.HttpServerDecorator.DD_SPAN_ATTRIBUTE; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; @@ -37,7 +37,7 @@ public final class HandlerAdapterInstrumentation extends Instrumenter.Default { @Override public ElementMatcher typeMatcher() { return not(isInterface()) - .and(safeHasInterface(named("org.springframework.web.servlet.HandlerAdapter"))); + .and(hasInterface(named("org.springframework.web.servlet.HandlerAdapter"))); } @Override diff --git a/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioAsyncInstrumentation.java b/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioAsyncInstrumentation.java index d5e24e01fe..5eb21f110f 100644 --- a/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioAsyncInstrumentation.java +++ b/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioAsyncInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.twilio; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.twilio.TwilioClientDecorator.DECORATE; @@ -37,7 +37,7 @@ public class TwilioAsyncInstrumentation extends Instrumenter.Default { /** Match any child class of the base Twilio service classes. */ @Override public ElementMatcher typeMatcher() { - return safeExtendsClass( + return extendsClass( named("com.twilio.base.Creator") .or(named("com.twilio.base.Deleter")) .or(named("com.twilio.base.Fetcher")) diff --git a/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioSyncInstrumentation.java b/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioSyncInstrumentation.java index 86c88bd124..261309b1c1 100644 --- a/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioSyncInstrumentation.java +++ b/dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioSyncInstrumentation.java @@ -1,6 +1,6 @@ package datadog.trace.instrumentation.twilio; -import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeExtendsClass; +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.instrumentation.twilio.TwilioClientDecorator.DECORATE; @@ -35,7 +35,7 @@ public class TwilioSyncInstrumentation extends Instrumenter.Default { public net.bytebuddy.matcher.ElementMatcher< ? super net.bytebuddy.description.type.TypeDescription> typeMatcher() { - return safeExtendsClass( + return extendsClass( named("com.twilio.base.Creator") .or(named("com.twilio.base.Deleter")) .or(named("com.twilio.base.Fetcher")) From 3559ffb21cfad9bcc4297258bd6735199891afc0 Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Fri, 21 Feb 2020 16:09:20 -0800 Subject: [PATCH 10/11] Add unit tests for matchers --- .../matcher/HasSuperMethodMatcherTest.groovy | 68 +++++++++++++++++++ .../SafeExtendsClassMatcherTest.groovy | 50 ++++++++++++++ .../SafeHasInterfaceMatcherTest.groovy | 56 +++++++++++++++ .../SafeHasSuperTypeMatcherTest.groovy | 55 +++++++++++++++ .../bytebuddy/matcher/SafeMatcherTest.groovy | 40 +++++++++++ .../bytebuddy/matcher/testclasses/A.java | 5 ++ .../bytebuddy/matcher/testclasses/B.java | 8 +++ .../bytebuddy/matcher/testclasses/C.java | 5 ++ .../bytebuddy/matcher/testclasses/D.java | 8 +++ .../bytebuddy/matcher/testclasses/E.java | 5 ++ .../bytebuddy/matcher/testclasses/F.java | 8 +++ .../bytebuddy/matcher/testclasses/G.java | 5 ++ .../matcher/testclasses/TracedClass.java | 33 +++++++++ .../matcher/testclasses/UntracedClass.java | 24 +++++++ 14 files changed, 370 insertions(+) create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcherTest.groovy create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcherTest.groovy create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasInterfaceMatcherTest.groovy create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasSuperTypeMatcherTest.groovy create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcherTest.groovy create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/A.java create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/B.java create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/C.java create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/D.java create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/E.java create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/F.java create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/G.java create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/TracedClass.java create mode 100644 dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/UntracedClass.java diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcherTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcherTest.groovy new file mode 100644 index 0000000000..5d2ebcdf81 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/HasSuperMethodMatcherTest.groovy @@ -0,0 +1,68 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher + +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.A +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.B +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.C +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.F +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.G +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.TracedClass +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.UntracedClass +import datadog.trace.api.Trace +import datadog.trace.util.test.DDSpecification +import net.bytebuddy.description.method.MethodDescription + +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasSuperMethod +import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith +import static net.bytebuddy.matcher.ElementMatchers.none + +class HasSuperMethodMatcherTest extends DDSpecification { + + def "test matcher #type.simpleName #method"() { + expect: + hasSuperMethod(isAnnotatedWith(Trace)).matches(argument) == result + + where: + type | method | result + A | "a" | false + B | "b" | true + C | "c" | false + F | "f" | true + G | "g" | false + TracedClass | "a" | true + UntracedClass | "a" | false + UntracedClass | "b" | true + + argument = new MethodDescription.ForLoadedMethod(type.getDeclaredMethod(method)) + } + + def "test constructor never matches"() { + setup: + def method = Mock(MethodDescription) + def matcher = hasSuperMethod(none()) + + when: + def result = matcher.matches(method) + + then: + !result + 1 * method.isConstructor() >> true + 0 * _ + } + + def "test traversal exceptions"() { + setup: + def method = Mock(MethodDescription) + def matcher = hasSuperMethod(none()) + def sigToken = new MethodDescription.ForLoadedMethod(A.getDeclaredMethod("a")).asSignatureToken() + + when: + def result = matcher.matches(method) + + then: + !result // default to false + 1 * method.isConstructor() >> false + 1 * method.asSignatureToken() >> sigToken + 1 * method.getDeclaringType() >> null + 0 * _ + } +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcherTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcherTest.groovy new file mode 100644 index 0000000000..f3a8f3c063 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeExtendsClassMatcherTest.groovy @@ -0,0 +1,50 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher + +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.A +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.B +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.F +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.G +import datadog.trace.util.test.DDSpecification +import net.bytebuddy.description.type.TypeDescription + +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.extendsClass +import static net.bytebuddy.matcher.ElementMatchers.named + +class SafeExtendsClassMatcherTest extends DDSpecification { + + def "test matcher #matcherClass.simpleName -> #type.simpleName"() { + expect: + extendsClass(matcher).matches(argument) == result + + where: + matcherClass | type | result + A | B | false + A | F | false + G | F | false + F | F | true + F | G | true + + matcher = named(matcherClass.name) + argument = TypeDescription.ForLoadedType.of(type) + } + + def "test traversal exceptions"() { + setup: + def type = Mock(TypeDescription) + def typeGeneric = Mock(TypeDescription.Generic) + def matcher = extendsClass(named(Object.name)) + + when: + def result = matcher.matches(type) + + then: + !result // default to false + noExceptionThrown() + 1 * type.asGenericType() >> typeGeneric + 1 * type.getTypeName() >> "type-name" + 1 * typeGeneric.asErasure() >> { throw new Exception("asErasure exception") } + 1 * typeGeneric.getTypeName() >> "typeGeneric-name" + 1 * type.getSuperClass() >> { throw new Exception("getSuperClass exception") } + 0 * _ + } +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasInterfaceMatcherTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasInterfaceMatcherTest.groovy new file mode 100644 index 0000000000..90a3258f8f --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasInterfaceMatcherTest.groovy @@ -0,0 +1,56 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher + +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.A +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.B +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.E +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.F +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.G +import datadog.trace.util.test.DDSpecification +import net.bytebuddy.description.type.TypeDescription + +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface +import static net.bytebuddy.matcher.ElementMatchers.named + +class SafeHasInterfaceMatcherTest extends DDSpecification { + + def "test matcher #matcherClass.simpleName -> #type.simpleName"() { + expect: + hasInterface(matcher).matches(argument) == result + + where: + matcherClass | type | result + A | A | true + A | B | true + B | A | false + A | E | true + A | F | true + F | A | false + F | F | false + F | G | false + + matcher = named(matcherClass.name) + argument = TypeDescription.ForLoadedType.of(type) + } + + def "test traversal exceptions"() { + setup: + def type = Mock(TypeDescription) + def typeGeneric = Mock(TypeDescription.Generic) + def matcher = hasInterface(named(Object.name)) + + when: + def result = matcher.matches(type) + + then: + !result // default to false + noExceptionThrown() + 1 * type.isInterface() >> true + 1 * type.asGenericType() >> typeGeneric + 1 * typeGeneric.asErasure() >> { throw new Exception("asErasure exception") } + 1 * typeGeneric.getTypeName() >> "typeGeneric-name" + 1 * type.getInterfaces() >> { throw new Exception("getInterfaces exception") } + 1 * type.getSuperClass() >> { throw new Exception("getSuperClass exception") } + 2 * type.getTypeName() >> "type-name" + 0 * _ + } +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasSuperTypeMatcherTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasSuperTypeMatcherTest.groovy new file mode 100644 index 0000000000..370273d116 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeHasSuperTypeMatcherTest.groovy @@ -0,0 +1,55 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher + +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.A +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.B +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.E +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.F +import datadog.trace.agent.tooling.bytebuddy.matcher.testclasses.G +import datadog.trace.util.test.DDSpecification +import net.bytebuddy.description.type.TypeDescription + +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasSuperType +import static net.bytebuddy.matcher.ElementMatchers.named + +class SafeHasSuperTypeMatcherTest extends DDSpecification { + + def "test matcher #matcherClass.simpleName -> #type.simpleName"() { + expect: + safeHasSuperType(matcher).matches(argument) == result + + where: + matcherClass | type | result + A | A | true + A | B | true + B | A | false + A | E | true + A | F | true + F | A | false + F | F | true + F | G | true + + matcher = named(matcherClass.name) + argument = TypeDescription.ForLoadedType.of(type) + } + + def "test traversal exceptions"() { + setup: + def type = Mock(TypeDescription) + def typeGeneric = Mock(TypeDescription.Generic) + def matcher = safeHasSuperType(named(Object.name)) + + when: + def result = matcher.matches(type) + + then: + !result // default to false + noExceptionThrown() + 1 * type.asGenericType() >> typeGeneric + 1 * typeGeneric.asErasure() >> { throw new Exception("asErasure exception") } + 1 * typeGeneric.getTypeName() >> "typeGeneric-name" + 1 * type.getInterfaces() >> { throw new Exception("getInterfaces exception") } + 1 * type.getSuperClass() >> { throw new Exception("getSuperClass exception") } + 2 * type.getTypeName() >> "type-name" + 0 * _ + } +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcherTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcherTest.groovy new file mode 100644 index 0000000000..c290502fe7 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/SafeMatcherTest.groovy @@ -0,0 +1,40 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher + +import datadog.trace.util.test.DDSpecification +import net.bytebuddy.matcher.ElementMatcher + +import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.failSafe + +class SafeMatcherTest extends DDSpecification { + + def mockMatcher = Mock(ElementMatcher) + + def "test matcher"() { + setup: + def matcher = failSafe(mockMatcher, "test") + + when: + def result = matcher.matches(new Object()) + + then: + 1 * mockMatcher.matches(_) >> match + result == match + + where: + match << [true, false] + } + + def "test matcher exception"() { + setup: + def matcher = failSafe(mockMatcher, "test") + + when: + def result = matcher.matches(new Object()) + + then: + 1 * mockMatcher.matches(_) >> { throw new Exception("matcher exception") } + 0 * _ + noExceptionThrown() + !result // default to false + } +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/A.java b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/A.java new file mode 100644 index 0000000000..43f723cb49 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/A.java @@ -0,0 +1,5 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher.testclasses; + +public interface A { + void a(); +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/B.java b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/B.java new file mode 100644 index 0000000000..d956115c2e --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/B.java @@ -0,0 +1,8 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher.testclasses; + +import datadog.trace.api.Trace; + +public interface B extends A { + @Trace + void b(); +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/C.java b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/C.java new file mode 100644 index 0000000000..4643231c7c --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/C.java @@ -0,0 +1,5 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher.testclasses; + +public interface C extends A, B { + void c(); +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/D.java b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/D.java new file mode 100644 index 0000000000..d5ae42e5fd --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/D.java @@ -0,0 +1,8 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher.testclasses; + +import datadog.trace.api.Trace; + +public interface D extends A, B, C { + @Trace + void d(); +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/E.java b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/E.java new file mode 100644 index 0000000000..859429ccb3 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/E.java @@ -0,0 +1,5 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher.testclasses; + +public interface E extends B, C, D { + void e(); +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/F.java b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/F.java new file mode 100644 index 0000000000..0c6e562897 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/F.java @@ -0,0 +1,8 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher.testclasses; + +import datadog.trace.api.Trace; + +public abstract class F implements E { + @Trace + public abstract void f(); +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/G.java b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/G.java new file mode 100644 index 0000000000..62e2ce4aa8 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/G.java @@ -0,0 +1,5 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher.testclasses; + +public abstract class G extends F { + public void g() {} +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/TracedClass.java b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/TracedClass.java new file mode 100644 index 0000000000..31a96b24a5 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/TracedClass.java @@ -0,0 +1,33 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher.testclasses; + +import datadog.trace.api.Trace; + +public class TracedClass extends UntracedClass { + @Trace + @Override + public void g() {} + + @Trace + @Override + public void f() {} + + @Trace + @Override + public void e() {} + + @Trace + @Override + public void d() {} + + @Trace + @Override + public void c() {} + + @Trace + @Override + public void b() {} + + @Trace + @Override + public void a() {} +} diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/UntracedClass.java b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/UntracedClass.java new file mode 100644 index 0000000000..2ae032e561 --- /dev/null +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/bytebuddy/matcher/testclasses/UntracedClass.java @@ -0,0 +1,24 @@ +package datadog.trace.agent.tooling.bytebuddy.matcher.testclasses; + +public class UntracedClass extends G { + @Override + public void g() {} + + @Override + public void f() {} + + @Override + public void e() {} + + @Override + public void d() {} + + @Override + public void c() {} + + @Override + public void b() {} + + @Override + public void a() {} +} From c13cb2e60f77adee97b37a13e4076f490ee5822f Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Fri, 21 Feb 2020 16:18:52 -0800 Subject: [PATCH 11/11] Move a few other classes. --- .../java/datadog/trace/agent/tooling/AgentInstaller.java | 2 +- .../java/datadog/trace/agent/tooling/Instrumenter.java | 1 + .../trace/agent/tooling/bytebuddy/DDTransformers.java | 8 ++++---- .../agent/tooling/{ => bytebuddy}/ExceptionHandlers.java | 2 +- .../tooling/{ => bytebuddy}/GlobalIgnoresMatcher.java | 4 ++-- .../datadog/trace/agent/test/ExceptionHandlerTest.groovy | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) rename dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/{ => bytebuddy}/ExceptionHandlers.java (98%) rename dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/{ => bytebuddy}/GlobalIgnoresMatcher.java (97%) diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java index 63405cad6a..8dc101368d 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java @@ -1,7 +1,7 @@ package datadog.trace.agent.tooling; import static datadog.trace.agent.tooling.ClassLoaderMatcher.skipClassLoader; -import static datadog.trace.agent.tooling.GlobalIgnoresMatcher.globalIgnoresMatcher; +import static datadog.trace.agent.tooling.bytebuddy.GlobalIgnoresMatcher.globalIgnoresMatcher; import static net.bytebuddy.matcher.ElementMatchers.any; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java index 26550e07d0..f532086ae4 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java @@ -7,6 +7,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; import datadog.trace.agent.tooling.bytebuddy.DDTransformers; +import datadog.trace.agent.tooling.bytebuddy.ExceptionHandlers; import datadog.trace.agent.tooling.context.FieldBackedProvider; import datadog.trace.agent.tooling.context.InstrumentationContextProvider; import datadog.trace.agent.tooling.context.NoopContextProvider; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDTransformers.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDTransformers.java index e50ca8d3c9..371e286158 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDTransformers.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/DDTransformers.java @@ -12,10 +12,10 @@ public class DDTransformers { new AgentBuilder.Transformer() { @Override public DynamicType.Builder transform( - final DynamicType.Builder builder, - final TypeDescription typeDescription, - final ClassLoader classLoader, - final JavaModule javaModule) { + final DynamicType.Builder builder, + final TypeDescription typeDescription, + final ClassLoader classLoader, + final JavaModule javaModule) { return builder.visit(TypeConstantAdjustment.INSTANCE); } }; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ExceptionHandlers.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/ExceptionHandlers.java similarity index 98% rename from dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ExceptionHandlers.java rename to dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/ExceptionHandlers.java index 49db4f099f..09a275113f 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ExceptionHandlers.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/ExceptionHandlers.java @@ -1,4 +1,4 @@ -package datadog.trace.agent.tooling; +package datadog.trace.agent.tooling.bytebuddy; import datadog.trace.bootstrap.ExceptionLogger; import net.bytebuddy.ClassFileVersion; diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/GlobalIgnoresMatcher.java similarity index 97% rename from dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java rename to dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/GlobalIgnoresMatcher.java index 39b4271705..9b727a1eb7 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/GlobalIgnoresMatcher.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/bytebuddy/GlobalIgnoresMatcher.java @@ -1,4 +1,4 @@ -package datadog.trace.agent.tooling; +package datadog.trace.agent.tooling.bytebuddy; import java.util.regex.Pattern; import net.bytebuddy.build.HashCodeAndEqualsPlugin; @@ -6,7 +6,7 @@ import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @HashCodeAndEqualsPlugin.Enhance -class GlobalIgnoresMatcher +public class GlobalIgnoresMatcher extends ElementMatcher.Junction.AbstractBase { private static final Pattern COM_MCHANGE_PROXY = diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ExceptionHandlerTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ExceptionHandlerTest.groovy index cedafaea29..ab440408c5 100644 --- a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ExceptionHandlerTest.groovy +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ExceptionHandlerTest.groovy @@ -3,7 +3,7 @@ package datadog.trace.agent.test import ch.qos.logback.classic.Level import ch.qos.logback.classic.Logger import ch.qos.logback.core.read.ListAppender -import datadog.trace.agent.tooling.ExceptionHandlers +import datadog.trace.agent.tooling.bytebuddy.ExceptionHandlers import datadog.trace.bootstrap.ExceptionLogger import datadog.trace.util.test.DDSpecification import net.bytebuddy.agent.ByteBuddyAgent