From 7dfdc2d50e5b61c56339af4b7494b3e5d29501ff Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Fri, 4 May 2018 15:38:41 +1000 Subject: [PATCH] Missing autoservice annotation processor --- .../instrumentation/hystrix-1.4/hystrix-1.4.gradle | 2 ++ .../hystrix-1.4/src/test/groovy/HystrixTest.groovy | 4 ++++ .../java/datadog/trace/agent/test/AgentTestRunner.java | 8 +++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/dd-java-agent/instrumentation/hystrix-1.4/hystrix-1.4.gradle b/dd-java-agent/instrumentation/hystrix-1.4/hystrix-1.4.gradle index c48bfcb591..4fcded6aae 100644 --- a/dd-java-agent/instrumentation/hystrix-1.4/hystrix-1.4.gradle +++ b/dd-java-agent/instrumentation/hystrix-1.4/hystrix-1.4.gradle @@ -28,6 +28,8 @@ dependencies { compile deps.bytebuddy compile deps.opentracing compile deps.autoservice + annotationProcessor deps.autoservice + implementation deps.autoservice testCompile project(':dd-java-agent:testing') testCompile project(':dd-java-agent:instrumentation:java-concurrent') diff --git a/dd-java-agent/instrumentation/hystrix-1.4/src/test/groovy/HystrixTest.groovy b/dd-java-agent/instrumentation/hystrix-1.4/src/test/groovy/HystrixTest.groovy index 8aed84ca64..09740f50ab 100644 --- a/dd-java-agent/instrumentation/hystrix-1.4/src/test/groovy/HystrixTest.groovy +++ b/dd-java-agent/instrumentation/hystrix-1.4/src/test/groovy/HystrixTest.groovy @@ -35,6 +35,8 @@ class HystrixTest extends AgentTestRunner { operation(command) } expect: + TRANSFORMED_CLASSES.contains("com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler\$ThreadPoolWorker") + TRANSFORMED_CLASSES.contains("HystrixTest\$1") result == "Hello!" assertTraces(TEST_WRITER, 1) { @@ -106,6 +108,8 @@ class HystrixTest extends AgentTestRunner { operation(command) } expect: + TRANSFORMED_CLASSES.contains("com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler\$ThreadPoolWorker") + TRANSFORMED_CLASSES.contains("HystrixTest\$2") result == "Fallback!" assertTraces(TEST_WRITER, 1) { diff --git a/dd-java-agent/testing/src/main/java/datadog/trace/agent/test/AgentTestRunner.java b/dd-java-agent/testing/src/main/java/datadog/trace/agent/test/AgentTestRunner.java index 4db936d2b7..6e0b09dd87 100644 --- a/dd-java-agent/testing/src/main/java/datadog/trace/agent/test/AgentTestRunner.java +++ b/dd-java-agent/testing/src/main/java/datadog/trace/agent/test/AgentTestRunner.java @@ -2,6 +2,7 @@ package datadog.trace.agent.test; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; +import com.google.common.collect.Sets; import datadog.opentracing.DDSpan; import datadog.opentracing.DDTracer; import datadog.trace.agent.tooling.AgentInstaller; @@ -13,6 +14,7 @@ import java.lang.instrument.ClassFileTransformer; import java.lang.instrument.Instrumentation; import java.util.List; import java.util.ServiceLoader; +import java.util.Set; import java.util.concurrent.Phaser; import java.util.concurrent.atomic.AtomicInteger; import net.bytebuddy.agent.ByteBuddyAgent; @@ -58,6 +60,8 @@ public abstract class AgentTestRunner extends Specification { // loads opentracing before bootstrap classpath is setup // so we declare tracer as an object and cast when needed. protected static final Object TEST_TRACER; + + protected static final Set TRANSFORMED_CLASSES = Sets.newConcurrentHashSet(); private static final AtomicInteger INSTRUMENTATION_ERROR_COUNT = new AtomicInteger(); private static final Instrumentation instrumentation; @@ -144,7 +148,9 @@ public abstract class AgentTestRunner extends Specification { final ClassLoader classLoader, final JavaModule module, final boolean loaded, - final DynamicType dynamicType) {} + final DynamicType dynamicType) { + TRANSFORMED_CLASSES.add(typeDescription.getActualName()); + } @Override public void onIgnored(