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/13 15:15:30 UTC
[shardingsphere] branch master updated: Remove AdvisorDefinitionServiceEngine (#22858)
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 fd7631256d2 Remove AdvisorDefinitionServiceEngine (#22858)
fd7631256d2 is described below
commit fd7631256d26ea16acae399de708664cab189c0f
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Tue Dec 13 23:15:19 2022 +0800
Remove AdvisorDefinitionServiceEngine (#22858)
* Refactor AdvisorDefinitionServiceEngine
* Refactor AdvisorDefinitionServiceEngine
* Remove AdvisorDefinitionServiceEngine
* Refactor ClassAdvisorRegistryFactory
* For code format
---
.../agent/bootstrap/ShardingSphereAgent.java | 1 -
.../advisor/AdvisorDefinitionServiceEngine.java | 53 ----------------------
.../core/advisor/ClassAdvisorRegistryFactory.java | 6 +--
.../core/bytebuddy/listener/LoggingListener.java | 4 +-
.../agent/core/logging/LoggerFactory.java | 3 --
.../agent/core/plugin/AgentPluginLoader.java | 7 ++-
.../BaseLoggingAdvisorDefinitionService.java | 8 ++--
.../PrometheusAdvisorDefinitionService.java | 12 ++---
.../tracing/core/advice/TracingAdviceEngine.java | 11 ++---
.../adviser/impl/CommandExecutorTaskAdviser.java | 10 ++--
.../adviser/impl/JDBCExecutorCallbackAdviser.java | 10 ++--
.../adviser/impl/SQLParserEngineAdviser.java | 10 ++--
.../definition/JaegerAdvisorDefinitionService.java | 5 +-
...enTelemetryTracingAdvisorDefinitionService.java | 5 +-
.../OpenTracingAdvisorDefinitionService.java | 5 +-
.../definition/ZipkinAdvisorDefinitionService.java | 5 +-
16 files changed, 44 insertions(+), 111 deletions(-)
diff --git a/agent/bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java b/agent/bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java
index 4710c63ebb2..aa2f61d744f 100644
--- a/agent/bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java
+++ b/agent/bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java
@@ -71,7 +71,6 @@ public final class ShardingSphereAgent {
AgentBuilder agentBuilder = new AgentBuilder.Default().with(new ByteBuddy().with(TypeValidation.ENABLED))
.ignore(ElementMatchers.isSynthetic())
.or(ElementMatchers.nameStartsWith("org.apache.shardingsphere.agent."));
-
agentBuilder.type(pluginLoader.typeMatcher())
.transform(new ShardingSphereTransformer(pluginLoader))
.with(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION)
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/AdvisorDefinitionServiceEngine.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/AdvisorDefinitionServiceEngine.java
deleted file mode 100644
index 21d5dfba3fb..00000000000
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/AdvisorDefinitionServiceEngine.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.agent.core.advisor;
-
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
-import org.apache.shardingsphere.agent.spi.AdvisorDefinitionService;
-
-import java.util.Collection;
-
-/**
- * Advisor definition service engine.
- */
-@RequiredArgsConstructor
-public final class AdvisorDefinitionServiceEngine {
-
- private final AdvisorDefinitionService advisorDefinitionService;
-
- /**
- * Get advisors.
- *
- * @param targetClassName target class name
- * @return advisors
- */
- public ClassAdvisor getAdvisors(final String targetClassName) {
- return ClassAdvisorRegistryFactory.getRegistry(advisorDefinitionService.getType()).getAdvisor(targetClassName);
- }
-
- /**
- * Get all advisors.
- *
- * @param isEnhancedForProxy is enhanced for proxy
- * @return all advisors
- */
- public Collection<ClassAdvisor> getAllAdvisors(final boolean isEnhancedForProxy) {
- return isEnhancedForProxy ? advisorDefinitionService.getProxyAdvisors() : advisorDefinitionService.getJDBCAdvisors();
- }
-}
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/ClassAdvisorRegistryFactory.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/ClassAdvisorRegistryFactory.java
index f3951f67c40..86d283bcf0d 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/ClassAdvisorRegistryFactory.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/ClassAdvisorRegistryFactory.java
@@ -34,10 +34,10 @@ public final class ClassAdvisorRegistryFactory {
/**
* Get class advisor registry.
*
- * @param key registry key
+ * @param type registry type
* @return class advisor registry
*/
- public static ClassAdvisorRegistry getRegistry(final String key) {
- return REGISTRIES.computeIfAbsent(key, each -> new ClassAdvisorRegistry());
+ public static ClassAdvisorRegistry getRegistry(final String type) {
+ return REGISTRIES.computeIfAbsent(type, each -> new ClassAdvisorRegistry());
}
}
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/listener/LoggingListener.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/listener/LoggingListener.java
index 457c8dec194..eff91fed646 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/listener/LoggingListener.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/listener/LoggingListener.java
@@ -36,7 +36,7 @@ public final class LoggingListener implements Listener {
@Override
public void onTransformation(final TypeDescription typeDescription, final ClassLoader classLoader, final JavaModule module, final boolean loaded, final DynamicType dynamicType) {
- LOGGER.debug("On transformation class {}", typeDescription.getTypeName());
+ LOGGER.debug("On transformation class {}.", typeDescription.getTypeName());
}
@Override
@@ -45,7 +45,7 @@ public final class LoggingListener implements Listener {
@Override
public void onError(final String typeName, final ClassLoader classLoader, final JavaModule module, final boolean loaded, final Throwable throwable) {
- LOGGER.error("Failed to instrument {}", typeName, throwable);
+ LOGGER.error("Failed to instrument {}.", typeName, throwable);
}
@Override
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/logging/LoggerFactory.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/logging/LoggerFactory.java
index b5fe3691a86..10fa5234379 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/logging/LoggerFactory.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/logging/LoggerFactory.java
@@ -45,7 +45,6 @@ public final class LoggerFactory {
* @return logger
*/
@SneakyThrows(ReflectiveOperationException.class)
- @SuppressWarnings("unchecked")
public static Logger getLogger(final Class<?> clazz) {
Class<?> factoryClazz = getClassLoader().loadClass("org.slf4j.LoggerFactory");
Method method = factoryClazz.getMethod("getLogger", Class.class);
@@ -137,7 +136,6 @@ public final class LoggerFactory {
}
@SneakyThrows(ReflectiveOperationException.class)
- @SuppressWarnings("unchecked")
private void invokeMethod(final String methodName, final String msg) {
Class<?> logicLogger = LoggerFactory.getClassLoader().loadClass("org.slf4j.Logger");
Method method = logicLogger.getMethod(methodName, String.class);
@@ -145,7 +143,6 @@ public final class LoggerFactory {
}
@SneakyThrows(ReflectiveOperationException.class)
- @SuppressWarnings("unchecked")
private void invokeMethod(final String methodName, final String msg, final Object... arguments) {
Class<?> logicLogger = LoggerFactory.getClassLoader().loadClass("org.slf4j.Logger");
Method method = logicLogger.getMethod(methodName, String.class, Object[].class);
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 83f53fe1d61..b9eedfbc365 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
@@ -23,14 +23,13 @@ import lombok.Setter;
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.matcher.ElementMatcher;
import net.bytebuddy.matcher.ElementMatcher.Junction;
+import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
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.advisor.AdvisorDefinitionServiceEngine;
import org.apache.shardingsphere.agent.core.logging.LoggerFactory;
import org.apache.shardingsphere.agent.core.spi.PluginServiceLoader;
-import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.spi.AdvisorDefinitionService;
import java.io.File;
@@ -89,8 +88,8 @@ public final class AgentPluginLoader implements PluginLoader {
Collection<String> pluginNames = getPluginNames();
for (AdvisorDefinitionService each : PluginServiceLoader.newServiceInstances(AdvisorDefinitionService.class, classLoader)) {
if (pluginNames.contains(each.getType())) {
- result.putAll(
- new AdvisorDefinitionServiceEngine(each).getAllAdvisors(isEnhancedForProxy).stream().collect(Collectors.toMap(ClassAdvisor::getTargetClassName, Function.identity())));
+ Collection<ClassAdvisor> advisors = isEnhancedForProxy ? each.getProxyAdvisors() : each.getJDBCAdvisors();
+ result.putAll(advisors.stream().collect(Collectors.toMap(ClassAdvisor::getTargetClassName, Function.identity())));
}
}
return ImmutableMap.<String, ClassAdvisor>builder().putAll(result).build();
diff --git a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java
index d3458cebd1a..245cc7a3563 100644
--- a/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java
+++ b/agent/plugins/logging/base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/definition/BaseLoggingAdvisorDefinitionService.java
@@ -18,10 +18,10 @@
package org.apache.shardingsphere.agent.plugin.logging.base.definition;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
-import org.apache.shardingsphere.agent.plugin.logging.base.advice.MetaDataContextsFactoryAdvice;
import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.advisor.StaticMethodAdvisor;
+import org.apache.shardingsphere.agent.core.advisor.ClassAdvisorRegistryFactory;
+import org.apache.shardingsphere.agent.plugin.logging.base.advice.MetaDataContextsFactoryAdvice;
import org.apache.shardingsphere.agent.spi.AdvisorDefinitionService;
import java.util.Collection;
@@ -38,8 +38,6 @@ public final class BaseLoggingAdvisorDefinitionService implements AdvisorDefinit
private static final String SCHEMA_METADATA_LOADER_ADVICE_CLASS = MetaDataContextsFactoryAdvice.class.getName();
- private final AdvisorDefinitionServiceEngine engine = new AdvisorDefinitionServiceEngine(this);
-
@Override
public Collection<ClassAdvisor> getProxyAdvisors() {
return getAdvisors();
@@ -52,7 +50,7 @@ public final class BaseLoggingAdvisorDefinitionService implements AdvisorDefinit
private Collection<ClassAdvisor> getAdvisors() {
Collection<ClassAdvisor> result = new LinkedList<>();
- ClassAdvisor classAdvisor = engine.getAdvisors(SCHEMA_METADATA_LOADER_CLASS);
+ ClassAdvisor classAdvisor = ClassAdvisorRegistryFactory.getRegistry(getType()).getAdvisor(SCHEMA_METADATA_LOADER_CLASS);
classAdvisor.getStaticMethodAdvisors().add(
new StaticMethodAdvisor(ElementMatchers.named(SCHEMA_METADATA_LOADER_METHOD_NAME).and(ElementMatchers.takesArguments(4)), SCHEMA_METADATA_LOADER_ADVICE_CLASS));
result.add(classAdvisor);
diff --git a/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusAdvisorDefinitionService.java b/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusAdvisorDefinitionService.java
index fd051738cf9..22608bb40c8 100644
--- a/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusAdvisorDefinitionService.java
+++ b/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusAdvisorDefinitionService.java
@@ -18,14 +18,14 @@
package org.apache.shardingsphere.agent.metrics.prometheus.definition;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
-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.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.advisor.ConstructorAdvisor;
import org.apache.shardingsphere.agent.advisor.InstanceMethodAdvisor;
import org.apache.shardingsphere.agent.advisor.StaticMethodAdvisor;
+import org.apache.shardingsphere.agent.core.advisor.ClassAdvisorRegistryFactory;
+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.spi.AdvisorDefinitionService;
import java.util.Collection;
@@ -37,8 +37,6 @@ import java.util.LinkedList;
*/
public final class PrometheusAdvisorDefinitionService implements AdvisorDefinitionService {
- private final AdvisorDefinitionServiceEngine engine = new AdvisorDefinitionServiceEngine(this);
-
@Override
public Collection<ClassAdvisor> getProxyAdvisors() {
Collection<ClassAdvisor> result = new LinkedList<>();
@@ -51,7 +49,7 @@ public final class PrometheusAdvisorDefinitionService implements AdvisorDefiniti
}
private ClassAdvisor createClassAdvisor(final Interceptor interceptor) {
- ClassAdvisor result = engine.getAdvisors(interceptor.getTarget());
+ ClassAdvisor result = ClassAdvisorRegistryFactory.getRegistry(getType()).getAdvisor(interceptor.getTarget());
if (null != interceptor.getConstructAdvice() && !("".equals(interceptor.getConstructAdvice()))) {
result.getConstructorAdvisors().add(new ConstructorAdvisor(ElementMatchers.isConstructor(), interceptor.getConstructAdvice()));
}
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/TracingAdviceEngine.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/TracingAdviceEngine.java
index aabc9dc807e..74adf9e3502 100644
--- a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/TracingAdviceEngine.java
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/TracingAdviceEngine.java
@@ -18,12 +18,11 @@
package org.apache.shardingsphere.agent.plugin.tracing.core.advice;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl.CommandExecutorTaskAdviser;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl.JDBCExecutorCallbackAdviser;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl.SQLParserEngineAdviser;
-import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import java.util.Collection;
import java.util.Collections;
@@ -35,7 +34,7 @@ import java.util.LinkedList;
@RequiredArgsConstructor
public final class TracingAdviceEngine {
- private final AdvisorDefinitionServiceEngine engine;
+ private final String type;
/**
* Get proxy tracing advisors.
@@ -50,9 +49,9 @@ public final class TracingAdviceEngine {
final Class<? extends InstanceMethodAroundAdvice> jdbcExecutorCallbackAdvice) {
// TODO load from YAML, please ref metrics
Collection<ClassAdvisor> result = new LinkedList<>();
- result.add(new CommandExecutorTaskAdviser(engine).getAdvisor(commandExecutorTaskAdvice));
- result.add(new SQLParserEngineAdviser(engine).getAdvisor(sqlParserEngineAdvice));
- result.add(new JDBCExecutorCallbackAdviser(engine).getAdvisor(jdbcExecutorCallbackAdvice));
+ result.add(new CommandExecutorTaskAdviser(type).getAdvisor(commandExecutorTaskAdvice));
+ result.add(new SQLParserEngineAdviser(type).getAdvisor(sqlParserEngineAdvice));
+ result.add(new JDBCExecutorCallbackAdviser(type).getAdvisor(jdbcExecutorCallbackAdvice));
return result;
}
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java
index 4c80dd2cc35..42c0da377c7 100644
--- a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/CommandExecutorTaskAdviser.java
@@ -19,11 +19,11 @@ package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
-import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.advisor.InstanceMethodAdvisor;
+import org.apache.shardingsphere.agent.core.advisor.ClassAdvisorRegistryFactory;
+import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
/**
* Command executor task adviser.
@@ -35,11 +35,11 @@ public final class CommandExecutorTaskAdviser implements TracingAdviser {
private static final String TARGET_METHOD = "run";
- private final AdvisorDefinitionServiceEngine engine;
+ private final String type;
@Override
public ClassAdvisor getAdvisor(final Class<? extends InstanceMethodAroundAdvice> commandExecutorTaskAdvice) {
- ClassAdvisor result = engine.getAdvisors(TARGET_CLASS);
+ ClassAdvisor result = ClassAdvisorRegistryFactory.getRegistry(type).getAdvisor(TARGET_CLASS);
result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisor(ElementMatchers.named(TARGET_METHOD), commandExecutorTaskAdvice.getName()));
return result;
}
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java
index 4a88c3f0ea1..c7d54827f8f 100644
--- a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/JDBCExecutorCallbackAdviser.java
@@ -19,11 +19,11 @@ package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
-import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.advisor.InstanceMethodAdvisor;
+import org.apache.shardingsphere.agent.core.advisor.ClassAdvisorRegistryFactory;
+import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
/**
* JDBC executor callback adviser.
@@ -37,11 +37,11 @@ public final class JDBCExecutorCallbackAdviser implements TracingAdviser {
private static final String TARGET_METHOD_FIRST_PARAM = "org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit";
- private final AdvisorDefinitionServiceEngine engine;
+ private final String type;
@Override
public ClassAdvisor getAdvisor(final Class<? extends InstanceMethodAroundAdvice> jdbcExecutorCallbackAdvice) {
- ClassAdvisor result = engine.getAdvisors(TARGET_CLASS);
+ ClassAdvisor result = ClassAdvisorRegistryFactory.getRegistry(type).getAdvisor(TARGET_CLASS);
result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisor(
ElementMatchers.named(TARGET_METHOD).and(ElementMatchers.takesArgument(0, ElementMatchers.named(TARGET_METHOD_FIRST_PARAM))), jdbcExecutorCallbackAdvice.getName()));
return result;
diff --git a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java
index ac215020805..84a3f3cb6b8 100644
--- a/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java
+++ b/agent/plugins/tracing/core/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/core/advice/adviser/impl/SQLParserEngineAdviser.java
@@ -19,11 +19,11 @@ package org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.impl;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
-import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
-import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.advisor.InstanceMethodAdvisor;
+import org.apache.shardingsphere.agent.core.advisor.ClassAdvisorRegistryFactory;
+import org.apache.shardingsphere.agent.core.plugin.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.plugin.tracing.core.advice.adviser.TracingAdviser;
/**
* SQL parser engine adviser.
@@ -35,11 +35,11 @@ public final class SQLParserEngineAdviser implements TracingAdviser {
private static final String TARGET_METHOD = "parse";
- private final AdvisorDefinitionServiceEngine engine;
+ private final String type;
@Override
public ClassAdvisor getAdvisor(final Class<? extends InstanceMethodAroundAdvice> sqlParserEngineAdvice) {
- ClassAdvisor result = engine.getAdvisors(TARGET_CLASS);
+ ClassAdvisor result = ClassAdvisorRegistryFactory.getRegistry(type).getAdvisor(TARGET_CLASS);
result.getInstanceMethodAdvisors().add(new InstanceMethodAdvisor(ElementMatchers.named(TARGET_METHOD), sqlParserEngineAdvice.getName()));
return result;
}
diff --git a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerAdvisorDefinitionService.java b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerAdvisorDefinitionService.java
index 5b92b77123a..1c682a2b355 100644
--- a/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerAdvisorDefinitionService.java
+++ b/agent/plugins/tracing/type/jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/definition/JaegerAdvisorDefinitionService.java
@@ -17,11 +17,10 @@
package org.apache.shardingsphere.agent.plugin.tracing.jaeger.definition;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
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.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.spi.AdvisorDefinitionService;
import java.util.Collection;
@@ -31,7 +30,7 @@ import java.util.Collection;
*/
public final class JaegerAdvisorDefinitionService implements AdvisorDefinitionService {
- private final TracingAdviceEngine engine = new TracingAdviceEngine(new AdvisorDefinitionServiceEngine(this));
+ private final TracingAdviceEngine engine = new TracingAdviceEngine(getType());
@Override
public Collection<ClassAdvisor> getProxyAdvisors() {
diff --git a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingAdvisorDefinitionService.java b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingAdvisorDefinitionService.java
index 0fc5027ca76..4c24f836128 100644
--- a/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingAdvisorDefinitionService.java
+++ b/agent/plugins/tracing/type/opentelemetry/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentelemetry/definition/OpenTelemetryTracingAdvisorDefinitionService.java
@@ -17,11 +17,10 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentelemetry.definition;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
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.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.spi.AdvisorDefinitionService;
import java.util.Collection;
@@ -31,7 +30,7 @@ import java.util.Collection;
*/
public final class OpenTelemetryTracingAdvisorDefinitionService implements AdvisorDefinitionService {
- private final TracingAdviceEngine engine = new TracingAdviceEngine(new AdvisorDefinitionServiceEngine(this));
+ private final TracingAdviceEngine engine = new TracingAdviceEngine(getType());
@Override
public Collection<ClassAdvisor> getProxyAdvisors() {
diff --git a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingAdvisorDefinitionService.java b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingAdvisorDefinitionService.java
index df31caa15b5..bbf840d24ff 100644
--- a/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingAdvisorDefinitionService.java
+++ b/agent/plugins/tracing/type/opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/definition/OpenTracingAdvisorDefinitionService.java
@@ -17,11 +17,10 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentracing.definition;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
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.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.spi.AdvisorDefinitionService;
import java.util.Collection;
@@ -31,7 +30,7 @@ import java.util.Collection;
*/
public final class OpenTracingAdvisorDefinitionService implements AdvisorDefinitionService {
- private final TracingAdviceEngine engine = new TracingAdviceEngine(new AdvisorDefinitionServiceEngine(this));
+ private final TracingAdviceEngine engine = new TracingAdviceEngine(getType());
@Override
public Collection<ClassAdvisor> getProxyAdvisors() {
diff --git a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinAdvisorDefinitionService.java b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinAdvisorDefinitionService.java
index bc60a381b6b..d8d3bd692ff 100644
--- a/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinAdvisorDefinitionService.java
+++ b/agent/plugins/tracing/type/zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/definition/ZipkinAdvisorDefinitionService.java
@@ -17,11 +17,10 @@
package org.apache.shardingsphere.agent.plugin.tracing.zipkin.definition;
-import org.apache.shardingsphere.agent.core.advisor.AdvisorDefinitionServiceEngine;
+import org.apache.shardingsphere.agent.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.plugin.tracing.core.advice.TracingAdviceEngine;
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.advisor.ClassAdvisor;
import org.apache.shardingsphere.agent.spi.AdvisorDefinitionService;
import java.util.Collection;
@@ -31,7 +30,7 @@ import java.util.Collection;
*/
public final class ZipkinAdvisorDefinitionService implements AdvisorDefinitionService {
- private final TracingAdviceEngine engine = new TracingAdviceEngine(new AdvisorDefinitionServiceEngine(this));
+ private final TracingAdviceEngine engine = new TracingAdviceEngine(getType());
@Override
public Collection<ClassAdvisor> getProxyAdvisors() {