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;
}