From 13816c8cd081bcd6745edd3607ad9749f8628a79 Mon Sep 17 00:00:00 2001 From: wusheng Date: Fri, 30 Jun 2017 22:44:24 +0800 Subject: [PATCH] =?UTF-8?q?Add=20=E2=80=9CClassLoader=E2=80=9D=20paramter?= =?UTF-8?q?=20for=20enhance=20method.=20Prepare=20for=20improving=20interc?= =?UTF-8?q?eptor=20initialization=20performance.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/plugin/AbstractClassEnhancePluginDefine.java | 4 ++-- .../interceptor/enhance/ClassEnhancePluginDefine.java | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefine.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefine.java index c9e2bfcdf..008d49e8b 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefine.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefine.java @@ -52,7 +52,7 @@ public abstract class AbstractClassEnhancePluginDefine { /** * find origin class source code for interceptor */ - DynamicType.Builder newClassBuilder = this.enhance(transformClassName, builder); + DynamicType.Builder newClassBuilder = this.enhance(transformClassName, builder, classLoader); logger.debug("enhance class {} by {} completely.", transformClassName, interceptorDefineClassName); @@ -60,7 +60,7 @@ public abstract class AbstractClassEnhancePluginDefine { } protected abstract DynamicType.Builder enhance(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException; + DynamicType.Builder newClassBuilder, ClassLoader classLoader) throws PluginException; /** * Define the classname of target class. 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 3b30ae8dc..cf1f67c20 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 @@ -49,10 +49,10 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi */ @Override protected DynamicType.Builder enhance(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException { - newClassBuilder = this.enhanceClass(enhanceOriginClassName, newClassBuilder); + DynamicType.Builder newClassBuilder, ClassLoader classLoader) throws PluginException { + newClassBuilder = this.enhanceClass(enhanceOriginClassName, newClassBuilder, classLoader); - newClassBuilder = this.enhanceInstance(enhanceOriginClassName, newClassBuilder); + newClassBuilder = this.enhanceInstance(enhanceOriginClassName, newClassBuilder, classLoader); return newClassBuilder; } @@ -65,7 +65,7 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * @return new byte-buddy's builder for further manipulation. */ private DynamicType.Builder enhanceInstance(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException { + DynamicType.Builder newClassBuilder, ClassLoader classLoader) throws PluginException { ConstructorInterceptPoint[] constructorInterceptPoints = getConstructorsInterceptPoints(); InstanceMethodsInterceptPoint[] instanceMethodsInterceptPoints = getInstanceMethodsInterceptPoints(); @@ -173,7 +173,7 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * @return new byte-buddy's builder for further manipulation. */ private DynamicType.Builder enhanceClass(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException { + DynamicType.Builder newClassBuilder, ClassLoader classLoader) throws PluginException { StaticMethodsInterceptPoint[] staticMethodsInterceptPoints = getStaticMethodsInterceptPoints(); if (staticMethodsInterceptPoints == null || staticMethodsInterceptPoints.length == 0) {