From 5203081561e891509975ca9c01d42a66e3b78e92 Mon Sep 17 00:00:00 2001 From: wusheng Date: Wed, 28 Jun 2017 22:32:02 +0800 Subject: [PATCH] Support #206 #241 #253 --- apm-sniffer/apm-agent-core/pom.xml | 2 +- .../apm/agent/core/context/tag/Tags.java | 27 ----- .../ConstructorInterceptPoint.java | 6 +- .../EnhancedClassInstanceContext.java | 56 ---------- .../InstanceMethodsInterceptPoint.java | 2 + .../StaticMethodsInterceptPoint.java | 4 +- .../assist/NoConcurrencyAccessObject.java | 47 -------- .../enhance/ClassEnhancePluginDefine.java | 96 +++++++++++++---- .../interceptor/enhance/Constructible.java | 8 ++ ...Interceptor.java => ConstructorInter.java} | 27 +++-- .../ConstructorInterWithOverrideArgs.java | 61 +++++++++++ .../enhance/ConstructorInvokeContext.java | 36 ------- .../DefaultClassConstructorInterceptor.java | 31 ------ .../interceptor/enhance/EnhancedInstance.java | 8 ++ .../enhance/EnhancedInstanceFieldGetter.java | 17 +++ ...Interceptor.java => InstMethodsInter.java} | 48 +++++---- .../InstMethodsInterWithOverrideArgs.java | 102 ++++++++++++++++++ .../InstanceConstructorInterceptor.java | 13 ++- .../enhance/InstanceMethodInvokeContext.java | 23 ---- .../InstanceMethodsAroundInterceptor.java | 22 ++-- .../enhance/MethodInterceptResult.java | 4 +- .../enhance/MethodInvokeContext.java | 41 ------- .../interceptor/enhance/OverrideCallable.java | 8 ++ .../enhance/StaticMethodInvokeContext.java | 26 ----- .../StaticMethodsAroundInterceptor.java | 17 ++- ...terceptor.java => StaticMethodsInter.java} | 25 +++-- .../StaticMethodsInterWithOverrideArgs.java | 84 +++++++++++++++ .../core/plugin/MockPluginInterceptor.java | 5 - .../assist/NoConcurrencyAccessObjectTest.java | 2 - .../skywalking/apm/agent/SkyWalkingAgent.java | 25 +++-- .../apm/plugin/dubbo/DubboInterceptor.java | 2 - .../plugin/dubbo/DubboInterceptorTest.java | 2 - .../http/v9/DefaultHttpClientInterceptor.java | 2 - .../v9/DefaultHttpClientInterceptorTest.java | 2 - .../v4/HttpClientExecuteInterceptor.java | 2 - .../v4/HttpClientExecuteInterceptorTest.java | 2 - .../jdbc/define/JDBCDriverInterceptor.java | 2 - ...structorWithHostAndPortArgInterceptor.java | 2 - ...ctorWithListHostAndPortArgInterceptor.java | 2 - ...onstructorWithShardInfoArgInterceptor.java | 2 - ...isConstructorWithStringArgInterceptor.java | 2 - ...JedisConstructorWithUriArgInterceptor.java | 2 - .../jedis/v2/JedisMethodInterceptor.java | 2 - ...ctorWithHostAndPortArgInterceptorTest.java | 2 - ...WithListHostAndPortArgInterceptorTest.java | 2 - ...ructorWithShardInfoArgInterceptorTest.java | 2 - ...nstructorWithStringArgInterceptorTest.java | 2 - ...sConstructorWithUriArgInterceptorTest.java | 2 - .../jedis/v2/JedisMethodInterceptorTest.java | 2 - .../mongodb/v3/MongoDBMethodInterceptor.java | 2 - .../v3/MongoDBReadBindingInterceptor.java | 2 - .../v3/MongoDBWriteBindingInterceptor.java | 2 - .../v3/MongoDBMethodInterceptorTest.java | 2 - .../v3/MongoDBReadBindingInterceptorTest.java | 2 - .../MongoDBWriteBindingInterceptorTest.java | 2 - .../v3/MongoDBWriteMethodInterceptorTest.java | 2 - .../motan/MotanConsumerInterceptor.java | 3 - .../motan/MotanProviderInterceptor.java | 2 - .../motan/MotanConsumerInterceptorTest.java | 2 - .../motan/MotanProviderInterceptorTest.java | 3 - .../plugin/okhttp/v3/RealCallInterceptor.java | 3 - .../okhttp/v3/RealCallInterceptorTest.java | 3 - .../plugin/resin/v3/ResinV3Interceptor.java | 2 - .../resin/v3/ResinV3InterceptorTest.java | 2 - .../plugin/resin/v4/ResinV4Interceptor.java | 2 - .../resin/v4/ResinV4InterceptorTest.java | 2 - .../plugin/tomcat78x/TomcatInterceptor.java | 2 - .../tomcat78x/TomcatInterceptorTest.java | 2 - .../log4j/v1/x/PrintTraceIdInterceptor.java | 2 - .../log4j/v2/x/PrintTraceIdInterceptor.java | 2 - .../logback/v1/x/PrintTraceIdInterceptor.java | 2 - .../interceptor/SpanFinishInterceptor.java | 2 - .../SpanNewInstanceInterceptor.java | 2 - .../SpanSetOperationNameInterceptor.java | 2 - .../interceptor/SpanSetTagInterceptor.java | 2 - ...ExtractCrossProcessContextInterceptor.java | 2 - ...tFormatCrossProcessContextInterceptor.java | 2 - .../trace/TraceContextInterceptor.java | 2 - 78 files changed, 470 insertions(+), 503 deletions(-) delete mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/EnhancedClassInstanceContext.java delete mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/assist/NoConcurrencyAccessObject.java create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/Constructible.java rename apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/{ClassConstructorInterceptor.java => ConstructorInter.java} (59%) create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInterWithOverrideArgs.java delete mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInvokeContext.java delete mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/DefaultClassConstructorInterceptor.java create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstance.java create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstanceFieldGetter.java rename apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/{ClassInstanceMethodsInterceptor.java => InstMethodsInter.java} (60%) create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInterWithOverrideArgs.java delete mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceMethodInvokeContext.java delete mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/MethodInvokeContext.java create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/OverrideCallable.java delete mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodInvokeContext.java rename apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/{ClassStaticMethodsInterceptor.java => StaticMethodsInter.java} (74%) create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsInterWithOverrideArgs.java diff --git a/apm-sniffer/apm-agent-core/pom.xml b/apm-sniffer/apm-agent-core/pom.xml index d762b4c1d..b5e384d3f 100644 --- a/apm-sniffer/apm-agent-core/pom.xml +++ b/apm-sniffer/apm-agent-core/pom.xml @@ -47,7 +47,7 @@ net.bytebuddy byte-buddy - 1.5.7 + 1.7.1 net.bytebuddy diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/Tags.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/Tags.java index d2802b74e..be7543b5f 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/Tags.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/Tags.java @@ -1,7 +1,5 @@ package org.skywalking.apm.agent.core.context.tag; -import org.skywalking.apm.agent.core.context.trace.AbstractSpan; - /** * The span tags are supported by sky-walking engine. * As default, all tags will be stored, but these ones have particular meanings. @@ -22,31 +20,6 @@ public final class Tags { */ public static final StringTag STATUS_CODE = new StringTag("status_code"); - /** - * SPAN_LAYER represents the kind of span. - *

