diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpInstrumentation.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/AbstractNutzHttpInstrumentation.java similarity index 63% rename from apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpInstrumentation.java rename to apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/AbstractNutzHttpInstrumentation.java index 46f1abcd4..e4b372866 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/AbstractNutzHttpInstrumentation.java @@ -6,24 +6,13 @@ import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoin import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; import org.skywalking.apm.agent.core.plugin.match.ClassMatch; -import org.skywalking.apm.agent.core.plugin.match.HierarchyMatch; import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.matcher.ElementMatcher; +import net.bytebuddy.matcher.ElementMatchers; -/** - * {@link NutzHttpInstrumentation} enhance the send - * method,Constructor of org.nutz.http.Sender by - * org.skywalking.apm.plugin.nutz.http.sync.SenderConstructorInterceptor, and - * org.skywalking.apm.plugin.nutz.http.sync.SenderSendInterceptor - * set context to header for propagate trace context around execute - * send. - * - * @author wendal - */ -public class NutzHttpInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { +public abstract class AbstractNutzHttpInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { - private static final String ENHANCE_CLASS = "org.nutz.http.Sender"; private static final String DO_SEND_METHOD_NAME = "send"; private static final String DO_SEND_INTERCEPTOR = "org.skywalking.apm.plugin.nutz.http.sync.SenderSendInterceptor"; private static final String DO_CONSTRUCTOR_INTERCEPTOR = "org.skywalking.apm.plugin.nutz.http.sync.SenderConstructorInterceptor"; @@ -34,14 +23,9 @@ public class NutzHttpInstrumentation extends ClassInstanceMethodsEnhancePluginDe new ConstructorInterceptPoint() { @Override public ElementMatcher getConstructorMatcher() { - return new ElementMatcher() { - @Override - public boolean matches(MethodDescription target) { - return target.isConstructor() && target.getParameters().size() > 0; - } - }; + return ElementMatchers.takesArguments(1); } - + @Override public String getConstructorInterceptor() { return DO_CONSTRUCTOR_INTERCEPTOR; @@ -58,12 +42,12 @@ public class NutzHttpInstrumentation extends ClassInstanceMethodsEnhancePluginDe public ElementMatcher getMethodsMatcher() { return named(DO_SEND_METHOD_NAME); } - + @Override public String getMethodsInterceptor() { return DO_SEND_INTERCEPTOR; } - + @Override public boolean isOverrideArgs() { return false; @@ -72,8 +56,5 @@ public class NutzHttpInstrumentation extends ClassInstanceMethodsEnhancePluginDe }; } - @Override - protected ClassMatch enhanceClass() { - return HierarchyMatch.byHierarchyMatch(new String[]{ENHANCE_CLASS}); - } -} + protected abstract ClassMatch enhanceClass(); +} \ No newline at end of file diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpFilePostSenderInstrumentation.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpFilePostSenderInstrumentation.java new file mode 100644 index 000000000..9082a9e57 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpFilePostSenderInstrumentation.java @@ -0,0 +1,11 @@ +package org.skywalking.apm.plugin.nutz.http.sync.define; + +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; +import org.skywalking.apm.agent.core.plugin.match.NameMatch; + +public class NutzHttpFilePostSenderInstrumentation extends AbstractNutzHttpInstrumentation { + + protected ClassMatch enhanceClass() { + return NameMatch.byName("org.nutz.http.sender.FilePostSender"); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpGetSenderInstrumentation.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpGetSenderInstrumentation.java new file mode 100644 index 000000000..28bf2a1a6 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpGetSenderInstrumentation.java @@ -0,0 +1,12 @@ +package org.skywalking.apm.plugin.nutz.http.sync.define; + +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; +import org.skywalking.apm.agent.core.plugin.match.NameMatch; + +public class NutzHttpGetSenderInstrumentation extends AbstractNutzHttpInstrumentation { + + @Override + protected ClassMatch enhanceClass() { + return NameMatch.byName("org.nutz.http.sender.GetSender"); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpPostSenderInstrumentation.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpPostSenderInstrumentation.java new file mode 100644 index 000000000..f1ed889f0 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/define/NutzHttpPostSenderInstrumentation.java @@ -0,0 +1,13 @@ +package org.skywalking.apm.plugin.nutz.http.sync.define; + +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; +import org.skywalking.apm.agent.core.plugin.match.NameMatch; + + +public class NutzHttpPostSenderInstrumentation extends AbstractNutzHttpInstrumentation { + + @Override + protected ClassMatch enhanceClass() { + return NameMatch.byName("org.nutz.http.sender.PostSender"); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/resources/skywalking-plugin.def index f37126670..203a31f4d 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/resources/skywalking-plugin.def +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/resources/skywalking-plugin.def @@ -1 +1,3 @@ -nutz-http-1.x=org.skywalking.apm.plugin.nutz.http.sync.define.NutzHttpInstrumentation +nutz-http-1.x=org.skywalking.apm.plugin.nutz.http.sync.define.NutzHttpGetSenderInstrumentation +nutz-http-1.x=org.skywalking.apm.plugin.nutz.http.sync.define.NutzHttpPostSenderInstrumentation +nutz-http-1.x=org.skywalking.apm.plugin.nutz.http.sync.define.NutzHttpFilePostSenderInstrumentation diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/PathMappingCache.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/PathMappingCache.java index f00584249..b7bec5db8 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/PathMappingCache.java +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/PathMappingCache.java @@ -7,7 +7,7 @@ import java.util.concurrent.ConcurrentHashMap; * The PathMappingCache represents a field * * - * @author wusheng + * @author wendal */ public class PathMappingCache { private String classPath = "";