This is an automated email from the ASF dual-hosted git repository.

zhaojinchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new fee821a455b Refactor AgentTransformer (#22919)
fee821a455b is described below

commit fee821a455b3b34c6d185623023416b7ea630880
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Dec 16 20:50:24 2022 +0800

    Refactor AgentTransformer (#22919)
---
 .../agent/core/transformer/AgentTransformer.java               | 10 ++++++----
 .../build/builder/type/ConstructorAdvisorBuilder.java          |  8 ++------
 .../build/builder/type/InstanceMethodAdvisorBuilder.java       |  8 ++------
 .../build/builder/type/StaticMethodAdvisorBuilder.java         |  8 ++------
 4 files changed, 12 insertions(+), 22 deletions(-)

diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
index 102fe449874..28ef5cdaeed 100644
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
+++ 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
@@ -27,9 +27,10 @@ import net.bytebuddy.utility.JavaModule;
 import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
 import org.apache.shardingsphere.agent.config.plugin.PluginConfiguration;
 import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
+import 
org.apache.shardingsphere.agent.core.transformer.build.MethodAdvisorBuildEngine;
+import 
org.apache.shardingsphere.agent.core.transformer.build.advise.AdviceFactory;
 import 
org.apache.shardingsphere.agent.core.transformer.build.builder.type.ConstructorAdvisorBuilder;
 import 
org.apache.shardingsphere.agent.core.transformer.build.builder.type.InstanceMethodAdvisorBuilder;
-import 
org.apache.shardingsphere.agent.core.transformer.build.MethodAdvisorBuildEngine;
 import 
org.apache.shardingsphere.agent.core.transformer.build.builder.type.StaticMethodAdvisorBuilder;
 
 import java.util.Map;
@@ -56,9 +57,10 @@ public final class AgentTransformer implements Transformer {
         }
         Builder<?> result = builder.defineField(EXTRA_DATA, Object.class, 
Opcodes.ACC_PRIVATE | 
Opcodes.ACC_VOLATILE).implement(TargetAdviceObject.class).intercept(FieldAccessor.ofField(EXTRA_DATA));
         AdvisorConfiguration advisorConfig = 
advisorConfigs.get(typeDescription.getTypeName());
-        result = new 
MethodAdvisorBuildEngine<>(advisorConfig.getConstructorAdvisors(), 
typeDescription).create(result, new ConstructorAdvisorBuilder(pluginConfigs, 
enhanceProxy, classLoader));
-        result = new 
MethodAdvisorBuildEngine<>(advisorConfig.getInstanceMethodAdvisors(), 
typeDescription).create(result, new InstanceMethodAdvisorBuilder(pluginConfigs, 
enhanceProxy, classLoader));
-        result = new 
MethodAdvisorBuildEngine<>(advisorConfig.getStaticMethodAdvisors(), 
typeDescription).create(result, new StaticMethodAdvisorBuilder(pluginConfigs, 
enhanceProxy, classLoader));
+        AdviceFactory adviceFactory = new AdviceFactory(classLoader, 
pluginConfigs, enhanceProxy);
+        result = new 
MethodAdvisorBuildEngine<>(advisorConfig.getConstructorAdvisors(), 
typeDescription).create(result, new ConstructorAdvisorBuilder(adviceFactory));
+        result = new 
MethodAdvisorBuildEngine<>(advisorConfig.getInstanceMethodAdvisors(), 
typeDescription).create(result, new 
InstanceMethodAdvisorBuilder(adviceFactory));
+        result = new 
MethodAdvisorBuildEngine<>(advisorConfig.getStaticMethodAdvisors(), 
typeDescription).create(result, new StaticMethodAdvisorBuilder(adviceFactory));
         return result;
     }
 }
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/ConstructorAdvisorBuilder.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/ConstructorAdvisorBuilder.java
index 5049a7e0581..93f3f75a719 100644
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/ConstructorAdvisorBuilder.java
+++ 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/ConstructorAdvisorBuilder.java
@@ -17,13 +17,13 @@
 
 package org.apache.shardingsphere.agent.core.transformer.build.builder.type;
 
+import lombok.RequiredArgsConstructor;
 import net.bytebuddy.description.method.MethodDescription.InDefinedShape;
 import net.bytebuddy.dynamic.DynamicType.Builder;
 import net.bytebuddy.implementation.MethodDelegation;
 import net.bytebuddy.implementation.SuperMethodCall;
 import net.bytebuddy.matcher.ElementMatchers;
 import 
org.apache.shardingsphere.agent.config.advisor.method.type.ConstructorAdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.plugin.PluginConfiguration;
 import org.apache.shardingsphere.agent.core.plugin.advice.ConstructorAdvice;
 import 
org.apache.shardingsphere.agent.core.plugin.interceptor.ConstructorInterceptor;
 import 
org.apache.shardingsphere.agent.core.plugin.interceptor.composed.ComposedConstructorInterceptor;
@@ -33,20 +33,16 @@ import 
org.apache.shardingsphere.agent.core.transformer.build.builder.MethodAdvi
 
 import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
  * Constructor advisor builder.
  */
