From e130ab8cf8af445b4ba5241f6577077fb3826a45 Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Mon, 27 Apr 2020 17:40:12 -0400 Subject: [PATCH] Fix Ratpack instrumentation for newer versions of Guava. Ratpack 1.4 should still work if you increase your guava version to 20+ (instead of 19). --- .../ratpack-1.5.gradle} | 14 +++++--------- .../ratpack/ContinuationInstrumentation.java | 6 +++++- .../ratpack/DefaultExecutionInstrumentation.java | 6 +++++- .../ratpack/ServerErrorHandlerInstrumentation.java | 0 .../ratpack/ServerRegistryInstrumentation.java | 0 .../instrumentation/ratpack/ActionWrapper.java | 0 .../instrumentation/ratpack/BlockWrapper.java | 0 .../ratpack/ErrorHandlerAdvice.java | 0 .../ratpack/RatpackServerDecorator.java | 2 +- .../ratpack/ServerRegistryAdvice.java | 0 .../instrumentation/ratpack/TracingHandler.java | 0 .../src/test/groovy/RatpackOtherTest.groovy | 0 .../client/RatpackForkedHttpClientTest.groovy | 0 .../groovy/client/RatpackHttpClientTest.groovy | 0 .../server/NettyServerTestInstrumentation.java | 0 .../server/RatpackAsyncHttpServerTest.groovy | 0 .../server/RatpackForkedHttpServerTest.groovy | 0 .../groovy/server/RatpackHttpServerTest.groovy | 0 settings.gradle | 2 +- 19 files changed, 17 insertions(+), 13 deletions(-) rename dd-java-agent/instrumentation/{ratpack-1.4/ratpack-1.4.gradle => ratpack-1.5/ratpack-1.5.gradle} (73%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java (91%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java/datadog/trace/instrumentation/ratpack/DefaultExecutionInstrumentation.java (91%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java/datadog/trace/instrumentation/ratpack/ServerRegistryInstrumentation.java (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java8/datadog/trace/instrumentation/ratpack/ActionWrapper.java (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java8/datadog/trace/instrumentation/ratpack/BlockWrapper.java (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java8/datadog/trace/instrumentation/ratpack/ErrorHandlerAdvice.java (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java8/datadog/trace/instrumentation/ratpack/RatpackServerDecorator.java (98%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java8/datadog/trace/instrumentation/ratpack/ServerRegistryAdvice.java (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/main/java8/datadog/trace/instrumentation/ratpack/TracingHandler.java (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/test/groovy/RatpackOtherTest.groovy (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/test/groovy/client/RatpackForkedHttpClientTest.groovy (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/test/groovy/client/RatpackHttpClientTest.groovy (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/test/groovy/server/NettyServerTestInstrumentation.java (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/test/groovy/server/RatpackAsyncHttpServerTest.groovy (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/test/groovy/server/RatpackForkedHttpServerTest.groovy (100%) rename dd-java-agent/instrumentation/{ratpack-1.4 => ratpack-1.5}/src/test/groovy/server/RatpackHttpServerTest.groovy (100%) diff --git a/dd-java-agent/instrumentation/ratpack-1.4/ratpack-1.4.gradle b/dd-java-agent/instrumentation/ratpack-1.5/ratpack-1.5.gradle similarity index 73% rename from dd-java-agent/instrumentation/ratpack-1.4/ratpack-1.4.gradle rename to dd-java-agent/instrumentation/ratpack-1.5/ratpack-1.5.gradle index 8724e91561..34d03f5fbb 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/ratpack-1.4.gradle +++ b/dd-java-agent/instrumentation/ratpack-1.5/ratpack-1.5.gradle @@ -8,13 +8,9 @@ muzzle { pass { group = "io.ratpack" module = 'ratpack-core' - versions = "[1.4.0,)" - } - // Some maven dependencies are missing for pre 1.0 ratpack, so we can't assertInverse. - fail { - group = "io.ratpack" - module = 'ratpack-core' - versions = "[1.0,1.4.0)" + versions = "[1.5.0,)" + skipVersions += ["0.9.12", "0.9.13", "0.9.14",] + assertInverse = true } } @@ -29,9 +25,9 @@ testSets { } dependencies { - main_java8CompileOnly group: 'io.ratpack', name: 'ratpack-core', version: '1.4.0' + main_java8CompileOnly group: 'io.ratpack', name: 'ratpack-core', version: '1.5.0' testCompile project(':dd-java-agent:instrumentation:netty-4.1') - testCompile group: 'io.ratpack', name: 'ratpack-groovy-test', version: '1.4.0' + testCompile group: 'io.ratpack', name: 'ratpack-groovy-test', version: '1.5.0' latestDepTestCompile group: 'io.ratpack', name: 'ratpack-groovy-test', version: '+' } 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.5/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java similarity index 91% rename from dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java rename to dd-java-agent/instrumentation/ratpack-1.5/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java index 9f4c0ca173..8afd228fb8 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.5/src/main/java/datadog/trace/instrumentation/ratpack/ContinuationInstrumentation.java @@ -9,6 +9,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; +import com.google.common.net.HostAndPort; import datadog.trace.agent.tooling.Instrumenter; import java.util.Map; import net.bytebuddy.asm.Advice; @@ -58,9 +59,12 @@ public final class ContinuationInstrumentation extends Instrumenter.Default { block = BlockWrapper.wrapIfNeeded(block, activeSpan()); } - public void muzzleCheck(final PathBinding binding) { + public void muzzleCheck(final PathBinding binding, final HostAndPort host) { // This was added in 1.4. Added here to ensure consistency with other instrumentation. binding.getDescription(); + + // This is available in Guava 20 which was required starting in 1.5 + host.getHost(); } } } diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/DefaultExecutionInstrumentation.java b/dd-java-agent/instrumentation/ratpack-1.5/src/main/java/datadog/trace/instrumentation/ratpack/DefaultExecutionInstrumentation.java similarity index 91% rename from dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/DefaultExecutionInstrumentation.java rename to dd-java-agent/instrumentation/ratpack-1.5/src/main/java/datadog/trace/instrumentation/ratpack/DefaultExecutionInstrumentation.java index a83fd62d4c..e674e9e867 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/DefaultExecutionInstrumentation.java +++ b/dd-java-agent/instrumentation/ratpack-1.5/src/main/java/datadog/trace/instrumentation/ratpack/DefaultExecutionInstrumentation.java @@ -7,6 +7,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; +import com.google.common.net.HostAndPort; import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; import java.util.Map; @@ -61,9 +62,12 @@ public final class DefaultExecutionInstrumentation extends Instrumenter.Default segment = ActionWrapper.wrapIfNeeded(segment, span); } - public void muzzleCheck(final PathBinding binding) { + public void muzzleCheck(final PathBinding binding, final HostAndPort host) { // This was added in 1.4. Added here to ensure consistency with other instrumentation. binding.getDescription(); + + // This is available in Guava 20 which was required starting in 1.5 + host.getHost(); } } } 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.5/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java similarity index 100% rename from dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java rename to dd-java-agent/instrumentation/ratpack-1.5/src/main/java/datadog/trace/instrumentation/ratpack/ServerErrorHandlerInstrumentation.java diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerRegistryInstrumentation.java b/dd-java-agent/instrumentation/ratpack-1.5/src/main/java/datadog/trace/instrumentation/ratpack/ServerRegistryInstrumentation.java similarity index 100% rename from dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/ServerRegistryInstrumentation.java rename to dd-java-agent/instrumentation/ratpack-1.5/src/main/java/datadog/trace/instrumentation/ratpack/ServerRegistryInstrumentation.java diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/ActionWrapper.java b/dd-java-agent/instrumentation/ratpack-1.5/src/main/java8/datadog/trace/instrumentation/ratpack/ActionWrapper.java similarity index 100% rename from dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/ActionWrapper.java rename to dd-java-agent/instrumentation/ratpack-1.5/src/main/java8/datadog/trace/instrumentation/ratpack/ActionWrapper.java diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/BlockWrapper.java b/dd-java-agent/instrumentation/ratpack-1.5/src/main/java8/datadog/trace/instrumentation/ratpack/BlockWrapper.java similarity index 100% rename from dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/BlockWrapper.java rename to dd-java-agent/instrumentation/ratpack-1.5/src/main/java8/datadog/trace/instrumentation/ratpack/BlockWrapper.java diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/ErrorHandlerAdvice.java b/dd-java-agent/instrumentation/ratpack-1.5/src/main/java8/datadog/trace/instrumentation/ratpack/ErrorHandlerAdvice.java similarity index 100% rename from dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/ErrorHandlerAdvice.java rename to dd-java-agent/instrumentation/ratpack-1.5/src/main/java8/datadog/trace/instrumentation/ratpack/ErrorHandlerAdvice.java diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/RatpackServerDecorator.java b/dd-java-agent/instrumentation/ratpack-1.5/src/main/java8/datadog/trace/instrumentation/ratpack/RatpackServerDecorator.java similarity index 98% rename from dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/RatpackServerDecorator.java rename to dd-java-agent/instrumentation/ratpack-1.5/src/main/java8/datadog/trace/instrumentation/ratpack/RatpackServerDecorator.java index e1e6adc9fe..a20bbd4fd1 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/RatpackServerDecorator.java +++ b/dd-java-agent/instrumentation/ratpack-1.5/src/main/java8/datadog/trace/instrumentation/ratpack/RatpackServerDecorator.java @@ -50,7 +50,7 @@ public class RatpackServerDecorator extends HttpServerDecorator