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 = "";