Merge pull request #175 from DataDog/tyler/fix-jersey

Fix jersey servlet instrumentation which overrides method
This commit is contained in:
Tyler Benson 2017-12-19 17:22:12 -08:00 committed by GitHub
commit 6509ed32b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 2 deletions

View File

@ -1,6 +1,8 @@
package dd.inst.servlet2;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isProtected;
import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
@ -30,7 +32,7 @@ public final class HttpServlet2Instrumentation implements Instrumenter {
public AgentBuilder instrument(final AgentBuilder agentBuilder) {
return agentBuilder
.type(
named("javax.servlet.http.HttpServlet"),
not(isInterface()).and(hasSuperType(named("javax.servlet.http.HttpServlet"))),
not(classLoaderHasClasses("javax.servlet.AsyncEvent", "javax.servlet.AsyncListener"))
.and(
classLoaderHasClasses(

View File

@ -1,8 +1,11 @@
package dd.inst.servlet3;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isProtected;
import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService;
@ -33,7 +36,7 @@ public final class HttpServlet3Instrumentation implements Instrumenter {
public AgentBuilder instrument(final AgentBuilder agentBuilder) {
return agentBuilder
.type(
named("javax.servlet.http.HttpServlet"),
not(isInterface()).and(hasSuperType(named("javax.servlet.http.HttpServlet"))),
classLoaderHasClasses("javax.servlet.AsyncEvent", "javax.servlet.AsyncListener"))
.transform(
DDAdvice.create()