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

sunnianjun 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 31019d2eaaf Add plugin type on MethodAdvisorConfiguration (#23618)
31019d2eaaf is described below

commit 31019d2eaaf800cf80ea338629ebbfa58e26a200
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jan 17 23:22:15 2023 +0800

    Add plugin type on MethodAdvisorConfiguration (#23618)
---
 .../advisor/config/AdvisorConfigurationLoader.java |  2 +-
 .../advisor/config/MethodAdvisorConfiguration.java |  2 ++
 .../swapper/YamlAdvisorConfigurationSwapper.java   |  5 +++--
 .../swapper/YamlAdvisorsConfigurationSwapper.java  |  5 +++--
 .../YamlAdvisorsConfigurationSwapperTest.java      | 22 +++++++++++-----------
 .../core/builder/AgentBuilderFactoryTest.java      | 20 ++++++++++----------
 6 files changed, 30 insertions(+), 26 deletions(-)

diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/AdvisorConfigurationLoader.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/AdvisorConfigurationLoader.java
index 58d48c5adeb..27b54d1b0e3 100644
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/AdvisorConfigurationLoader.java
+++ 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/AdvisorConfigurationLoader.java
@@ -56,7 +56,7 @@ public final class AdvisorConfigurationLoader {
             if (null == advisorsResourceStream) {
                 LOGGER.info("No configuration of advisor for type `{}`.", 
each);
             } else {
-                mergeConfigurations(result, 
YamlAdvisorsConfigurationSwapper.swap(YamlAdvisorsConfigurationLoader.load(advisorsResourceStream)));
+                mergeConfigurations(result, 
YamlAdvisorsConfigurationSwapper.swap(YamlAdvisorsConfigurationLoader.load(advisorsResourceStream),
 each));
             }
         }
         return result;
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/MethodAdvisorConfiguration.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/MethodAdvisorConfiguration.java
index 6138aaa9299..2be3aae43c5 100644
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/MethodAdvisorConfiguration.java
+++ 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/MethodAdvisorConfiguration.java
@@ -32,4 +32,6 @@ public final class MethodAdvisorConfiguration {
     private final ElementMatcher<? super MethodDescription> pointcut;
     
     private final String adviceClassName;
+    
+    private final String pluginType;
 }
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorConfigurationSwapper.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorConfigurationSwapper.java
index 412ed00495b..7294e5dde41 100644
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorConfigurationSwapper.java
+++ 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorConfigurationSwapper.java
@@ -34,12 +34,13 @@ public final class YamlAdvisorConfigurationSwapper {
      * Swap from YAML advisor configuration to advisors configuration.
      * 
      * @param yamlConfig YAML advisor configuration
+     * @param pluginType plugin type
      * @return advisor configuration
      */
-    public static AdvisorConfiguration swap(final YamlAdvisorConfiguration 
yamlConfig) {
+    public static AdvisorConfiguration swap(final YamlAdvisorConfiguration 
yamlConfig, final String pluginType) {
         AdvisorConfiguration result = new 
AdvisorConfiguration(yamlConfig.getTarget());
         for (YamlPointcutConfiguration each : yamlConfig.getPointcuts()) {
-            YamlPointcutConfigurationSwapper.swap(each).ifPresent(optional -> 
result.getAdvisors().add(new MethodAdvisorConfiguration(optional, 
yamlConfig.getAdvice())));
+            YamlPointcutConfigurationSwapper.swap(each).ifPresent(optional -> 
result.getAdvisors().add(new MethodAdvisorConfiguration(optional, 
yamlConfig.getAdvice(), pluginType)));
         }
         return result;
     }
diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorsConfigurationSwapper.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorsConfigurationSwapper.java
index 757f3e29b6a..96486b80037 100644
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorsConfigurationSwapper.java
+++ 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorsConfigurationSwapper.java
@@ -35,9 +35,10 @@ public final class YamlAdvisorsConfigurationSwapper {
      * Swap from YAML advisors configuration to advisor configurations.
      * 
      * @param yamlConfig YAML advisors configuration
+     * @param pluginType plugin type
      * @return advisor configurations
      */
-    public static Collection<AdvisorConfiguration> swap(final 
YamlAdvisorsConfiguration yamlConfig) {
-        return yamlConfig.getAdvisors().stream().filter(each -> null != 
each.getTarget()).map(YamlAdvisorConfigurationSwapper::swap).collect(Collectors.toList());
+    public static Collection<AdvisorConfiguration> swap(final 
YamlAdvisorsConfiguration yamlConfig, final String pluginType) {
+        return yamlConfig.getAdvisors().stream().filter(each -> null != 
each.getTarget()).map(each -> YamlAdvisorConfigurationSwapper.swap(each, 
pluginType)).collect(Collectors.toList());
     }
 }
diff --git 
a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorsConfigurationSwapperTest.java
 
b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorsConfigurationSwapperTest.java
index 94454429d49..7392caa2956 100644
--- 
a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorsConfigurationSwapperTest.java
+++ 
b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/advisor/config/yaml/swapper/YamlAdvisorsConfigurationSwapperTest.java
@@ -38,7 +38,7 @@ public final class YamlAdvisorsConfigurationSwapperTest {
     @Test
     public void assertSwapToObject() {
         Collection<AdvisorConfiguration> actual = 
YamlAdvisorsConfigurationSwapper.swap(
-                new 
Yaml().loadAs(getClass().getResourceAsStream("/META-INF/conf/advisors.yaml"), 
YamlAdvisorsConfiguration.class));
+                new 
Yaml().loadAs(getClass().getResourceAsStream("/META-INF/conf/advisors.yaml"), 
YamlAdvisorsConfiguration.class), "FIXTURE");
         assertThat(actual.size(), is(1));
         assertAdvisorConfiguration(actual.iterator().next());
     }
@@ -49,17 +49,17 @@ public final class YamlAdvisorsConfigurationSwapperTest {
         for (MethodAdvisorConfiguration each : actual.getAdvisors()) {
             assertThat(each.getAdviceClassName(), 
is(YamlAdviceFixture.class.getName()));
         }
-        List<MethodAdvisorConfiguration> actualAdvisorConfig = new 
ArrayList<>(actual.getAdvisors());
-        assertThat(actualAdvisorConfig.get(0).getPointcut(), 
is(ElementMatchers.isConstructor()));
-        assertThat(actualAdvisorConfig.get(1).getPointcut(), 
is(ElementMatchers.isConstructor().and(ElementMatchers.takesArgument(0, 
ElementMatchers.named("java.lang.String")))));
-        assertThat(actualAdvisorConfig.get(2).getPointcut(), 
is(ElementMatchers.named("call")));
-        assertThat(actualAdvisorConfig.get(3).getPointcut(), 
is(ElementMatchers.named("call").and(ElementMatchers.takesArgument(0, 
ElementMatchers.named("java.lang.String")))));
-        assertThat(actualAdvisorConfig.get(4).getPointcut(), 
is(ElementMatchers.named("call")
+        List<MethodAdvisorConfiguration> actualAdvisorConfigs = new 
ArrayList<>(actual.getAdvisors());
+        assertThat(actualAdvisorConfigs.get(0).getPointcut(), 
is(ElementMatchers.isConstructor()));
+        assertThat(actualAdvisorConfigs.get(1).getPointcut(), 
is(ElementMatchers.isConstructor().and(ElementMatchers.takesArgument(0, 
ElementMatchers.named("java.lang.String")))));
+        assertThat(actualAdvisorConfigs.get(2).getPointcut(), 
is(ElementMatchers.named("call")));
+        assertThat(actualAdvisorConfigs.get(3).getPointcut(), 
is(ElementMatchers.named("call").and(ElementMatchers.takesArgument(0, 
ElementMatchers.named("java.lang.String")))));
+        assertThat(actualAdvisorConfigs.get(4).getPointcut(), 
is(ElementMatchers.named("call")
                 .and(ElementMatchers.takesArgument(0, 
ElementMatchers.named("java.lang.String"))).and(ElementMatchers.takesArgument(1,
 ElementMatchers.named("java.lang.String")))));
-        assertThat(actualAdvisorConfig.get(5).getPointcut(), 
is(ElementMatchers.named("staticCall")));
-        assertThat(actualAdvisorConfig.get(6).getPointcut(), 
is(ElementMatchers.named("staticCall").and(ElementMatchers.takesArgument(0, 
ElementMatchers.named("java.lang.String")))));
-        assertThat(actualAdvisorConfig.get(7).getPointcut(), 
is(ElementMatchers.named("staticCall")
+        assertThat(actualAdvisorConfigs.get(5).getPointcut(), 
is(ElementMatchers.named("staticCall")));
+        assertThat(actualAdvisorConfigs.get(6).getPointcut(), 
is(ElementMatchers.named("staticCall").and(ElementMatchers.takesArgument(0, 
ElementMatchers.named("java.lang.String")))));
+        assertThat(actualAdvisorConfigs.get(7).getPointcut(), 
is(ElementMatchers.named("staticCall")
                 .and(ElementMatchers.takesArgument(0, 
ElementMatchers.named("java.lang.String"))).and(ElementMatchers.takesArgument(1,
 ElementMatchers.named("java.lang.String")))));
-        
+        actualAdvisorConfigs.forEach(each -> assertThat(each.getPluginType(), 
is("FIXTURE")));
     }
 }
diff --git 
a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/builder/AgentBuilderFactoryTest.java
 
b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/builder/AgentBuilderFactoryTest.java
index 6dc5c912760..34e0b7978c6 100644
--- 
a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/builder/AgentBuilderFactoryTest.java
+++ 
b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/builder/AgentBuilderFactoryTest.java
@@ -54,16 +54,16 @@ public final class AgentBuilderFactoryTest {
     
     private static AdvisorConfiguration createAdvisorConfiguration() {
         AdvisorConfiguration result = new 
AdvisorConfiguration("org.apache.shardingsphere.fixture.targeted.TargetObjectFixture");
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.isConstructor().and(ElementMatchers.takesArguments(1)),
 FooAdvice.class.getName()));
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.isConstructor().and(ElementMatchers.takesArguments(1)),
 BarAdvice.class.getName()));
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("call"), 
FooAdvice.class.getName()));
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("call"), 
BarAdvice.class.getName()));
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("callWhenExceptionThrown"), 
FooAdvice.class.getName()));
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("callWhenExceptionThrown"), 
BarAdvice.class.getName()));
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("staticCall"), 
FooAdvice.class.getName()));
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("staticCall"), 
BarAdvice.class.getName()));
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("staticCallWhenExceptionThrown"),
 FooAdvice.class.getName()));
-        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("staticCallWhenExceptionThrown"),
 BarAdvice.class.getName()));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.isConstructor().and(ElementMatchers.takesArguments(1)),
 FooAdvice.class.getName(), "FIXTURE"));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.isConstructor().and(ElementMatchers.takesArguments(1)),
 BarAdvice.class.getName(), "FIXTURE"));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("call"), 
FooAdvice.class.getName(), "FIXTURE"));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("call"), 
BarAdvice.class.getName(), "FIXTURE"));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("callWhenExceptionThrown"), 
FooAdvice.class.getName(), "FIXTURE"));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("callWhenExceptionThrown"), 
BarAdvice.class.getName(), "FIXTURE"));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("staticCall"), 
FooAdvice.class.getName(), "FIXTURE"));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("staticCall"), 
BarAdvice.class.getName(), "FIXTURE"));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("staticCallWhenExceptionThrown"),
 FooAdvice.class.getName(), "FIXTURE"));
+        result.getAdvisors().add(new 
MethodAdvisorConfiguration(ElementMatchers.named("staticCallWhenExceptionThrown"),
 BarAdvice.class.getName(), "FIXTURE"));
         return result;
     }
     

Reply via email to