You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by su...@apache.org on 2022/12/12 14:43:49 UTC

[shardingsphere] branch master updated: Refactor Tracing PluginDefinitionService (#22838)

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 21adca75182 Refactor Tracing PluginDefinitionService (#22838)
21adca75182 is described below

commit 21adca75182a83178b8ab1bbc7ec47eab7dee5b0
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Mon Dec 12 22:43:41 2022 +0800

    Refactor Tracing PluginDefinitionService (#22838)
    
    * Use PluginDefinitionServiceEngine instead of AbstractPluginDefinitionService
    
    * Refactor Tracing PluginDefinitionService
---
 .../shardingsphere/agent/core/common/AgentClassLoader.java   |  4 ++--
 .../base/definition/BaseLoggingPluginDefinitionService.java  | 12 +++++++-----
 .../jaeger/definition/JaegerPluginDefinitionService.java     |  9 ++++++---
 .../OpenTelemetryTracingPluginDefinitionService.java         | 12 ++++++++----
 .../definition/OpenTracingPluginDefinitionService.java       |  9 ++++++---
 .../zipkin/definition/ZipkinPluginDefinitionService.java     |  9 ++++++---
 6 files changed, 35 insertions(+), 20 deletions(-)

diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/common/AgentClassLoader.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/common/AgentClassLoader.java
index b401f49fd13..1b2609caa98 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/common/AgentClassLoader.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/common/AgentClassLoader.java
@@ -36,7 +36,7 @@ import java.util.jar.Manifest;
 import java.util.zip.ZipEntry;
 
 /**
- *  Agent classloader.
+ *  Agent class loader.
  */
 public final class AgentClassLoader extends ClassLoader {
     
@@ -55,7 +55,7 @@ public final class AgentClassLoader extends ClassLoader {
     }
     
     /**
-     * Init default plugin classloader.
+     * Initialize default plugin class loader.
      * 
      * @param pluginJars plugin jars
      */
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 82219e19ec4..30d50f09215 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,7 +18,6 @@
 package org.apache.shardingsphere.agent.plugin.logging.base.definition;
 
 import net.bytebuddy.matcher.ElementMatchers;
-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;
@@ -37,14 +36,17 @@ public final class BaseLoggingPluginDefinitionService implements PluginDefinitio
     
     @Override
     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));
+        installInterceptors();
     }
     
     @Override
     public void installJdbcInterceptors() {
-        ClassPointcutsRegistryFactory.getRegistry(getType()).getClassPointcuts(SCHEMA_METADATA_LOADER_CLASS).getStaticMethodPointcuts()
+        installInterceptors();
+    }
+    
+    private void installInterceptors() {
+        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));
     }
     
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 dbcfac475f1..2922cbe09d2 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
@@ -19,6 +19,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.jaeger.definition;
 
 import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.CommandExecutorTaskAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.JDBCExecutorCallbackAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.SQLParserEngineAdvice;
 import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
 import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
 
@@ -31,13 +34,13 @@ public final class JaegerPluginDefinitionService implements PluginDefinitionServ
     
     private static final String COMMAND_EXECUTOR_METHOD_NAME = "run";
     
-    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.CommandExecutorTaskAdvice";
+    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = CommandExecutorTaskAdvice.class.getName();
     
     private static final String SQL_PARSER_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine";
     
     private static final String SQL_PARSER_ENGINE_METHOD_NAME = "parse";
     
-    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.SQLParserEngineAdvice";
+    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = SQLParserEngineAdvice.class.getName();
     
     private static final String JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback";
     
@@ -45,7 +48,7 @@ public final class JaegerPluginDefinitionService implements PluginDefinitionServ
     
     private static final String JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
     
