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/16 14:50:38 UTC
[shardingsphere] branch master updated: Refactor MethodAdvisorConfiguration (#22922)
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 6f625cf7826 Refactor MethodAdvisorConfiguration (#22922)
6f625cf7826 is described below
commit 6f625cf78268610bf82bd68b074537d35544c164
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Dec 16 22:50:30 2022 +0800
Refactor MethodAdvisorConfiguration (#22922)
---
.../agent/config/advisor/AdvisorConfiguration.java | 9 ++---
...ration.java => MethodAdvisorConfiguration.java} | 5 ++-
.../advisor/method/MethodAdvisorConfiguration.java | 41 ----------------------
.../type/InstanceMethodAdvisorConfiguration.java | 36 -------------------
.../type/StaticMethodAdvisorConfiguration.java | 36 -------------------
.../agent/core/transformer/AgentTransformer.java | 6 ++--
.../build/MethodAdvisorBuildEngine.java | 12 +++----
.../build/builder/MethodAdvisorBuilder.java | 10 +++---
.../builder/type/ConstructorAdvisorBuilder.java | 10 +++---
.../builder/type/InstanceMethodAdvisorBuilder.java | 8 ++---
.../builder/type/StaticMethodAdvisorBuilder.java | 8 ++---
.../core/transformer/AgentTransformerTest.java | 14 ++++----
.../BaseLoggingAdvisorDefinitionService.java | 4 +--
.../PrometheusAdvisorDefinitionService.java | 10 +++---
.../adviser/impl/CommandExecutorTaskAdviser.java | 6 ++--
.../adviser/impl/JDBCExecutorCallbackAdviser.java | 6 ++--
.../adviser/impl/SQLParserEngineAdviser.java | 6 ++--
17 files changed, 52 insertions(+), 175 deletions(-)
diff --git a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/AdvisorConfiguration.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/AdvisorConfiguration.java
index 378fb0a0678..a8e5cc2abe9 100644
--- a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/AdvisorConfiguration.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/AdvisorConfiguration.java
@@ -19,9 +19,6 @@ package org.apache.shardingsphere.agent.config.advisor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.config.advisor.method.type.ConstructorAdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.InstanceMethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.StaticMethodAdvisorConfiguration;
import java.util.Collection;
import java.util.LinkedList;
@@ -35,9 +32,9 @@ public final class AdvisorConfiguration {
private final String targetClassName;
- private final Collection<ConstructorAdvisorConfiguration> constructorAdvisors = new LinkedList<>();
+ private final Collection<MethodAdvisorConfiguration> constructorAdvisors = new LinkedList<>();
- private final Collection<InstanceMethodAdvisorConfiguration> instanceMethodAdvisors = new LinkedList<>();
+ private final Collection<MethodAdvisorConfiguration> instanceMethodAdvisors = new LinkedList<>();
- private final Collection<StaticMethodAdvisorConfiguration> staticMethodAdvisors = new LinkedList<>();
+ private final Collection<MethodAdvisorConfiguration> staticMethodAdvisors = new LinkedList<>();
}
diff --git a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/ConstructorAdvisorConfiguration.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/MethodAdvisorConfiguration.java
similarity index 82%
rename from agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/ConstructorAdvisorConfiguration.java
rename to agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/MethodAdvisorConfiguration.java
index cd57f63463b..5a4a125023a 100644
--- a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/ConstructorAdvisorConfiguration.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/MethodAdvisorConfiguration.java
@@ -15,20 +15,19 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.agent.config.advisor.method.type;
+package org.apache.shardingsphere.agent.config.advisor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.matcher.ElementMatcher;
-import org.apache.shardingsphere.agent.config.advisor.method.MethodAdvisorConfiguration;
/**
* Constructor advisor configuration.
*/
@RequiredArgsConstructor
@Getter
-public final class ConstructorAdvisorConfiguration implements MethodAdvisorConfiguration {
+public final class MethodAdvisorConfiguration {
private final ElementMatcher<? super MethodDescription> pointcut;
diff --git a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/MethodAdvisorConfiguration.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/MethodAdvisorConfiguration.java
deleted file mode 100644
index b74a44caa8b..00000000000
--- a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/MethodAdvisorConfiguration.java
+++ /dev/null
@@ -1,41 +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.config.advisor.method;
-
-import net.bytebuddy.description.method.MethodDescription;
-import net.bytebuddy.matcher.ElementMatcher;
-
-/**
- * Method advisor configuration.
- */
-public interface MethodAdvisorConfiguration {
-
- /**
- * Get pointcut.
- *
- * @return pointcut
- */
- ElementMatcher<? super MethodDescription> getPointcut();
-
- /**
- * Get advice class name.
- *
- * @return advice class name
- */
- String getAdviceClassName();
-}
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
deleted file mode 100644
index 41dc8a3c13c..00000000000
--- a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/InstanceMethodAdvisorConfiguration.java
+++ /dev/null
@@ -1,36 +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.config.advisor.method.type;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import net.bytebuddy.description.method.MethodDescription;
-import net.bytebuddy.matcher.ElementMatcher;
-import org.apache.shardingsphere.agent.config.advisor.method.MethodAdvisorConfiguration;
-
-/**
- * Instance method advisor configuration.
- */
-@RequiredArgsConstructor
-@Getter
-public final class InstanceMethodAdvisorConfiguration implements MethodAdvisorConfiguration {
-
- private final ElementMatcher<? super MethodDescription> pointcut;
-
- private final String adviceClassName;
-}
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
deleted file mode 100644
index b8be1e9bfb7..00000000000
--- a/agent/api/src/main/java/org/apache/shardingsphere/agent/config/advisor/method/type/StaticMethodAdvisorConfiguration.java
+++ /dev/null
@@ -1,36 +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.config.advisor.method.type;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import net.bytebuddy.description.method.MethodDescription;
-import net.bytebuddy.matcher.ElementMatcher;
-import org.apache.shardingsphere.agent.config.advisor.method.MethodAdvisorConfiguration;
-
-/**
- * Static method advisor configuration.
- */
-@RequiredArgsConstructor
-@Getter
-public final class StaticMethodAdvisorConfiguration implements MethodAdvisorConfiguration {
-
- private final ElementMatcher<? super MethodDescription> pointcut;
-
- private final String adviceClassName;
-}
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 28ef5cdaeed..2d4a80cbcb0 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
@@ -58,9 +58,9 @@ 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());
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));
+ 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/MethodAdvisorBuildEngine.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/MethodAdvisorBuildEngine.java
index 563ca9b7e4c..bd88063c269 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/MethodAdvisorBuildEngine.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/MethodAdvisorBuildEngine.java
@@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor;
import net.bytebuddy.description.method.MethodDescription.InDefinedShape;
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.dynamic.DynamicType.Builder;
-import org.apache.shardingsphere.agent.config.advisor.method.MethodAdvisorConfiguration;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
import org.apache.shardingsphere.agent.core.logging.LoggerFactory;
import org.apache.shardingsphere.agent.core.transformer.MethodAdvisor;
import org.apache.shardingsphere.agent.core.transformer.build.builder.MethodAdvisorBuilder;
@@ -35,11 +35,11 @@ import java.util.stream.Collectors;
* Method advisor build engine.
*/
@RequiredArgsConstructor
-public final class MethodAdvisorBuildEngine<T extends MethodAdvisorConfiguration> {
+public final class MethodAdvisorBuildEngine {
private static final LoggerFactory.Logger LOGGER = LoggerFactory.getLogger(MethodAdvisorBuildEngine.class);
- private final Collection<T> advisorConfigs;
+ private final Collection<MethodAdvisorConfiguration> advisorConfigs;
private final TypeDescription typePointcut;
@@ -50,7 +50,7 @@ public final class MethodAdvisorBuildEngine<T extends MethodAdvisorConfiguration
* @param methodAdvisorBuilder method advisor builder
* @return created builder
*/
- public Builder<?> create(final Builder<?> builder, final MethodAdvisorBuilder<T> methodAdvisorBuilder) {
+ public Builder<?> create(final Builder<?> builder, final MethodAdvisorBuilder methodAdvisorBuilder) {
Builder<?> result = builder;
Collection<MethodAdvisor> matchedAdvisor = typePointcut.getDeclaredMethods().stream()
.filter(methodAdvisorBuilder::isMatchedMethod).map(each -> findMatchedAdvisor(each, methodAdvisorBuilder)).filter(Objects::nonNull).collect(Collectors.toList());
@@ -66,8 +66,8 @@ public final class MethodAdvisorBuildEngine<T extends MethodAdvisorConfiguration
return result;
}
- private MethodAdvisor findMatchedAdvisor(final InDefinedShape methodDescription, final MethodAdvisorBuilder<T> methodAdvisorBuilder) {
- List<T> matchedAdvisorConfigs = advisorConfigs.stream().filter(each -> each.getPointcut().matches(methodDescription)).collect(Collectors.toList());
+ private MethodAdvisor findMatchedAdvisor(final InDefinedShape methodDescription, final MethodAdvisorBuilder methodAdvisorBuilder) {
+ List<MethodAdvisorConfiguration> matchedAdvisorConfigs = advisorConfigs.stream().filter(each -> each.getPointcut().matches(methodDescription)).collect(Collectors.toList());
if (matchedAdvisorConfigs.isEmpty()) {
return null;
}
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/MethodAdvisorBuilder.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/MethodAdvisorBuilder.java
index 068aba47177..d232e61ccaa 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/MethodAdvisorBuilder.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/build/builder/MethodAdvisorBuilder.java
@@ -19,17 +19,15 @@ package org.apache.shardingsphere.agent.core.transformer.build.builder;
import net.bytebuddy.description.method.MethodDescription.InDefinedShape;
import net.bytebuddy.dynamic.DynamicType.Builder;
-import org.apache.shardingsphere.agent.config.advisor.method.MethodAdvisorConfiguration;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
import org.apache.shardingsphere.agent.core.transformer.MethodAdvisor;
import java.util.List;
/**
* Method advisor builder.
- *
- * @param <T> type of method advisor configuration
*/
-public interface MethodAdvisorBuilder<T extends MethodAdvisorConfiguration> {
+public interface MethodAdvisorBuilder {
/**
* Create method advisor builder.
@@ -55,7 +53,7 @@ public interface MethodAdvisorBuilder<T extends MethodAdvisorConfiguration> {
* @param advisorConfig advisor configuration
* @return got method advisor
*/
- MethodAdvisor getSingleMethodAdvisor(InDefinedShape methodDescription, T advisorConfig);
+ MethodAdvisor getSingleMethodAdvisor(InDefinedShape methodDescription, MethodAdvisorConfiguration advisorConfig);
/**
* Get composed method advisor.
@@ -64,5 +62,5 @@ public interface MethodAdvisorBuilder<T extends MethodAdvisorConfiguration> {
* @param advisorConfigs advisor configurations
* @return got method advisor
*/
- MethodAdvisor getComposedMethodAdvisor(InDefinedShape methodDescription, List<T> advisorConfigs);
+ MethodAdvisor getComposedMethodAdvisor(InDefinedShape methodDescription, List<MethodAdvisorConfiguration> advisorConfigs);
}
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 93f3f75a719..5dcf46f4c26 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
@@ -23,7 +23,7 @@ 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.advisor.MethodAdvisorConfiguration;
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;
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
* Constructor advisor builder.
*/
@RequiredArgsConstructor
-public final class ConstructorAdvisorBuilder implements MethodAdvisorBuilder<ConstructorAdvisorConfiguration> {
+public final class ConstructorAdvisorBuilder implements MethodAdvisorBuilder {
private final AdviceFactory adviceFactory;
@@ -55,14 +55,14 @@ public final class ConstructorAdvisorBuilder implements MethodAdvisorBuilder<Con
}
@Override
- public MethodAdvisor getSingleMethodAdvisor(final InDefinedShape methodDescription, final ConstructorAdvisorConfiguration advisorConfig) {
+ public MethodAdvisor getSingleMethodAdvisor(final InDefinedShape methodDescription, final MethodAdvisorConfiguration advisorConfig) {
return new MethodAdvisor(methodDescription, new ConstructorInterceptor(adviceFactory.getAdvice(advisorConfig.getAdviceClassName())));
}
@Override
- public MethodAdvisor getComposedMethodAdvisor(final InDefinedShape methodDescription, final List<ConstructorAdvisorConfiguration> advisorConfigs) {
+ public MethodAdvisor getComposedMethodAdvisor(final InDefinedShape methodDescription, final List<MethodAdvisorConfiguration> advisorConfigs) {
Collection<ConstructorAdvice> advices = advisorConfigs
- .stream().map(ConstructorAdvisorConfiguration::getAdviceClassName).map(each -> (ConstructorAdvice) adviceFactory.getAdvice(each)).collect(Collectors.toList());
+ .stream().map(MethodAdvisorConfiguration::getAdviceClassName).map(each -> (ConstructorAdvice) adviceFactory.getAdvice(each)).collect(Collectors.toList());
return new MethodAdvisor(methodDescription, new ComposedConstructorInterceptor(advices));
}
}
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 a91d5e526bb..d2b06d453cc 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
@@ -22,7 +22,7 @@ import net.bytebuddy.description.method.MethodDescription.InDefinedShape;
import net.bytebuddy.dynamic.DynamicType.Builder;
import net.bytebuddy.implementation.MethodDelegation;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.config.advisor.method.type.InstanceMethodAdvisorConfiguration;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
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.composed.ComposedInstanceMethodAroundInterceptor;
@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
* Instance method advisor builder.
*/
@RequiredArgsConstructor
-public final class InstanceMethodAdvisorBuilder implements MethodAdvisorBuilder<InstanceMethodAdvisorConfiguration> {
+public final class InstanceMethodAdvisorBuilder implements MethodAdvisorBuilder {
private final AdviceFactory adviceFactory;
@@ -53,12 +53,12 @@ public final class InstanceMethodAdvisorBuilder implements MethodAdvisorBuilder<
}
@Override
- public MethodAdvisor getSingleMethodAdvisor(final InDefinedShape methodDescription, final InstanceMethodAdvisorConfiguration advisorConfig) {
+ public MethodAdvisor getSingleMethodAdvisor(final InDefinedShape methodDescription, final MethodAdvisorConfiguration advisorConfig) {
return new MethodAdvisor(methodDescription, new InstanceMethodAroundInterceptor(adviceFactory.getAdvice(advisorConfig.getAdviceClassName())));
}
@Override
- public MethodAdvisor getComposedMethodAdvisor(final InDefinedShape methodDescription, final List<InstanceMethodAdvisorConfiguration> advisorConfigs) {
+ public MethodAdvisor getComposedMethodAdvisor(final InDefinedShape methodDescription, final List<MethodAdvisorConfiguration> advisorConfigs) {
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 58a372a0543..37df7586cea 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
@@ -22,7 +22,7 @@ import net.bytebuddy.description.method.MethodDescription.InDefinedShape;
import net.bytebuddy.dynamic.DynamicType.Builder;
import net.bytebuddy.implementation.MethodDelegation;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.config.advisor.method.type.StaticMethodAdvisorConfiguration;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
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.composed.ComposedStaticMethodAroundInterceptor;
@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
* Static method advisor builder.
*/
@RequiredArgsConstructor
-public final class StaticMethodAdvisorBuilder implements MethodAdvisorBuilder<StaticMethodAdvisorConfiguration> {
+public final class StaticMethodAdvisorBuilder implements MethodAdvisorBuilder {
private final AdviceFactory adviceFactory;
@@ -53,12 +53,12 @@ public final class StaticMethodAdvisorBuilder implements MethodAdvisorBuilder<St
}
@Override
- public MethodAdvisor getSingleMethodAdvisor(final InDefinedShape methodDescription, final StaticMethodAdvisorConfiguration advisorConfig) {
+ public MethodAdvisor getSingleMethodAdvisor(final InDefinedShape methodDescription, final MethodAdvisorConfiguration advisorConfig) {
return new MethodAdvisor(methodDescription, new StaticMethodAroundInterceptor(adviceFactory.getAdvice(advisorConfig.getAdviceClassName())));
}
@Override
- public MethodAdvisor getComposedMethodAdvisor(final InDefinedShape methodDescription, final List<StaticMethodAdvisorConfiguration> advisorConfigs) {
+ public MethodAdvisor getComposedMethodAdvisor(final InDefinedShape methodDescription, final List<MethodAdvisorConfiguration> advisorConfigs) {
Collection<StaticMethodAroundAdvice> advices = advisorConfigs.stream().<StaticMethodAroundAdvice>map(each -> adviceFactory.getAdvice(each.getAdviceClassName())).collect(Collectors.toList());
return new MethodAdvisor(methodDescription, new ComposedStaticMethodAroundInterceptor(advices));
}
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformerTest.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformerTest.java
index 3b7d812df42..ea7c6626513 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformerTest.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformerTest.java
@@ -24,9 +24,7 @@ import net.bytebuddy.agent.builder.ResettableClassFileTransformer;
import net.bytebuddy.dynamic.scaffold.TypeValidation;
import net.bytebuddy.matcher.ElementMatchers;
import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.ConstructorAdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.InstanceMethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.StaticMethodAdvisorConfiguration;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
import org.apache.shardingsphere.agent.core.classloader.AgentClassLoader;
import org.apache.shardingsphere.agent.core.logging.LoggingListener;
import org.apache.shardingsphere.agent.core.mock.advice.MockConstructorAdvice;
@@ -78,16 +76,16 @@ public final class AgentTransformerTest {
private static AdvisorConfiguration createAdvisorConfiguration() {
AdvisorConfiguration result = new AdvisorConfiguration("org.apache.shardingsphere.agent.core.mock.material.Material");
- result.getConstructorAdvisors().add(new ConstructorAdvisorConfiguration(ElementMatchers.takesArguments(1), MockConstructorAdvice.class.getTypeName()));
- result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAroundAdvice.class.getTypeName()));
- result.getStaticMethodAdvisors().add(new StaticMethodAdvisorConfiguration(ElementMatchers.named("staticMock"), MockStaticMethodAroundAdvice.class.getTypeName()));
+ result.getConstructorAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.takesArguments(1), MockConstructorAdvice.class.getTypeName()));
+ result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAroundAdvice.class.getTypeName()));
+ result.getStaticMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("staticMock"), MockStaticMethodAroundAdvice.class.getTypeName()));
return result;
}
private static AdvisorConfiguration createAdvisorConfigurationInTwice() {
AdvisorConfiguration result = new AdvisorConfiguration("org.apache.shardingsphere.agent.core.mock.material.RepeatedAdviceMaterial");
- result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAroundAdvice.class.getTypeName()));
- result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAroundRepeatedAdvice.class.getTypeName()));
+ result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAroundAdvice.class.getTypeName()));
+ result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named("mock"), MockInstanceMethodAroundRepeatedAdvice.class.getTypeName()));
return result;
}
diff --git a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java
index 01b9808303f..9ea2aebc250 100644
--- a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java
+++ b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.agent.plugin.logging.base.definition;
import net.bytebuddy.matcher.ElementMatchers;
import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.StaticMethodAdvisorConfiguration;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
import org.apache.shardingsphere.agent.plugin.logging.base.advice.MetaDataContextsFactoryAdvice;
import org.apache.shardingsphere.agent.spi.advisor.AdvisorDefinitionService;
@@ -52,7 +52,7 @@ public final class BaseLoggingAdvisorDefinitionService implements AdvisorDefinit
Collection<AdvisorConfiguration> result = new LinkedList<>();
AdvisorConfiguration advisorConfig = AdvisorConfigurationRegistryFactory.getRegistry(getType()).getAdvisorConfiguration(SCHEMA_METADATA_LOADER_CLASS);
advisorConfig.getStaticMethodAdvisors().add(
- new StaticMethodAdvisorConfiguration(ElementMatchers.named(SCHEMA_METADATA_LOADER_METHOD_NAME).and(ElementMatchers.takesArguments(4)), SCHEMA_METADATA_LOADER_ADVICE_CLASS));
+ new MethodAdvisorConfiguration(ElementMatchers.named(SCHEMA_METADATA_LOADER_METHOD_NAME).and(ElementMatchers.takesArguments(4)), SCHEMA_METADATA_LOADER_ADVICE_CLASS));
result.add(advisorConfig);
return result;
}
diff --git a/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusAdvisorDefinitionService.java b/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusAdvisorDefinitionService.java
index 8327161a357..9b9e220e274 100644
--- a/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusAdvisorDefinitionService.java
+++ b/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusAdvisorDefinitionService.java
@@ -19,9 +19,7 @@ package org.apache.shardingsphere.agent.metrics.prometheus.definition;
import net.bytebuddy.matcher.ElementMatchers;
import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.ConstructorAdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.InstanceMethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.StaticMethodAdvisorConfiguration;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
import org.apache.shardingsphere.agent.core.plugin.yaml.entity.YamlAdvisorConfiguration;
import org.apache.shardingsphere.agent.core.plugin.yaml.entity.YamlPointcutConfiguration;
@@ -51,15 +49,15 @@ public final class PrometheusAdvisorDefinitionService implements AdvisorDefiniti
private AdvisorConfiguration createAdvisorConfiguration(final YamlAdvisorConfiguration yamlAdvisorConfig) {
AdvisorConfiguration result = AdvisorConfigurationRegistryFactory.getRegistry(getType()).getAdvisorConfiguration(yamlAdvisorConfig.getTarget());
if (null != yamlAdvisorConfig.getConstructAdvice() && !("".equals(yamlAdvisorConfig.getConstructAdvice()))) {
- result.getConstructorAdvisors().add(new ConstructorAdvisorConfiguration(ElementMatchers.isConstructor(), yamlAdvisorConfig.getConstructAdvice()));
+ result.getConstructorAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.isConstructor(), yamlAdvisorConfig.getConstructAdvice()));
}
String[] instancePointcuts = yamlAdvisorConfig.getPointcuts().stream().filter(i -> "instance".equals(i.getType())).map(YamlPointcutConfiguration::getName).toArray(String[]::new);
if (instancePointcuts.length > 0) {
- result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisorConfiguration(ElementMatchers.namedOneOf(instancePointcuts), yamlAdvisorConfig.getInstanceAdvice()));
+ result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.namedOneOf(instancePointcuts), yamlAdvisorConfig.getInstanceAdvice()));
}
String[] staticPointcuts = yamlAdvisorConfig.getPointcuts().stream().filter(i -> "static".equals(i.getType())).map(YamlPointcutConfiguration::getName).toArray(String[]::new);
if (staticPointcuts.length > 0) {
- result.getStaticMethodAdvisors().add(new StaticMethodAdvisorConfiguration(ElementMatchers.namedOneOf(staticPointcuts), yamlAdvisorConfig.getStaticAdvice()));
+ result.getStaticMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.namedOneOf(staticPointcuts), yamlAdvisorConfig.getStaticAdvice()));
}
return result;
}
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java
index 24332a9420a..9b6f628589b 100644
--- a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.matcher.ElementMatchers;
import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.InstanceMethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
/**
@@ -40,7 +40,7 @@ public final class CommandExecutorTaskAdviser implements TracingAdviser {
@Override
public AdvisorConfiguration getAdvisorConfiguration(final Class<? extends InstanceMethodAroundAdvice> commandExecutorTaskAdvice) {
AdvisorConfiguration result = AdvisorConfigurationRegistryFactory.getRegistry(type).getAdvisorConfiguration(TARGET_CLASS);
- result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisorConfiguration(ElementMatchers.named(TARGET_METHOD), commandExecutorTaskAdvice.getName()));
+ result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named(TARGET_METHOD), commandExecutorTaskAdvice.getName()));
return result;
}
}
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java
index 438bd5ad825..08d8e47d172 100644
--- a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.matcher.ElementMatchers;
import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.InstanceMethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
/**
@@ -42,7 +42,7 @@ public final class JDBCExecutorCallbackAdviser implements TracingAdviser {
@Override
public AdvisorConfiguration getAdvisorConfiguration(final Class<? extends InstanceMethodAroundAdvice> jdbcExecutorCallbackAdvice) {
AdvisorConfiguration result = AdvisorConfigurationRegistryFactory.getRegistry(type).getAdvisorConfiguration(TARGET_CLASS);
- result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisorConfiguration(
+ result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(
ElementMatchers.named(TARGET_METHOD).and(ElementMatchers.takesArgument(0, ElementMatchers.named(TARGET_METHOD_FIRST_PARAM))), jdbcExecutorCallbackAdvice.getName()));
return result;
}
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java
index 8b28a9989ee..d6c60cbdec9 100644
--- a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.matcher.ElementMatchers;
import org.apache.shardingsphere.agent.config.advisor.AdvisorConfiguration;
-import org.apache.shardingsphere.agent.config.advisor.method.type.InstanceMethodAdvisorConfiguration;
-import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
+import org.apache.shardingsphere.agent.config.advisor.MethodAdvisorConfiguration;
import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.plugin.advisor.AdvisorConfigurationRegistryFactory;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
/**
@@ -40,7 +40,7 @@ public final class SQLParserEngineAdviser implements TracingAdviser {
@Override
public AdvisorConfiguration getAdvisorConfiguration(final Class<? extends InstanceMethodAroundAdvice> sqlParserEngineAdvice) {
AdvisorConfiguration result = AdvisorConfigurationRegistryFactory.getRegistry(type).getAdvisorConfiguration(TARGET_CLASS);
- result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisorConfiguration(ElementMatchers.named(TARGET_METHOD), sqlParserEngineAdvice.getName()));
+ result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.named(TARGET_METHOD), sqlParserEngineAdvice.getName()));
return result;
}
}