You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/12/12 11:53:10 UTC
[shardingsphere] branch master updated: Use PluginDefinitionServiceEngine instead of AbstractPluginDefinitionService (#22832)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 95cce584c6a Use PluginDefinitionServiceEngine instead of AbstractPluginDefinitionService (#22832)
95cce584c6a is described below
commit 95cce584c6a2930081a697fed129bbbd87444c93
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Mon Dec 12 19:52:56 2022 +0800
Use PluginDefinitionServiceEngine instead of AbstractPluginDefinitionService (#22832)
* Use PluginDefinitionServiceEngine instead of AbstractPluginDefinitionService
* Use PluginDefinitionServiceEngine instead of AbstractPluginDefinitionService
* Use PluginDefinitionServiceEngine instead of AbstractPluginDefinitionService
---
.../agent/spi/PluginDefinitionService.java | 16 ++++-----
...ntRegistry.java => ClassPointcutsRegistry.java} | 8 ++---
...try.java => ClassPointcutsRegistryFactory.java} | 30 ++++++----------
...ice.java => PluginDefinitionServiceEngine.java} | 41 +++++++++++++---------
.../agent/core/plugin/AgentPluginLoader.java | 3 +-
.../BaseLoggingPluginDefinitionService.java | 15 ++++----
.../PrometheusPluginDefinitionService.java | 14 ++++----
.../PrometheusPluginDefinitionServiceTest.java | 7 ++--
.../definition/JaegerPluginDefinitionService.java | 16 +++++----
.../JaegerPluginDefinitionServiceTest.java | 7 ++--
...penTelemetryTracingPluginDefinitionService.java | 16 +++++----
...elemetryTracingPluginDefinitionServiceTest.java | 7 ++--
.../OpenTracingPluginDefinitionService.java | 16 +++++----
.../OpenTracingPluginDefinitionServiceTest.java | 7 ++--
.../definition/ZipkinPluginDefinitionService.java | 16 +++++----
.../ZipkinPluginDefinitionServiceTest.java | 7 ++--
16 files changed, 127 insertions(+), 99 deletions(-)
diff --git a/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/PluginDefinitionService.java b/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/PluginDefinitionService.java
index e6db44294e9..9f5acf95f1b 100644
--- a/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/PluginDefinitionService.java
+++ b/agent/api/src/main/java/org/apache/shardingsphere/agent/spi/PluginDefinitionService.java
@@ -17,20 +17,18 @@
package org.apache.shardingsphere.agent.spi;
-import org.apache.shardingsphere.agent.pointcut.ClassPointcuts;
-
-import java.util.Collection;
-
/**
* Plugin definition service.
*/
public interface PluginDefinitionService extends AgentSPI {
/**
- * Install class pointcuts.
- *
- * @param isEnhancedForProxy is enhanced for proxy
- * @return installed class pointcuts
+ * Install Proxy Interceptors.
+ */
+ void installProxyInterceptors();
+
+ /**
+ * Install JDBC Interceptors.
*/
- Collection<ClassPointcuts> install(boolean isEnhancedForProxy);
+ void installJdbcInterceptors();
}
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/InterceptorPointRegistry.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/ClassPointcutsRegistry.java
similarity index 86%
copy from agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/InterceptorPointRegistry.java
copy to agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/ClassPointcutsRegistry.java
index 2e5fb6ac429..f76882b3cb1 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/InterceptorPointRegistry.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/ClassPointcutsRegistry.java
@@ -24,9 +24,9 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
- * Interceptor point registry.
+ * Class pointcuts registry.
*/
-public final class InterceptorPointRegistry {
+public final class ClassPointcutsRegistry {
private final Map<String, ClassPointcuts> pointcutsMap = new ConcurrentHashMap<>();
@@ -36,7 +36,7 @@ public final class InterceptorPointRegistry {
* @param targetClassName target class name to be intercepted
* @return class pointcuts
*/
- public ClassPointcuts getInterceptorPointBuilder(final String targetClassName) {
+ public ClassPointcuts getClassPointcuts(final String targetClassName) {
return pointcutsMap.computeIfAbsent(targetClassName, ClassPointcuts::new);
}
@@ -45,7 +45,7 @@ public final class InterceptorPointRegistry {
*
* @return all class pointcuts
*/
- public Collection<ClassPointcuts> getAllInterceptorPoints() {
+ public Collection<ClassPointcuts> getAllClassPointcuts() {
return pointcutsMap.values();
}
}
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/InterceptorPointRegistry.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/ClassPointcutsRegistryFactory.java
similarity index 56%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/InterceptorPointRegistry.java
rename to agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/ClassPointcutsRegistryFactory.java
index 2e5fb6ac429..0a909f443cc 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/InterceptorPointRegistry.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/ClassPointcutsRegistryFactory.java
@@ -17,35 +17,27 @@
package org.apache.shardingsphere.agent.core.definition;
-import org.apache.shardingsphere.agent.pointcut.ClassPointcuts;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
-import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
- * Interceptor point registry.
+ * Class pointcuts registry factory.
*/
-public final class InterceptorPointRegistry {
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ClassPointcutsRegistryFactory {
- private final Map<String, ClassPointcuts> pointcutsMap = new ConcurrentHashMap<>();
+ private static final Map<String, ClassPointcutsRegistry> REGISTRIES = new ConcurrentHashMap<>();
/**
- * Get class pointcuts.
+ * Get class pointcuts registry.
*
- * @param targetClassName target class name to be intercepted
- * @return class pointcuts
+ * @param key registry key
+ * @return class pointcuts registry
*/
- public ClassPointcuts getInterceptorPointBuilder(final String targetClassName) {
- return pointcutsMap.computeIfAbsent(targetClassName, ClassPointcuts::new);
- }
-
- /**
- * Get all class pointcuts.
- *
- * @return all class pointcuts
- */
- public Collection<ClassPointcuts> getAllInterceptorPoints() {
- return pointcutsMap.values();
+ public static ClassPointcutsRegistry getRegistry(final String key) {
+ return REGISTRIES.computeIfAbsent(key, each -> new ClassPointcutsRegistry());
}
}
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/AbstractPluginDefinitionService.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/PluginDefinitionServiceEngine.java
similarity index 52%
rename from agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/AbstractPluginDefinitionService.java
rename to agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/PluginDefinitionServiceEngine.java
index 0e2598b7cb9..01b60990024 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/AbstractPluginDefinitionService.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/definition/PluginDefinitionServiceEngine.java
@@ -17,33 +17,42 @@
package org.apache.shardingsphere.agent.core.definition;
+import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.agent.pointcut.ClassPointcuts;
import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
import java.util.Collection;
/**
- * Abstract plugin definition service.
+ * Plugin definition service engine.
*/
-public abstract class AbstractPluginDefinitionService implements PluginDefinitionService {
+@RequiredArgsConstructor
+public final class PluginDefinitionServiceEngine {
- private final InterceptorPointRegistry interceptorPointRegistry = new InterceptorPointRegistry();
+ private final PluginDefinitionService pluginDefinitionService;
- @Override
- public final Collection<ClassPointcuts> install(final boolean isEnhancedForProxy) {
+ /**
+ * Get class pointcuts.
+ *
+ * @param targetClassName target class name
+ * @return class pointcuts
+ */
+ public ClassPointcuts getClassPointcuts(final String targetClassName) {
+ return ClassPointcutsRegistryFactory.getRegistry(pluginDefinitionService.getType()).getClassPointcuts(targetClassName);
+ }
+
+ /**
+ * Install plugins.
+ *
+ * @param isEnhancedForProxy is enhanced for proxy
+ * @return class pointcuts
+ */
+ public Collection<ClassPointcuts> install(final boolean isEnhancedForProxy) {
if (isEnhancedForProxy) {
- defineProxyInterceptors();
+ pluginDefinitionService.installProxyInterceptors();
} else {
- defineJdbcInterceptors();
+ pluginDefinitionService.installJdbcInterceptors();
}
- return interceptorPointRegistry.getAllInterceptorPoints();
- }
-
- protected abstract void defineProxyInterceptors();
-
- protected abstract void defineJdbcInterceptors();
-
- protected final ClassPointcuts defineInterceptor(final String targetClassName) {
- return interceptorPointRegistry.getInterceptorPointBuilder(targetClassName);
+ return ClassPointcutsRegistryFactory.getRegistry(pluginDefinitionService.getType()).getAllClassPointcuts();
}
}
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
index 3c090ae2792..7ecdd91e65c 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
@@ -27,6 +27,7 @@ import org.apache.shardingsphere.agent.config.AgentConfiguration;
import org.apache.shardingsphere.agent.core.common.AgentClassLoader;
import org.apache.shardingsphere.agent.core.config.path.AgentPathBuilder;
import org.apache.shardingsphere.agent.core.config.registry.AgentConfigurationRegistry;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
import org.apache.shardingsphere.agent.core.logging.LoggerFactory;
import org.apache.shardingsphere.agent.core.spi.PluginServiceLoader;
import org.apache.shardingsphere.agent.pointcut.ClassPointcuts;
@@ -105,7 +106,7 @@ public final class AgentPluginLoader implements PluginLoader {
}
private void buildPluginInterceptorPointMap(final PluginDefinitionService pluginDefinitionService, final Map<String, ClassPointcuts> pointMap) {
- pluginDefinitionService.install(isEnhancedForProxy).forEach(each -> {
+ new PluginDefinitionServiceEngine(pluginDefinitionService).install(isEnhancedForProxy).forEach(each -> {
String target = each.getTargetClassName();
if (pointMap.containsKey(target)) {
ClassPointcuts classPointcuts = pointMap.get(target);
diff --git a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingPluginDefinitionService.java b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingPluginDefinitionService.java
index 5941544ded2..82219e19ec4 100644
--- a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingPluginDefinitionService.java
+++ b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingPluginDefinitionService.java
@@ -18,14 +18,16 @@
package org.apache.shardingsphere.agent.plugin.logging.base.definition;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.AbstractPluginDefinitionService;
+import org.apache.shardingsphere.agent.core.definition.ClassPointcutsRegistryFactory;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
import org.apache.shardingsphere.agent.plugin.logging.base.advice.MetaDataContextsFactoryAdvice;
import org.apache.shardingsphere.agent.pointcut.StaticMethodPointcut;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
/**
* Base logging plugin definition service.
*/
-public final class BaseLoggingPluginDefinitionService extends AbstractPluginDefinitionService {
+public final class BaseLoggingPluginDefinitionService implements PluginDefinitionService {
private static final String SCHEMA_METADATA_LOADER_CLASS = "org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory";
@@ -34,14 +36,15 @@ public final class BaseLoggingPluginDefinitionService extends AbstractPluginDefi
private static final String SCHEMA_METADATA_LOADER_ADVICE_CLASS = MetaDataContextsFactoryAdvice.class.getName();
@Override
- protected void defineProxyInterceptors() {
- defineInterceptor(SCHEMA_METADATA_LOADER_CLASS).getStaticMethodPointcuts()
+ public void installProxyInterceptors() {
+ PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
+ engine.getClassPointcuts(SCHEMA_METADATA_LOADER_CLASS).getStaticMethodPointcuts()
.add(new StaticMethodPointcut(ElementMatchers.named(SCHEMA_METADATA_LOADER_METHOD_NAME).and(ElementMatchers.takesArguments(4)), SCHEMA_METADATA_LOADER_ADVICE_CLASS));
}
@Override
- protected void defineJdbcInterceptors() {
- defineInterceptor(SCHEMA_METADATA_LOADER_CLASS).getStaticMethodPointcuts()
+ public void installJdbcInterceptors() {
+ ClassPointcutsRegistryFactory.getRegistry(getType()).getClassPointcuts(SCHEMA_METADATA_LOADER_CLASS).getStaticMethodPointcuts()
.add(new StaticMethodPointcut(ElementMatchers.named(SCHEMA_METADATA_LOADER_METHOD_NAME).and(ElementMatchers.takesArguments(4)), SCHEMA_METADATA_LOADER_ADVICE_CLASS));
}
diff --git a/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java b/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
index 96cfa53ff00..53a5fd6f144 100644
--- a/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
+++ b/agent/plugins/metrics/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
@@ -18,27 +18,29 @@
package org.apache.shardingsphere.agent.metrics.prometheus.definition;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.AbstractPluginDefinitionService;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
import org.apache.shardingsphere.agent.core.yaml.entity.Interceptor;
import org.apache.shardingsphere.agent.core.yaml.entity.TargetPoint;
import org.apache.shardingsphere.agent.core.yaml.swapper.InterceptorsYamlSwapper;
+import org.apache.shardingsphere.agent.pointcut.ClassPointcuts;
import org.apache.shardingsphere.agent.pointcut.ConstructorPointcut;
import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
-import org.apache.shardingsphere.agent.pointcut.ClassPointcuts;
import org.apache.shardingsphere.agent.pointcut.StaticMethodPointcut;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
/**
* Metrics plugin definition service.
*/
-public final class PrometheusPluginDefinitionService extends AbstractPluginDefinitionService {
+public final class PrometheusPluginDefinitionService implements PluginDefinitionService {
@Override
- protected void defineProxyInterceptors() {
+ public void installProxyInterceptors() {
+ PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
for (Interceptor each : new InterceptorsYamlSwapper().unmarshal(getClass().getResourceAsStream("/prometheus/interceptors.yaml")).getInterceptors()) {
if (null == each.getTarget()) {
continue;
}
- ClassPointcuts classPointcuts = defineInterceptor(each.getTarget());
+ ClassPointcuts classPointcuts = engine.getClassPointcuts(each.getTarget());
if (null != each.getConstructAdvice() && !("".equals(each.getConstructAdvice()))) {
classPointcuts.getConstructorPointcuts().add(new ConstructorPointcut(ElementMatchers.isConstructor(), each.getConstructAdvice()));
}
@@ -54,7 +56,7 @@ public final class PrometheusPluginDefinitionService extends AbstractPluginDefin
}
@Override
- protected void defineJdbcInterceptors() {
+ public void installJdbcInterceptors() {
// TODO add JDBC related interception
}
diff --git a/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionServiceTest.java b/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionServiceTest.java
index 22f6d11ec0c..bb3a4e720bc 100644
--- a/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionServiceTest.java
+++ b/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionServiceTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.agent.metrics.prometheus.definition;
+import org.apache.shardingsphere.agent.core.definition.ClassPointcutsRegistryFactory;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -25,7 +26,9 @@ import static org.hamcrest.MatcherAssert.assertThat;
public final class PrometheusPluginDefinitionServiceTest {
@Test
- public void assertInstall() {
- assertThat(new PrometheusPluginDefinitionService().install(true).size(), is(5));
+ public void assertInstallProxyInterceptors() {
+ PrometheusPluginDefinitionService pluginDefinitionService = new PrometheusPluginDefinitionService();
+ pluginDefinitionService.installProxyInterceptors();
+ assertThat(ClassPointcutsRegistryFactory.getRegistry(pluginDefinitionService.getType()).getAllClassPointcuts().size(), is(5));
}
}
diff --git a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java b/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java
index c98ad53e231..dbcfac475f1 100644
--- a/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java
+++ b/agent/plugins/tracing/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionService.java
@@ -18,13 +18,14 @@
package org.apache.shardingsphere.agent.plugin.tracing.jaeger.definition;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.AbstractPluginDefinitionService;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
/**
* Jaeger plugin definition service.
*/
-public final class JaegerPluginDefinitionService extends AbstractPluginDefinitionService {
+public final class JaegerPluginDefinitionService implements PluginDefinitionService {
private static final String COMMAND_EXECUTOR_TASK_ENHANCE_CLASS = "org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask";
@@ -47,18 +48,19 @@ public final class JaegerPluginDefinitionService extends AbstractPluginDefinitio
private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.JDBCExecutorCallbackAdvice";
@Override
- protected void defineProxyInterceptors() {
- defineInterceptor(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ public void installProxyInterceptors() {
+ PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
+ engine.getClassPointcuts(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME), COMMAND_EXECUTOR_TASK_ADVICE_CLASS));
- defineInterceptor(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ engine.getClassPointcuts(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(SQL_PARSER_ENGINE_METHOD_NAME), SQL_PARSER_ENGINE_ADVICE_CLASS));
- defineInterceptor(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ engine.getClassPointcuts(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(JDBC_EXECUTOR_METHOD_NAME).and(ElementMatchers.takesArgument(0, ElementMatchers.named(JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS))),
JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS));
}
@Override
- protected void defineJdbcInterceptors() {
+ public void installJdbcInterceptors() {
// TODO add JDBC related interception
}
diff --git a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java b/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java
index d44e7d1a3fb..689cdcef3e8 100644
--- a/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java
+++ b/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerPluginDefinitionServiceTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.agent.plugin.tracing.jaeger.definition;
+import org.apache.shardingsphere.agent.core.definition.ClassPointcutsRegistryFactory;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -25,7 +26,9 @@ import static org.hamcrest.MatcherAssert.assertThat;
public final class JaegerPluginDefinitionServiceTest {
@Test
- public void assertInstall() {
- assertThat(new JaegerPluginDefinitionService().install(true).size(), is(3));
+ public void assertInstallProxyInterceptors() {
+ JaegerPluginDefinitionService pluginDefinitionService = new JaegerPluginDefinitionService();
+ pluginDefinitionService.installProxyInterceptors();
+ assertThat(ClassPointcutsRegistryFactory.getRegistry(pluginDefinitionService.getType()).getAllClassPointcuts().size(), is(3));
}
}
diff --git a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java b/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java
index b3f85062cdb..4c5fa87e5be 100644
--- a/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java
+++ b/agent/plugins/tracing/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionService.java
@@ -18,13 +18,14 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.definition;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.AbstractPluginDefinitionService;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
/**
* OpenTelemetry plugin definition service.
*/
-public final class OpenTelemetryTracingPluginDefinitionService extends AbstractPluginDefinitionService {
+public final class OpenTelemetryTracingPluginDefinitionService implements PluginDefinitionService {
private static final String COMMAND_EXECUTOR_TASK_ENHANCE_CLASS = "org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask";
@@ -47,17 +48,18 @@ public final class OpenTelemetryTracingPluginDefinitionService extends AbstractP
private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.JDBCExecutorCallbackAdvice";
@Override
- protected void defineProxyInterceptors() {
- defineInterceptor(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ public void installProxyInterceptors() {
+ PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
+ engine.getClassPointcuts(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME), COMMAND_EXECUTOR_TASK_ADVICE_CLASS));
- defineInterceptor(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ engine.getClassPointcuts(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(SQL_PARSER_ENGINE_METHOD_NAME), SQL_PARSER_ENGINE_ADVICE_CLASS));
- defineInterceptor(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ engine.getClassPointcuts(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.takesArgument(0, ElementMatchers.named(JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS)), JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS));
}
@Override
- protected void defineJdbcInterceptors() {
+ public void installJdbcInterceptors() {
// TODO add JDBC related interception
}
diff --git a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java b/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java
index c60acd2b561..b677a1497bd 100644
--- a/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java
+++ b/agent/plugins/tracing/opentelemetry/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingPluginDefinitionServiceTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.definition;
+import org.apache.shardingsphere.agent.core.definition.ClassPointcutsRegistryFactory;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -25,7 +26,9 @@ import static org.hamcrest.MatcherAssert.assertThat;
public final class OpenTelemetryTracingPluginDefinitionServiceTest {
@Test
- public void assertInstall() {
- assertThat(new OpenTelemetryTracingPluginDefinitionService().install(true).size(), is(3));
+ public void assertInstallProxyInterceptors() {
+ OpenTelemetryTracingPluginDefinitionService pluginDefinitionService = new OpenTelemetryTracingPluginDefinitionService();
+ pluginDefinitionService.installProxyInterceptors();
+ assertThat(ClassPointcutsRegistryFactory.getRegistry(pluginDefinitionService.getType()).getAllClassPointcuts().size(), is(3));
}
}
diff --git a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java b/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java
index cdd96fd8575..2dff8e5efa4 100644
--- a/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java
+++ b/agent/plugins/tracing/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionService.java
@@ -18,13 +18,14 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentracing.definition;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.AbstractPluginDefinitionService;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
/**
* Open tracing plugin definition service.
*/
-public final class OpenTracingPluginDefinitionService extends AbstractPluginDefinitionService {
+public final class OpenTracingPluginDefinitionService implements PluginDefinitionService {
private static final String COMMAND_EXECUTOR_TASK_ENHANCE_CLASS = "org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask";
@@ -47,18 +48,19 @@ public final class OpenTracingPluginDefinitionService extends AbstractPluginDefi
private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.JDBCExecutorCallbackAdvice";
@Override
- protected void defineProxyInterceptors() {
- defineInterceptor(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ public void installProxyInterceptors() {
+ PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
+ engine.getClassPointcuts(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME), COMMAND_EXECUTOR_TASK_ADVICE_CLASS));
- defineInterceptor(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ engine.getClassPointcuts(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(SQL_PARSER_ENGINE_METHOD_NAME), SQL_PARSER_ENGINE_ADVICE_CLASS));
- defineInterceptor(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ engine.getClassPointcuts(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(JDBC_EXECUTOR_METHOD_NAME).and(ElementMatchers.takesArgument(0, ElementMatchers.named(JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS))),
JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS));
}
@Override
- protected void defineJdbcInterceptors() {
+ public void installJdbcInterceptors() {
// TODO add JDBC related interception
}
diff --git a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java b/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java
index b688377ddd3..ffd3a482a96 100644
--- a/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java
+++ b/agent/plugins/tracing/opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingPluginDefinitionServiceTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentracing.definition;
+import org.apache.shardingsphere.agent.core.definition.ClassPointcutsRegistryFactory;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -25,7 +26,9 @@ import static org.hamcrest.MatcherAssert.assertThat;
public final class OpenTracingPluginDefinitionServiceTest {
@Test
- public void assertInstall() {
- assertThat(new OpenTracingPluginDefinitionService().install(true).size(), is(3));
+ public void assertInstallProxyInterceptors() {
+ OpenTracingPluginDefinitionService pluginDefinitionService = new OpenTracingPluginDefinitionService();
+ pluginDefinitionService.installProxyInterceptors();
+ assertThat(ClassPointcutsRegistryFactory.getRegistry(pluginDefinitionService.getType()).getAllClassPointcuts().size(), is(3));
}
}
diff --git a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java b/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java
index 95f9e4a1b5c..4704f7577ff 100644
--- a/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java
+++ b/agent/plugins/tracing/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionService.java
@@ -18,13 +18,14 @@
package org.apache.shardingsphere.agent.plugin.tracing.zipkin.definition;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.definition.AbstractPluginDefinitionService;
+import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
+import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
/**
* Zipkin plugin definition service.
*/
-public final class ZipkinPluginDefinitionService extends AbstractPluginDefinitionService {
+public final class ZipkinPluginDefinitionService implements PluginDefinitionService {
private static final String COMMAND_EXECUTOR_TASK_ENHANCE_CLASS = "org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask";
@@ -47,18 +48,19 @@ public final class ZipkinPluginDefinitionService extends AbstractPluginDefinitio
private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.JDBCExecutorCallbackAdvice";
@Override
- protected void defineProxyInterceptors() {
- defineInterceptor(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ public void installProxyInterceptors() {
+ PluginDefinitionServiceEngine engine = new PluginDefinitionServiceEngine(this);
+ engine.getClassPointcuts(COMMAND_EXECUTOR_TASK_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(COMMAND_EXECUTOR_METHOD_NAME), COMMAND_EXECUTOR_TASK_ADVICE_CLASS));
- defineInterceptor(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ engine.getClassPointcuts(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(SQL_PARSER_ENGINE_METHOD_NAME), SQL_PARSER_ENGINE_ADVICE_CLASS));
- defineInterceptor(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
+ engine.getClassPointcuts(JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
.add(new InstanceMethodPointcut(ElementMatchers.named(JDBC_EXECUTOR_METHOD_NAME).and(ElementMatchers.takesArgument(0, ElementMatchers.named(JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS))),
JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS));
}
@Override
- protected void defineJdbcInterceptors() {
+ public void installJdbcInterceptors() {
// TODO add JDBC related interception
}
diff --git a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java b/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java
index 5c70d7b0728..d7fd6729898 100644
--- a/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java
+++ b/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinPluginDefinitionServiceTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.agent.plugin.tracing.zipkin.definition;
+import org.apache.shardingsphere.agent.core.definition.ClassPointcutsRegistryFactory;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -25,7 +26,9 @@ import static org.hamcrest.MatcherAssert.assertThat;
public final class ZipkinPluginDefinitionServiceTest {
@Test
- public void assertInstall() {
- assertThat(new ZipkinPluginDefinitionService().install(true).size(), is(3));
+ public void assertInstallProxyInterceptors() {
+ ZipkinPluginDefinitionService pluginDefinitionService = new ZipkinPluginDefinitionService();
+ pluginDefinitionService.installProxyInterceptors();
+ assertThat(ClassPointcutsRegistryFactory.getRegistry(pluginDefinitionService.getType()).getAllClassPointcuts().size(), is(3));
}
}