You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/12/15 17:02:22 UTC
[shardingsphere] branch master updated: Refactor AgentTransformer (#22898)
This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 971133994fc Refactor AgentTransformer (#22898)
971133994fc is described below
commit 971133994fcdbfb5cd9fa7b67cdb3294715978a2
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Dec 16 01:02:13 2022 +0800
Refactor AgentTransformer (#22898)
---
.../agent/core/transformer/AgentTransformer.java | 24 +++++++++++-----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
index 4d82a6ae22c..a05393b2a18 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/transformer/AgentTransformer.java
@@ -84,17 +84,17 @@ public final class AgentTransformer implements Transformer {
}
Builder<?> result = builder.defineField(EXTRA_DATA, Object.class, Opcodes.ACC_PRIVATE | Opcodes.ACC_VOLATILE).implement(TargetAdviceObject.class).intercept(FieldAccessor.ofField(EXTRA_DATA));
AdvisorConfiguration advisorConfig = advisorConfigs.get(typeDescription.getTypeName());
- result = interceptConstructor(typeDescription, advisorConfig.getConstructorAdvisors(), result, classLoader);
- result = interceptStaticMethod(typeDescription, advisorConfig.getStaticMethodAdvisors(), result, classLoader);
- result = interceptInstanceMethod(typeDescription, advisorConfig.getInstanceMethodAdvisors(), result, classLoader);
+ result = interceptConstructor(result, typeDescription, classLoader, advisorConfig.getConstructorAdvisors());
+ result = interceptStaticMethod(result, typeDescription, classLoader, advisorConfig.getStaticMethodAdvisors());
+ result = interceptInstanceMethod(result, typeDescription, classLoader, advisorConfig.getInstanceMethodAdvisors());
return result;
}
- private Builder<?> interceptConstructor(final TypeDescription description,
- final Collection<ConstructorAdvisorConfiguration> constructorAdvisorConfigs, final Builder<?> builder, final ClassLoader classLoader) {
+ private Builder<?> interceptConstructor(final Builder<?> builder, final TypeDescription description,
+ final ClassLoader classLoader, final Collection<ConstructorAdvisorConfiguration> constructorAdvisorConfigs) {
Collection<AgentTransformationPoint<? extends ConstructorInterceptor>> constructorAdviceComposePoints = description.getDeclaredMethods().stream()
.filter(MethodDescription::isConstructor)
- .map(each -> getMatchedTransformationPoint(constructorAdvisorConfigs, each, classLoader))
+ .map(each -> getMatchedTransformationPoint(each, classLoader, constructorAdvisorConfigs))
.filter(Objects::nonNull)
.collect(Collectors.toList());
Builder<?> result = builder;
@@ -111,8 +111,8 @@ public final class AgentTransformer implements Transformer {
return result;
}
- private AgentTransformationPoint<? extends ConstructorInterceptor> getMatchedTransformationPoint(final Collection<ConstructorAdvisorConfiguration> constructorAdvisorConfigs,
- final InDefinedShape methodDescription, final ClassLoader classLoader) {
+ private AgentTransformationPoint<? extends ConstructorInterceptor> getMatchedTransformationPoint(final InDefinedShape methodDescription, final ClassLoader classLoader,
+ final Collection<ConstructorAdvisorConfiguration> constructorAdvisorConfigs) {
List<ConstructorAdvisorConfiguration> matchedConstructorAdvisorConfigs = constructorAdvisorConfigs
.stream().filter(each -> each.getPointcut().matches(methodDescription)).collect(Collectors.toList());
if (matchedConstructorAdvisorConfigs.isEmpty()) {
@@ -129,8 +129,8 @@ public final class AgentTransformer implements Transformer {
return new AgentTransformationPoint<>(methodDescription, new ComposedConstructorInterceptor(constructorAdvices));
}
- private Builder<?> interceptStaticMethod(final TypeDescription description, final Collection<StaticMethodAdvisorConfiguration> staticMethodAdvisorConfigs,
- final Builder<?> builder, final ClassLoader classLoader) {
+ private Builder<?> interceptStaticMethod(final Builder<?> builder, final TypeDescription description,
+ final ClassLoader classLoader, final Collection<StaticMethodAdvisorConfiguration> staticMethodAdvisorConfigs) {
Collection<AgentTransformationPoint<?>> staticMethodAdvicePoints = description.getDeclaredMethods().stream()
.filter(each -> each.isStatic() && !(each.isAbstract() || each.isSynthetic()))
.map(each -> getMatchedStaticMethodPoint(staticMethodAdvisorConfigs, each, classLoader))
@@ -190,8 +190,8 @@ public final class AgentTransformer implements Transformer {
: new AgentTransformationPoint<>(methodDescription, new ComposedStaticMethodAroundInterceptor(staticMethodAroundAdvices));
}
- private Builder<?> interceptInstanceMethod(final TypeDescription description,
- final Collection<InstanceMethodAdvisorConfiguration> instanceMethodAdvisorConfigs, final Builder<?> builder, final ClassLoader classLoader) {
+ private Builder<?> interceptInstanceMethod(final Builder<?> builder, final TypeDescription description,
+ final ClassLoader classLoader, final Collection<InstanceMethodAdvisorConfiguration> instanceMethodAdvisorConfigs) {
Collection<AgentTransformationPoint<?>> instanceMethodAdviceComposePoints = description.getDeclaredMethods().stream()
.filter(each -> !(each.isAbstract() || each.isSynthetic()))
.map(each -> getMatchedInstanceMethodPoint(instanceMethodAdvisorConfigs, each, classLoader))