From 9037f139765b183476c7fba61e9caf1418b84774 Mon Sep 17 00:00:00 2001 From: wusheng Date: Sun, 2 Jul 2017 23:00:04 +0800 Subject: [PATCH] Remove the field binders. --- .../enhance/ClassEnhancePluginDefine.java | 7 ------- .../interceptor/enhance/ConstructorInter.java | 7 ++----- .../interceptor/enhance/EnhancedInstance.java | 4 +++- .../plugin/interceptor/enhance/FieldGetter.java | 5 ----- .../plugin/interceptor/enhance/FieldSetter.java | 5 ----- .../InstMethodsInterWithOverrideArgs.java | 17 ++++------------- .../enhance/InstanceConstructorInterceptor.java | 5 +---- .../InstanceMethodsAroundInterceptor.java | 12 +++--------- 8 files changed, 13 insertions(+), 49 deletions(-) delete mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/FieldGetter.java delete mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/FieldSetter.java 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 cf1f67c203..3b083e550b 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 @@ -104,9 +104,6 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi for (ConstructorInterceptPoint constructorInterceptPoint : constructorInterceptPoints) { newClassBuilder = newClassBuilder.constructor(ElementMatchers.any()).intercept(SuperMethodCall.INSTANCE .andThen(MethodDelegation.withDefaultConfiguration() - .withBinders( - FieldProxy.Binder.install(FieldGetter.class, FieldSetter.class) - ) .to(new ConstructorInter(constructorInterceptPoint.getConstructorInterceptor())) ) ); @@ -129,7 +126,6 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi .intercept( MethodDelegation.withDefaultConfiguration() .withBinders( - FieldProxy.Binder.install(FieldGetter.class, FieldSetter.class), Morph.Binder.install(OverrideCallable.class) ) .to(new InstMethodsInterWithOverrideArgs(interceptor)) @@ -139,9 +135,6 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi newClassBuilder.method(not(isStatic()).and(instanceMethodsInterceptPoint.getMethodsMatcher())) .intercept( MethodDelegation.withDefaultConfiguration() - .withBinders( - FieldProxy.Binder.install(FieldGetter.class, FieldSetter.class) - ) .to(new InstMethodsInter(interceptor)) ); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInter.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInter.java index df3c19554a..67f2e6f942 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInter.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ConstructorInter.java @@ -37,19 +37,16 @@ public class ConstructorInter { * 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) { try { InstanceConstructorInterceptor interceptor = InterceptorInstanceLoader.load(constructorInterceptorClassName, obj.getClass().getClassLoader()); + EnhancedInstance targetObject = (EnhancedInstance)obj; - interceptor.onConstruct(obj, allArguments, dynamicFieldSetter, dynamicFieldGetter); + interceptor.onConstruct(targetObject, 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/EnhancedInstance.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstance.java index 39547a9d67..4ab0c6609c 100644 --- 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 @@ -4,5 +4,7 @@ package org.skywalking.apm.agent.core.plugin.interceptor.enhance; * @author wusheng */ public interface EnhancedInstance { - Object _getSkyWalkingDynamicFiled(); + Object getSkyWalkingDynamicField(); + + void setSkyWalkingDynamicField(); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/FieldGetter.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/FieldGetter.java deleted file mode 100644 index e9630277e0..0000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/FieldGetter.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.skywalking.apm.agent.core.plugin.interceptor.enhance; - -public interface FieldGetter { - Object getValue(); -} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/FieldSetter.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/FieldSetter.java deleted file mode 100644 index 373484dc7a..0000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/FieldSetter.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.skywalking.apm.agent.core.plugin.interceptor.enhance; - -public interface FieldSetter { - void setValue(Object value); -} 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 index 929e5b6d19..3dbedf6e97 100644 --- 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 @@ -42,8 +42,6 @@ public class InstMethodsInterWithOverrideArgs { * @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 @@ -53,18 +51,15 @@ public class InstMethodsInterWithOverrideArgs { 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()); + EnhancedInstance targetObject = (EnhancedInstance)obj; MethodInterceptResult result = new MethodInterceptResult(); try { - interceptor.beforeMethod(obj, method.getName(), allArguments, method.getParameterTypes(), - dynamicFieldSetter, - dynamicFieldGetter, + interceptor.beforeMethod(targetObject, method.getName(), allArguments, method.getParameterTypes(), result); } catch (Throwable t) { logger.error(t, "class[{}] before method[{}] intercept failure", obj.getClass(), method.getName()); @@ -79,9 +74,7 @@ public class InstMethodsInterWithOverrideArgs { } } catch (Throwable t) { try { - interceptor.handleMethodException(obj, method.getName(), allArguments, method.getParameterTypes(), - dynamicFieldSetter, - dynamicFieldGetter, + interceptor.handleMethodException(targetObject, method.getName(), allArguments, method.getParameterTypes(), t); } catch (Throwable t2) { logger.error(t2, "class[{}] handle method[{}] exception failure", obj.getClass(), method.getName()); @@ -89,9 +82,7 @@ public class InstMethodsInterWithOverrideArgs { throw t; } finally { try { - ret = interceptor.afterMethod(obj, method.getName(), allArguments, method.getParameterTypes(), - dynamicFieldSetter, - dynamicFieldGetter, + ret = interceptor.afterMethod(targetObject, method.getName(), allArguments, method.getParameterTypes(), 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/InstanceConstructorInterceptor.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstanceConstructorInterceptor.java index bf67f7a201..7f63e35706 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 @@ -11,8 +11,5 @@ public interface InstanceConstructorInterceptor { /** * Called before the origin constructor invocation. */ - void onConstruct(Object objInst, - Object[] allArguments, - FieldSetter dynamicFieldSetter, - FieldGetter dynamicFieldGetter); + void onConstruct(Object objInst, Object[] allArguments); } 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 a62836c9e5..3697e3965c 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 @@ -13,9 +13,7 @@ public interface InstanceMethodsAroundInterceptor { * @param result change this result, if you want to truncate the method. * @throws Throwable */ - void beforeMethod(Object objInst, String methodName, Object[] allArguments, Class[] argumentsTypes, - FieldSetter dynamicFieldSetter, - FieldGetter dynamicFieldGetter, + void beforeMethod(EnhancedInstance objInst, String methodName, Object[] allArguments, Class[] argumentsTypes, MethodInterceptResult result) throws Throwable; /** @@ -25,9 +23,7 @@ public interface InstanceMethodsAroundInterceptor { * @return the method's actual return value. * @throws Throwable */ - Object afterMethod(Object objInst, String methodName, Object[] allArguments, Class[] argumentsTypes, - FieldSetter dynamicFieldSetter, - FieldGetter dynamicFieldGetter, + Object afterMethod(EnhancedInstance objInst, String methodName, Object[] allArguments, Class[] argumentsTypes, Object ret) throws Throwable; /** @@ -35,8 +31,6 @@ public interface InstanceMethodsAroundInterceptor { * * @param t the exception occur. */ - void handleMethodException(Object objInst, String methodName, Object[] allArguments, Class[] argumentsTypes, - FieldSetter dynamicFieldSetter, - FieldGetter dynamicFieldGetter, + void handleMethodException(EnhancedInstance objInst, String methodName, Object[] allArguments, Class[] argumentsTypes, Throwable t); } -- GitLab