- * e.g. - * db=database; - * rpc=Remote Procedure Call Framework, like motan, thift; - * nosql=something like redis/memcache - */ - public static final class SPAN_LAYER { - public static StringTag SPAN_LAYER_TAG = new StringTag("span.layer"); - - private static final String DB_LAYER = "db"; - private static final String RPC_FRAMEWORK_LAYER = "rpc"; - private static final String HTTP_LAYER = "http"; - private static final String MQ_LAYER = "mq"; - - - } - - /** - * COMPONENT is a low-cardinality identifier of the module, library, or package that is instrumented. - * Like dubbo/dubbox/motan - */ - public static final StringTag COMPONENT = new StringTag("component"); - /** * DB_TYPE records database type, such as sql, redis, cassandra and so on. */ diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/ConstructorInterceptPoint.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/ConstructorInterceptPoint.java index 9fe797517..42aaba429 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/ConstructorInterceptPoint.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/ConstructorInterceptPoint.java @@ -21,8 +21,10 @@ public interface ConstructorInterceptPoint { ElementMatcher getConstructorMatcher(); /** - * @return represents a class name, the class instance must be a instance of {@link - * org.skywalking.apm.plugin.interceptor.enhance.InstanceConstructorInterceptor}. + * @return represents a class name, the class instance must be a instance of + * {@link org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor} */ String getConstructorInterceptor(); + + boolean isOverrideArgs(); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/EnhancedClassInstanceContext.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/EnhancedClassInstanceContext.java deleted file mode 100644 index 8ebeb3fad..000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/EnhancedClassInstanceContext.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.skywalking.apm.agent.core.plugin.interceptor; - -import org.skywalking.apm.agent.core.plugin.AbstractClassEnhancePluginDefine; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassEnhancePluginDefine; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * Enhanced instance field type. - *

- * Any plugins({@link AbstractClassEnhancePluginDefine}'s subclass) override - * {@link ClassEnhancePluginDefine#getConstructorsInterceptPoints} - * or - * {@link ClassEnhancePluginDefine#getInstanceMethodsInterceptPoints} - * will add a field with this type. - * - * @author wusheng - */ -public class EnhancedClassInstanceContext { - /** - * extend field, can store any instance as you want. - */ - private Map context = new ConcurrentHashMap(); - - /** - * store a new instance or override it. - * - * @param key - * @param value - */ - public void set(Object key, Object value) { - context.put(key, value); - } - - /** - * get an stored instance, if it is existed. - * - * @param key - * @return null or stored instance. - */ - public Object get(Object key) { - return context.get(key); - } - - /** - * judge whether stores by the key. - * - * @param key - * @return true, if stored a instance by the key. - */ - public boolean isContain(Object key) { - return context.containsKey(key); - } - -} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/InstanceMethodsInterceptPoint.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/InstanceMethodsInterceptPoint.java index 1c8bef431..4a055b73c 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/InstanceMethodsInterceptPoint.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/InstanceMethodsInterceptPoint.java @@ -24,4 +24,6 @@ public interface InstanceMethodsInterceptPoint { * @return represents a class name, the class instance must instanceof InstanceMethodsAroundInterceptor. */ String getMethodsInterceptor(); + + boolean isOverrideArgs(); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/StaticMethodsInterceptPoint.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/StaticMethodsInterceptPoint.java index e165669bf..163a10b0f 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/StaticMethodsInterceptPoint.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/StaticMethodsInterceptPoint.java @@ -21,7 +21,9 @@ public interface StaticMethodsInterceptPoint { ElementMatcher getMethodsMatcher(); /** - * @return represents a class name, the class instance must instanceof {@link org.skywalking.apm.plugin.interceptor.enhance.StaticMethodsAroundInterceptor}. + * @return represents a class name, the class instance must instanceof StaticMethodsAroundInterceptor. */ String getMethodsInterceptor(); + + boolean isOverrideArgs(); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/assist/NoConcurrencyAccessObject.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/assist/NoConcurrencyAccessObject.java deleted file mode 100644 index 4b47e81d9..000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/assist/NoConcurrencyAccessObject.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.skywalking.apm.agent.core.plugin.interceptor.assist; - -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.InterceptorException; - -/** - * {@link NoConcurrencyAccessObject} is method invocation counter, - * when {@link #whenEnter(EnhancedClassInstanceContext, InstanceMethodInvokeContext)} , counter + 1; - * and when {@link #whenExist(EnhancedClassInstanceContext)} , counter -1; - *

- * When, and only when, the first enter and last exist, also meaning first access, - * the {@link #enter(EnhancedClassInstanceContext, InstanceMethodInvokeContext)} - * and {@link #exit()} are called. - * - * @author wusheng - */ -public abstract class NoConcurrencyAccessObject { - private static final String INVOKE_COUNTER_KEY = "__$invokeCounterKey"; - - public void whenEnter(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext) { - if (!context.isContain(INVOKE_COUNTER_KEY)) { - context.set(INVOKE_COUNTER_KEY, 0); - } - int counter = (Integer)context.get(INVOKE_COUNTER_KEY); - if (++counter == 1) { - enter(context, interceptorContext); - } - context.set(INVOKE_COUNTER_KEY, counter); - } - - public void whenExist(EnhancedClassInstanceContext context) { - if (!context.isContain(INVOKE_COUNTER_KEY)) { - throw new InterceptorException( - "key=INVOKE_COUNTER_KEY not found is context. unexpected situation."); - } - int counter = (Integer)context.get(INVOKE_COUNTER_KEY); - if (--counter == 0) { - exit(); - } - context.set(INVOKE_COUNTER_KEY, counter); - } - - protected abstract void enter(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext); - - protected abstract void exit(); -} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java index ddc4daeca..323fd4dde 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java @@ -5,11 +5,11 @@ import net.bytebuddy.dynamic.DynamicType; import net.bytebuddy.implementation.MethodDelegation; import net.bytebuddy.implementation.SuperMethodCall; import net.bytebuddy.implementation.bind.annotation.FieldProxy; +import net.bytebuddy.implementation.bind.annotation.Morph; import net.bytebuddy.matcher.ElementMatchers; import org.skywalking.apm.agent.core.plugin.PluginException; import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; import org.skywalking.apm.agent.core.plugin.interceptor.EnhanceException; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; import org.skywalking.apm.agent.core.plugin.interceptor.StaticMethodsInterceptPoint; import org.skywalking.apm.util.StringUtil; @@ -19,6 +19,7 @@ import org.skywalking.apm.logging.LogManager; import static net.bytebuddy.jar.asm.Opcodes.ACC_PRIVATE; import static net.bytebuddy.matcher.ElementMatchers.isStatic; +import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.not; /** @@ -26,7 +27,7 @@ import static net.bytebuddy.matcher.ElementMatchers.not; * the enhances base on three types interceptor point: {@link ConstructorInterceptPoint}, {@link * InstanceMethodsInterceptPoint} and {@link StaticMethodsInterceptPoint} If plugin is going to enhance constructors, * instance methods, or both, {@link ClassEnhancePluginDefine} will add a field of {@link - * EnhancedClassInstanceContext} type. + * Object} type. * * @author wusheng */ @@ -36,19 +37,19 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi /** * New field name. */ - public static final String CONTEXT_ATTR_NAME = "_$EnhancedClassInstanceContext"; + public static final String CONTEXT_ATTR_NAME = "_$EnhancedClassField_ws"; /** * Begin to define how to enhance class. * After invoke this method, only means definition is finished. * * @param enhanceOriginClassName target class name - * @param newClassBuilder byte-buddy's builder to manipulate class bytecode. + * @param newClassBuilder byte-buddy's builder to manipulate class bytecode. * @return new byte-buddy's builder for further manipulation. */ @Override protected DynamicType.Builder enhance(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException { + DynamicType.Builder newClassBuilder) throws PluginException { newClassBuilder = this.enhanceClass(enhanceOriginClassName, newClassBuilder); newClassBuilder = this.enhanceInstance(enhanceOriginClassName, newClassBuilder); @@ -60,11 +61,11 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * Enhance a class to intercept constructors and class instance methods. * * @param enhanceOriginClassName target class name - * @param newClassBuilder byte-buddy's builder to manipulate class bytecode. + * @param newClassBuilder byte-buddy's builder to manipulate class bytecode. * @return new byte-buddy's builder for further manipulation. */ private DynamicType.Builder enhanceInstance(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException { + DynamicType.Builder newClassBuilder) throws PluginException { ConstructorInterceptPoint[] constructorInterceptPoints = getConstructorsInterceptPoints(); InstanceMethodsInterceptPoint[] instanceMethodsInterceptPoints = getInstanceMethodsInterceptPoints(); @@ -88,23 +89,40 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * alter class source code.
* * new class need:
- * 1.add field '_$EnhancedClassInstanceContext' of type + * 1.add field, name {@link #CONTEXT_ATTR_NAME}, with an {@link Object} reference. * EnhancedClassInstanceContext
* */ - newClassBuilder = newClassBuilder.defineField(CONTEXT_ATTR_NAME, EnhancedClassInstanceContext.class, ACC_PRIVATE); + newClassBuilder = newClassBuilder.defineField(CONTEXT_ATTR_NAME, Object.class, ACC_PRIVATE) + .implement(EnhancedInstance.class) + .method(named("_getSkyWalkingDynamicFiled")) + .intercept(MethodDelegation.to(EnhancedInstanceFieldGetter.class)); /** * 2. enhance constructors */ - newClassBuilder = newClassBuilder.constructor(ElementMatchers.any()).intercept(SuperMethodCall.INSTANCE - .andThen(MethodDelegation.to(new DefaultClassConstructorInterceptor()).appendParameterBinder(FieldProxy.Binder.install(FieldGetter.class, FieldSetter.class)))); - if (existedConstructorInterceptPoint) { for (ConstructorInterceptPoint constructorInterceptPoint : constructorInterceptPoints) { - newClassBuilder = newClassBuilder.constructor(constructorInterceptPoint.getConstructorMatcher()).intercept(SuperMethodCall.INSTANCE.andThen( - MethodDelegation.to(new ClassConstructorInterceptor(constructorInterceptPoint.getConstructorInterceptor())) - .appendParameterBinder(FieldProxy.Binder.install(FieldGetter.class, FieldSetter.class)))); + if (constructorInterceptPoint.isOverrideArgs()) { + newClassBuilder = newClassBuilder.constructor(ElementMatchers.any()).intercept(SuperMethodCall.INSTANCE + .andThen(MethodDelegation.withDefaultConfiguration() + .withBinders( + FieldProxy.Binder.install(FieldGetter.class, FieldSetter.class), + Morph.Binder.install(Constructible.class) + ) + .to(new ConstructorInter(constructorInterceptPoint.getConstructorInterceptor())) + ) + ); + } else { + newClassBuilder = newClassBuilder.constructor(ElementMatchers.any()).intercept(SuperMethodCall.INSTANCE + .andThen(MethodDelegation.withDefaultConfiguration() + .withBinders( + FieldProxy.Binder.install(FieldGetter.class, FieldSetter.class) + ) + .to(new ConstructorInter(constructorInterceptPoint.getConstructorInterceptor())) + ) + ); + } } } @@ -113,15 +131,33 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi */ if (existedMethodsInterceptPoints) { for (InstanceMethodsInterceptPoint instanceMethodsInterceptPoint : instanceMethodsInterceptPoints) { - String interceptor = instanceMethodsInterceptPoint.getMethodsInterceptor(); if (StringUtil.isEmpty(interceptor)) { throw new EnhanceException("no InstanceMethodsAroundInterceptor define to enhance class " + enhanceOriginClassName); } - ClassInstanceMethodsInterceptor classMethodInterceptor = new ClassInstanceMethodsInterceptor(interceptor); - newClassBuilder = - newClassBuilder.method(not(isStatic()).and(instanceMethodsInterceptPoint.getMethodsMatcher())).intercept(MethodDelegation.to(classMethodInterceptor)); + if (instanceMethodsInterceptPoint.isOverrideArgs()) { + newClassBuilder = + newClassBuilder.method(not(isStatic()).and(instanceMethodsInterceptPoint.getMethodsMatcher())) + .intercept( + MethodDelegation.withDefaultConfiguration() + .withBinders( + FieldProxy.Binder.install(FieldGetter.class, FieldSetter.class), + Morph.Binder.install(OverrideCallable.class) + ) + .to(new InstMethodsInterWithOverrideArgs(interceptor)) + ); + } else { + newClassBuilder = + newClassBuilder.method(not(isStatic()).and(instanceMethodsInterceptPoint.getMethodsMatcher())) + .intercept( + MethodDelegation.withDefaultConfiguration() + .withBinders( + FieldProxy.Binder.install(FieldGetter.class, FieldSetter.class) + ) + .to(new InstMethodsInter(interceptor)) + ); + } } } @@ -146,11 +182,11 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * Enhance a class to intercept class static methods. * * @param enhanceOriginClassName target class name - * @param newClassBuilder byte-buddy's builder to manipulate class bytecode. + * @param newClassBuilder byte-buddy's builder to manipulate class bytecode. * @return new byte-buddy's builder for further manipulation. */ private DynamicType.Builder enhanceClass(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException { + DynamicType.Builder newClassBuilder) throws PluginException { StaticMethodsInterceptPoint[] staticMethodsInterceptPoints = getStaticMethodsInterceptPoints(); if (staticMethodsInterceptPoints == null || staticMethodsInterceptPoints.length == 0) { @@ -163,9 +199,23 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi throw new EnhanceException("no StaticMethodsAroundInterceptor define to enhance class " + enhanceOriginClassName); } - ClassStaticMethodsInterceptor classMethodInterceptor = new ClassStaticMethodsInterceptor(interceptor); + if (staticMethodsInterceptPoint.isOverrideArgs()) { + newClassBuilder = newClassBuilder.method(isStatic().and(staticMethodsInterceptPoint.getMethodsMatcher())) + .intercept( + MethodDelegation.withDefaultConfiguration() + .withBinders( + Morph.Binder.install(OverrideCallable.class) + ) + .to(new StaticMethodsInter(interceptor)) + ); + } else { + newClassBuilder = newClassBuilder.method(isStatic().and(staticMethodsInterceptPoint.getMethodsMatcher())) + .intercept( + MethodDelegation.withDefaultConfiguration() + .to(new StaticMethodsInter(interceptor)) + ); + } - newClassBuilder = newClassBuilder.method(isStatic().and(staticMethodsInterceptPoint.getMethodsMatcher())).intercept(MethodDelegation.to(classMethodInterceptor)); } return newClassBuilder; diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/Constructible.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/Constructible.java new file mode 100644 index 000000000..b58f5d550 --- /dev/null +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/Constructible.java @@ -0,0 +1,8 @@ +package org.skywalking.apm.agent.core.plugin.interceptor.enhance; + +/** + * @author wusheng + */ +public interface Constructible { + void call(Object[] args); +} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassConstructorInterceptor.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInter.java similarity index 59% rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassConstructorInterceptor.java rename to apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInter.java index 530c2edc6..df3c19554 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassConstructorInterceptor.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInter.java @@ -4,7 +4,6 @@ import net.bytebuddy.implementation.bind.annotation.AllArguments; import net.bytebuddy.implementation.bind.annotation.FieldProxy; import net.bytebuddy.implementation.bind.annotation.RuntimeType; import net.bytebuddy.implementation.bind.annotation.This; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; import org.skywalking.apm.agent.core.plugin.interceptor.loader.InterceptorInstanceLoader; import org.skywalking.apm.logging.ILog; import org.skywalking.apm.logging.LogManager; @@ -15,8 +14,8 @@ import org.skywalking.apm.logging.LogManager; * * @author wusheng */ -public class ClassConstructorInterceptor { - private static final ILog logger = LogManager.getLogger(ClassConstructorInterceptor.class); +public class ConstructorInter { + private static final ILog logger = LogManager.getLogger(ConstructorInter.class); /** * A class full name, and instanceof {@link InstanceConstructorInterceptor} @@ -26,33 +25,33 @@ public class ClassConstructorInterceptor { private String constructorInterceptorClassName; /** - * Set the name of {@link ClassConstructorInterceptor#constructorInterceptorClassName} + * Set the name of {@link ConstructorInter#constructorInterceptorClassName} * * @param constructorInterceptorClassName class full name. */ - public ClassConstructorInterceptor(String constructorInterceptorClassName) { + public ConstructorInter(String constructorInterceptorClassName) { this.constructorInterceptorClassName = constructorInterceptorClassName; } /** * Intercept the target constructor. * - * @param obj target class instance. - * @param accessor setter to the new added field of the target enhanced class. + * @param obj target class instance. + * @param dynamicFieldGetter a proxy to set the dynamic field + * @param dynamicFieldSetter a proxy to get the dynamic field * @param allArguments all constructor arguments */ @RuntimeType - public void intercept(@This Object obj, @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldSetter accessor, - @AllArguments Object[] allArguments) { + public void intercept(@This Object obj, + @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldSetter dynamicFieldSetter, + @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldGetter dynamicFieldGetter, + @AllArguments Object[] allArguments) { try { InstanceConstructorInterceptor interceptor = InterceptorInstanceLoader.load(constructorInterceptorClassName, obj.getClass().getClassLoader()); - EnhancedClassInstanceContext context = new EnhancedClassInstanceContext(); - accessor.setValue(context); - ConstructorInvokeContext interceptorContext = new ConstructorInvokeContext(obj, allArguments); - interceptor.onConstruct(context, interceptorContext); + interceptor.onConstruct(obj, allArguments, dynamicFieldSetter, dynamicFieldGetter); } catch (Throwable t) { - logger.error("ClassConstructorInterceptor failure.", t); + logger.error("ConstructorInter failure.", t); } } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInterWithOverrideArgs.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInterWithOverrideArgs.java new file mode 100644 index 000000000..65002ac27 --- /dev/null +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInterWithOverrideArgs.java @@ -0,0 +1,61 @@ +package org.skywalking.apm.agent.core.plugin.interceptor.enhance; + +import net.bytebuddy.implementation.bind.annotation.AllArguments; +import net.bytebuddy.implementation.bind.annotation.FieldProxy; +import net.bytebuddy.implementation.bind.annotation.Morph; +import net.bytebuddy.implementation.bind.annotation.RuntimeType; +import net.bytebuddy.implementation.bind.annotation.This; +import org.skywalking.apm.agent.core.plugin.interceptor.loader.InterceptorInstanceLoader; +import org.skywalking.apm.logging.ILog; +import org.skywalking.apm.logging.LogManager; + +/** + * The actual byte-buddy's interceptor to intercept constructor methods. + * In this class, it provide a bridge between byte-buddy and sky-walking plugin. + * + * @author wusheng + */ +public class ConstructorInterWithOverrideArgs { + private static final ILog logger = LogManager.getLogger(ConstructorInterWithOverrideArgs.class); + + /** + * A class full name, and instanceof {@link InstanceConstructorInterceptor} + * This name should only stay in {@link String}, the real {@link Class} type will trigger classloader failure. + * If you want to know more, please check on books about Classloader or Classloader appointment mechanism. + */ + private String constructorInterceptorClassName; + + /** + * Set the name of {@link ConstructorInterWithOverrideArgs#constructorInterceptorClassName} + * + * @param constructorInterceptorClassName class full name. + */ + public ConstructorInterWithOverrideArgs(String constructorInterceptorClassName) { + this.constructorInterceptorClassName = constructorInterceptorClassName; + } + + /** + * Intercept the target constructor. + * + * @param obj target class instance. + * @param dynamicFieldGetter a proxy to set the dynamic field + * @param dynamicFieldSetter a proxy to get the dynamic field + * @param allArguments all constructor arguments + */ + @RuntimeType + public void intercept(@This Object obj, + @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldSetter dynamicFieldSetter, + @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldGetter dynamicFieldGetter, + @AllArguments Object[] allArguments, + @Morph(defaultMethod = true) Constructible zuper) { + try { + InstanceConstructorInterceptor interceptor = InterceptorInstanceLoader.load(constructorInterceptorClassName, obj.getClass().getClassLoader()); + + interceptor.onConstruct(obj, allArguments, dynamicFieldSetter, dynamicFieldGetter); + zuper.call(allArguments); + } catch (Throwable t) { + logger.error("ConstructorInter failure.", t); + } + + } +} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInvokeContext.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInvokeContext.java deleted file mode 100644 index 25fb186bf..000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInvokeContext.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.skywalking.apm.agent.core.plugin.interceptor.enhance; - -/** - * Constructor context. - * - * @author wusheng - */ -public class ConstructorInvokeContext { - /** - * object instance - */ - private Object objInst; - /** - * constructor's arguments list. - */ - private Object[] allArguments; - - ConstructorInvokeContext(Object objInst, Object[] allArguments) { - this.objInst = objInst; - this.allArguments = allArguments; - } - - /** - * @return object instance - */ - public Object inst() { - return objInst; - } - - /** - * @return arguments list. - */ - public Object[] allArguments() { - return this.allArguments; - } -} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/DefaultClassConstructorInterceptor.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/DefaultClassConstructorInterceptor.java deleted file mode 100644 index 548452793..000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/DefaultClassConstructorInterceptor.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.skywalking.apm.agent.core.plugin.interceptor.enhance; - -import net.bytebuddy.implementation.bind.annotation.AllArguments; -import net.bytebuddy.implementation.bind.annotation.FieldProxy; -import net.bytebuddy.implementation.bind.annotation.RuntimeType; -import net.bytebuddy.implementation.bind.annotation.This; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.logging.ILog; -import org.skywalking.apm.logging.LogManager; - -/** - * Created by xin on 2016/12/6. - */ -public class DefaultClassConstructorInterceptor { - private static final ILog logger = LogManager - .getLogger(ClassConstructorInterceptor.class); - - @RuntimeType - public void intercept( - @This Object obj, - @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldSetter accessor, - @AllArguments Object[] allArguments) { - try { - EnhancedClassInstanceContext context = new EnhancedClassInstanceContext(); - accessor.setValue(context); - } catch (Throwable t) { - logger.error("ClassConstructorInterceptor failure.", t); - } - - } -} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstance.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstance.java new file mode 100644 index 000000000..39547a9d6 --- /dev/null +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstance.java @@ -0,0 +1,8 @@ +package org.skywalking.apm.agent.core.plugin.interceptor.enhance; + +/** + * @author wusheng + */ +public interface EnhancedInstance { + Object _getSkyWalkingDynamicFiled(); +} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstanceFieldGetter.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstanceFieldGetter.java new file mode 100644 index 000000000..27332f627 --- /dev/null +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstanceFieldGetter.java @@ -0,0 +1,17 @@ +package org.skywalking.apm.agent.core.plugin.interceptor.enhance; + +import net.bytebuddy.implementation.bind.annotation.FieldValue; +import net.bytebuddy.implementation.bind.annotation.RuntimeType; + +/** + * Get the value of dynamic added {@link ClassEnhancePluginDefine#CONTEXT_ATTR_NAME} field + * + * @author wusheng + */ +public class EnhancedInstanceFieldGetter { + @RuntimeType + public Object intercept( + @FieldValue(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) Object fieldValue) { + return fieldValue; + } +} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassInstanceMethodsInterceptor.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInter.java similarity index 60% rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassInstanceMethodsInterceptor.java rename to apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInter.java index c58669940..2d51ba93f 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassInstanceMethodsInterceptor.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInter.java @@ -2,7 +2,6 @@ package org.skywalking.apm.agent.core.plugin.interceptor.enhance; import net.bytebuddy.implementation.bind.annotation.*; import org.skywalking.apm.agent.core.plugin.interceptor.loader.InterceptorInstanceLoader; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; import org.skywalking.apm.logging.ILog; import org.skywalking.apm.logging.LogManager; @@ -15,8 +14,8 @@ import java.util.concurrent.Callable; * * @author wusheng */ -public class ClassInstanceMethodsInterceptor { - private static final ILog logger = LogManager.getLogger(ClassInstanceMethodsInterceptor.class); +public class InstMethodsInter { + private static final ILog logger = LogManager.getLogger(InstMethodsInter.class); /** * A class full name, and instanceof {@link InstanceMethodsAroundInterceptor} @@ -26,37 +25,44 @@ public class ClassInstanceMethodsInterceptor { private String instanceMethodsAroundInterceptorClassName; /** - * Set the name of {@link ClassInstanceMethodsInterceptor#instanceMethodsAroundInterceptorClassName} + * Set the name of {@link InstMethodsInter#instanceMethodsAroundInterceptorClassName} * * @param instanceMethodsAroundInterceptorClassName class full name. */ - public ClassInstanceMethodsInterceptor(String instanceMethodsAroundInterceptorClassName) { + public InstMethodsInter(String instanceMethodsAroundInterceptorClassName) { this.instanceMethodsAroundInterceptorClassName = instanceMethodsAroundInterceptorClassName; } /** * Intercept the target instance method. * - * @param obj target class instance. - * @param allArguments all method arguments - * @param method method description. - * @param zuper the origin call ref. - * @param instanceContext the added field of enhanced class. + * @param obj target class instance. + * @param allArguments all method arguments + * @param method method description. + * @param dynamicFieldGetter a proxy to set the dynamic field + * @param dynamicFieldSetter a proxy to get the dynamic field + * @param zuper the origin call ref. * @return the return value of target instance method. * @throws Exception only throw exception because of zuper.call() or unexpected exception in sky-walking ( This is a - * bug, if anything triggers this condition ). + * bug, if anything triggers this condition ). */ @RuntimeType - public Object intercept(@This Object obj, @AllArguments Object[] allArguments, @Origin Method method, - @SuperCall Callable zuper, - @FieldValue(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) EnhancedClassInstanceContext instanceContext) throws Throwable { + public Object intercept(@This Object obj, + @AllArguments Object[] allArguments, + @SuperCall Callable zuper, + @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldSetter dynamicFieldSetter, + @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldGetter dynamicFieldGetter, + @Origin Method method + ) throws Throwable { InstanceMethodsAroundInterceptor interceptor = InterceptorInstanceLoader .load(instanceMethodsAroundInterceptorClassName, obj.getClass().getClassLoader()); - InstanceMethodInvokeContext interceptorContext = new InstanceMethodInvokeContext(obj, method.getName(), allArguments, method.getParameterTypes()); MethodInterceptResult result = new MethodInterceptResult(); try { - interceptor.beforeMethod(instanceContext, interceptorContext, result); + interceptor.beforeMethod(obj, method.getName(), allArguments, method.getParameterTypes(), + dynamicFieldSetter, + dynamicFieldGetter, + result); } catch (Throwable t) { logger.error(t, "class[{}] before method[{}] intercept failure", obj.getClass(), method.getName()); } @@ -70,14 +76,20 @@ public class ClassInstanceMethodsInterceptor { } } catch (Throwable t) { try { - interceptor.handleMethodException(t, instanceContext, interceptorContext); + interceptor.handleMethodException(obj, method.getName(), allArguments, method.getParameterTypes(), + dynamicFieldSetter, + dynamicFieldGetter, + t); } catch (Throwable t2) { logger.error(t2, "class[{}] handle method[{}] exception failure", obj.getClass(), method.getName()); } throw t; } finally { try { - ret = interceptor.afterMethod(instanceContext, interceptorContext, ret); + ret = interceptor.afterMethod(obj, method.getName(), allArguments, method.getParameterTypes(), + dynamicFieldSetter, + dynamicFieldGetter, + ret); } catch (Throwable t) { logger.error(t, "class[{}] after method[{}] intercept failure", obj.getClass(), method.getName()); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInterWithOverrideArgs.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInterWithOverrideArgs.java new file mode 100644 index 000000000..929e5b6d1 --- /dev/null +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInterWithOverrideArgs.java @@ -0,0 +1,102 @@ +package org.skywalking.apm.agent.core.plugin.interceptor.enhance; + +import java.lang.reflect.Method; +import net.bytebuddy.implementation.bind.annotation.AllArguments; +import net.bytebuddy.implementation.bind.annotation.FieldProxy; +import net.bytebuddy.implementation.bind.annotation.Morph; +import net.bytebuddy.implementation.bind.annotation.Origin; +import net.bytebuddy.implementation.bind.annotation.RuntimeType; +import net.bytebuddy.implementation.bind.annotation.This; +import org.skywalking.apm.agent.core.plugin.interceptor.loader.InterceptorInstanceLoader; +import org.skywalking.apm.logging.ILog; +import org.skywalking.apm.logging.LogManager; + +/** + * The actual byte-buddy's interceptor to intercept class instance methods. + * In this class, it provide a bridge between byte-buddy and sky-walking plugin. + * + * @author wusheng + */ +public class InstMethodsInterWithOverrideArgs { + private static final ILog logger = LogManager.getLogger(InstMethodsInterWithOverrideArgs.class); + + /** + * A class full name, and instanceof {@link InstanceMethodsAroundInterceptor} + * This name should only stay in {@link String}, the real {@link Class} type will trigger classloader failure. + * If you want to know more, please check on books about Classloader or Classloader appointment mechanism. + */ + private String instanceMethodsAroundInterceptorClassName; + + /** + * Set the name of {@link InstMethodsInterWithOverrideArgs#instanceMethodsAroundInterceptorClassName} + * + * @param instanceMethodsAroundInterceptorClassName class full name. + */ + public InstMethodsInterWithOverrideArgs(String instanceMethodsAroundInterceptorClassName) { + this.instanceMethodsAroundInterceptorClassName = instanceMethodsAroundInterceptorClassName; + } + + /** + * Intercept the target instance method. + * + * @param obj target class instance. + * @param allArguments all method arguments + * @param method method description. + * @param dynamicFieldGetter a proxy to set the dynamic field + * @param dynamicFieldSetter a proxy to get the dynamic field + * @param zuper the origin call ref. + * @return the return value of target instance method. + * @throws Exception only throw exception because of zuper.call() or unexpected exception in sky-walking ( This is a + * bug, if anything triggers this condition ). + */ + @RuntimeType + public Object intercept(@This Object obj, + @AllArguments Object[] allArguments, + @Origin Method method, + @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldSetter dynamicFieldSetter, + @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldGetter dynamicFieldGetter, + @Morph(defaultMethod = true) OverrideCallable zuper + ) throws Throwable { + InstanceMethodsAroundInterceptor interceptor = InterceptorInstanceLoader + .load(instanceMethodsAroundInterceptorClassName, obj.getClass().getClassLoader()); + + MethodInterceptResult result = new MethodInterceptResult(); + try { + interceptor.beforeMethod(obj, method.getName(), allArguments, method.getParameterTypes(), + dynamicFieldSetter, + dynamicFieldGetter, + result); + } catch (Throwable t) { + logger.error(t, "class[{}] before method[{}] intercept failure", obj.getClass(), method.getName()); + } + + Object ret = null; + try { + if (!result.isContinue()) { + ret = result._ret(); + } else { + ret = zuper.call(allArguments); + } + } catch (Throwable t) { + try { + interceptor.handleMethodException(obj, method.getName(), allArguments, method.getParameterTypes(), + dynamicFieldSetter, + dynamicFieldGetter, + t); + } catch (Throwable t2) { + logger.error(t2, "class[{}] handle method[{}] exception failure", obj.getClass(), method.getName()); + } + throw t; + } finally { + try { + ret = interceptor.afterMethod(obj, method.getName(), allArguments, method.getParameterTypes(), + dynamicFieldSetter, + dynamicFieldGetter, + ret); + } catch (Throwable t) { + logger.error(t, "class[{}] after method[{}] intercept failure", obj.getClass(), method.getName()); + } + } + return ret; + } +} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java index b5cb6d9e6..bf67f7a20 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java @@ -1,19 +1,18 @@ package org.skywalking.apm.agent.core.plugin.interceptor.enhance; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; - /** * The instance constructor's interceptor interface. * Any plugin, which wants to intercept constructor, must implement this interface. *

- * Created by wusheng on 2016/11/29. + * + * @author wusheng */ public interface InstanceConstructorInterceptor { /** * Called before the origin constructor invocation. - * - * @param context a new added instance field - * @param interceptorContext constructor invocation context. */ - void onConstruct(EnhancedClassInstanceContext context, ConstructorInvokeContext interceptorContext); + void onConstruct(Object objInst, + Object[] allArguments, + FieldSetter dynamicFieldSetter, + FieldGetter dynamicFieldGetter); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceMethodInvokeContext.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceMethodInvokeContext.java deleted file mode 100644 index f174d3bb4..000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceMethodInvokeContext.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.skywalking.apm.agent.core.plugin.interceptor.enhance; - -/** - * Instance method invoke context. - * Beside all in {@link MethodInvokeContext}, plus Object instance ref. - * - * @author wusheng - */ -public class InstanceMethodInvokeContext extends MethodInvokeContext { - private Object objInst; - - InstanceMethodInvokeContext(Object objInst, String methodName, Object[] allArguments, Class[] argumentsTypes) { - super(methodName, allArguments, argumentsTypes); - this.objInst = objInst; - } - - /** - * @return the target instance's ref. - */ - public Object inst() { - return objInst; - } -} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java index 5e8b445b5..a62836c9e 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java @@ -1,7 +1,5 @@ package org.skywalking.apm.agent.core.plugin.interceptor.enhance; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; - /** * A interceptor, which intercept method's invocation. The target methods will be defined in {@link * ClassEnhancePluginDefine}'s subclass, most likely in {@link ClassInstanceMethodsEnhancePluginDefine} @@ -12,33 +10,33 @@ public interface InstanceMethodsAroundInterceptor { /** * called before target method invocation. * - * @param context instance context, a class instance only has one {@link EnhancedClassInstanceContext} instance. - * @param interceptorContext method context, includes class name, method name, etc. * @param result change this result, if you want to truncate the method. * @throws Throwable */ - void beforeMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, + void beforeMethod(Object objInst, String methodName, Object[] allArguments, Class[] argumentsTypes, + FieldSetter dynamicFieldSetter, + FieldGetter dynamicFieldGetter, MethodInterceptResult result) throws Throwable; /** * called after target method invocation. Even method's invocation triggers an exception. * - * @param context instance context, a class instance only has one {@link EnhancedClassInstanceContext} instance. - * @param interceptorContext method context, includes class name, method name, etc. * @param ret the method's original return value. * @return the method's actual return value. * @throws Throwable */ - Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, + Object afterMethod(Object objInst, String methodName, Object[] allArguments, Class[] argumentsTypes, + FieldSetter dynamicFieldSetter, + FieldGetter dynamicFieldGetter, Object ret) throws Throwable; /** * called when occur exception. * * @param t the exception occur. - * @param context instance context, a class instance only has one {@link EnhancedClassInstanceContext} instance. - * @param interceptorContext method context, includes class name, method name, etc. */ - void handleMethodException(Throwable t, EnhancedClassInstanceContext context, - InstanceMethodInvokeContext interceptorContext); + void handleMethodException(Object objInst, String methodName, Object[] allArguments, Class[] argumentsTypes, + FieldSetter dynamicFieldSetter, + FieldGetter dynamicFieldGetter, + Throwable t); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/MethodInterceptResult.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/MethodInterceptResult.java index 004561d81..6a8135c21 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/MethodInterceptResult.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/MethodInterceptResult.java @@ -25,8 +25,8 @@ public class MethodInterceptResult { } /** - * @return true, will trigger method interceptor({@link ClassInstanceMethodsInterceptor} and {@link - * ClassStaticMethodsInterceptor}) to invoke the origin method. Otherwise, not. + * @return true, will trigger method interceptor({@link InstMethodsInter} and {@link + * StaticMethodsInter}) to invoke the origin method. Otherwise, not. */ public boolean isContinue() { return isContinue; diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/MethodInvokeContext.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/MethodInvokeContext.java deleted file mode 100644 index 8202ffe34..000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/MethodInvokeContext.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.skywalking.apm.agent.core.plugin.interceptor.enhance; - -/** - * Method invoke context. - * Include method name, arguments list and argument types list. - * - * @author wusheng - */ -public class MethodInvokeContext { - private String methodName; - private Object[] allArguments; - private Class[] argumentTypes; - - MethodInvokeContext(String methodName, Object[] allArguments, Class[] argumentTypes) { - this.methodName = methodName; - this.allArguments = allArguments; - this.argumentTypes = argumentTypes; - } - - /** - * @return arguments list. - */ - public Object[] allArguments() { - return this.allArguments; - } - - /** - * @return method name. - */ - public String methodName() { - return methodName; - } - - /** - * @return argument types list. - */ - public Class[] argumentTypes() { - return argumentTypes; - } - -} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/OverrideCallable.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/OverrideCallable.java new file mode 100644 index 000000000..9e16b6e51 --- /dev/null +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/OverrideCallable.java @@ -0,0 +1,8 @@ +package org.skywalking.apm.agent.core.plugin.interceptor.enhance; + +/** + * @author wusheng + */ +public interface OverrideCallable { + Object call(Object[] args); +} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodInvokeContext.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodInvokeContext.java deleted file mode 100644 index 022c8bde8..000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodInvokeContext.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.skywalking.apm.agent.core.plugin.interceptor.enhance; - -/** - * Static method invoke context. - * Beside all in {@link MethodInvokeContext}, plus the class type. - * - * @author wusheng - */ -public class StaticMethodInvokeContext extends MethodInvokeContext { - /** - * target class. - */ - private Class clazz; - - StaticMethodInvokeContext(Class clazz, String methodName, Object[] allArguments, Class[] parameterTypes) { - super(methodName, allArguments, parameterTypes); - this.clazz = clazz; - } - - /** - * @return the target class - */ - public Class claszz() { - return clazz; - } -} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsAroundInterceptor.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsAroundInterceptor.java index ab0996924..fe26ac239 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsAroundInterceptor.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsAroundInterceptor.java @@ -10,25 +10,24 @@ public interface StaticMethodsAroundInterceptor { /** * called before target method invocation. * - * @param interceptorContext method context, includes class name, method name, etc. - * @param result change this result, if you want to truncate the method. + * @param result change this result, if you want to truncate the method. */ - void beforeMethod(StaticMethodInvokeContext interceptorContext, MethodInterceptResult result); + void beforeMethod(Class clazz, String methodName, Object[] allArguments, Class[] parameterTypes, + MethodInterceptResult result); /** * called after target method invocation. Even method's invocation triggers an exception. * - * @param interceptorContext method context, includes class name, method name, etc. - * @param ret the method's original return value. + * @param ret the method's original return value. * @return the method's actual return value. */ - Object afterMethod(StaticMethodInvokeContext interceptorContext, Object ret); + Object afterMethod(Class clazz, String methodName, Object[] allArguments, Class[] parameterTypes, Object ret); /** * called when occur exception. * - * @param t the exception occur. - * @param interceptorContext method context, includes class name, method name, etc. + * @param t the exception occur. */ - void handleMethodException(Throwable t, MethodInvokeContext interceptorContext); + void handleMethodException(Class clazz, String methodName, Object[] allArguments, Class[] parameterTypes, + Throwable t); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassStaticMethodsInterceptor.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsInter.java similarity index 74% rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassStaticMethodsInterceptor.java rename to apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsInter.java index 066d47d39..f93fdb620 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassStaticMethodsInterceptor.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsInter.java @@ -17,8 +17,8 @@ import java.util.concurrent.Callable; * * @author wusheng */ -public class ClassStaticMethodsInterceptor { - private static final ILog logger = LogManager.getLogger(ClassStaticMethodsInterceptor.class); +public class StaticMethodsInter { + private static final ILog logger = LogManager.getLogger(StaticMethodsInter.class); /** * A class full name, and instanceof {@link StaticMethodsAroundInterceptor} @@ -28,35 +28,34 @@ public class ClassStaticMethodsInterceptor { private String staticMethodsAroundInterceptorClassName; /** - * Set the name of {@link ClassStaticMethodsInterceptor#staticMethodsAroundInterceptorClassName} + * Set the name of {@link StaticMethodsInter#staticMethodsAroundInterceptorClassName} * * @param staticMethodsAroundInterceptorClassName class full name. */ - public ClassStaticMethodsInterceptor(String staticMethodsAroundInterceptorClassName) { + public StaticMethodsInter(String staticMethodsAroundInterceptorClassName) { this.staticMethodsAroundInterceptorClassName = staticMethodsAroundInterceptorClassName; } /** * Intercept the target static method. * - * @param clazz target class + * @param clazz target class * @param allArguments all method arguments - * @param method method description. - * @param zuper the origin call ref. + * @param method method description. + * @param zuper the origin call ref. * @return the return value of target static method. * @throws Exception only throw exception because of zuper.call() or unexpected exception in sky-walking ( This is a - * bug, if anything triggers this condition ). + * bug, if anything triggers this condition ). */ @RuntimeType public Object intercept(@Origin Class clazz, @AllArguments Object[] allArguments, @Origin Method method, - @SuperCall Callable zuper) throws Throwable { + @SuperCall Callable zuper) throws Throwable { StaticMethodsAroundInterceptor interceptor = InterceptorInstanceLoader .load(staticMethodsAroundInterceptorClassName, clazz.getClassLoader()); - StaticMethodInvokeContext interceptorContext = new StaticMethodInvokeContext(clazz, method.getName(), allArguments, method.getParameterTypes()); MethodInterceptResult result = new MethodInterceptResult(); try { - interceptor.beforeMethod(interceptorContext, result); + interceptor.beforeMethod(clazz, method.getName(), allArguments, method.getParameterTypes(), result); } catch (Throwable t) { logger.error(t, "class[{}] before static method[{}] intercept failure", clazz, method.getName()); } @@ -70,14 +69,14 @@ public class ClassStaticMethodsInterceptor { } } catch (Throwable t) { try { - interceptor.handleMethodException(t, interceptorContext); + interceptor.handleMethodException(clazz, method.getName(), allArguments, method.getParameterTypes(), t); } catch (Throwable t2) { logger.error(t2, "class[{}] handle static method[{}] exception failure", clazz, method.getName(), t2.getMessage()); } throw t; } finally { try { - ret = interceptor.afterMethod(interceptorContext, ret); + ret = interceptor.afterMethod(clazz, method.getName(), allArguments, method.getParameterTypes(), ret); } catch (Throwable t) { logger.error(t, "class[{}] after static method[{}] intercept failure:{}", clazz, method.getName(), t.getMessage()); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsInterWithOverrideArgs.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsInterWithOverrideArgs.java new file mode 100644 index 000000000..13a94f9dc --- /dev/null +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/StaticMethodsInterWithOverrideArgs.java @@ -0,0 +1,84 @@ +package org.skywalking.apm.agent.core.plugin.interceptor.enhance; + +import java.lang.reflect.Method; +import net.bytebuddy.implementation.bind.annotation.AllArguments; +import net.bytebuddy.implementation.bind.annotation.Morph; +import net.bytebuddy.implementation.bind.annotation.Origin; +import net.bytebuddy.implementation.bind.annotation.RuntimeType; +import org.skywalking.apm.agent.core.plugin.interceptor.loader.InterceptorInstanceLoader; +import org.skywalking.apm.logging.ILog; +import org.skywalking.apm.logging.LogManager; + +/** + * The actual byte-buddy's interceptor to intercept class instance methods. + * In this class, it provide a bridge between byte-buddy and sky-walking plugin. + * + * @author wusheng + */ +public class StaticMethodsInterWithOverrideArgs { + private static final ILog logger = LogManager.getLogger(StaticMethodsInterWithOverrideArgs.class); + + /** + * A class full name, and instanceof {@link StaticMethodsAroundInterceptor} + * This name should only stay in {@link String}, the real {@link Class} type will trigger classloader failure. + * If you want to know more, please check on books about Classloader or Classloader appointment mechanism. + */ + private String staticMethodsAroundInterceptorClassName; + + /** + * Set the name of {@link StaticMethodsInterWithOverrideArgs#staticMethodsAroundInterceptorClassName} + * + * @param staticMethodsAroundInterceptorClassName class full name. + */ + public StaticMethodsInterWithOverrideArgs(String staticMethodsAroundInterceptorClassName) { + this.staticMethodsAroundInterceptorClassName = staticMethodsAroundInterceptorClassName; + } + + /** + * Intercept the target static method. + * + * @param clazz target class + * @param allArguments all method arguments + * @param method method description. + * @param zuper the origin call ref. + * @return the return value of target static method. + * @throws Exception only throw exception because of zuper.call() or unexpected exception in sky-walking ( This is a + * bug, if anything triggers this condition ). + */ + @RuntimeType + public Object intercept(@Origin Class clazz, @AllArguments Object[] allArguments, @Origin Method method, + @Morph(defaultMethod = true) OverrideCallable zuper) throws Throwable { + StaticMethodsAroundInterceptor interceptor = InterceptorInstanceLoader + .load(staticMethodsAroundInterceptorClassName, clazz.getClassLoader()); + + MethodInterceptResult result = new MethodInterceptResult(); + try { + interceptor.beforeMethod(clazz, method.getName(), allArguments, method.getParameterTypes(), result); + } catch (Throwable t) { + logger.error(t, "class[{}] before static method[{}] intercept failure", clazz, method.getName()); + } + + Object ret = null; + try { + if (!result.isContinue()) { + ret = result._ret(); + } else { + ret = zuper.call(allArguments); + } + } catch (Throwable t) { + try { + interceptor.handleMethodException(clazz, method.getName(), allArguments, method.getParameterTypes(), t); + } catch (Throwable t2) { + logger.error(t2, "class[{}] handle static method[{}] exception failure", clazz, method.getName(), t2.getMessage()); + } + throw t; + } finally { + try { + ret = interceptor.afterMethod(clazz, method.getName(), allArguments, method.getParameterTypes(), ret); + } catch (Throwable t) { + logger.error(t, "class[{}] after static method[{}] intercept failure:{}", clazz, method.getName(), t.getMessage()); + } + } + return ret; + } +} diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/MockPluginInterceptor.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/MockPluginInterceptor.java index 4bd3996ba..9ec63ab6c 100644 --- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/MockPluginInterceptor.java +++ b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/MockPluginInterceptor.java @@ -1,14 +1,9 @@ package org.skywalking.apm.agent.core.plugin; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInvokeContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodsAroundInterceptor; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; public class MockPluginInterceptor implements InstanceMethodsAroundInterceptor, StaticMethodsAroundInterceptor, InstanceConstructorInterceptor { @Override diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/assist/NoConcurrencyAccessObjectTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/assist/NoConcurrencyAccessObjectTest.java index e2f6a01df..a1333a382 100644 --- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/assist/NoConcurrencyAccessObjectTest.java +++ b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/assist/NoConcurrencyAccessObjectTest.java @@ -5,9 +5,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; import org.skywalking.apm.agent.core.plugin.interceptor.assist.NoConcurrencyAccessObject; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; /** * @author wusheng diff --git a/apm-sniffer/apm-agent/src/main/java/org/skywalking/apm/agent/SkyWalkingAgent.java b/apm-sniffer/apm-agent/src/main/java/org/skywalking/apm/agent/SkyWalkingAgent.java index 3b91cf12c..bd2dbce9d 100644 --- a/apm-sniffer/apm-agent/src/main/java/org/skywalking/apm/agent/SkyWalkingAgent.java +++ b/apm-sniffer/apm-agent/src/main/java/org/skywalking/apm/agent/SkyWalkingAgent.java @@ -53,8 +53,9 @@ public class SkyWalkingAgent { ServiceManager.INSTANCE.boot(); new AgentBuilder.Default().type(enhanceClassMatcher(pluginFinder).and(not(isInterface()))).transform(new AgentBuilder.Transformer() { + @Override public DynamicType.Builder transform(DynamicType.Builder builder, TypeDescription typeDescription, - ClassLoader classLoader) { + ClassLoader classLoader, JavaModule module) { List pluginDefines = pluginFinder.find(typeDescription.getTypeName()); for (AbstractClassEnhancePluginDefine pluginDefine : pluginDefines) { DynamicType.Builder newBuilder = pluginDefine.define(typeDescription.getTypeName(), builder, classLoader); @@ -63,27 +64,37 @@ public class SkyWalkingAgent { } } - logger.warn("Matched class {}, but enhancement fail.", typeDescription.getTypeName()); + logger.warn("Matched class {}, but enhancement fails.", typeDescription.getTypeName()); return builder; } }).with(new AgentBuilder.Listener() { + @Override + public void onDiscovery(String typeName, ClassLoader classLoader, JavaModule module, boolean loaded) { + + } + @Override public void onTransformation(TypeDescription typeDescription, ClassLoader classLoader, JavaModule module, - DynamicType dynamicType) { + boolean loaded, DynamicType dynamicType) { } @Override - public void onIgnored(TypeDescription typeDescription, ClassLoader classLoader, JavaModule module) { + public void onIgnored(TypeDescription typeDescription, ClassLoader classLoader, JavaModule module, + boolean loaded) { + } - @Override - public void onError(String typeName, ClassLoader classLoader, JavaModule module, Throwable throwable) { + @Override public void onError(String typeName, ClassLoader classLoader, JavaModule module, boolean loaded, + Throwable throwable) { logger.error("Failed to enhance class " + typeName, throwable); } @Override - public void onComplete(String typeName, ClassLoader classLoader, JavaModule module) { + public void onComplete(String typeName, ClassLoader classLoader, JavaModule module, boolean loaded) { + if(logger.isDebugEnable()){ + logger.debug("Enhance class {} completed.", typeName); + } } }).installOn(instrumentation); } diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/skywalking/apm/plugin/dubbo/DubboInterceptor.java b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/skywalking/apm/plugin/dubbo/DubboInterceptor.java index 794756148..9e39b8b04 100644 --- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/skywalking/apm/plugin/dubbo/DubboInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/skywalking/apm/plugin/dubbo/DubboInterceptor.java @@ -10,8 +10,6 @@ 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; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.plugin.dubbox.BugFixActive; diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java index 735f50fbf..25d410677 100644 --- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java @@ -18,8 +18,6 @@ import org.powermock.modules.junit4.PowerMockRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; import org.skywalking.apm.agent.core.conf.Config; import org.skywalking.apm.agent.core.context.ContextCarrier; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.plugin.dubbox.BugFixActive; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; diff --git a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/main/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptor.java b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/main/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptor.java index 37525e8e1..24bc72bca 100644 --- a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/main/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/main/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptor.java @@ -16,8 +16,6 @@ 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; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; diff --git a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/test/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/test/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptorTest.java index 5771cea05..512d7c7de 100644 --- a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/test/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/test/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptorTest.java @@ -14,8 +14,6 @@ import org.mockito.Mock; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; diff --git a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java index eeca193d6..29d7d464e 100644 --- a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java @@ -12,8 +12,6 @@ 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; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; diff --git a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/test/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/test/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptorTest.java index ccf4ca391..b392f31f3 100644 --- a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/test/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/test/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptorTest.java @@ -11,8 +11,6 @@ import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; import org.skywalking.apm.sniffer.mock.trace.tags.BooleanTagReader; diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/define/JDBCDriverInterceptor.java b/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/define/JDBCDriverInterceptor.java index a00f19936..d5f5be324 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/define/JDBCDriverInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/define/JDBCDriverInterceptor.java @@ -1,7 +1,5 @@ package org.skywalking.apm.plugin.jdbc.define; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.plugin.jdbc.SWConnection; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithHostAndPortArgInterceptor.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithHostAndPortArgInterceptor.java index 7cffbbec8..79acd06a5 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithHostAndPortArgInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithHostAndPortArgInterceptor.java @@ -1,7 +1,5 @@ package org.skywalking.apm.plugin.jedis.v2; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; import redis.clients.jedis.HostAndPort; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithListHostAndPortArgInterceptor.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithListHostAndPortArgInterceptor.java index 7d551fd6e..8e8623536 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithListHostAndPortArgInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithListHostAndPortArgInterceptor.java @@ -1,7 +1,5 @@ package org.skywalking.apm.plugin.jedis.v2; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; import redis.clients.jedis.HostAndPort; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithShardInfoArgInterceptor.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithShardInfoArgInterceptor.java index e3359e926..549ca1b78 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithShardInfoArgInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithShardInfoArgInterceptor.java @@ -1,7 +1,5 @@ package org.skywalking.apm.plugin.jedis.v2; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; import redis.clients.jedis.JedisShardInfo; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithStringArgInterceptor.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithStringArgInterceptor.java index 816a62154..78e6a9d0e 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithStringArgInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithStringArgInterceptor.java @@ -1,7 +1,5 @@ package org.skywalking.apm.plugin.jedis.v2; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; /** diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithUriArgInterceptor.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithUriArgInterceptor.java index 377d3a235..dfcd8dc2b 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithUriArgInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithUriArgInterceptor.java @@ -1,7 +1,5 @@ package org.skywalking.apm.plugin.jedis.v2; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; import java.net.URI; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java index d7c90d5fc..de20b3731 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java @@ -3,9 +3,7 @@ package org.skywalking.apm.plugin.jedis.v2; import org.skywalking.apm.agent.core.context.ContextManager; import org.skywalking.apm.agent.core.context.tag.Tags; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; import org.skywalking.apm.agent.core.plugin.interceptor.assist.NoConcurrencyAccessObject; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.util.StringUtil; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithHostAndPortArgInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithHostAndPortArgInterceptorTest.java index 7292e37c9..e2810cdb1 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithHostAndPortArgInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithHostAndPortArgInterceptorTest.java @@ -6,8 +6,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import redis.clients.jedis.HostAndPort; import static org.mockito.Mockito.*; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithListHostAndPortArgInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithListHostAndPortArgInterceptorTest.java index 1e20b517f..c829f70bd 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithListHostAndPortArgInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisClusterConstructorWithListHostAndPortArgInterceptorTest.java @@ -6,8 +6,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import redis.clients.jedis.HostAndPort; import java.util.HashSet; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithShardInfoArgInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithShardInfoArgInterceptorTest.java index d15f5c276..18c3c7fd9 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithShardInfoArgInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithShardInfoArgInterceptorTest.java @@ -6,8 +6,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import redis.clients.jedis.JedisShardInfo; import static org.mockito.Mockito.*; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithStringArgInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithStringArgInterceptorTest.java index bf6408fbb..1ffa03829 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithStringArgInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithStringArgInterceptorTest.java @@ -5,8 +5,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import static org.mockito.Mockito.*; import static org.skywalking.apm.plugin.jedis.v2.JedisMethodInterceptor.*; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithUriArgInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithUriArgInterceptorTest.java index 86b7adc7e..46d69fb91 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithUriArgInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisConstructorWithUriArgInterceptorTest.java @@ -6,8 +6,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import java.net.URI; diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptorTest.java index 8d38da6c3..39827cbd2 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptorTest.java @@ -11,8 +11,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java index 546b968b3..3a176c194 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java @@ -30,8 +30,6 @@ import org.skywalking.apm.agent.core.conf.Config; import org.skywalking.apm.agent.core.context.ContextManager; import org.skywalking.apm.agent.core.context.tag.Tags; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBReadBindingInterceptor.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBReadBindingInterceptor.java index e30ebf2ae..bed72e976 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBReadBindingInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBReadBindingInterceptor.java @@ -3,8 +3,6 @@ package org.skywalking.apm.plugin.mongodb.v3; import com.mongodb.ReadPreference; import com.mongodb.ServerAddress; import com.mongodb.binding.ReadBinding; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteBindingInterceptor.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteBindingInterceptor.java index 42c83ead9..9f45e3675 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteBindingInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteBindingInterceptor.java @@ -2,8 +2,6 @@ package org.skywalking.apm.plugin.mongodb.v3; import com.mongodb.ServerAddress; import com.mongodb.binding.WriteBinding; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptorTest.java index dd9598ea2..66de2e524 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptorTest.java @@ -16,8 +16,6 @@ import org.mockito.runners.MockitoJUnitRunner; import org.powermock.api.mockito.PowerMockito; import org.skywalking.apm.agent.core.boot.ServiceManager; import org.skywalking.apm.agent.core.conf.Config; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBReadBindingInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBReadBindingInterceptorTest.java index cc2cca305..c6bd4aae8 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBReadBindingInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBReadBindingInterceptorTest.java @@ -11,8 +11,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.powermock.api.mockito.PowerMockito; import org.powermock.modules.junit4.PowerMockRunner; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteBindingInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteBindingInterceptorTest.java index 320e1ad3e..cdfd1a3e8 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteBindingInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteBindingInterceptorTest.java @@ -11,8 +11,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.powermock.api.mockito.PowerMockito; import org.powermock.modules.junit4.PowerMockRunner; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteMethodInterceptorTest.java index 887516dbd..ddcf463c2 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteMethodInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteMethodInterceptorTest.java @@ -17,8 +17,6 @@ import org.mockito.runners.MockitoJUnitRunner; import org.powermock.api.mockito.PowerMockito; import org.skywalking.apm.agent.core.boot.ServiceManager; import org.skywalking.apm.agent.core.conf.Config; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptor.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptor.java index e1592628e..73e7da2d7 100644 --- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptor.java @@ -8,10 +8,7 @@ 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; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptor.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptor.java index 6e1945b6d..b0a09c253 100644 --- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptor.java @@ -7,8 +7,6 @@ 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; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.util.StringUtil; diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptorTest.java index 36797179d..458add4f3 100644 --- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptorTest.java @@ -12,8 +12,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java index 692e850b2..70a234f01 100644 --- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java @@ -13,9 +13,6 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; import org.skywalking.apm.agent.core.conf.Config; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; diff --git a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/main/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptor.java b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/main/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptor.java index 3e97514e9..14b6d9c66 100644 --- a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/main/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/main/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptor.java @@ -11,10 +11,7 @@ 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; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; diff --git a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/test/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/test/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptorTest.java index 88c12bfa1..74ec48d5e 100644 --- a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/test/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/test/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptorTest.java @@ -11,9 +11,6 @@ import org.mockito.Mock; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; diff --git a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v3/ResinV3Interceptor.java b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v3/ResinV3Interceptor.java index ea273d2d5..fedd69f8c 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v3/ResinV3Interceptor.java +++ b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v3/ResinV3Interceptor.java @@ -7,8 +7,6 @@ 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; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.util.StringUtil; diff --git a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java index 52d8bcf8e..95ff62ac4 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java @@ -11,8 +11,6 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; import org.skywalking.apm.agent.core.conf.Config; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; diff --git a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v4/ResinV4Interceptor.java b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v4/ResinV4Interceptor.java index 682d2b407..daf141466 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v4/ResinV4Interceptor.java +++ b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v4/ResinV4Interceptor.java @@ -7,8 +7,6 @@ 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; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.util.StringUtil; diff --git a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java index 59fffed35..447fe905d 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java @@ -11,8 +11,6 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; import org.skywalking.apm.agent.core.conf.Config; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; diff --git a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptor.java b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptor.java index 80541fffe..25e37798c 100644 --- a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptor.java @@ -8,8 +8,6 @@ import org.skywalking.apm.agent.core.context.ContextManager; import org.skywalking.apm.agent.core.context.tag.Tags; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; import org.skywalking.apm.agent.core.context.trace.TraceSegment; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.util.StringUtil; diff --git a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java index b717c7f98..eb1c5647e 100644 --- a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java @@ -11,8 +11,6 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.skywalking.apm.agent.core.boot.ServiceManager; import org.skywalking.apm.agent.core.conf.Config; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.sniffer.mock.context.MockTracingContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/log4j/v1/x/PrintTraceIdInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/log4j/v1/x/PrintTraceIdInterceptor.java index e834e634d..ba31754c8 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/log4j/v1/x/PrintTraceIdInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/log4j/v1/x/PrintTraceIdInterceptor.java @@ -1,8 +1,6 @@ package org.skywalking.apm.toolkit.activation.log.log4j.v1.x; import org.skywalking.apm.agent.core.context.ContextManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/log4j/v2/x/PrintTraceIdInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/log4j/v2/x/PrintTraceIdInterceptor.java index 30fb39a52..33d617aca 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/log4j/v2/x/PrintTraceIdInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/log4j/v2/x/PrintTraceIdInterceptor.java @@ -2,8 +2,6 @@ package org.skywalking.apm.toolkit.activation.log.log4j.v2.x; import org.skywalking.apm.agent.core.context.ContextManager; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInvokeContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodsAroundInterceptor; /** diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/logback/v1/x/PrintTraceIdInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/logback/v1/x/PrintTraceIdInterceptor.java index 9ea8b8f56..8eacfa26b 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/logback/v1/x/PrintTraceIdInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/src/main/java/org/skywalking/apm/toolkit/activation/log/logback/v1/x/PrintTraceIdInterceptor.java @@ -1,8 +1,6 @@ package org.skywalking.apm.toolkit.activation.log.logback.v1.x; import org.skywalking.apm.agent.core.context.ContextManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanFinishInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanFinishInterceptor.java index 1d001843f..c45fd8427 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanFinishInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanFinishInterceptor.java @@ -1,8 +1,6 @@ package org.skywalking.apm.toolkit.activation.opentracing.span.interceptor; import org.skywalking.apm.agent.core.context.ContextManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.toolkit.opentracing.SkyWalkingSpan; diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanNewInstanceInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanNewInstanceInterceptor.java index 12db77eae..750dfd768 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanNewInstanceInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanNewInstanceInterceptor.java @@ -3,8 +3,6 @@ package org.skywalking.apm.toolkit.activation.opentracing.span.interceptor; import java.util.Map; import org.skywalking.apm.agent.core.context.ContextManager; import org.skywalking.apm.agent.core.context.trace.AbstractSpan; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor; import org.skywalking.apm.toolkit.opentracing.SkyWalkingSpan; diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanSetOperationNameInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanSetOperationNameInterceptor.java index e9e100875..133af4f0e 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanSetOperationNameInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanSetOperationNameInterceptor.java @@ -1,8 +1,6 @@ package org.skywalking.apm.toolkit.activation.opentracing.span.interceptor; import org.skywalking.apm.agent.core.context.ContextManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.toolkit.opentracing.SkyWalkingSpan; diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanSetTagInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanSetTagInterceptor.java index 5c1f84d07..098bb991f 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanSetTagInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanSetTagInterceptor.java @@ -2,8 +2,6 @@ package org.skywalking.apm.toolkit.activation.opentracing.span.interceptor; import io.opentracing.tag.Tags; import org.skywalking.apm.agent.core.context.ContextManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.toolkit.opentracing.SkyWalkingSpan; diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessContextInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessContextInterceptor.java index 84ba24da9..6e6fbdf32 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessContextInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessContextInterceptor.java @@ -2,8 +2,6 @@ package org.skywalking.apm.toolkit.activation.opentracing.tracer.interceptor; import org.skywalking.apm.agent.core.context.ContextCarrier; import org.skywalking.apm.agent.core.context.ContextManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.toolkit.opentracing.SkyWalkingTracer; diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/tracer/interceptor/TracerInjectFormatCrossProcessContextInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/tracer/interceptor/TracerInjectFormatCrossProcessContextInterceptor.java index e01af530f..851293752 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/tracer/interceptor/TracerInjectFormatCrossProcessContextInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/tracer/interceptor/TracerInjectFormatCrossProcessContextInterceptor.java @@ -2,8 +2,6 @@ package org.skywalking.apm.toolkit.activation.opentracing.tracer.interceptor; import org.skywalking.apm.agent.core.context.ContextCarrier; import org.skywalking.apm.agent.core.context.ContextManager; -import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.toolkit.opentracing.SkyWalkingTracer; diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-context-activation/src/main/java/org/skywalking/apm/toolkit/activation/trace/TraceContextInterceptor.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-context-activation/src/main/java/org/skywalking/apm/toolkit/activation/trace/TraceContextInterceptor.java index 5a1a82293..ef2adddc7 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-context-activation/src/main/java/org/skywalking/apm/toolkit/activation/trace/TraceContextInterceptor.java +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-context-activation/src/main/java/org/skywalking/apm/toolkit/activation/trace/TraceContextInterceptor.java @@ -2,8 +2,6 @@ package org.skywalking.apm.toolkit.activation.trace; import org.skywalking.apm.agent.core.context.ContextManager; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInvokeContext; -import org.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodInvokeContext; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodsAroundInterceptor; import org.skywalking.apm.logging.ILog; import org.skywalking.apm.logging.LogManager;