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

panjuan 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 236584367b3 Remove overrideArgs attribute from advisor configuration 
(#22921)
236584367b3 is described below

commit 236584367b302ff659a821ec0a5afb7c718becb0
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Dec 16 22:20:57 2022 +0800

    Remove overrideArgs attribute from advisor configuration (#22921)
---
 .../type/InstanceMethodAdvisorConfiguration.java   |   6 --
 .../type/StaticMethodAdvisorConfiguration.java     |   6 --
 .../agent/core/plugin/OverrideArgsInvoker.java     |  32 -------
 .../InstanceMethodInterceptorArgsOverride.java     | 101 ---------------------
 .../StaticMethodInterceptorArgsOverride.java       |  99 --------------------
 ...posedInstanceMethodInterceptorArgsOverride.java |  34 -------
 ...omposedStaticMethodInterceptorArgsOverride.java |  34 -------
 .../builder/type/InstanceMethodAdvisorBuilder.java |  29 +-----
 .../builder/type/StaticMethodAdvisorBuilder.java   |  29 +-----
 9 files changed, 9 insertions(+), 361 deletions(-)

diff --git 
a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/InstanceMethodAdvisorConfiguration.java
 
b/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/InstanceMethodAdvisorConfiguration.java
index a045dbdaee1..41dc8a3c13c 100644
--- 
a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/InstanceMethodAdvisorConfiguration.java
+++ 
b/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/InstanceMethodAdvisorConfiguration.java
@@ -33,10 +33,4 @@ public final class InstanceMethodAdvisorConfiguration 
implements MethodAdvisorCo
     private final ElementMatcher<? super MethodDescription> pointcut;
     
     private final String adviceClassName;
-    
-    private final boolean overrideArgs;
-    
-    public InstanceMethodAdvisorConfiguration(final ElementMatcher<? super 
MethodDescription> pointcut, final String adviceClassName) {
-        this(pointcut, adviceClassName, false);
-    }
 }
diff --git 
a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/StaticMethodAdvisorConfiguration.java
 
b/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/StaticMethodAdvisorConfiguration.java
index 7da857f88ff..b8be1e9bfb7 100644
--- 
a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/StaticMethodAdvisorConfiguration.java
+++ 
b/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/StaticMethodAdvisorConfiguration.java
@@ -33,10 +33,4 @@ public final class StaticMethodAdvisorConfiguration 
implements MethodAdvisorConf
     private final ElementMatcher<? super MethodDescription> pointcut;
     
     private final String adviceClassName;
-    
-    private final boolean overrideArgs;
-    
-    public StaticMethodAdvisorConfiguration(final ElementMatcher<? super 
MethodDescription> pointcut, final String adviceClassName) {
-        this(pointcut, adviceClassName, false);
-    }
 }
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/OverrideArgsInvoker.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/OverrideArgsInvoker.java
deleted file mode 100644
index 0b515367125..00000000000
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/OverrideArgsInvoker.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.core.plugin;
-
-/**
- * Super(origin) method invoker for ByteBuddy only.
- */
-public interface OverrideArgsInvoker {
-    
-    /**
-     * Call invocation origin method.
-     *
-     * @param args the origin method arguments
-     * @return the result of the origin method
-     */
-    Object call(Object[] args);
-}
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/InstanceMethodInterceptorArgsOverride.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/InstanceMethodInterceptorArgsOverride.java
deleted file mode 100644
index b27eb39367f..00000000000
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/InstanceMethodInterceptorArgsOverride.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.core.plugin.interceptor;
-
-import lombok.RequiredArgsConstructor;
-import net.bytebuddy.implementation.bind.annotation.AllArguments;
-import net.bytebuddy.implementation.bind.annotation.Morph;
-import net.bytebuddy.implementation.bind.annotation.Origin;
-import net.bytebuddy.implementation.bind.annotation.RuntimeType;
-import net.bytebuddy.implementation.bind.annotation.This;
-import org.apache.shardingsphere.agent.core.plugin.TargetAdviceObject;
-import 
org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
-import org.apache.shardingsphere.agent.core.plugin.OverrideArgsInvoker;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
-import org.apache.shardingsphere.agent.core.logging.LoggerFactory;
-import org.apache.shardingsphere.agent.core.plugin.PluginContext;
-
-import java.lang.reflect.Method;
-
-/**
- * Proxy class for ByteBuddy to intercept methods of target and weave pre- and 
post-method around the target method with args override.
- */
-@RequiredArgsConstructor
-public class InstanceMethodInterceptorArgsOverride {
-    
-    private static final LoggerFactory.Logger LOGGER = 
LoggerFactory.getLogger(InstanceMethodInterceptorArgsOverride.class);
-    
-    private final InstanceMethodAroundAdvice instanceMethodAroundAdvice;
-    
-    /**
-     * Only intercept instance method.
-     *
-     * @param target the target object
-     * @param method the intercepted method
-     * @param args the all arguments of method
-     * @param callable the origin method invocation
-     * @return the return value of target invocation
-     */
-    @RuntimeType
-    public Object intercept(@This final TargetAdviceObject target, @Origin 
final Method method, @AllArguments final Object[] args, @Morph final 
OverrideArgsInvoker callable) {
-        MethodInvocationResult methodResult = new MethodInvocationResult();
-        Object result;
-        boolean adviceEnabled = instanceMethodAroundAdvice.disableCheck() || 
PluginContext.isPluginEnabled();
-        try {
-            if (adviceEnabled) {
-                instanceMethodAroundAdvice.beforeMethod(target, method, args, 
methodResult);
-            }
-            // CHECKSTYLE:OFF
-        } catch (final Throwable ex) {
-            // CHECKSTYLE:ON
-            LOGGER.error("Failed to execute the pre-method of method[{}] in 
class[{}]", method.getName(), target.getClass(), ex);
-        }
-        try {
-            if (methodResult.isRebased()) {
-                result = methodResult.getResult();
-            } else {
-                result = callable.call(args);
-            }
-            methodResult.rebase(result);
-            // CHECKSTYLE:OFF
-        } catch (final Throwable ex) {
-            // CHECKSTYLE:ON
-            try {
-                if (adviceEnabled) {
-                    instanceMethodAroundAdvice.onThrowing(target, method, 
args, ex);
-                }
-                // CHECKSTYLE:OFF
-            } catch (final Throwable ignored) {
-                // CHECKSTYLE:ON
-                LOGGER.error("Failed to execute the error handler of 
method[{}] in class[{}]", method.getName(), target.getClass(), ex);
-            }
-            throw ex;
-        } finally {
-            try {
-                if (adviceEnabled) {
-                    instanceMethodAroundAdvice.afterMethod(target, method, 
args, methodResult);
-                }
-                // CHECKSTYLE:OFF
-            } catch (final Throwable ex) {
-                // CHECKSTYLE:ON
-                LOGGER.error("Failed to execute the post-method of method[{}] 
in class[{}]", method.getName(), target.getClass(), ex);
-            }
-        }
-        return methodResult.isRebased() ? methodResult.getResult() : result;
-    }
-}
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/StaticMethodInterceptorArgsOverride.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/StaticMethodInterceptorArgsOverride.java
deleted file mode 100644
index 86120467cac..00000000000
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/StaticMethodInterceptorArgsOverride.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.core.plugin.interceptor;
-
-import lombok.RequiredArgsConstructor;
-import net.bytebuddy.implementation.bind.annotation.AllArguments;
-import net.bytebuddy.implementation.bind.annotation.Morph;
-import net.bytebuddy.implementation.bind.annotation.Origin;
-import net.bytebuddy.implementation.bind.annotation.RuntimeType;
-import 
org.apache.shardingsphere.agent.core.plugin.advice.StaticMethodAroundAdvice;
-import org.apache.shardingsphere.agent.core.plugin.OverrideArgsInvoker;
-import org.apache.shardingsphere.agent.core.plugin.MethodInvocationResult;
-import org.apache.shardingsphere.agent.core.logging.LoggerFactory;
-import org.apache.shardingsphere.agent.core.plugin.PluginContext;
-
-import java.lang.reflect.Method;
-
-/**
- * Proxy class for ByteBuddy to intercept methods of target and weave pre- and 
post-method around the target method with args override.
- */
-@RequiredArgsConstructor
-public class StaticMethodInterceptorArgsOverride {
-    
-    private static final LoggerFactory.Logger LOGGER = 
LoggerFactory.getLogger(StaticMethodInterceptorArgsOverride.class);
-    
-    private final StaticMethodAroundAdvice staticMethodAroundAdvice;
-    
-    /**
-     * Only intercept static method.
-     *
-     * @param klass the class of target
-     * @param method the intercepted method
-     * @param args the all arguments of method
-     * @param callable the origin method invocation
-     * @return the return value of target invocation
-     */
-    @RuntimeType
-    public Object intercept(@Origin final Class<?> klass, @Origin final Method 
method, @AllArguments final Object[] args, @Morph final OverrideArgsInvoker 
callable) {
-        MethodInvocationResult methodResult = new MethodInvocationResult();
-        Object result;
-        boolean adviceEnabled = staticMethodAroundAdvice.disableCheck() || 
PluginContext.isPluginEnabled();
-        try {
-            if (adviceEnabled) {
-                staticMethodAroundAdvice.beforeMethod(klass, method, args, 
methodResult);
-            }
-            // CHECKSTYLE:OFF
-        } catch (final Throwable ex) {
-            // CHECKSTYLE:ON
-            LOGGER.error("Failed to execute the pre-method of method[{}] in 
class[{}]", method.getName(), klass, ex);
-        }
-        try {
-            if (methodResult.isRebased()) {
-                result = methodResult.getResult();
-            } else {
-                result = callable.call(args);
-            }
-            methodResult.rebase(result);
-            // CHECKSTYLE:OFF
-        } catch (final Throwable ex) {
-            // CHECKSTYLE:ON
-            try {
-                if (adviceEnabled) {
-                    staticMethodAroundAdvice.onThrowing(klass, method, args, 
ex);
-                }
-                // CHECKSTYLE:OFF
-            } catch (final Throwable ignored) {
-                // CHECKSTYLE:ON
-                LOGGER.error("Failed to execute the error handler of 
method[{}] in class[{}]", method.getName(), klass, ex);
-            }
-            throw ex;
-        } finally {
-            try {
-                if (adviceEnabled) {
-                    staticMethodAroundAdvice.afterMethod(klass, method, args, 
methodResult);
-                }
-                // CHECKSTYLE:OFF
-            } catch (final Throwable ex) {
-                // CHECKSTYLE:ON
-                LOGGER.error("Failed to execute the post-method of method[{}] 
in class[{}]", method.getName(), klass, ex);
-            }
-        }
-        return methodResult.isRebased() ? methodResult.getResult() : result;
-    }
-}
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/composed/ComposedInstanceMethodInterceptorArgsOverride.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/composed/ComposedInstanceMethodInterceptorArgsOverride.java
deleted file mode 100644
index af8b241cdb0..00000000000
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/composed/ComposedInstanceMethodInterceptorArgsOverride.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.core.plugin.interceptor.composed;
-
-import 
org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
-import 
org.apache.shardingsphere.agent.core.plugin.advice.composed.ComposedInstanceMethodAroundAdvice;
-import 
org.apache.shardingsphere.agent.core.plugin.interceptor.InstanceMethodInterceptorArgsOverride;
-
-import java.util.Collection;
-
-/**
- * Composed instance method interceptor args override.
- */
-public class ComposedInstanceMethodInterceptorArgsOverride extends 
InstanceMethodInterceptorArgsOverride {
-    
-    public ComposedInstanceMethodInterceptorArgsOverride(final 
Collection<InstanceMethodAroundAdvice> instanceMethodAroundAdvices) {
-        super(new 
ComposedInstanceMethodAroundAdvice(instanceMethodAroundAdvices));
-    }
-}
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/composed/ComposedStaticMethodInterceptorArgsOverride.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/composed/ComposedStaticMethodInterceptorArgsOverride.java
deleted file mode 100644
index 4b3dedb0ade..00000000000
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/composed/ComposedStaticMethodInterceptorArgsOverride.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.core.plugin.interceptor.composed;
-
-import 
org.apache.shardingsphere.agent.core.plugin.advice.StaticMethodAroundAdvice;
-import 
org.apache.shardingsphere.agent.core.plugin.advice.composed.ComposedStaticMethodAroundAdvice;
-import 
org.apache.shardingsphere.agent.core.plugin.interceptor.StaticMethodInterceptorArgsOverride;
-
-import java.util.Collection;
-
-/**
- * Composed static method interceptor args override.
- */
-public final class ComposedStaticMethodInterceptorArgsOverride extends 
StaticMethodInterceptorArgsOverride {
-    
-    public ComposedStaticMethodInterceptorArgsOverride(final 
Collection<StaticMethodAroundAdvice> instanceMethodAroundAdvices) {
-        super(new 
ComposedStaticMethodAroundAdvice(instanceMethodAroundAdvices));
-    }
-}
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 a40a71e7746..a91d5e526bb 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
@@ -21,22 +21,18 @@ 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.core.plugin.OverrideArgsInvoker;
 import 
org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
 import 
org.apache.shardingsphere.agent.core.plugin.interceptor.InstanceMethodAroundInterceptor;
-import 
org.apache.shardingsphere.agent.core.plugin.interceptor.InstanceMethodInterceptorArgsOverride;
 import 
org.apache.shardingsphere.agent.core.plugin.interceptor.composed.ComposedInstanceMethodAroundInterceptor;
-import 
org.apache.shardingsphere.agent.core.plugin.interceptor.composed.ComposedInstanceMethodInterceptorArgsOverride;
 import org.apache.shardingsphere.agent.core.transformer.MethodAdvisor;
 import 
org.apache.shardingsphere.agent.core.transformer.build.advise.AdviceFactory;
 import 
org.apache.shardingsphere.agent.core.transformer.build.builder.MethodAdvisorBuilder;
 
 import java.util.Collection;
-import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * Instance method advisor builder.
@@ -48,10 +44,6 @@ public final class InstanceMethodAdvisorBuilder implements 
MethodAdvisorBuilder<
     
     @Override
     public Builder<?> create(final Builder<?> builder, final MethodAdvisor 
methodAdvisor) {
-        if (methodAdvisor.getAdvice() instanceof 
InstanceMethodInterceptorArgsOverride) {
-            return 
builder.method(ElementMatchers.is(methodAdvisor.getPointcut()))
-                    
.intercept(MethodDelegation.withDefaultConfiguration().withBinders(Morph.Binder.install(OverrideArgsInvoker.class)).to(methodAdvisor.getAdvice()));
-        }
         return 
builder.method(ElementMatchers.is(methodAdvisor.getPointcut())).intercept(MethodDelegation.withDefaultConfiguration().to(methodAdvisor.getAdvice()));
     }
     
@@ -62,24 +54,13 @@ public final class InstanceMethodAdvisorBuilder implements 
MethodAdvisorBuilder<
     
     @Override
     public MethodAdvisor getSingleMethodAdvisor(final InDefinedShape 
methodDescription, final InstanceMethodAdvisorConfiguration advisorConfig) {
-        InstanceMethodAroundAdvice instanceMethodAroundAdvice = 
adviceFactory.getAdvice(advisorConfig.getAdviceClassName());
-        Object advice = advisorConfig.isOverrideArgs() ? new 
InstanceMethodInterceptorArgsOverride(instanceMethodAroundAdvice) : new 
InstanceMethodAroundInterceptor(instanceMethodAroundAdvice);
-        return new MethodAdvisor(methodDescription, advice);
+        return new MethodAdvisor(methodDescription, new 
InstanceMethodAroundInterceptor(adviceFactory.getAdvice(advisorConfig.getAdviceClassName())));
     }
     
     @Override
     public MethodAdvisor getComposedMethodAdvisor(final InDefinedShape 
methodDescription, final List<InstanceMethodAdvisorConfiguration> 
advisorConfigs) {
-        Collection<InstanceMethodAroundAdvice> instanceMethodAroundAdvices = 
new LinkedList<>();
-        boolean isArgsOverride = false;
-        for (InstanceMethodAdvisorConfiguration each : advisorConfigs) {
-            if (each.isOverrideArgs()) {
-                isArgsOverride = true;
-            }
-            if (null != each.getAdviceClassName()) {
-                
instanceMethodAroundAdvices.add(adviceFactory.getAdvice(each.getAdviceClassName()));
-            }
-        }
-        Object advice = isArgsOverride ? new 
ComposedInstanceMethodInterceptorArgsOverride(instanceMethodAroundAdvices) : 
new ComposedInstanceMethodAroundInterceptor(instanceMethodAroundAdvices);
-        return new MethodAdvisor(methodDescription, advice);
+        Collection<InstanceMethodAroundAdvice> advices = advisorConfigs
+                .stream().<InstanceMethodAroundAdvice>map(each -> 
adviceFactory.getAdvice(each.getAdviceClassName())).collect(Collectors.toList());
+        return new MethodAdvisor(methodDescription, new 
ComposedInstanceMethodAroundInterceptor(advices));
     }
 }
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 3d94666edad..58a372a0543 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
@@ -21,22 +21,18 @@ 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.core.plugin.OverrideArgsInvoker;
 import 
org.apache.shardingsphere.agent.core.plugin.advice.StaticMethodAroundAdvice;
 import 
org.apache.shardingsphere.agent.core.plugin.interceptor.StaticMethodAroundInterceptor;
-import 
org.apache.shardingsphere.agent.core.plugin.interceptor.StaticMethodInterceptorArgsOverride;
 import 
org.apache.shardingsphere.agent.core.plugin.interceptor.composed.ComposedStaticMethodAroundInterceptor;
-import 
org.apache.shardingsphere.agent.core.plugin.interceptor.composed.ComposedStaticMethodInterceptorArgsOverride;
 import org.apache.shardingsphere.agent.core.transformer.MethodAdvisor;
 import 
org.apache.shardingsphere.agent.core.transformer.build.advise.AdviceFactory;
 import 
org.apache.shardingsphere.agent.core.transformer.build.builder.MethodAdvisorBuilder;
 
 import java.util.Collection;
-import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * Static method advisor builder.
@@ -48,10 +44,6 @@ public final class StaticMethodAdvisorBuilder implements 
MethodAdvisorBuilder<St
     
     @Override
     public Builder<?> create(final Builder<?> builder, final MethodAdvisor 
methodAdvisor) {
-        if (methodAdvisor.getAdvice() instanceof 
StaticMethodInterceptorArgsOverride) {
-            return 
builder.method(ElementMatchers.is(methodAdvisor.getPointcut()))
-                    
.intercept(MethodDelegation.withDefaultConfiguration().withBinders(Morph.Binder.install(OverrideArgsInvoker.class)).to(methodAdvisor.getAdvice()));
-        }
         return 
builder.method(ElementMatchers.is(methodAdvisor.getPointcut())).intercept(MethodDelegation.withDefaultConfiguration().to(methodAdvisor.getAdvice()));
     }
     
@@ -62,25 +54,12 @@ public final class StaticMethodAdvisorBuilder implements 
MethodAdvisorBuilder<St
     
     @Override
     public MethodAdvisor getSingleMethodAdvisor(final InDefinedShape 
methodDescription, final StaticMethodAdvisorConfiguration advisorConfig) {
-        StaticMethodAroundAdvice staticMethodAroundAdvice = 
adviceFactory.getAdvice(advisorConfig.getAdviceClassName());
-        return advisorConfig.isOverrideArgs()
-                ? new MethodAdvisor(methodDescription, new 
StaticMethodInterceptorArgsOverride(staticMethodAroundAdvice))
-                : new MethodAdvisor(methodDescription, new 
StaticMethodAroundInterceptor(staticMethodAroundAdvice));
+        return new MethodAdvisor(methodDescription, new 
StaticMethodAroundInterceptor(adviceFactory.getAdvice(advisorConfig.getAdviceClassName())));
     }
     
     @Override
     public MethodAdvisor getComposedMethodAdvisor(final InDefinedShape 
methodDescription, final List<StaticMethodAdvisorConfiguration> advisorConfigs) 
{
-        Collection<StaticMethodAroundAdvice> staticMethodAroundAdvices = new 
LinkedList<>();
-        boolean isArgsOverride = false;
-        for (StaticMethodAdvisorConfiguration each : advisorConfigs) {
-            if (each.isOverrideArgs()) {
-                isArgsOverride = true;
-            }
-            if (null != each.getAdviceClassName()) {
-                
staticMethodAroundAdvices.add(adviceFactory.getAdvice(each.getAdviceClassName()));
-            }
-        }
-        Object advice = isArgsOverride ? new 
ComposedStaticMethodInterceptorArgsOverride(staticMethodAroundAdvices) : new 
ComposedStaticMethodAroundInterceptor(staticMethodAroundAdvices);
-        return new MethodAdvisor(methodDescription, advice);
+        Collection<StaticMethodAroundAdvice> advices = 
advisorConfigs.stream().<StaticMethodAroundAdvice>map(each -> 
adviceFactory.getAdvice(each.getAdviceClassName())).collect(Collectors.toList());
+        return new MethodAdvisor(methodDescription, new 
ComposedStaticMethodAroundInterceptor(advices));
     }
 }

Reply via email to