Fix Ratpack instrumentation for newer versions of Guava. (#360)

Ratpack 1.4 should still work if you increase your guava version to 20+ (instead of 19).

Co-authored-by: Tyler Benson <tyler.benson@datadoghq.com>
This commit is contained in:
Trask Stalnaker 2020-04-28 13:42:16 -07:00 committed by GitHub
parent 9568ba079b
commit 3c4a6b545c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 17 additions and 13 deletions

View File

@ -11,13 +11,9 @@ muzzle {
pass { pass {
group = "io.ratpack" group = "io.ratpack"
module = 'ratpack-core' module = 'ratpack-core'
versions = "[1.4.0,)" versions = "[1.5.0,)"
} skipVersions += ["0.9.12", "0.9.13", "0.9.14",]
// Some maven dependencies are missing for pre 1.0 ratpack, so we can't assertInverse. assertInverse = true
fail {
group = "io.ratpack"
module = 'ratpack-core'
versions = "[1.0,1.4.0)"
} }
} }
@ -28,9 +24,9 @@ testSets {
} }
dependencies { 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(':instrumentation:netty:netty-4.1') testCompile project(':instrumentation:netty: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: '+' latestDepTestCompile group: 'io.ratpack', name: 'ratpack-groovy-test', version: '+'
} }

View File

@ -23,6 +23,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import com.google.common.net.HostAndPort;
import io.opentelemetry.auto.tooling.Instrumenter; import io.opentelemetry.auto.tooling.Instrumenter;
import java.util.Map; import java.util.Map;
import net.bytebuddy.asm.Advice; import net.bytebuddy.asm.Advice;
@ -70,9 +71,12 @@ public final class ContinuationInstrumentation extends Instrumenter.Default {
block = BlockWrapper.wrapIfNeeded(block); block = BlockWrapper.wrapIfNeeded(block);
} }
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. // This was added in 1.4. Added here to ensure consistency with other instrumentation.
binding.getDescription(); binding.getDescription();
// This is available in Guava 20 which was required starting in 1.5
host.getHost();
} }
} }
} }

View File

@ -21,6 +21,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import com.google.common.net.HostAndPort;
import io.opentelemetry.auto.tooling.Instrumenter; import io.opentelemetry.auto.tooling.Instrumenter;
import java.util.Map; import java.util.Map;
import net.bytebuddy.asm.Advice; import net.bytebuddy.asm.Advice;
@ -67,9 +68,12 @@ public final class DefaultExecutionInstrumentation extends Instrumenter.Default
segment = ActionWrapper.wrapIfNeeded(segment); segment = ActionWrapper.wrapIfNeeded(segment);
} }
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. // This was added in 1.4. Added here to ensure consistency with other instrumentation.
binding.getDescription(); binding.getDescription();
// This is available in Guava 20 which was required starting in 1.5
host.getHost();
} }
} }
} }

View File

@ -54,7 +54,7 @@ public class RatpackServerDecorator extends HttpServerDecorator<Request, Request
@Override @Override
protected String peerHostIP(final Request request) { protected String peerHostIP(final Request request) {
return request.getRemoteAddress().getHostText(); return request.getRemoteAddress().getHost();
} }
@Override @Override

View File

@ -120,7 +120,7 @@ include ':instrumentation:play-ws:play-ws-2.0'
include ':instrumentation:play-ws:play-ws-2.1' include ':instrumentation:play-ws:play-ws-2.1'
include ':instrumentation:play-ws:play-ws-common' include ':instrumentation:play-ws:play-ws-common'
include ':instrumentation:rabbitmq-amqp-2.7' include ':instrumentation:rabbitmq-amqp-2.7'
include ':instrumentation:ratpack-1.4' include ':instrumentation:ratpack-1.5'
include ':instrumentation:reactor-3.1' include ':instrumentation:reactor-3.1'
include ':instrumentation:rmi' include ':instrumentation:rmi'
include ':instrumentation:rxjava-1.0' include ':instrumentation:rxjava-1.0'