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 <[email protected]>
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));
     }
 }


Reply via email to