Add “ClassLoader” paramter for enhance method. Prepare for improving interceptor initialization performance.

This commit is contained in:
wusheng 2017-06-30 22:44:24 +08:00
parent 6b2849dbb6
commit 13816c8cd0
2 changed files with 7 additions and 7 deletions

View File

@ -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.

View File

@ -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) {