From 05bcf2b6ddf3109e8b25e00f68908a8bf3d6fce0 Mon Sep 17 00:00:00 2001 From: wendal chen Date: Thu, 21 Sep 2017 20:11:09 +0800 Subject: [PATCH] fix: let nutz-plugins compatible with 3.2.1-2017 change: using ContextCarrier.items() in 3.2.1-2017 remove: useless javadoc in nutz-plugins --- .../nutz-plugins/http-1.x-plugin/pom.xml | 2 +- .../nutz/http/sync/SenderSendInterceptor.java | 8 +++-- .../mvc-annotation-1.x-plugin/pom.xml | 2 +- ...java => ActionConstructorInterceptor.java} | 13 ++------ ...ptor.java => ActionMethodInterceptor.java} | 17 +++++++---- ...tation.java => ActionInstrumentation.java} | 30 ++++++++++--------- .../mvc/define/ControllerInstrumentation.java | 10 ------- .../src/main/resources/skywalking-plugin.def | 2 +- .../apm-sdk-plugin/nutz-plugins/pom.xml | 2 +- 9 files changed, 39 insertions(+), 47 deletions(-) rename apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/{ControllerConstructorInterceptor.java => ActionConstructorInterceptor.java} (54%) rename apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/{ControllerServiceMethodInterceptor.java => ActionMethodInterceptor.java} (82%) rename apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/{AbstractControllerInstrumentation.java => ActionInstrumentation.java} (81%) delete mode 100644 apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/ControllerInstrumentation.java diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml index 2059976905..defd73beb2 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml @@ -3,7 +3,7 @@ nutz-plugins org.skywalking - 3.2-2017 + 3.2.1-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/SenderSendInterceptor.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/SenderSendInterceptor.java index 8647513485..b7326ad31d 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/SenderSendInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/http/sync/SenderSendInterceptor.java @@ -6,7 +6,7 @@ import java.net.URI; import org.nutz.http.Request; import org.nutz.http.Request.METHOD; import org.nutz.http.Response; -import org.skywalking.apm.agent.core.conf.Config; +import org.skywalking.apm.agent.core.context.CarrierItem; import org.skywalking.apm.agent.core.context.ContextCarrier; import org.skywalking.apm.agent.core.context.ContextManager; import org.skywalking.apm.agent.core.context.tag.Tags; @@ -34,7 +34,11 @@ public class SenderSendInterceptor implements InstanceMethodsAroundInterceptor { Tags.HTTP.METHOD.set(span, httpMethod.toString()); SpanLayer.asHttp(span); - req.getHeader().set(Config.Plugin.Propagation.HEADER_NAME, contextCarrier.serialize()); + CarrierItem next = contextCarrier.items(); + while (next.hasNext()) { + next = next.next(); + req.getHeader().set(next.getHeadKey(), next.getHeadValue()); + } } @Override diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml index a725bd6c41..b71d4f8ac8 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml @@ -3,7 +3,7 @@ nutz-plugins org.skywalking - 3.2-2017 + 3.2.1-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ControllerConstructorInterceptor.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ActionConstructorInterceptor.java similarity index 54% rename from apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ControllerConstructorInterceptor.java rename to apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ActionConstructorInterceptor.java index 04afa0f54d..930e041ded 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ControllerConstructorInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ActionConstructorInterceptor.java @@ -5,19 +5,10 @@ import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; /** - * The ControllerConstructorInterceptor intercepts the Controller's constructor, in order to acquire the - * mapping annotation, if exist. * - * But, you can see we only use the first mapping value, Why? - * - * Right now, we intercept the controller by annotation as you known, so we CAN'T know which uri patten is actually - * matched. Even we know, that costs a lot. - * - * If we want to resolve that, we must intercept the Nutz MVC core codes, that is not a good choice for now. - * - * Comment by @wu-sheng + * @author wendal */ -public class ControllerConstructorInterceptor implements InstanceConstructorInterceptor { +public class ActionConstructorInterceptor implements InstanceConstructorInterceptor { @Override public void onConstruct(EnhancedInstance objInst, Object[] allArguments) { diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ControllerServiceMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ActionMethodInterceptor.java similarity index 82% rename from apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ControllerServiceMethodInterceptor.java rename to apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ActionMethodInterceptor.java index 44d0b7114b..ab96e057a4 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ControllerServiceMethodInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/ActionMethodInterceptor.java @@ -7,7 +7,7 @@ import javax.servlet.http.HttpServletResponse; import org.nutz.mvc.Mvcs; import org.nutz.mvc.annotation.At; -import org.skywalking.apm.agent.core.conf.Config; +import org.skywalking.apm.agent.core.context.CarrierItem; import org.skywalking.apm.agent.core.context.ContextCarrier; import org.skywalking.apm.agent.core.context.ContextManager; import org.skywalking.apm.agent.core.context.tag.Tags; @@ -19,11 +19,12 @@ import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptR import org.skywalking.apm.network.trace.component.ComponentsDefine; /** - * The ControllerServiceMethodInterceptor only use the first mapping value. + * The ActionMethodInterceptor only use the first mapping value. * - * @See {@link ControllerConstructorInterceptor} to explain why we are doing this. + * @See {@link ActionConstructorInterceptor} to explain why we are doing this. + * @author wendal */ -public class ControllerServiceMethodInterceptor implements InstanceMethodsAroundInterceptor { +public class ActionMethodInterceptor implements InstanceMethodsAroundInterceptor { @Override public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, MethodInterceptResult result) throws Throwable { @@ -41,8 +42,12 @@ public class ControllerServiceMethodInterceptor implements InstanceMethodsAround } HttpServletRequest request = Mvcs.getReq(); - String tracingHeaderValue = request.getHeader(Config.Plugin.Propagation.HEADER_NAME); - ContextCarrier contextCarrier = new ContextCarrier().deserialize(tracingHeaderValue); + ContextCarrier contextCarrier = new ContextCarrier(); + CarrierItem next = contextCarrier.items(); + while (next.hasNext()) { + next = next.next(); + next.setHeadValue(request.getHeader(next.getHeadKey())); + } AbstractSpan span = ContextManager.createEntrySpan(requestURL, contextCarrier); Tags.URL.set(span, request.getRequestURL().toString()); Tags.HTTP.METHOD.set(span, request.getMethod()); diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/AbstractControllerInstrumentation.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/ActionInstrumentation.java similarity index 81% rename from apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/AbstractControllerInstrumentation.java rename to apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/ActionInstrumentation.java index 9e276953ad..4067898525 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/AbstractControllerInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/ActionInstrumentation.java @@ -1,22 +1,22 @@ package org.skywalking.apm.plugin.nutz.mvc.define; -import net.bytebuddy.description.method.MethodDescription; -import net.bytebuddy.matcher.ElementMatcher; +import static net.bytebuddy.matcher.ElementMatchers.any; +import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static org.skywalking.apm.agent.core.plugin.match.ClassAnnotationMatch.byClassAnnotationMatch; + import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; 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 static net.bytebuddy.matcher.ElementMatchers.any; -import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith; -import static net.bytebuddy.matcher.ElementMatchers.named; -import static org.skywalking.apm.agent.core.plugin.match.ClassAnnotationMatch.byClassAnnotationMatch; +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.matcher.ElementMatcher; + +public class ActionInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { -/** - * - * @author wendal - */ -public abstract class AbstractControllerInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { + public static final String ENHANCE_ANNOTATION = "org.nutz.mvc.annotation.At"; + @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { return new ConstructorInterceptPoint[] { @@ -28,7 +28,7 @@ public abstract class AbstractControllerInstrumentation extends ClassInstanceMet @Override public String getConstructorInterceptor() { - return "org.skywalking.apm.plugin.nutz.mvc.ControllerConstructorInterceptor"; + return "org.skywalking.apm.plugin.nutz.mvc.ActionConstructorInterceptor"; } } }; @@ -45,7 +45,7 @@ public abstract class AbstractControllerInstrumentation extends ClassInstanceMet @Override public String getMethodsInterceptor() { - return "org.skywalking.apm.plugin.nutz.mvc.ControllerServiceMethodInterceptor"; + return "org.skywalking.apm.plugin.nutz.mvc.ActionMethodInterceptor"; } @Override @@ -61,5 +61,7 @@ public abstract class AbstractControllerInstrumentation extends ClassInstanceMet return byClassAnnotationMatch(getEnhanceAnnotations()); } - protected abstract String[] getEnhanceAnnotations(); + protected String[] getEnhanceAnnotations() { + return new String[] {ENHANCE_ANNOTATION}; + } } diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/ControllerInstrumentation.java b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/ControllerInstrumentation.java deleted file mode 100644 index 8bb039dcb4..0000000000 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/java/org/skywalking/apm/plugin/nutz/mvc/define/ControllerInstrumentation.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.skywalking.apm.plugin.nutz.mvc.define; - -public class ControllerInstrumentation extends AbstractControllerInstrumentation { - - public static final String ENHANCE_ANNOTATION = "org.nutz.mvc.annotation.At"; - - @Override protected String[] getEnhanceAnnotations() { - return new String[] {ENHANCE_ANNOTATION}; - } -} diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/resources/skywalking-plugin.def index 15ba62cdfd..c6566dcf3f 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/resources/skywalking-plugin.def +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/src/main/resources/skywalking-plugin.def @@ -1 +1 @@ -nutz-mvc-annotation-1.x=org.skywalking.apm.plugin.nutz.mvc.define.ControllerInstrumentation \ No newline at end of file +nutz-mvc-annotation-1.x=org.skywalking.apm.plugin.nutz.mvc.define.ActionInstrumentation \ No newline at end of file diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml b/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml index b9249fc68c..06b11ae04d 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml @@ -6,7 +6,7 @@ org.skywalking apm-sdk-plugin - 3.2-2017 + 3.2.1-2017 nutz-plugins -- GitLab