-    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice.JDBCExecutorCallbackAdvice";
+    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = JDBCExecutorCallbackAdvice.class.getName();
     
     @Override
     public void installProxyInterceptors() {
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 4c5fa87e5be..12e70bc53ad 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
@@ -19,6 +19,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.definition;
 
 import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.CommandExecutorTaskAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.JDBCExecutorCallbackAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.SQLParserEngineAdvice;
 import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
 import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
 
@@ -31,13 +34,13 @@ public final class OpenTelemetryTracingPluginDefinitionService implements Plugin
     
     private static final String COMMAND_EXECUTOR_METHOD_NAME = "run";
     
-    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.CommandExecutorTaskAdvice";
+    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = CommandExecutorTaskAdvice.class.getName();
     
     private static final String SQL_PARSER_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine";
     
     private static final String SQL_PARSER_ENGINE_METHOD_NAME = "parse";
     
-    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.SQLParserEngineAdvice";
+    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = SQLParserEngineAdvice.class.getName();
     
     private static final String JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback";
     
@@ -45,7 +48,7 @@ public final class OpenTelemetryTracingPluginDefinitionService implements Plugin
     
     private static final String JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
     
-    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.advice.JDBCExecutorCallbackAdvice";
+    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = JDBCExecutorCallbackAdvice.class.getName();
     
     @Override
     public void installProxyInterceptors() {
@@ -55,7 +58,8 @@ public final class OpenTelemetryTracingPluginDefinitionService implements Plugin
         engine.getClassPointcuts(SQL_PARSER_ENGINE_ENHANCE_CLASS).getInstanceMethodPointcuts()
                 .add(new InstanceMethodPointcut(ElementMatchers.named(SQL_PARSER_ENGINE_METHOD_NAME), SQL_PARSER_ENGINE_ADVICE_CLASS));
         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));
+                .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
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 2dff8e5efa4..2220727e5a8 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
@@ -19,6 +19,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.opentracing.definition;
 
 import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.CommandExecutorTaskAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.JDBCExecutorCallbackAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.SQLParserEngineAdvice;
 import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
 import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
 
@@ -31,13 +34,13 @@ public final class OpenTracingPluginDefinitionService implements PluginDefinitio
     
     private static final String COMMAND_EXECUTOR_METHOD_NAME = "run";
     
-    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.CommandExecutorTaskAdvice";
+    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = CommandExecutorTaskAdvice.class.getName();
     
     private static final String SQL_PARSER_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine";
     
     private static final String SQL_PARSER_ENGINE_METHOD_NAME = "parse";
     
-    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.SQLParserEngineAdvice";
+    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = SQLParserEngineAdvice.class.getName();
     
     private static final String JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback";
     
@@ -45,7 +48,7 @@ public final class OpenTracingPluginDefinitionService implements PluginDefinitio
     
     private static final String JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
     
-    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice.JDBCExecutorCallbackAdvice";
+    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = JDBCExecutorCallbackAdvice.class.getName();
     
     @Override
     public void installProxyInterceptors() {
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 4704f7577ff..d129f1e5bb2 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
@@ -19,6 +19,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.definition;
 
 import net.bytebuddy.matcher.ElementMatchers;
 import org.apache.shardingsphere.agent.core.definition.PluginDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.CommandExecutorTaskAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.JDBCExecutorCallbackAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.SQLParserEngineAdvice;
 import org.apache.shardingsphere.agent.pointcut.InstanceMethodPointcut;
 import org.apache.shardingsphere.agent.spi.PluginDefinitionService;
 
@@ -31,13 +34,13 @@ public final class ZipkinPluginDefinitionService implements PluginDefinitionServ
     
     private static final String COMMAND_EXECUTOR_METHOD_NAME = "run";
     
-    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.CommandExecutorTaskAdvice";
+    private static final String COMMAND_EXECUTOR_TASK_ADVICE_CLASS = CommandExecutorTaskAdvice.class.getName();
     
     private static final String SQL_PARSER_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine";
     
     private static final String SQL_PARSER_ENGINE_METHOD_NAME = "parse";
     
-    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.SQLParserEngineAdvice";
+    private static final String SQL_PARSER_ENGINE_ADVICE_CLASS = SQLParserEngineAdvice.class.getName();
     
     private static final String JDBC_EXECUTOR_CALLBACK_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback";
     
@@ -45,7 +48,7 @@ public final class ZipkinPluginDefinitionService implements PluginDefinitionServ
     
     private static final String JDBC_EXECUTOR_UNIT_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
     
-    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = "org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice.JDBCExecutorCallbackAdvice";
+    private static final String JDBC_EXECUTOR_CALLBACK_ADVICE_CLASS = JDBCExecutorCallbackAdvice.class.getName();
     
     @Override
     public void installProxyInterceptors() {