You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/12/15 17:02:22 UTC

[shardingsphere] branch master updated: Refactor AgentTransformer (#22898)

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

jianglongtao 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 971133994fc Refactor AgentTransformer (#22898)
971133994fc is described below

commit 971133994fcdbfb5cd9fa7b67cdb3294715978a2
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Dec 16 01:02:13 2022 +0800

    Refactor AgentTransformer (#22898)
---
 .../agent/core/transformer/AgentTransformer.java   | 24 +++++++++++-----------
 1 file changed, 12 insertions(+), 12 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 4d82a6ae22c..a05393b2a18 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
@@ -84,17 +84,17 @@ 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 = interceptConstructor(typeDescription, advisorConfig.getConstructorAdvisors(), result, classLoader);
-        result = interceptStaticMethod(typeDescription, advisorConfig.getStaticMethodAdvisors(), result, classLoader);
-        result = interceptInstanceMethod(typeDescription, advisorConfig.getInstanceMethodAdvisors(), result, classLoader);
+        result = interceptConstructor(result, typeDescription, classLoader, advisorConfig.getConstructorAdvisors());
+        result = interceptStaticMethod(result, typeDescription, classLoader, advisorConfig.getStaticMethodAdvisors());
+        result = interceptInstanceMethod(result, typeDescription, classLoader, advisorConfig.getInstanceMethodAdvisors());
         return result;
     }
     
-    private Builder<?> interceptConstructor(final TypeDescription description,
-                                            final Collection<ConstructorAdvisorConfiguration> constructorAdvisorConfigs, final Builder<?> builder, final ClassLoader classLoader) {
+    private Builder<?> interceptConstructor(final Builder<?> builder, final TypeDescription description,
+                                            final ClassLoader classLoader, final Collection<ConstructorAdvisorConfiguration> constructorAdvisorConfigs) {
         Collection<AgentTransformationPoint<? extends ConstructorInterceptor>> constructorAdviceComposePoints = description.getDeclaredMethods().stream()
                 .filter(MethodDescription::isConstructor)
-                .map(each -> getMatchedTransformationPoint(constructorAdvisorConfigs, each, classLoader))
+                .map(each -> getMatchedTransformationPoint(each, classLoader, constructorAdvisorConfigs))
                 .filter(Objects::nonNull)
                 .collect(Collectors.toList());
         Builder<?> result = builder;
@@ -111,8 +111,8 @@ public final class AgentTransformer implements Transformer {
         return result;
     }
     
-    private AgentTransformationPoint<? extends ConstructorInterceptor> getMatchedTransformationPoint(final Collection<ConstructorAdvisorConfiguration> constructorAdvisorConfigs,
-                                                                                                     final InDefinedShape methodDescription, final ClassLoader classLoader) {
+    private AgentTransformationPoint<? extends ConstructorInterceptor> getMatchedTransformationPoint(final InDefinedShape methodDescription, final ClassLoader classLoader,
+                                                                                                     final Collection<ConstructorAdvisorConfiguration> constructorAdvisorConfigs) {
         List<ConstructorAdvisorConfiguration> matchedConstructorAdvisorConfigs = constructorAdvisorConfigs
                 .stream().filter(each -> each.getPointcut().matches(methodDescription)).collect(Collectors.toList());
         if (matchedConstructorAdvisorConfigs.isEmpty()) {
@@ -129,8 +129,8 @@ public final class AgentTransformer implements Transformer {
         return new AgentTransformationPoint<>(methodDescription, new ComposedConstructorInterceptor(constructorAdvices));
     }
     
-    private Builder<?> interceptStaticMethod(final TypeDescription description, final Collection<StaticMethodAdvisorConfiguration> staticMethodAdvisorConfigs,
-                                             final Builder<?> builder, final ClassLoader classLoader) {
+    private Builder<?> interceptStaticMethod(final Builder<?> builder, final TypeDescription description,
+                                             final ClassLoader classLoader, final Collection<StaticMethodAdvisorConfiguration> staticMethodAdvisorConfigs) {
         Collection<AgentTransformationPoint<?>> staticMethodAdvicePoints = description.getDeclaredMethods().stream()
                 .filter(each -> each.isStatic() && !(each.isAbstract() || each.isSynthetic()))
                 .map(each -> getMatchedStaticMethodPoint(staticMethodAdvisorConfigs, each, classLoader))
@@ -190,8 +190,8 @@ public final class AgentTransformer implements Transformer {
                 : new AgentTransformationPoint<>(methodDescription, new ComposedStaticMethodAroundInterceptor(staticMethodAroundAdvices));
     }
     
-    private Builder<?> interceptInstanceMethod(final TypeDescription description,
-                                               final Collection<InstanceMethodAdvisorConfiguration> instanceMethodAdvisorConfigs, final Builder<?> builder, final ClassLoader classLoader) {
+    private Builder<?> interceptInstanceMethod(final Builder<?> builder, final TypeDescription description,
+                                               final ClassLoader classLoader, final Collection<InstanceMethodAdvisorConfiguration> instanceMethodAdvisorConfigs) {
         Collection<AgentTransformationPoint<?>> instanceMethodAdviceComposePoints = description.getDeclaredMethods().stream()
                 .filter(each -> !(each.isAbstract() || each.isSynthetic()))
                 .map(each -> getMatchedInstanceMethodPoint(instanceMethodAdvisorConfigs, each, classLoader))