+@RequiredArgsConstructor
 public final class ConstructorAdvisorBuilder implements 
MethodAdvisorBuilder<ConstructorAdvisorConfiguration> {
     
     private final AdviceFactory adviceFactory;
     
-    public ConstructorAdvisorBuilder(final Map<String, PluginConfiguration> 
pluginConfigs, final boolean isEnhancedForProxy, final ClassLoader classLoader) 
{
-        adviceFactory = new AdviceFactory(classLoader, pluginConfigs, 
isEnhancedForProxy);
-    }
-    
     @Override
     public Builder<?> create(final Builder<?> builder, final MethodAdvisor 
methodAdvisor) {
         return 
builder.constructor(ElementMatchers.is(methodAdvisor.getPointcut()))
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/InstanceMethodAdvisorBuilder.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/InstanceMethodAdvisorBuilder.java
index fd5bcbb07fb..a40a71e7746 100644
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/InstanceMethodAdvisorBuilder.java
+++ 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/InstanceMethodAdvisorBuilder.java
@@ -17,13 +17,13 @@
 
 package org.apache.shardingsphere.agent.core.transformer.build.builder.type;
 
+import lombok.RequiredArgsConstructor;
 import net.bytebuddy.description.method.MethodDescription.InDefinedShape;
 import net.bytebuddy.dynamic.DynamicType.Builder;
 import net.bytebuddy.implementation.MethodDelegation;
 import net.bytebuddy.implementation.bind.annotation.Morph;
 import net.bytebuddy.matcher.ElementMatchers;
 import 
org.apache.shardingsphere.agent.config.advisor.method.type.InstanceMethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.plugin.PluginConfiguration;
 import org.apache.shardingsphere.agent.core.plugin.OverrideArgsInvoker;
 import 
org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
 import 
org.apache.shardingsphere.agent.core.plugin.interceptor.InstanceMethodAroundInterceptor;
@@ -37,19 +37,15 @@ import 
org.apache.shardingsphere.agent.core.transformer.build.builder.MethodAdvi
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 
 /**
  * Instance method advisor builder.
  */
+@RequiredArgsConstructor
 public final class InstanceMethodAdvisorBuilder implements 
MethodAdvisorBuilder<InstanceMethodAdvisorConfiguration> {
     
     private final AdviceFactory adviceFactory;
     
-    public InstanceMethodAdvisorBuilder(final Map<String, PluginConfiguration> 
pluginConfigs, final boolean isEnhancedForProxy, final ClassLoader classLoader) 
{
-        adviceFactory = new AdviceFactory(classLoader, pluginConfigs, 
isEnhancedForProxy);
-    }
-    
     @Override
     public Builder<?> create(final Builder<?> builder, final MethodAdvisor 
methodAdvisor) {
         if (methodAdvisor.getAdvice() instanceof 
InstanceMethodInterceptorArgsOverride) {
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/StaticMethodAdvisorBuilder.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/StaticMethodAdvisorBuilder.java
index 807f09dd952..3d94666edad 100644
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/StaticMethodAdvisorBuilder.java
+++ 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/type/StaticMethodAdvisorBuilder.java
@@ -17,13 +17,13 @@
 
 package org.apache.shardingsphere.agent.core.transformer.build.builder.type;
 
+import lombok.RequiredArgsConstructor;
 import net.bytebuddy.description.method.MethodDescription.InDefinedShape;
 import net.bytebuddy.dynamic.DynamicType.Builder;
 import net.bytebuddy.implementation.MethodDelegation;
 import net.bytebuddy.implementation.bind.annotation.Morph;
 import net.bytebuddy.matcher.ElementMatchers;
 import 
org.apache.shardingsphere.agent.config.advisor.method.type.StaticMethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.plugin.PluginConfiguration;
 import org.apache.shardingsphere.agent.core.plugin.OverrideArgsInvoker;
 import 
org.apache.shardingsphere.agent.core.plugin.advice.StaticMethodAroundAdvice;
 import 
org.apache.shardingsphere.agent.core.plugin.interceptor.StaticMethodAroundInterceptor;
@@ -37,19 +37,15 @@ import 
org.apache.shardingsphere.agent.core.transformer.build.builder.MethodAdvi
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 
 /**
  * Static method advisor builder.
  */
+@RequiredArgsConstructor
 public final class StaticMethodAdvisorBuilder implements 
MethodAdvisorBuilder<StaticMethodAdvisorConfiguration> {
     
     private final AdviceFactory adviceFactory;
     
-    public StaticMethodAdvisorBuilder(final Map<String, PluginConfiguration> 
pluginConfigs, final boolean isEnhancedForProxy, final ClassLoader classLoader) 
{
-        adviceFactory = new AdviceFactory(classLoader, pluginConfigs, 
isEnhancedForProxy);
-    }
-    
     @Override
     public Builder<?> create(final Builder<?> builder, final MethodAdvisor 
methodAdvisor) {
         if (methodAdvisor.getAdvice() instanceof 
StaticMethodInterceptorArgsOverride) {

Reply via email to