You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by xi...@apache.org on 2021/01/12 02:35:53 UTC
[shardingsphere] branch master updated: support to instrument the
same method repeatedly (#8986)
This is an automated email from the ASF dual-hosted git repository.
xiaoyu 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 c75652d support to instrument the same method repeatedly (#8986)
c75652d is described below
commit c75652dbf13f60b4572abc2f7a68c24bb84e6bd4
Author: Daming <zt...@foxmail.com>
AuthorDate: Tue Jan 12 10:35:24 2021 +0800
support to instrument the same method repeatedly (#8986)
* support to instrument the same method repeatedly
* fix wrong hand
---
.../{TargetObject.java => AdviceTargetObject.java} | 2 +-
...ice.java => ClassStaticMethodAroundAdvice.java} | 2 +-
.../agent/api/advice/ConstructorAdvice.java | 2 +-
...Advice.java => InstanceMethodAroundAdvice.java} | 8 +-
.../shardingsphere-agent-core/pom.xml | 7 --
.../ShardingSphereTransformationPoint.java} | 25 ++---
.../transformer/ShardingSphereTransformer.java | 125 ++++++++++++++++-----
.../ComposeClassStaticMethodAroundAdvice.java} | 34 +++---
.../advice/ComposeConstructorAdvice.java} | 22 ++--
.../advice/ComposeInstanceMethodAroundAdvice.java | 48 ++++++++
...ava => ClassStaticMethodAroundInterceptor.java} | 12 +-
...nterceptor.java => ConstructorInterceptor.java} | 6 +-
...r.java => InstanceMethodAroundInterceptor.java} | 16 +--
...ComposeClassStaticMethodAroundInterceptor.java} | 24 ++--
.../compose/ComposeConstructorInterceptor.java} | 26 ++---
.../ComposeInstanceMethodAroundInterceptor.java} | 24 ++--
.../transformer/ShardingSphereTransformerTest.java | 31 +++--
...java => MockClassStaticMethodAroundAdvice.java} | 6 +-
.../core/mock/advice/MockConstructorAdvice.java | 4 +-
...ce.java => MockInstanceMethodAroundAdvice.java} | 14 +--
...=> MockInstanceMethodAroundRepeatedAdvice.java} | 31 ++---
.../mock/material/RepeatedAdviceMaterial.java} | 27 +++--
...=> ClassStaticMethodAroundInterceptorTest.java} | 12 +-
...orTest.java => ConstructorInterceptorTest.java} | 10 +-
...va => InstanceMethodAroundInterceptorTest.java} | 10 +-
.../agent/core/plugin/loader/PluginLoaderTest.java | 12 +-
.../base/advice/SchemaMetaDataLoaderAdvice.java | 4 +-
.../metrics/api/advice/ChannelHandlerAdvice.java | 8 +-
.../api/advice/CommandExecutorTaskAdvice.java | 10 +-
.../metrics/api/advice/SQLRouteEngineAdvice.java | 10 +-
.../metrics/api/advice/TransactionAdvice.java | 8 +-
.../api/advice/ChannelHandlerAdviceTest.java | 2 +-
.../api/advice/CommandExecutorTaskAdviceTest.java | 2 +-
...rgetObject.java => MockAdviceTargetObject.java} | 4 +-
.../metrics/api/advice/TransactionAdviceTest.java | 2 +-
.../jaeger/advice/CommandExecutorTaskAdvice.java | 12 +-
.../jaeger/advice/JDBCExecutorCallbackAdvice.java | 12 +-
.../jaeger/advice/SQLParserEngineAdvice.java | 12 +-
.../advice/CommandExecutorTaskAdviceTest.java | 4 +-
.../advice/JDBCExecutorCallbackAdviceTest.java | 4 +-
...rgetObject.java => MockAdviceTargetObject.java} | 4 +-
.../jaeger/advice/SQLParserEngineAdviceTest.java | 4 +-
.../advice/CommandExecutorTaskAdvice.java | 12 +-
.../advice/JDBCExecutorCallbackAdvice.java | 12 +-
.../opentracing/advice/SQLParserEngineAdvice.java | 12 +-
.../advice/CommandExecutorTaskAdviceTest.java | 4 +-
.../advice/JDBCExecutorCallbackAdviceTest.java | 4 +-
...rgetObject.java => MockAdviceTargetObject.java} | 4 +-
.../advice/SQLParserEngineAdviceTest.java | 4 +-
.../zipkin/advice/CommandExecutorTaskAdvice.java | 12 +-
.../zipkin/advice/JDBCExecutorCallbackAdvice.java | 12 +-
.../zipkin/advice/SQLParserEngineAdvice.java | 12 +-
.../tracing/zipkin/advice/AdviceBaseTest.java | 4 +-
.../advice/CommandExecutorTaskAdviceTest.java | 6 +-
.../advice/JDBCExecutorCallbackAdviceTest.java | 6 +-
.../zipkin/advice/SQLParserEngineAdviceTest.java | 6 +-
56 files changed, 420 insertions(+), 332 deletions(-)
diff --git a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/TargetObject.java b/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/AdviceTargetObject.java
similarity index 97%
copy from shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/TargetObject.java
copy to shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/AdviceTargetObject.java
index a9ae8e9..f263550 100644
--- a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/TargetObject.java
+++ b/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/AdviceTargetObject.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.agent.api.advice;
/**
* Wrapped class for target and provide a context to store variable during invocation.
*/
-public interface TargetObject {
+public interface AdviceTargetObject {
/**
* Get the variable from context.
diff --git a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/StaticMethodAroundAdvice.java b/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/ClassStaticMethodAroundAdvice.java
similarity index 98%
rename from shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/StaticMethodAroundAdvice.java
rename to shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/ClassStaticMethodAroundAdvice.java
index 3f6948b..fac9bd0 100644
--- a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/StaticMethodAroundAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/ClassStaticMethodAroundAdvice.java
@@ -24,7 +24,7 @@ import java.lang.reflect.Method;
/**
* Weaving the advice around the static methods of target class.
*/
-public interface StaticMethodAroundAdvice {
+public interface ClassStaticMethodAroundAdvice {
/**
* Intercept the target method and weave the method before origin method. It will invoke before the origin calling.
diff --git a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/ConstructorAdvice.java b/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/ConstructorAdvice.java
index 9c5cefc..20f9c6b 100644
--- a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/ConstructorAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/ConstructorAdvice.java
@@ -28,5 +28,5 @@ public interface ConstructorAdvice {
* @param target intercepted target object
* @param args all arguments of the intercepted constructor
*/
- void onConstructor(TargetObject target, Object[] args);
+ void onConstructor(AdviceTargetObject target, Object[] args);
}
diff --git a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/MethodAroundAdvice.java b/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/InstanceMethodAroundAdvice.java
similarity index 81%
rename from shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/MethodAroundAdvice.java
rename to shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/InstanceMethodAroundAdvice.java
index a5d059c..f0518b4 100644
--- a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/MethodAroundAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/InstanceMethodAroundAdvice.java
@@ -24,7 +24,7 @@ import java.lang.reflect.Method;
/**
* Weaving the advice around the target method.
*/
-public interface MethodAroundAdvice {
+public interface InstanceMethodAroundAdvice {
/**
* Intercept the target method and weave the method before origin method. It will invoke before the origin calling.
@@ -34,7 +34,7 @@ public interface MethodAroundAdvice {
* @param args all method arguments
* @param result wrapped class of result to detect whether or not to execute the origin method
*/
- default void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ default void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
}
/**
@@ -45,7 +45,7 @@ public interface MethodAroundAdvice {
* @param args all method arguments
* @param result wrapped class of result to detect whether or not to execute the origin method.
*/
- default void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ default void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
}
/**
@@ -56,6 +56,6 @@ public interface MethodAroundAdvice {
* @param args all method arguments
* @param throwable exception from target method
*/
- default void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ default void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/pom.xml b/shardingsphere-agent/shardingsphere-agent-core/pom.xml
index e74bc4c..abf28e2 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/pom.xml
+++ b/shardingsphere-agent/shardingsphere-agent-core/pom.xml
@@ -44,13 +44,6 @@
<build>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <reuseForks>false</reuseForks>
- </configuration>
- </plugin>
- <plugin>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetObject.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformationPoint.java
similarity index 66%
copy from shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetObject.java
copy to shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformationPoint.java
index 3dd67f2..f198a3b 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetObject.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformationPoint.java
@@ -15,21 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.agent.metrics.api.advice;
+package org.apache.shardingsphere.agent.core.bytebuddy.transformer;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import net.bytebuddy.description.method.MethodDescription;
-public final class MockTargetObject implements TargetObject {
+@Getter
+@RequiredArgsConstructor
+public class ShardingSphereTransformationPoint<T> {
+
+ private final MethodDescription description;
+
+ private final T interceptor;
- private Object object;
-
- @Override
- public Object getAttachment() {
- return object;
- }
-
- @Override
- public void setAttachment(final Object attachment) {
- this.object = attachment;
- }
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformer.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformer.java
index 5e90ccc..1dfc39d 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformer.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformer.java
@@ -20,22 +20,34 @@ package org.apache.shardingsphere.agent.core.bytebuddy.transformer;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.bytebuddy.agent.builder.AgentBuilder.Transformer;
+import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.dynamic.DynamicType.Builder;
import net.bytebuddy.implementation.FieldAccessor;
import net.bytebuddy.implementation.MethodDelegation;
import net.bytebuddy.implementation.SuperMethodCall;
import net.bytebuddy.jar.asm.Opcodes;
+import net.bytebuddy.matcher.ElementMatchers;
import net.bytebuddy.utility.JavaModule;
-import org.apache.shardingsphere.agent.core.plugin.PluginLoader;
-import org.apache.shardingsphere.agent.api.point.PluginInterceptorPoint;
-import org.apache.shardingsphere.agent.core.plugin.interceptor.ConstructorMethodInterceptor;
-import org.apache.shardingsphere.agent.core.plugin.interceptor.MethodAroundInterceptor;
-import org.apache.shardingsphere.agent.core.plugin.interceptor.StaticMethodAroundInterceptor;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
+import org.apache.shardingsphere.agent.api.advice.ClassStaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.ConstructorAdvice;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.point.ClassStaticMethodPoint;
import org.apache.shardingsphere.agent.api.point.ConstructorPoint;
import org.apache.shardingsphere.agent.api.point.InstanceMethodPoint;
+import org.apache.shardingsphere.agent.api.point.PluginInterceptorPoint;
+import org.apache.shardingsphere.agent.core.plugin.PluginLoader;
+import org.apache.shardingsphere.agent.core.plugin.interceptor.ClassStaticMethodAroundInterceptor;
+import org.apache.shardingsphere.agent.core.plugin.interceptor.ConstructorInterceptor;
+import org.apache.shardingsphere.agent.core.plugin.interceptor.InstanceMethodAroundInterceptor;
+import org.apache.shardingsphere.agent.core.plugin.interceptor.compose.ComposeClassStaticMethodAroundInterceptor;
+import org.apache.shardingsphere.agent.core.plugin.interceptor.compose.ComposeConstructorInterceptor;
+import org.apache.shardingsphere.agent.core.plugin.interceptor.compose.ComposeInstanceMethodAroundInterceptor;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* ShardingSphere transformer.
@@ -53,57 +65,120 @@ public final class ShardingSphereTransformer implements Transformer {
if (pluginLoader.containsType(typeDescription)) {
Builder<?> result = builder;
result = result.defineField(EXTRA_DATA, Object.class, Opcodes.ACC_PRIVATE | Opcodes.ACC_VOLATILE)
- .implement(TargetObject.class)
+ .implement(AdviceTargetObject.class)
.intercept(FieldAccessor.ofField(EXTRA_DATA));
PluginInterceptorPoint pluginInterceptorPoint = pluginLoader.loadPluginInterceptorPoint(typeDescription);
- result = interceptorConstructorPoint(pluginInterceptorPoint, result);
- result = interceptorClassStaticMethodPoint(pluginInterceptorPoint, result);
- result = interceptorInstanceMethodPoint(pluginInterceptorPoint, result);
+ result = interceptorConstructorPoint(typeDescription, pluginInterceptorPoint.getConstructorPoints(), result);
+ result = interceptorClassStaticMethodPoint(typeDescription, pluginInterceptorPoint.getClassStaticMethodPoints(), result);
+ result = interceptorInstanceMethodPoint(typeDescription, pluginInterceptorPoint.getInstanceMethodPoints(), result);
return result;
}
return builder;
}
- private Builder<?> interceptorConstructorPoint(final PluginInterceptorPoint pluginInterceptorPoint, final Builder<?> builder) {
+ private Builder<?> interceptorConstructorPoint(final TypeDescription description, final List<ConstructorPoint> constructorPoints, final Builder<?> builder) {
+ List<ShardingSphereTransformationPoint<? extends ConstructorInterceptor>> constructorAdviceComposePoints = description.getDeclaredMethods().stream()
+ .filter(MethodDescription::isConstructor)
+ .map(md -> {
+ List<ConstructorPoint> advices = constructorPoints.stream()
+ .filter(point -> point.getMatcher().matches(md))
+ .collect(Collectors.toList());
+ if (advices.isEmpty()) {
+ return null;
+ }
+ if (advices.size() == 1) {
+ return new ShardingSphereTransformationPoint<>(md, new ConstructorInterceptor(pluginLoader.getOrCreateInstance(advices.get(0).getAdvice())));
+ } else {
+ List<ConstructorAdvice> collect = advices.stream()
+ .map(ConstructorPoint::getAdvice)
+ .map(advice -> (ConstructorAdvice) pluginLoader.getOrCreateInstance(advice))
+ .collect(Collectors.toList());
+ return new ShardingSphereTransformationPoint<>(md, new ComposeConstructorInterceptor(collect));
+ }
+ })
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
Builder<?> result = builder;
- for (ConstructorPoint each : pluginInterceptorPoint.getConstructorPoints()) {
+ for (ShardingSphereTransformationPoint<? extends ConstructorInterceptor> each : constructorAdviceComposePoints) {
try {
- ConstructorMethodInterceptor interceptor = new ConstructorMethodInterceptor(pluginLoader.getOrCreateInstance(each.getAdvice()));
- result = result.constructor(each.getMatcher()).intercept(SuperMethodCall.INSTANCE.andThen(MethodDelegation.withDefaultConfiguration().to(interceptor)));
+ result = result.constructor(ElementMatchers.is(each.getDescription()))
+ .intercept(SuperMethodCall.INSTANCE.andThen(MethodDelegation.withDefaultConfiguration().to(each.getInterceptor())));
// CHECKSTYLE:OFF
} catch (final Throwable ex) {
// CHECKSTYLE:ON
- log.error("Failed to load advice class: {}", each.getAdvice(), ex);
+ log.error("Failed to load advice class: {}", description.getTypeName(), ex);
}
}
return result;
}
- private Builder<?> interceptorClassStaticMethodPoint(final PluginInterceptorPoint pluginInterceptorPoint, final Builder<?> builder) {
+ private Builder<?> interceptorClassStaticMethodPoint(final TypeDescription description, final List<ClassStaticMethodPoint> classStaticMethodAroundPoints, final Builder<?> builder) {
+ List<ShardingSphereTransformationPoint<? extends ClassStaticMethodAroundInterceptor>> classStaticMethodAdvicePoints = description.getDeclaredMethods().stream()
+ .filter(md -> md.isStatic() && !(md.isAbstract() || md.isSynthetic()))
+ .map(md -> {
+ List<ClassStaticMethodPoint> advices = classStaticMethodAroundPoints.stream()
+ .filter(point -> point.getMatcher().matches(md))
+ .collect(Collectors.toList());
+ if (advices.isEmpty()) {
+ return null;
+ }
+ if (advices.size() == 1) {
+ return new ShardingSphereTransformationPoint<>(md, new ClassStaticMethodAroundInterceptor(pluginLoader.getOrCreateInstance(advices.get(0).getAdvice())));
+ } else {
+ List<ClassStaticMethodAroundAdvice> collect = advices.stream()
+ .map(ClassStaticMethodPoint::getAdvice)
+ .map(advice -> (ClassStaticMethodAroundAdvice) pluginLoader.getOrCreateInstance(advice))
+ .collect(Collectors.toList());
+ return new ShardingSphereTransformationPoint<>(md, new ComposeClassStaticMethodAroundInterceptor(collect));
+ }
+ })
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
Builder<?> result = builder;
- for (ClassStaticMethodPoint each : pluginInterceptorPoint.getClassStaticMethodPoints()) {
+ for (ShardingSphereTransformationPoint<? extends ClassStaticMethodAroundInterceptor> each : classStaticMethodAdvicePoints) {
try {
- StaticMethodAroundInterceptor interceptor = new StaticMethodAroundInterceptor(pluginLoader.getOrCreateInstance(each.getAdvice()));
- result = result.method(each.getMatcher()).intercept(MethodDelegation.withDefaultConfiguration().to(interceptor));
+ result = result.method(ElementMatchers.is(each.getDescription()))
+ .intercept(MethodDelegation.withDefaultConfiguration().to(each.getInterceptor()));
// CHECKSTYLE:OFF
} catch (final Throwable ex) {
// CHECKSTYLE:ON
- log.error("Failed to load advice class: {}", each.getAdvice(), ex);
+ log.error("Failed to load advice class: {}", description.getTypeName(), ex);
}
}
return result;
}
- private Builder<?> interceptorInstanceMethodPoint(final PluginInterceptorPoint pluginInterceptorPoint, final Builder<?> builder) {
+ private Builder<?> interceptorInstanceMethodPoint(final TypeDescription description, final List<InstanceMethodPoint> instanceMethodAroundPoints, final Builder<?> builder) {
+ List<ShardingSphereTransformationPoint<? extends InstanceMethodAroundInterceptor>> instanceMethodAdviceComposePoints = description.getDeclaredMethods().stream()
+ .filter(md -> !(md.isAbstract() || md.isSynthetic()))
+ .map(md -> {
+ List<InstanceMethodPoint> advices = instanceMethodAroundPoints.stream()
+ .filter(point -> point.getMatcher().matches(md))
+ .collect(Collectors.toList());
+ if (advices.isEmpty()) {
+ return null;
+ }
+ if (advices.size() == 1) {
+ return new ShardingSphereTransformationPoint<>(md, new InstanceMethodAroundInterceptor(pluginLoader.getOrCreateInstance(advices.get(0).getAdvice())));
+ } else {
+ List<InstanceMethodAroundAdvice> collect = advices.stream()
+ .map(InstanceMethodPoint::getAdvice)
+ .map(advice -> (InstanceMethodAroundAdvice) pluginLoader.getOrCreateInstance(advice))
+ .collect(Collectors.toList());
+ return new ShardingSphereTransformationPoint<>(md, new ComposeInstanceMethodAroundInterceptor(collect));
+ }
+ })
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
Builder<?> result = builder;
- for (InstanceMethodPoint each : pluginInterceptorPoint.getInstanceMethodPoints()) {
+ for (ShardingSphereTransformationPoint<? extends InstanceMethodAroundInterceptor> each : instanceMethodAdviceComposePoints) {
try {
- MethodAroundInterceptor interceptor = new MethodAroundInterceptor(pluginLoader.getOrCreateInstance(each.getAdvice()));
- result = result.method(each.getMatcher()).intercept(MethodDelegation.withDefaultConfiguration().to(interceptor));
+ result = result.method(ElementMatchers.is(each.getDescription()))
+ .intercept(MethodDelegation.withDefaultConfiguration().to(each.getInterceptor()));
// CHECKSTYLE:OFF
} catch (final Throwable ex) {
// CHECKSTYLE:ON
- log.error("Failed to load advice class: {}", each.getAdvice(), ex);
+ log.error("Failed to load advice class: {}", description.getTypeName(), ex);
}
}
return result;
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAroundAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeClassStaticMethodAroundAdvice.java
similarity index 60%
copy from shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAroundAdvice.java
copy to shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeClassStaticMethodAroundAdvice.java
index 1e800c5..0ad6cd1 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAroundAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeClassStaticMethodAroundAdvice.java
@@ -1,8 +1,8 @@
/*
- * Licensed to the Apache Software Foundation (final ASF) under one or more
+ * 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, final Version 2.0
+ * 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
*
@@ -15,44 +15,36 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.agent.core.mock.advice;
+package org.apache.shardingsphere.agent.core.bytebuddy.transformer.advice;
+import lombok.NonNull;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.api.advice.StaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.ClassStaticMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import java.lang.reflect.Method;
import java.util.List;
+/**
+ * Compose class static method around advice.
+ */
@RequiredArgsConstructor
-@SuppressWarnings("unchecked")
-public final class MockStaticMethodAroundAdvice implements StaticMethodAroundAdvice {
-
- private final boolean rebase;
+public class ComposeClassStaticMethodAroundAdvice implements ClassStaticMethodAroundAdvice {
- public MockStaticMethodAroundAdvice() {
- this(false);
- }
+ private @NonNull List<ClassStaticMethodAroundAdvice> adviceList;
@Override
public void beforeMethod(final Class<?> clazz, final Method method, final Object[] args, final MethodInvocationResult result) {
- List<String> queue = (List<String>) args[0];
- queue.add("before");
- if (rebase) {
- result.rebase("rebase static invocation method");
- }
+ adviceList.forEach(each -> each.beforeMethod(clazz, method, args, result));
}
@Override
public void afterMethod(final Class<?> clazz, final Method method, final Object[] args, final MethodInvocationResult result) {
- List<String> queue = (List<String>) args[0];
- queue.add("after");
+ adviceList.forEach(each -> each.afterMethod(clazz, method, args, result));
}
@Override
public void onThrowing(final Class<?> clazz, final Method method, final Object[] args, final Throwable throwable) {
- List<String> queue = (List<String>) args[0];
- queue.add("exception");
+ adviceList.forEach(each -> each.onThrowing(clazz, method, args, throwable));
}
-
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeConstructorAdvice.java
similarity index 61%
copy from shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
copy to shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeConstructorAdvice.java
index 324ea3f..23d4b3b 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeConstructorAdvice.java
@@ -15,30 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.agent.core.mock.advice;
+package org.apache.shardingsphere.agent.core.bytebuddy.transformer.advice;
-import java.util.Optional;
+import lombok.NonNull;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.advice.ConstructorAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
import java.util.List;
@RequiredArgsConstructor
-public final class MockConstructorAdvice implements ConstructorAdvice {
+public final class ComposeConstructorAdvice implements ConstructorAdvice {
- private final List<String> queues;
-
- public MockConstructorAdvice() {
- this(null);
- }
+ private final @NonNull List<ConstructorAdvice> adviceList;
@Override
- @SuppressWarnings("unchecked")
- public void onConstructor(final TargetObject target, final Object[] args) {
- if (null != args && args.length > 0) {
- List<String> list = Optional.ofNullable(queues).orElse((List<String>) args[0]);
- list.add("on constructor");
- }
+ public void onConstructor(final AdviceTargetObject target, final Object[] args) {
+ adviceList.forEach(each -> each.onConstructor(target, args));
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeInstanceMethodAroundAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeInstanceMethodAroundAdvice.java
new file mode 100644
index 0000000..5c4b849
--- /dev/null
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeInstanceMethodAroundAdvice.java
@@ -0,0 +1,48 @@
+/*
+ * 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.bytebuddy.transformer.advice;
+
+import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
+import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+@RequiredArgsConstructor
+public class ComposeInstanceMethodAroundAdvice implements InstanceMethodAroundAdvice {
+
+ private @NonNull List<InstanceMethodAroundAdvice> adviceList;
+
+ @Override
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ adviceList.forEach(item -> item.beforeMethod(target, method, args, result));
+ }
+
+ @Override
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ adviceList.forEach(item -> item.afterMethod(target, method, args, result));
+ }
+
+ @Override
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ adviceList.forEach(item -> item.onThrowing(target, method, args, throwable));
+ }
+}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/StaticMethodAroundInterceptor.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ClassStaticMethodAroundInterceptor.java
similarity index 87%
rename from shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/StaticMethodAroundInterceptor.java
rename to shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ClassStaticMethodAroundInterceptor.java
index 7cc0239..1ec6cc3 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/StaticMethodAroundInterceptor.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ClassStaticMethodAroundInterceptor.java
@@ -25,7 +25,7 @@ import net.bytebuddy.implementation.bind.annotation.AllArguments;
import net.bytebuddy.implementation.bind.annotation.Origin;
import net.bytebuddy.implementation.bind.annotation.RuntimeType;
import net.bytebuddy.implementation.bind.annotation.SuperCall;
-import org.apache.shardingsphere.agent.api.advice.StaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.ClassStaticMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import java.lang.reflect.Method;
@@ -36,9 +36,9 @@ import java.util.concurrent.Callable;
*/
@RequiredArgsConstructor
@Slf4j
-public final class StaticMethodAroundInterceptor {
+public class ClassStaticMethodAroundInterceptor {
- private final StaticMethodAroundAdvice staticMethodAroundAdvice;
+ private final ClassStaticMethodAroundAdvice classStaticMethodAroundAdvice;
/**
* Only intercept static method.
@@ -55,7 +55,7 @@ public final class StaticMethodAroundInterceptor {
MethodInvocationResult invocationResult = new MethodInvocationResult();
Object result;
try {
- staticMethodAroundAdvice.beforeMethod(klass, method, args, invocationResult);
+ classStaticMethodAroundAdvice.beforeMethod(klass, method, args, invocationResult);
// CHECKSTYLE:OFF
} catch (final Throwable ex) {
// CHECKSTYLE:ON
@@ -72,7 +72,7 @@ public final class StaticMethodAroundInterceptor {
} catch (final Throwable ex) {
// CHECKSTYLE:ON
try {
- staticMethodAroundAdvice.onThrowing(klass, method, args, ex);
+ classStaticMethodAroundAdvice.onThrowing(klass, method, args, ex);
// CHECKSTYLE:OFF
} catch (final Throwable ignored) {
// CHECKSTYLE:ON
@@ -81,7 +81,7 @@ public final class StaticMethodAroundInterceptor {
throw ex;
} finally {
try {
- staticMethodAroundAdvice.afterMethod(klass, method, args, invocationResult);
+ classStaticMethodAroundAdvice.afterMethod(klass, method, args, invocationResult);
// CHECKSTYLE:OFF
} catch (final Throwable ex) {
// CHECKSTYLE:ON
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorMethodInterceptor.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorInterceptor.java
similarity index 89%
rename from shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorMethodInterceptor.java
rename to shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorInterceptor.java
index 80f4b73..e2d55c4 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorMethodInterceptor.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorInterceptor.java
@@ -24,14 +24,14 @@ import net.bytebuddy.implementation.bind.annotation.AllArguments;
import net.bytebuddy.implementation.bind.annotation.RuntimeType;
import net.bytebuddy.implementation.bind.annotation.This;
import org.apache.shardingsphere.agent.api.advice.ConstructorAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
/**
* Proxy class for ByteBuddy to intercept methods of target and weave post-method after constructor.
*/
@RequiredArgsConstructor
@Slf4j
-public final class ConstructorMethodInterceptor {
+public class ConstructorInterceptor {
private final ConstructorAdvice constructorAdvice;
@@ -42,7 +42,7 @@ public final class ConstructorMethodInterceptor {
* @param args the all constructor arguments
*/
@RuntimeType
- public void intercept(@This final TargetObject target, @AllArguments final Object[] args) {
+ public void intercept(@This final AdviceTargetObject target, @AllArguments final Object[] args) {
try {
constructorAdvice.onConstructor(target, args);
// CHECKSTYLE:OFF
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/MethodAroundInterceptor.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/InstanceMethodAroundInterceptor.java
similarity index 84%
rename from shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/MethodAroundInterceptor.java
rename to shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/InstanceMethodAroundInterceptor.java
index d8cae6b..d6e10f3 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/MethodAroundInterceptor.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/InstanceMethodAroundInterceptor.java
@@ -26,8 +26,8 @@ import net.bytebuddy.implementation.bind.annotation.Origin;
import net.bytebuddy.implementation.bind.annotation.RuntimeType;
import net.bytebuddy.implementation.bind.annotation.SuperCall;
import net.bytebuddy.implementation.bind.annotation.This;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import java.lang.reflect.Method;
@@ -38,9 +38,9 @@ import java.util.concurrent.Callable;
*/
@RequiredArgsConstructor
@Slf4j
-public final class MethodAroundInterceptor {
+public class InstanceMethodAroundInterceptor {
- private final MethodAroundAdvice methodAroundAdvice;
+ private final InstanceMethodAroundAdvice instanceMethodAroundAdvice;
/**
* Only intercept instance method.
@@ -54,11 +54,11 @@ public final class MethodAroundInterceptor {
@RuntimeType
@SneakyThrows
public Object intercept(@This final Object target, @Origin final Method method, @AllArguments final Object[] args, @SuperCall final Callable<?> callable) {
- TargetObject instance = (TargetObject) target;
+ AdviceTargetObject instance = (AdviceTargetObject) target;
MethodInvocationResult methodResult = new MethodInvocationResult();
Object result;
try {
- methodAroundAdvice.beforeMethod(instance, method, args, methodResult);
+ instanceMethodAroundAdvice.beforeMethod(instance, method, args, methodResult);
// CHECKSTYLE:OFF
} catch (final Throwable ex) {
// CHECKSTYLE:ON
@@ -75,7 +75,7 @@ public final class MethodAroundInterceptor {
} catch (final Throwable ex) {
// CHECKSTYLE:ON
try {
- methodAroundAdvice.onThrowing(instance, method, args, ex);
+ instanceMethodAroundAdvice.onThrowing(instance, method, args, ex);
// CHECKSTYLE:OFF
} catch (final Throwable ignored) {
// CHECKSTYLE:ON
@@ -84,7 +84,7 @@ public final class MethodAroundInterceptor {
throw ex;
} finally {
try {
- methodAroundAdvice.afterMethod(instance, method, args, methodResult);
+ instanceMethodAroundAdvice.afterMethod(instance, method, args, methodResult);
// CHECKSTYLE:OFF
} catch (final Throwable ex) {
// CHECKSTYLE:ON
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeClassStaticMethodAroundInterceptor.java
similarity index 53%
copy from shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java
copy to shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeClassStaticMethodAroundInterceptor.java
index be51be5..fc2b4a7 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeClassStaticMethodAroundInterceptor.java
@@ -15,24 +15,20 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.agent.plugin.logging.base.advice;
+package org.apache.shardingsphere.agent.core.plugin.interceptor.compose;
-import java.lang.reflect.Method;
-import java.util.Collection;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.StaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.ClassStaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.plugin.interceptor.ClassStaticMethodAroundInterceptor;
+import org.apache.shardingsphere.agent.core.bytebuddy.transformer.advice.ComposeClassStaticMethodAroundAdvice;
+
+import java.util.List;
-/**
- * Schema meta data loader advice.
- */
@Slf4j
-public final class SchemaMetaDataLoaderAdvice implements StaticMethodAroundAdvice {
+public final class ComposeClassStaticMethodAroundInterceptor extends ClassStaticMethodAroundInterceptor {
- @Override
- @SuppressWarnings("unchecked")
- public void afterMethod(final Class<?> clazz, final Method method, final Object[] args, final MethodInvocationResult result) {
- Collection<String> results = (Collection<String>) result.getResult();
- log.info("Loading {} tables' meta data for unconfigured tables.", results.size());
+ public ComposeClassStaticMethodAroundInterceptor(final List<ClassStaticMethodAroundAdvice> instanceMethodAroundAdvices) {
+ super(new ComposeClassStaticMethodAroundAdvice(instanceMethodAroundAdvices));
}
+
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeConstructorInterceptor.java
similarity index 56%
copy from shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
copy to shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeConstructorInterceptor.java
index 324ea3f..40c2104 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeConstructorInterceptor.java
@@ -15,30 +15,20 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.agent.core.mock.advice;
+package org.apache.shardingsphere.agent.core.plugin.interceptor.compose;
-import java.util.Optional;
-import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.agent.api.advice.ConstructorAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.core.bytebuddy.transformer.advice.ComposeConstructorAdvice;
+import org.apache.shardingsphere.agent.core.plugin.interceptor.ConstructorInterceptor;
import java.util.List;
-@RequiredArgsConstructor
-public final class MockConstructorAdvice implements ConstructorAdvice {
+@Slf4j
+public final class ComposeConstructorInterceptor extends ConstructorInterceptor {
- private final List<String> queues;
-
- public MockConstructorAdvice() {
- this(null);
+ public ComposeConstructorInterceptor(final List<ConstructorAdvice> constructorAdvices) {
+ super(new ComposeConstructorAdvice(constructorAdvices));
}
- @Override
- @SuppressWarnings("unchecked")
- public void onConstructor(final TargetObject target, final Object[] args) {
- if (null != args && args.length > 0) {
- List<String> list = Optional.ofNullable(queues).orElse((List<String>) args[0]);
- list.add("on constructor");
- }
- }
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeInstanceMethodAroundInterceptor.java
similarity index 53%
copy from shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java
copy to shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeInstanceMethodAroundInterceptor.java
index be51be5..933c598 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeInstanceMethodAroundInterceptor.java
@@ -15,24 +15,20 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.agent.plugin.logging.base.advice;
+package org.apache.shardingsphere.agent.core.plugin.interceptor.compose;
-import java.lang.reflect.Method;
-import java.util.Collection;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.StaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.plugin.interceptor.InstanceMethodAroundInterceptor;
+import org.apache.shardingsphere.agent.core.bytebuddy.transformer.advice.ComposeInstanceMethodAroundAdvice;
+
+import java.util.List;
-/**
- * Schema meta data loader advice.
- */
@Slf4j
-public final class SchemaMetaDataLoaderAdvice implements StaticMethodAroundAdvice {
+public final class ComposeInstanceMethodAroundInterceptor extends InstanceMethodAroundInterceptor {
- @Override
- @SuppressWarnings("unchecked")
- public void afterMethod(final Class<?> clazz, final Method method, final Object[] args, final MethodInvocationResult result) {
- Collection<String> results = (Collection<String>) result.getResult();
- log.info("Loading {} tables' meta data for unconfigured tables.", results.size());
+ public ComposeInstanceMethodAroundInterceptor(final List<InstanceMethodAroundAdvice> instanceMethodAroundAdvices) {
+ super(new ComposeInstanceMethodAroundAdvice(instanceMethodAroundAdvices));
}
+
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformerTest.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformerTest.java
index f849c88..6dcced1 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformerTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformerTest.java
@@ -27,10 +27,12 @@ import net.bytebuddy.dynamic.scaffold.TypeValidation;
import net.bytebuddy.matcher.ElementMatchers;
import org.apache.shardingsphere.agent.api.point.PluginInterceptorPoint;
import org.apache.shardingsphere.agent.core.bytebuddy.listener.LoggingListener;
-import org.apache.shardingsphere.agent.core.mock.material.Material;
+import org.apache.shardingsphere.agent.core.mock.advice.MockClassStaticMethodAroundAdvice;
import org.apache.shardingsphere.agent.core.mock.advice.MockConstructorAdvice;
-import org.apache.shardingsphere.agent.core.mock.advice.MockMethodAroundAdvice;
-import org.apache.shardingsphere.agent.core.mock.advice.MockStaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodAroundRepeatedAdvice;
+import org.apache.shardingsphere.agent.core.mock.material.Material;
+import org.apache.shardingsphere.agent.core.mock.material.RepeatedAdviceMaterial;
import org.apache.shardingsphere.agent.core.plugin.PluginLoader;
import org.junit.After;
import org.junit.AfterClass;
@@ -63,21 +65,30 @@ public final class ShardingSphereTransformerTest {
FieldReader objectPoolReader = new FieldReader(PLUGIN_LOADER, PLUGIN_LOADER.getClass().getDeclaredField("objectPool"));
Map<String, Object> objectPool = (Map<String, Object>) objectPoolReader.read();
objectPool.put(MockConstructorAdvice.class.getTypeName(), new MockConstructorAdvice());
- objectPool.put(MockMethodAroundAdvice.class.getTypeName(), new MockMethodAroundAdvice());
- objectPool.put(MockStaticMethodAroundAdvice.class.getTypeName(), new MockStaticMethodAroundAdvice());
+ objectPool.put(MockInstanceMethodAroundAdvice.class.getTypeName(), new MockInstanceMethodAroundAdvice());
+ objectPool.put(MockClassStaticMethodAroundAdvice.class.getTypeName(), new MockClassStaticMethodAroundAdvice());
Map<String, PluginInterceptorPoint> interceptorPointMap = Maps.newHashMap();
PluginInterceptorPoint interceptorPoint = PluginInterceptorPoint.intercept("org.apache.shardingsphere.agent.core.mock.material.Material")
.aroundInstanceMethod(ElementMatchers.named("mock"))
- .implement(MockMethodAroundAdvice.class.getTypeName())
+ .implement(MockInstanceMethodAroundAdvice.class.getTypeName())
.build()
.aroundClassStaticMethod(ElementMatchers.named("staticMock"))
- .implement(MockStaticMethodAroundAdvice.class.getTypeName())
+ .implement(MockClassStaticMethodAroundAdvice.class.getTypeName())
.build()
.onConstructor(ElementMatchers.takesArguments(1))
.implement(MockConstructorAdvice.class.getTypeName())
.build()
.install();
interceptorPointMap.put(interceptorPoint.getClassNameOfTarget(), interceptorPoint);
+ PluginInterceptorPoint interceptorPointInTwice = PluginInterceptorPoint.intercept("org.apache.shardingsphere.agent.core.mock.material.RepeatedAdviceMaterial")
+ .aroundInstanceMethod(ElementMatchers.named("mock"))
+ .implement(MockInstanceMethodAroundAdvice.class.getTypeName())
+ .build()
+ .aroundInstanceMethod(ElementMatchers.named("mock"))
+ .implement(MockInstanceMethodAroundRepeatedAdvice.class.getTypeName())
+ .build()
+ .install();
+ interceptorPointMap.put(interceptorPointInTwice.getClassNameOfTarget(), interceptorPointInTwice);
FieldSetter.setField(PLUGIN_LOADER, PLUGIN_LOADER.getClass().getDeclaredField("interceptorPointMap"), interceptorPointMap);
byteBuddyAgent = new AgentBuilder.Default().with(new ByteBuddy().with(TypeValidation.ENABLED))
.ignore(ElementMatchers.isSynthetic()).or(ElementMatchers.nameStartsWith("org.apache.shardingsphere.agent.")
@@ -97,6 +108,12 @@ public final class ShardingSphereTransformerTest {
}
@Test
+ public void assertInstanceMethodInRepeatedAdvice() {
+ assertThat(new RepeatedAdviceMaterial().mock(queue), is("invocation"));
+ assertArrayEquals(new String[]{"before", "twice_before", "on", "after", "twice_after"}, queue.toArray());
+ }
+
+ @Test
public void assertStaticMethod() {
assertThat(Material.staticMock(queue), is("static invocation"));
assertArrayEquals(new String[]{"before", "on", "after"}, queue.toArray());
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAroundAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockClassStaticMethodAroundAdvice.java
similarity index 89%
rename from shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAroundAdvice.java
rename to shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockClassStaticMethodAroundAdvice.java
index 1e800c5..7cf8001 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockStaticMethodAroundAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockClassStaticMethodAroundAdvice.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.agent.core.mock.advice;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.api.advice.StaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.ClassStaticMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import java.lang.reflect.Method;
@@ -26,11 +26,11 @@ import java.util.List;
@RequiredArgsConstructor
@SuppressWarnings("unchecked")
-public final class MockStaticMethodAroundAdvice implements StaticMethodAroundAdvice {
+public final class MockClassStaticMethodAroundAdvice implements ClassStaticMethodAroundAdvice {
private final boolean rebase;
- public MockStaticMethodAroundAdvice() {
+ public MockClassStaticMethodAroundAdvice() {
this(false);
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
index 324ea3f..2b6c92b 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockConstructorAdvice.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.agent.core.mock.advice;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.agent.api.advice.ConstructorAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import java.util.List;
@@ -35,7 +35,7 @@ public final class MockConstructorAdvice implements ConstructorAdvice {
@Override
@SuppressWarnings("unchecked")
- public void onConstructor(final TargetObject target, final Object[] args) {
+ public void onConstructor(final AdviceTargetObject target, final Object[] args) {
if (null != args && args.length > 0) {
List<String> list = Optional.ofNullable(queues).orElse((List<String>) args[0]);
list.add("on constructor");
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockMethodAroundAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAroundAdvice.java
similarity index 69%
copy from shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockMethodAroundAdvice.java
copy to shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAroundAdvice.java
index 7164555..5592cd1 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockMethodAroundAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAroundAdvice.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.agent.core.mock.advice;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import java.lang.reflect.Method;
@@ -27,16 +27,16 @@ import java.util.List;
@RequiredArgsConstructor
@SuppressWarnings("unchecked")
-public final class MockMethodAroundAdvice implements MethodAroundAdvice {
+public final class MockInstanceMethodAroundAdvice implements InstanceMethodAroundAdvice {
private final boolean rebase;
- public MockMethodAroundAdvice() {
+ public MockInstanceMethodAroundAdvice() {
this(false);
}
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
List<String> queues = (List<String>) args[0];
queues.add("before");
if (rebase) {
@@ -45,13 +45,13 @@ public final class MockMethodAroundAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
List<String> queues = (List<String>) args[0];
queues.add("after");
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
List<String> queues = (List<String>) args[0];
queues.add("exception");
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockMethodAroundAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAroundRepeatedAdvice.java
similarity index 55%
rename from shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockMethodAroundAdvice.java
rename to shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAroundRepeatedAdvice.java
index 7164555..c002e7c 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockMethodAroundAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/advice/MockInstanceMethodAroundRepeatedAdvice.java
@@ -17,42 +17,31 @@
package org.apache.shardingsphere.agent.core.mock.advice;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import java.lang.reflect.Method;
import java.util.List;
-@RequiredArgsConstructor
-@SuppressWarnings("unchecked")
-public final class MockMethodAroundAdvice implements MethodAroundAdvice {
-
- private final boolean rebase;
-
- public MockMethodAroundAdvice() {
- this(false);
- }
+public class MockInstanceMethodAroundRepeatedAdvice implements InstanceMethodAroundAdvice {
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
List<String> queues = (List<String>) args[0];
- queues.add("before");
- if (rebase) {
- result.rebase("rebase invocation method");
- }
+ queues.add("twice_before");
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
List<String> queues = (List<String>) args[0];
- queues.add("after");
+ queues.add("twice_after");
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
List<String> queues = (List<String>) args[0];
- queues.add("exception");
+ queues.add("twice_exception");
}
+
}
diff --git a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/TargetObject.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/material/RepeatedAdviceMaterial.java
similarity index 65%
rename from shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/TargetObject.java
rename to shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/material/RepeatedAdviceMaterial.java
index a9ae8e9..01a3276 100644
--- a/shardingsphere-agent/shardingsphere-agent-api/src/main/java/org/apache/shardingsphere/agent/api/advice/TargetObject.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/mock/material/RepeatedAdviceMaterial.java
@@ -15,24 +15,27 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.agent.api.advice;
+package org.apache.shardingsphere.agent.core.mock.material;
+
+import lombok.NoArgsConstructor;
+
+import java.util.List;
/**
- * Wrapped class for target and provide a context to store variable during invocation.
+ * Have to redefine this class dynamic, so never add `final` modifier.
*/
-public interface TargetObject {
+@NoArgsConstructor
+public class RepeatedAdviceMaterial {
/**
- * Get the variable from context.
+ * Mock method for testing.
*
- * @return the attachment
+ * @param queues queues
+ * @return result
*/
- Object getAttachment();
+ public String mock(final List<String> queues) {
+ queues.add("on");
+ return "invocation";
+ }
- /**
- * Store a variable into context.
- *
- * @param attachment what variable you want to store
- */
- void setAttachment(Object attachment);
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/StaticMethodAroundInterceptorTest.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ClassStaticMethodAroundInterceptorTest.java
similarity index 89%
rename from shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/StaticMethodAroundInterceptorTest.java
rename to shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ClassStaticMethodAroundInterceptorTest.java
index 825c1c6..a36af0f 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/StaticMethodAroundInterceptorTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ClassStaticMethodAroundInterceptorTest.java
@@ -28,9 +28,9 @@ import net.bytebuddy.implementation.FieldAccessor;
import net.bytebuddy.implementation.MethodDelegation;
import net.bytebuddy.jar.asm.Opcodes;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.core.mock.material.StaticMaterial;
-import org.apache.shardingsphere.agent.core.mock.advice.MockStaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.mock.advice.MockClassStaticMethodAroundAdvice;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -48,7 +48,7 @@ import static org.junit.Assert.assertThat;
@RunWith(Parameterized.class)
@RequiredArgsConstructor
-public final class StaticMethodAroundInterceptorTest {
+public final class ClassStaticMethodAroundInterceptorTest {
private static final String EXTRA_DATA = "_$EXTRA_DATA$_";
@@ -79,12 +79,12 @@ public final class StaticMethodAroundInterceptorTest {
.transform((builder, typeDescription, classLoader, module) -> {
if (CLASS_PATH.equals(typeDescription.getTypeName())) {
return builder.defineField(EXTRA_DATA, Object.class, Opcodes.ACC_PRIVATE | Opcodes.ACC_VOLATILE)
- .implement(TargetObject.class)
+ .implement(AdviceTargetObject.class)
.intercept(FieldAccessor.ofField(EXTRA_DATA))
.method(ElementMatchers.named("staticMockWithException"))
- .intercept(MethodDelegation.withDefaultConfiguration().to(new StaticMethodAroundInterceptor(new MockStaticMethodAroundAdvice(false))))
+ .intercept(MethodDelegation.withDefaultConfiguration().to(new ClassStaticMethodAroundInterceptor(new MockClassStaticMethodAroundAdvice(false))))
.method(ElementMatchers.named("staticMock"))
- .intercept(MethodDelegation.withDefaultConfiguration().to(new StaticMethodAroundInterceptor(new MockStaticMethodAroundAdvice(true))));
+ .intercept(MethodDelegation.withDefaultConfiguration().to(new ClassStaticMethodAroundInterceptor(new MockClassStaticMethodAroundAdvice(true))));
}
return builder;
})
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorMethodInterceptorTest.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorInterceptorTest.java
similarity index 92%
rename from shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorMethodInterceptorTest.java
rename to shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorInterceptorTest.java
index 53c1f99..9e4d57b 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorMethodInterceptorTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/ConstructorInterceptorTest.java
@@ -27,7 +27,7 @@ import net.bytebuddy.implementation.MethodDelegation;
import net.bytebuddy.implementation.SuperMethodCall;
import net.bytebuddy.jar.asm.Opcodes;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.core.bytebuddy.listener.LoggingListener;
import org.apache.shardingsphere.agent.core.mock.material.ConstructorMaterial;
import org.apache.shardingsphere.agent.core.mock.advice.MockConstructorAdvice;
@@ -42,7 +42,7 @@ import java.util.List;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
-public final class ConstructorMethodInterceptorTest {
+public final class ConstructorInterceptorTest {
private static final String EXTRA_DATA = "_$EXTRA_DATA$_";
@@ -64,10 +64,10 @@ public final class ConstructorMethodInterceptorTest {
.transform((builder, typeDescription, classLoader, module) -> {
if (CLASS_PATH.equals(typeDescription.getTypeName())) {
return builder.defineField(EXTRA_DATA, Object.class, Opcodes.ACC_PRIVATE | Opcodes.ACC_VOLATILE)
- .implement(TargetObject.class)
+ .implement(AdviceTargetObject.class)
.intercept(FieldAccessor.ofField(EXTRA_DATA))
.constructor(ElementMatchers.isConstructor())
- .intercept(SuperMethodCall.INSTANCE.andThen(MethodDelegation.withDefaultConfiguration().to(new ConstructorMethodInterceptor(new MockConstructorAdvice(QUEUE)))));
+ .intercept(SuperMethodCall.INSTANCE.andThen(MethodDelegation.withDefaultConfiguration().to(new ConstructorInterceptor(new MockConstructorAdvice(QUEUE)))));
}
return builder;
})
@@ -79,7 +79,7 @@ public final class ConstructorMethodInterceptorTest {
@SuppressWarnings("all")
public void assertNoArgConstructor() {
Object material = new ConstructorMaterial();
- assertTrue(material instanceof TargetObject);
+ assertTrue(material instanceof AdviceTargetObject);
}
@Test
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/MethodAroundInterceptorTest.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/InstanceMethodAroundInterceptorTest.java
similarity index 92%
rename from shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/MethodAroundInterceptorTest.java
rename to shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/InstanceMethodAroundInterceptorTest.java
index 20d3646..7fd9854 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/MethodAroundInterceptorTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/interceptor/InstanceMethodAroundInterceptorTest.java
@@ -29,9 +29,9 @@ import net.bytebuddy.implementation.FieldAccessor;
import net.bytebuddy.implementation.MethodDelegation;
import net.bytebuddy.jar.asm.Opcodes;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.core.mock.material.InstanceMaterial;
-import org.apache.shardingsphere.agent.core.mock.advice.MockMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodAroundAdvice;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -49,7 +49,7 @@ import static org.junit.Assert.assertThat;
@RunWith(Parameterized.class)
@RequiredArgsConstructor
-public final class MethodAroundInterceptorTest {
+public final class InstanceMethodAroundInterceptorTest {
private static final String EXTRA_DATA = "_$EXTRA_DATA$_";
@@ -83,7 +83,7 @@ public final class MethodAroundInterceptorTest {
.transform((builder, typeDescription, classLoader, module) -> {
if (CLASS_PATH.equals(typeDescription.getTypeName())) {
return builder.defineField(EXTRA_DATA, Object.class, Opcodes.ACC_PRIVATE | Opcodes.ACC_VOLATILE)
- .implement(TargetObject.class)
+ .implement(AdviceTargetObject.class)
.intercept(FieldAccessor.ofField(EXTRA_DATA));
}
return builder;
@@ -97,7 +97,7 @@ public final class MethodAroundInterceptorTest {
InstanceMaterial material = new ByteBuddy()
.subclass(InstanceMaterial.class)
.method(ElementMatchers.named(methodName))
- .intercept(MethodDelegation.withDefaultConfiguration().to(new MethodAroundInterceptor(new MockMethodAroundAdvice(rebase))))
+ .intercept(MethodDelegation.withDefaultConfiguration().to(new InstanceMethodAroundInterceptor(new MockInstanceMethodAroundAdvice(rebase))))
.make()
.load(new MockClassLoader())
.getLoaded()
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/loader/PluginLoaderTest.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/loader/PluginLoaderTest.java
index e40a21e..24c3343 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/loader/PluginLoaderTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/plugin/loader/PluginLoaderTest.java
@@ -24,8 +24,8 @@ import net.bytebuddy.matcher.ElementMatchers;
import net.bytebuddy.pool.TypePool;
import org.apache.shardingsphere.agent.api.point.PluginInterceptorPoint;
import org.apache.shardingsphere.agent.core.mock.advice.MockConstructorAdvice;
-import org.apache.shardingsphere.agent.core.mock.advice.MockMethodAroundAdvice;
-import org.apache.shardingsphere.agent.core.mock.advice.MockStaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.mock.advice.MockInstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.core.mock.advice.MockClassStaticMethodAroundAdvice;
import org.apache.shardingsphere.agent.core.plugin.PluginLoader;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -57,15 +57,15 @@ public final class PluginLoaderTest {
FieldReader objectPoolReader = new FieldReader(PLUGIN_LOADER, PLUGIN_LOADER.getClass().getDeclaredField("objectPool"));
Map<String, Object> objectPool = (Map<String, Object>) objectPoolReader.read();
objectPool.put(MockConstructorAdvice.class.getTypeName(), new MockConstructorAdvice());
- objectPool.put(MockMethodAroundAdvice.class.getTypeName(), new MockMethodAroundAdvice());
- objectPool.put(MockStaticMethodAroundAdvice.class.getTypeName(), new MockStaticMethodAroundAdvice());
+ objectPool.put(MockInstanceMethodAroundAdvice.class.getTypeName(), new MockInstanceMethodAroundAdvice());
+ objectPool.put(MockClassStaticMethodAroundAdvice.class.getTypeName(), new MockClassStaticMethodAroundAdvice());
Map<String, PluginInterceptorPoint> interceptorPointMap = Maps.newHashMap();
PluginInterceptorPoint interceptorPoint = PluginInterceptorPoint.intercept("org.apache.shardingsphere.agent.core.mock.material.Material")
.aroundInstanceMethod(ElementMatchers.named("mock"))
- .implement(MockMethodAroundAdvice.class.getTypeName())
+ .implement(MockInstanceMethodAroundAdvice.class.getTypeName())
.build()
.aroundClassStaticMethod(ElementMatchers.named("staticMock"))
- .implement(MockStaticMethodAroundAdvice.class.getTypeName())
+ .implement(MockClassStaticMethodAroundAdvice.class.getTypeName())
.build()
.onConstructor(ElementMatchers.takesArguments(1))
.implement(MockConstructorAdvice.class.getTypeName())
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java
index be51be5..e686d07 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/src/main/java/org/apache/shardingsphere/agent/plugin/logging/base/advice/SchemaMetaDataLoaderAdvice.java
@@ -21,13 +21,13 @@ import java.lang.reflect.Method;
import java.util.Collection;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.StaticMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.ClassStaticMethodAroundAdvice;
/**
* Schema meta data loader advice.
*/
@Slf4j
-public final class SchemaMetaDataLoaderAdvice implements StaticMethodAroundAdvice {
+public final class SchemaMetaDataLoaderAdvice implements ClassStaticMethodAroundAdvice {
@Override
@SuppressWarnings("unchecked")
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdvice.java
index c14dfb9..a7a2427 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdvice.java
@@ -18,16 +18,16 @@
package org.apache.shardingsphere.agent.metrics.api.advice;
import java.lang.reflect.Method;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.metrics.api.reporter.MetricsReporter;
import org.apache.shardingsphere.agent.metrics.api.constant.MethodNameConstant;
/**
* Channel handler advice.
*/
-public final class ChannelHandlerAdvice implements MethodAroundAdvice {
+public final class ChannelHandlerAdvice implements InstanceMethodAroundAdvice {
private static final String REQUEST_TOTAL = "proxy_request_total";
@@ -39,7 +39,7 @@ public final class ChannelHandlerAdvice implements MethodAroundAdvice {
}
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
collectMetrics(method.getName());
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdvice.java
index c4d90a0..f2ff1e2 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdvice.java
@@ -18,16 +18,16 @@
package org.apache.shardingsphere.agent.metrics.api.advice;
import java.lang.reflect.Method;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.metrics.api.reporter.MetricsReporter;
import org.apache.shardingsphere.agent.metrics.api.threadlocal.ElapsedTimeThreadLocal;
/**
* Command executor task advice.
*/
-public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
+public final class CommandExecutorTaskAdvice implements InstanceMethodAroundAdvice {
private static final String METRICS_NAME = "proxy_execute_latency_millis";
@@ -36,12 +36,12 @@ public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
}
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
ElapsedTimeThreadLocal.INSTANCE.set(System.currentTimeMillis());
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
try {
long elapsedTime = System.currentTimeMillis() - ElapsedTimeThreadLocal.INSTANCE.get();
MetricsReporter.recordTime(METRICS_NAME, elapsedTime);
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdvice.java
index 69f1dec..5f56c55 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLRouteEngineAdvice.java
@@ -19,9 +19,9 @@ package org.apache.shardingsphere.agent.metrics.api.advice;
import java.lang.reflect.Method;
import java.util.Collection;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.metrics.api.reporter.MetricsReporter;
import org.apache.shardingsphere.infra.binder.LogicSQL;
import org.apache.shardingsphere.infra.route.context.RouteContext;
@@ -36,7 +36,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.UpdateState
/**
* SQL route engine advice.
*/
-public final class SQLRouteEngineAdvice implements MethodAroundAdvice {
+public final class SQLRouteEngineAdvice implements InstanceMethodAroundAdvice {
private static final String SELECT = "sql_select_total";
@@ -60,7 +60,7 @@ public final class SQLRouteEngineAdvice implements MethodAroundAdvice {
}
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
LogicSQL logicSQL = (LogicSQL) args[0];
SQLStatement sqlStatement = logicSQL.getSqlStatementContext().getSqlStatement();
if (sqlStatement instanceof InsertStatement) {
@@ -75,7 +75,7 @@ public final class SQLRouteEngineAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
RouteContext routeContext = (RouteContext) result.getResult();
if (null != routeContext) {
Collection<RouteUnit> routeUnits = routeContext.getRouteUnits();
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdvice.java
index 7af913a..b2ecb2d 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdvice.java
@@ -18,16 +18,16 @@
package org.apache.shardingsphere.agent.metrics.api.advice;
import java.lang.reflect.Method;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.metrics.api.reporter.MetricsReporter;
import org.apache.shardingsphere.agent.metrics.api.constant.MethodNameConstant;
/**
* Transaction advice.
*/
-public final class TransactionAdvice implements MethodAroundAdvice {
+public final class TransactionAdvice implements InstanceMethodAroundAdvice {
private static final String COMMIT = "proxy_transaction_commit_total";
@@ -39,7 +39,7 @@ public final class TransactionAdvice implements MethodAroundAdvice {
}
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
String methodName = method.getName();
if (MethodNameConstant.COMMIT.equals(methodName)) {
MetricsReporter.counterIncrement(COMMIT);
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceTest.java
index 9043195..fc36c18 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/ChannelHandlerAdviceTest.java
@@ -54,7 +54,7 @@ public final class ChannelHandlerAdviceTest extends MetricsAdviceBaseTest {
when(channelRead.getName()).thenReturn(MethodNameConstant.CHANNEL_READ);
when(channelActive.getName()).thenReturn(MethodNameConstant.CHANNEL_ACTIVE);
when(channelInactive.getName()).thenReturn(MethodNameConstant.CHANNEL_INACTIVE);
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
channelHandlerAdvice.beforeMethod(targetObject, channelRead, new Object[]{}, new MethodInvocationResult());
channelHandlerAdvice.beforeMethod(targetObject, channelActive, new Object[]{}, new MethodInvocationResult());
channelHandlerAdvice.beforeMethod(targetObject, channelActive, new Object[]{}, new MethodInvocationResult());
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceTest.java
index 954a899..bd71b12 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/CommandExecutorTaskAdviceTest.java
@@ -34,7 +34,7 @@ public final class CommandExecutorTaskAdviceTest extends MetricsAdviceBaseTest {
@Test
@SuppressWarnings("unchecked")
public void assertMethod() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
commandExecutorTaskAdvice.beforeMethod(targetObject, null, new Object[]{}, new MethodInvocationResult());
commandExecutorTaskAdvice.afterMethod(targetObject, null, new Object[]{}, new MethodInvocationResult());
Map<String, LongAdder> longAdderMap = (Map<String, LongAdder>) ReflectiveUtil.getFieldValue(getFixturemetricsregister(), "HISTOGRAM_MAP");
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetObject.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockAdviceTargetObject.java
similarity index 88%
rename from shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetObject.java
rename to shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockAdviceTargetObject.java
index 3dd67f2..e782d1e 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockTargetObject.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/MockAdviceTargetObject.java
@@ -17,9 +17,9 @@
package org.apache.shardingsphere.agent.metrics.api.advice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
-public final class MockTargetObject implements TargetObject {
+public final class MockAdviceTargetObject implements AdviceTargetObject {
private Object object;
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceTest.java
index 6d0cdc0..011c61b 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/TransactionAdviceTest.java
@@ -49,7 +49,7 @@ public final class TransactionAdviceTest extends MetricsAdviceBaseTest {
public void assertMethod() {
when(commit.getName()).thenReturn(MethodNameConstant.COMMIT);
when(rollback.getName()).thenReturn(MethodNameConstant.ROLL_BACK);
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
transactionAdvice.beforeMethod(targetObject, commit, new Object[]{}, new MethodInvocationResult());
transactionAdvice.beforeMethod(targetObject, rollback, new Object[]{}, new MethodInvocationResult());
Map<String, DoubleAdder> doubleAdderMap = (Map<String, DoubleAdder>) ReflectiveUtil.getFieldValue(getFixturemetricsregister(), "COUNTER_MAP");
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java
index 1bf5edd..872c89c 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdvice.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice;
import io.opentracing.Scope;
import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.ShardingSphereTags;
import org.apache.shardingsphere.agent.plugin.tracing.jaeger.span.JaegerErrorSpan;
@@ -32,14 +32,14 @@ import java.lang.reflect.Method;
/**
* Command executor task advice.
*/
-public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
+public final class CommandExecutorTaskAdvice implements InstanceMethodAroundAdvice {
private static final String OPERATION_NAME = "/ShardingSphere/rootInvoke/";
private static final String ROOT_SPAN = "_root_span_";
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
Scope scope = GlobalTracer.get().buildSpan(OPERATION_NAME)
.withTag(Tags.COMPONENT.getKey(), ShardingSphereTags.COMPONENT_NAME)
.startActive(true);
@@ -47,13 +47,13 @@ public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
GlobalTracer.get().scopeManager().active().close();
ExecutorDataMap.getValue().remove(ROOT_SPAN);
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
JaegerErrorSpan.setError(GlobalTracer.get().activeSpan(), throwable);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
index 99dda53..03035ba 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdvice.java
@@ -22,9 +22,9 @@ import io.opentracing.Span;
import io.opentracing.Tracer;
import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.plugin.tracing.jaeger.span.JaegerErrorSpan;
import org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.ShardingSphereTags;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
@@ -36,12 +36,12 @@ import java.util.Map;
/**
* JDBC executor callback advice.
*/
-public final class JDBCExecutorCallbackAdvice implements MethodAroundAdvice {
+public final class JDBCExecutorCallbackAdvice implements InstanceMethodAroundAdvice {
private static final String OPERATION_NAME = "/ShardingSphere/executeSQL/";
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
Span root = (Span) ((Map<String, Object>) args[2]).get("_root_span_");
Tracer.SpanBuilder builder = GlobalTracer.get().buildSpan(OPERATION_NAME);
if ((boolean) args[1]) {
@@ -60,12 +60,12 @@ public final class JDBCExecutorCallbackAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
((Scope) target.getAttachment()).close();
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
JaegerErrorSpan.setError(GlobalTracer.get().activeSpan(), throwable);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java
index d15e038..9aed790 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdvice.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice;
import io.opentracing.Scope;
import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.plugin.tracing.jaeger.span.JaegerErrorSpan;
import org.apache.shardingsphere.agent.plugin.tracing.jaeger.constant.ShardingSphereTags;
@@ -31,12 +31,12 @@ import java.lang.reflect.Method;
/**
* SQL parser engine advice.
*/
-public final class SQLParserEngineAdvice implements MethodAroundAdvice {
+public final class SQLParserEngineAdvice implements InstanceMethodAroundAdvice {
private static final String OPERATION_NAME = "/ShardingSphere/parseSQL/";
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
Scope scope = GlobalTracer.get().buildSpan(OPERATION_NAME)
.withTag(Tags.COMPONENT.getKey(), ShardingSphereTags.COMPONENT_NAME)
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
@@ -46,12 +46,12 @@ public final class SQLParserEngineAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
((Scope) target.getAttachment()).close();
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
JaegerErrorSpan.setError(GlobalTracer.get().activeSpan(), throwable);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceTest.java
index a60d028..d02f670 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/CommandExecutorTaskAdviceTest.java
@@ -67,7 +67,7 @@ public final class CommandExecutorTaskAdviceTest {
@Test
public void assertMethod() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
ADVICE.beforeMethod(targetObject, executeCommandMethod, new Object[]{}, new MethodInvocationResult());
ADVICE.afterMethod(targetObject, executeCommandMethod, new Object[]{}, new MethodInvocationResult());
List<MockSpan> spans = tracer.finishedSpans();
@@ -78,7 +78,7 @@ public final class CommandExecutorTaskAdviceTest {
@Test
public void assertExceptionHandle() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
ADVICE.beforeMethod(targetObject, executeCommandMethod, new Object[]{}, new MethodInvocationResult());
ADVICE.onThrowing(targetObject, executeCommandMethod, new Object[]{}, new IOException());
ADVICE.afterMethod(targetObject, executeCommandMethod, new Object[]{}, new MethodInvocationResult());
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceTest.java
index ce5ad13..774dd2c 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/JDBCExecutorCallbackAdviceTest.java
@@ -70,7 +70,7 @@ public final class JDBCExecutorCallbackAdviceTest {
@Test
public void assertMethod() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
Map<String, Object> extraMap = Maps.newHashMap();
extraMap.put("_root_span_", null);
JDBCExecutionUnit executionUnit = mock(JDBCExecutionUnit.class);
@@ -91,7 +91,7 @@ public final class JDBCExecutorCallbackAdviceTest {
@Test
public void assertExceptionHandle() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
Map<String, Object> extraMap = Maps.newHashMap();
extraMap.put("_root_span_", null);
JDBCExecutionUnit executionUnit = mock(JDBCExecutionUnit.class);
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/MockTargetObject.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/MockAdviceTargetObject.java
similarity index 88%
rename from shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/MockTargetObject.java
rename to shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/MockAdviceTargetObject.java
index 909728e..501bac4 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/MockTargetObject.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/MockAdviceTargetObject.java
@@ -17,9 +17,9 @@
package org.apache.shardingsphere.agent.plugin.tracing.jaeger.advice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
-public final class MockTargetObject implements TargetObject {
+public final class MockAdviceTargetObject implements AdviceTargetObject {
private Object object;
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceTest.java
index f62aefe..7472e5b 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/jaeger/advice/SQLParserEngineAdviceTest.java
@@ -61,7 +61,7 @@ public final class SQLParserEngineAdviceTest {
@Test
public void assertMethod() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
ADVICE.beforeMethod(targetObject, parserMethod, new Object[]{"select 1"}, new MethodInvocationResult());
ADVICE.afterMethod(targetObject, parserMethod, new Object[]{}, new MethodInvocationResult());
List<MockSpan> spans = tracer.finishedSpans();
@@ -72,7 +72,7 @@ public final class SQLParserEngineAdviceTest {
@Test
public void assertExceptionHandle() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
ADVICE.beforeMethod(targetObject, parserMethod, new Object[]{"select 1"}, new MethodInvocationResult());
ADVICE.onThrowing(targetObject, parserMethod, new Object[]{}, new IOException());
ADVICE.afterMethod(targetObject, parserMethod, new Object[]{}, new MethodInvocationResult());
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java
index a133acd..9d724ca 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdvice.java
@@ -21,8 +21,8 @@ import io.opentracing.Scope;
import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer;
import java.lang.reflect.Method;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ShardingSphereTags;
import org.apache.shardingsphere.agent.plugin.tracing.opentracing.span.OpenTracingErrorSpan;
@@ -31,14 +31,14 @@ import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
/**
* Command executor task advice.
*/
-public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
+public final class CommandExecutorTaskAdvice implements InstanceMethodAroundAdvice {
private static final String OPERATION_NAME = "/ShardingSphere/rootInvoke/";
private static final String ROOT_SPAN = "_root_span_";
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
Scope scope = GlobalTracer.get().buildSpan(OPERATION_NAME)
.withTag(Tags.COMPONENT.getKey(), ShardingSphereTags.COMPONENT_NAME)
.startActive(true);
@@ -46,13 +46,13 @@ public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
GlobalTracer.get().scopeManager().active().close();
ExecutorDataMap.getValue().remove(ROOT_SPAN);
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
OpenTracingErrorSpan.setError(GlobalTracer.get().activeSpan(), throwable);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java
index bf9d247..1592ec8 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdvice.java
@@ -24,8 +24,8 @@ import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer;
import java.lang.reflect.Method;
import java.util.Map;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ShardingSphereTags;
import org.apache.shardingsphere.agent.plugin.tracing.opentracing.span.OpenTracingErrorSpan;
@@ -35,12 +35,12 @@ import org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.J
/**
* JDBC executor callback advice.
*/
-public final class JDBCExecutorCallbackAdvice implements MethodAroundAdvice {
+public final class JDBCExecutorCallbackAdvice implements InstanceMethodAroundAdvice {
private static final String OPERATION_NAME = "/ShardingSphere/executeSQL/";
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
Span root = (Span) ((Map<String, Object>) args[2]).get("_root_span_");
Tracer.SpanBuilder builder = GlobalTracer.get().buildSpan(OPERATION_NAME);
if ((boolean) args[1]) {
@@ -59,12 +59,12 @@ public final class JDBCExecutorCallbackAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
((Scope) target.getAttachment()).close();
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
OpenTracingErrorSpan.setError(GlobalTracer.get().activeSpan(), throwable);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java
index 99796c4..e610e5d 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdvice.java
@@ -21,8 +21,8 @@ import io.opentracing.Scope;
import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer;
import java.lang.reflect.Method;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.plugin.tracing.opentracing.constant.ShardingSphereTags;
import org.apache.shardingsphere.agent.plugin.tracing.opentracing.span.OpenTracingErrorSpan;
@@ -30,12 +30,12 @@ import org.apache.shardingsphere.agent.plugin.tracing.opentracing.span.OpenTraci
/**
* SQL parser engine advice.
*/
-public final class SQLParserEngineAdvice implements MethodAroundAdvice {
+public final class SQLParserEngineAdvice implements InstanceMethodAroundAdvice {
private static final String OPERATION_NAME = "/ShardingSphere/parseSQL/";
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
Scope scope = GlobalTracer.get().buildSpan(OPERATION_NAME)
.withTag(Tags.COMPONENT.getKey(), ShardingSphereTags.COMPONENT_NAME)
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
@@ -45,12 +45,12 @@ public final class SQLParserEngineAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
((Scope) target.getAttachment()).close();
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
OpenTracingErrorSpan.setError(GlobalTracer.get().activeSpan(), throwable);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceTest.java
index c4fd85a..d35e9a4 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/CommandExecutorTaskAdviceTest.java
@@ -66,7 +66,7 @@ public final class CommandExecutorTaskAdviceTest {
@Test
public void assertMethod() {
- final MockTargetObject targetObject = new MockTargetObject();
+ final MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
ADVICE.beforeMethod(targetObject, executeCommandMethod, new Object[]{}, new MethodInvocationResult());
ADVICE.afterMethod(targetObject, executeCommandMethod, new Object[]{}, new MethodInvocationResult());
List<MockSpan> spans = tracer.finishedSpans();
@@ -77,7 +77,7 @@ public final class CommandExecutorTaskAdviceTest {
@Test
public void assertExceptionHandle() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
ADVICE.beforeMethod(targetObject, executeCommandMethod, new Object[]{}, new MethodInvocationResult());
ADVICE.onThrowing(targetObject, executeCommandMethod, new Object[]{}, new IOException());
ADVICE.afterMethod(targetObject, executeCommandMethod, new Object[]{}, new MethodInvocationResult());
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceTest.java
index 1713943..73dac27 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/JDBCExecutorCallbackAdviceTest.java
@@ -69,7 +69,7 @@ public final class JDBCExecutorCallbackAdviceTest {
@Test
public void assertMethod() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
Map<String, Object> extraMap = Maps.newHashMap();
extraMap.put("_root_span_", null);
JDBCExecutionUnit executionUnit = mock(JDBCExecutionUnit.class);
@@ -90,7 +90,7 @@ public final class JDBCExecutorCallbackAdviceTest {
@Test
public void assertExceptionHandle() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
Map<String, Object> extraMap = Maps.newHashMap();
extraMap.put("_root_span_", null);
JDBCExecutionUnit executionUnit = mock(JDBCExecutionUnit.class);
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetObject.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockAdviceTargetObject.java
similarity index 88%
rename from shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetObject.java
rename to shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockAdviceTargetObject.java
index 1ab8352..34a5798 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockTargetObject.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/MockAdviceTargetObject.java
@@ -17,9 +17,9 @@
package org.apache.shardingsphere.agent.plugin.tracing.opentracing.advice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
-public final class MockTargetObject implements TargetObject {
+public final class MockAdviceTargetObject implements AdviceTargetObject {
private Object object;
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceTest.java
index a721b85..838f3b5 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-opentracing/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/opentracing/advice/SQLParserEngineAdviceTest.java
@@ -61,7 +61,7 @@ public final class SQLParserEngineAdviceTest {
@Test
public void assertMethod() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
ADVICE.beforeMethod(targetObject, parserMethod, new Object[]{"select 1"}, new MethodInvocationResult());
ADVICE.afterMethod(targetObject, parserMethod, new Object[]{}, new MethodInvocationResult());
List<MockSpan> spans = tracer.finishedSpans();
@@ -72,7 +72,7 @@ public final class SQLParserEngineAdviceTest {
@Test
public void assertExceptionHandle() {
- MockTargetObject targetObject = new MockTargetObject();
+ MockAdviceTargetObject targetObject = new MockAdviceTargetObject();
ADVICE.beforeMethod(targetObject, parserMethod, new Object[]{"select 1"}, new MethodInvocationResult());
ADVICE.onThrowing(targetObject, parserMethod, new Object[]{}, new IOException());
ADVICE.afterMethod(targetObject, parserMethod, new Object[]{}, new MethodInvocationResult());
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java
index 7e979e7..c6e393d 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdvice.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
import brave.Span;
import brave.Tracing;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
@@ -34,12 +34,12 @@ import java.lang.reflect.Method;
/**
* Command executor task advice.
*/
-public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
+public final class CommandExecutorTaskAdvice implements InstanceMethodAroundAdvice {
private static final String OPERATION_NAME = "/ShardingSphere/rootInvoke/";
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
Span span = Tracing.currentTracer().newTrace().name(OPERATION_NAME);
span.tag(ZipkinConstants.Tags.COMPONENT, ZipkinConstants.COMPONENT_NAME).kind(Span.Kind.CLIENT)
.tag(ZipkinConstants.Tags.DB_TYPE, ZipkinConstants.DB_TYPE_VALUE).start();
@@ -48,7 +48,7 @@ public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
@SneakyThrows
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
Field field = CommandExecutorTask.class.getDeclaredField("backendConnection");
field.setAccessible(true);
BackendConnection connection = (BackendConnection) field.get(target);
@@ -58,7 +58,7 @@ public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
((Span) ExecutorDataMap.getValue().get(ZipkinConstants.ROOT_SPAN)).error(throwable);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
index e8d91d2..b0e4715 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdvice.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
import brave.Span;
import brave.Tracing;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
@@ -36,13 +36,13 @@ import java.util.Map;
/**
* JDBC executor callback advice.
*/
-public final class JDBCExecutorCallbackAdvice implements MethodAroundAdvice {
+public final class JDBCExecutorCallbackAdvice implements InstanceMethodAroundAdvice {
private static final String OPERATION_NAME = "/ShardingSphere/executeSQL/";
@SneakyThrows
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
final Span root = (Span) ((Map<String, Object>) args[2]).get(ZipkinConstants.ROOT_SPAN);
if ((boolean) args[1]) {
target.setAttachment(Tracing.currentTracer().newChild(root.context()).name(OPERATION_NAME).start());
@@ -66,12 +66,12 @@ public final class JDBCExecutorCallbackAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
((Span) target.getAttachment()).finish();
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
((Span) target.getAttachment()).error(throwable);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java
index 04b7620..2e96a71 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/main/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdvice.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
import brave.Span;
import brave.Tracing;
import brave.propagation.TraceContext;
-import org.apache.shardingsphere.agent.api.advice.MethodAroundAdvice;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.InstanceMethodAroundAdvice;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
@@ -31,12 +31,12 @@ import java.lang.reflect.Method;
/**
* SQL parser engine advice.
*/
-public final class SQLParserEngineAdvice implements MethodAroundAdvice {
+public final class SQLParserEngineAdvice implements InstanceMethodAroundAdvice {
private static final String OPERATION_NAME = "/ShardingSphere/parseSQL/";
@Override
- public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void beforeMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
TraceContext parentContext = ((Span) ExecutorDataMap.getValue().get(ZipkinConstants.ROOT_SPAN)).context();
Span span = Tracing.currentTracer().newChild(parentContext).name(OPERATION_NAME);
span.tag(ZipkinConstants.Tags.COMPONENT, ZipkinConstants.COMPONENT_NAME);
@@ -46,12 +46,12 @@ public final class SQLParserEngineAdvice implements MethodAroundAdvice {
}
@Override
- public void afterMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
+ public void afterMethod(final AdviceTargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
((Span) target.getAttachment()).finish();
}
@Override
- public void onThrowing(final TargetObject target, final Method method, final Object[] args, final Throwable throwable) {
+ public void onThrowing(final AdviceTargetObject target, final Method method, final Object[] args, final Throwable throwable) {
((Span) target.getAttachment()).error(throwable);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/AdviceBaseTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/AdviceBaseTest.java
index 3ec3599..03ef4d6 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/AdviceBaseTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/AdviceBaseTest.java
@@ -26,7 +26,7 @@ import net.bytebuddy.dynamic.scaffold.TypeValidation;
import net.bytebuddy.implementation.FieldAccessor;
import net.bytebuddy.jar.asm.Opcodes;
import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import zipkin2.Span;
import java.util.concurrent.ConcurrentLinkedDeque;
@@ -49,7 +49,7 @@ public abstract class AdviceBaseTest {
.transform((builder, typeDescription, classLoader, module) -> {
if (klass.equals(typeDescription.getTypeName())) {
return builder.defineField(EXTRA_DATA, Object.class, Opcodes.ACC_PRIVATE | Opcodes.ACC_VOLATILE)
- .implement(TargetObject.class)
+ .implement(AdviceTargetObject.class)
.intercept(FieldAccessor.ofField(EXTRA_DATA));
}
return builder;
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceTest.java
index 60412c3..18acf87 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/CommandExecutorTaskAdviceTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
import io.netty.channel.ChannelHandlerContext;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
import org.apache.shardingsphere.db.protocol.payload.PacketPayload;
@@ -46,7 +46,7 @@ public final class CommandExecutorTaskAdviceTest extends AdviceBaseTest {
private CommandExecutorTaskAdvice advice;
- private TargetObject targetObject;
+ private AdviceTargetObject targetObject;
@BeforeClass
public static void setup() throws NoSuchMethodException {
@@ -60,7 +60,7 @@ public final class CommandExecutorTaskAdviceTest extends AdviceBaseTest {
public void before() {
advice = new CommandExecutorTaskAdvice();
Object executorTask = new CommandExecutorTask(null, new BackendConnection(TransactionType.BASE), null, null);
- targetObject = (TargetObject) executorTask;
+ targetObject = (AdviceTargetObject) executorTask;
}
@Test
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceTest.java
index c0fe839..591ec3f 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/JDBCExecutorCallbackAdviceTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
@@ -55,7 +55,7 @@ public final class JDBCExecutorCallbackAdviceTest extends AdviceBaseTest {
private JDBCExecutorCallbackAdvice advice;
- private TargetObject targetObject;
+ private AdviceTargetObject targetObject;
private Object attachment;
@@ -96,7 +96,7 @@ public final class JDBCExecutorCallbackAdviceTest extends AdviceBaseTest {
});
Map<String, DataSourceMetaData> map = (Map<String, DataSourceMetaData>) new FieldReader(mock, JDBCExecutorCallback.class.getDeclaredField("CACHED_DATASOURCE_METADATA")).read();
map.put("mock_url", new MockDataSourceMetaData());
- targetObject = (TargetObject) mock;
+ targetObject = (AdviceTargetObject) mock;
advice = new JDBCExecutorCallbackAdvice();
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceTest.java
index 70eb382..3f81c8fe 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/src/test/java/org/apache/shardingsphere/agent/plugin/tracing/zipkin/advice/SQLParserEngineAdviceTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.agent.plugin.tracing.zipkin.advice;
import brave.Span;
import brave.Tracing;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.agent.api.advice.TargetObject;
+import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.plugin.tracing.zipkin.constant.ZipkinConstants;
import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
@@ -47,7 +47,7 @@ public final class SQLParserEngineAdviceTest extends AdviceBaseTest {
private SQLParserEngineAdvice advice;
- private TargetObject targetObject;
+ private AdviceTargetObject targetObject;
private Object attachment;
@@ -77,7 +77,7 @@ public final class SQLParserEngineAdviceTest extends AdviceBaseTest {
return invocation.callRealMethod();
}
});
- targetObject = (TargetObject) parserEngine;
+ targetObject = (AdviceTargetObject) parserEngine;
advice = new SQLParserEngineAdvice();
}