This is an automated email from the ASF dual-hosted git repository.
wuweijie 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 b95a209 Refactor ShardingSphereTransformer (#12705)
b95a209 is described below
commit b95a209350e88584265435a8bd60a4988e81c73d
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Sep 25 14:11:35 2021 +0800
Refactor ShardingSphereTransformer (#12705)
* Refactor ShardingSphereTransformer
* Refactor ShardingSphereTransformer
* For code format
---
.../ShardingSphereTransformationPoint.java | 2 +-
.../transformer/ShardingSphereTransformer.java | 165 +++++++++++----------
.../advice/ComposeConstructorAdvice.java | 4 +-
.../agent/core/entity/Interceptors.java | 6 +-
.../compose/ComposeConstructorInterceptor.java | 4 +-
...mposeInstanceMethodInterceptorArgsOverride.java | 4 +
.../PrometheusPluginDefinitionService.java | 26 ++--
7 files changed, 109 insertions(+), 102 deletions(-)
diff --git
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformationPoint.java
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformationPoint.java
index bd46156..8fd4c41 100644
---
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformationPoint.java
+++
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/ShardingSphereTransformationPoint.java
@@ -24,8 +24,8 @@ import net.bytebuddy.description.method.MethodDescription;
/**
* ShardingSphere transformer point.
*/
-@Getter
@RequiredArgsConstructor
+@Getter
public class ShardingSphereTransformationPoint<T> {
private final MethodDescription description;
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 96c6420..7c76621 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
@@ -21,6 +21,7 @@ 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.method.MethodDescription.InDefinedShape;
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.dynamic.DynamicType.Builder;
import net.bytebuddy.implementation.FieldAccessor;
@@ -68,38 +69,21 @@ public final class ShardingSphereTransformer implements
Transformer {
@Override
public Builder<?> transform(final Builder<?> builder, final
TypeDescription typeDescription, final ClassLoader classLoader, final
JavaModule module) {
- if (pluginLoader.containsType(typeDescription)) {
- Builder<?> result = builder;
- result = result.defineField(EXTRA_DATA, Object.class,
Opcodes.ACC_PRIVATE | Opcodes.ACC_VOLATILE)
- .implement(AdviceTargetObject.class)
- .intercept(FieldAccessor.ofField(EXTRA_DATA));
- PluginInterceptorPoint pluginInterceptorPoint =
pluginLoader.loadPluginInterceptorPoint(typeDescription);
- result = interceptorConstructorPoint(typeDescription,
pluginInterceptorPoint.getConstructorPoints(), result);
- result = interceptorClassStaticMethodPoint(typeDescription,
pluginInterceptorPoint.getClassStaticMethodPoints(), result);
- result = interceptorInstanceMethodPoint(typeDescription,
pluginInterceptorPoint.getInstanceMethodPoints(), result);
- return result;
+ if (!pluginLoader.containsType(typeDescription)) {
+ return builder;
}
- return builder;
+ Builder<?> result = builder.defineField(EXTRA_DATA, Object.class,
Opcodes.ACC_PRIVATE |
Opcodes.ACC_VOLATILE).implement(AdviceTargetObject.class).intercept(FieldAccessor.ofField(EXTRA_DATA));
+ PluginInterceptorPoint pluginInterceptorPoint =
pluginLoader.loadPluginInterceptorPoint(typeDescription);
+ result = interceptorConstructorPoint(typeDescription,
pluginInterceptorPoint.getConstructorPoints(), result);
+ result = interceptorClassStaticMethodPoint(typeDescription,
pluginInterceptorPoint.getClassStaticMethodPoints(), result);
+ result = interceptorInstanceMethodPoint(typeDescription,
pluginInterceptorPoint.getInstanceMethodPoints(), result);
+ return result;
}
- private Builder<?> interceptorConstructorPoint(final TypeDescription
description, final List<ConstructorPoint> constructorPoints, final Builder<?>
builder) {
- List<ShardingSphereTransformationPoint<? extends
ConstructorInterceptor>> constructorAdviceComposePoints =
description.getDeclaredMethods().stream()
+ private Builder<?> interceptorConstructorPoint(final TypeDescription
description, final Collection<ConstructorPoint> constructorPoints, final
Builder<?> builder) {
+ Collection<ShardingSphereTransformationPoint<? extends
ConstructorInterceptor>> constructorAdviceComposePoints =
description.getDeclaredMethods().stream()
.filter(MethodDescription::isConstructor)
- .map(methodDescription -> {
- List<ConstructorPoint> constructorPointList =
constructorPoints.stream().filter(point ->
point.getMatcher().matches(methodDescription)).collect(Collectors.toList());
- if (constructorPointList.isEmpty()) {
- return null;
- }
- if (1 == constructorPointList.size()) {
- return new
ShardingSphereTransformationPoint<>(methodDescription, new
ConstructorInterceptor(pluginLoader.getOrCreateInstance(constructorPointList.get(0).getAdvice())));
- } else {
- List<ConstructorAdvice> constructorAdvices =
constructorPointList.stream()
- .map(ConstructorPoint::getAdvice)
- .map(advice -> (ConstructorAdvice)
pluginLoader.getOrCreateInstance(advice))
- .collect(Collectors.toList());
- return new
ShardingSphereTransformationPoint<>(methodDescription, new
ComposeConstructorInterceptor(constructorAdvices));
- }
- })
+ .map(each -> getMatchedTransformationPoint(constructorPoints,
each))
.filter(Objects::nonNull)
.collect(Collectors.toList());
Builder<?> result = builder;
@@ -116,10 +100,26 @@ public final class ShardingSphereTransformer implements
Transformer {
return result;
}
- private Builder<?> interceptorClassStaticMethodPoint(final TypeDescription
description, final List<ClassStaticMethodPoint> classStaticMethodAroundPoints,
final Builder<?> builder) {
- List<ShardingSphereTransformationPoint<?>>
classStaticMethodAdvicePoints = description.getDeclaredMethods().stream()
+ private ShardingSphereTransformationPoint<? extends
ConstructorInterceptor> getMatchedTransformationPoint(
+ final Collection<ConstructorPoint> constructorPoints, final
InDefinedShape methodDescription) {
+ List<ConstructorPoint> matchedConstructorPoints =
constructorPoints.stream().filter(each ->
each.getMatcher().matches(methodDescription)).collect(Collectors.toList());
+ if (matchedConstructorPoints.isEmpty()) {
+ return null;
+ }
+ if (1 == matchedConstructorPoints.size()) {
+ return new ShardingSphereTransformationPoint<>(methodDescription,
new
ConstructorInterceptor(pluginLoader.getOrCreateInstance(matchedConstructorPoints.get(0).getAdvice())));
+ }
+ Collection<ConstructorAdvice> constructorAdvices =
matchedConstructorPoints.stream()
+ .map(ConstructorPoint::getAdvice)
+ .map(advice -> (ConstructorAdvice)
pluginLoader.getOrCreateInstance(advice))
+ .collect(Collectors.toList());
+ return new ShardingSphereTransformationPoint<>(methodDescription, new
ComposeConstructorInterceptor(constructorAdvices));
+ }
+
+ private Builder<?> interceptorClassStaticMethodPoint(final TypeDescription
description, final Collection<ClassStaticMethodPoint> staticMethodAroundPoints,
final Builder<?> builder) {
+ Collection<ShardingSphereTransformationPoint<?>>
classStaticMethodAdvicePoints = description.getDeclaredMethods().stream()
.filter(each -> each.isStatic() && !(each.isAbstract() ||
each.isSynthetic()))
- .map(methodDescription ->
getStaticMethodPoint(methodDescription, classStaticMethodAroundPoints))
+ .map(methodDescription ->
getMatchedStaticMethodPoint(staticMethodAroundPoints, methodDescription))
.filter(Objects::nonNull)
.collect(Collectors.toList());
Builder<?> result = builder;
@@ -136,49 +136,49 @@ public final class ShardingSphereTransformer implements
Transformer {
return result;
}
- private ShardingSphereTransformationPoint<?> getStaticMethodPoint(final
MethodDescription.InDefinedShape methodDescription, final
List<ClassStaticMethodPoint> classStaticMethodAroundPoints) {
- List<ClassStaticMethodPoint> classStaticMethodPoints =
classStaticMethodAroundPoints.stream().filter(point ->
point.getMatcher().matches(methodDescription)).collect(Collectors.toList());
- if (classStaticMethodPoints.isEmpty()) {
+ private ShardingSphereTransformationPoint<?>
getMatchedStaticMethodPoint(final Collection<ClassStaticMethodPoint>
staticMethodAroundPoints, final InDefinedShape methodDescription) {
+ List<ClassStaticMethodPoint> staticMethodPoints =
staticMethodAroundPoints.stream().filter(point ->
point.getMatcher().matches(methodDescription)).collect(Collectors.toList());
+ if (staticMethodPoints.isEmpty()) {
return null;
}
- if (1 == classStaticMethodPoints.size()) {
- if (classStaticMethodPoints.get(0).isOverrideArgs()) {
- return new
ShardingSphereTransformationPoint<>(methodDescription,
- new
ClassStaticMethodInterceptorArgsOverride(pluginLoader.getOrCreateInstance(classStaticMethodPoints.get(0).getAdvice())));
- } else {
- return new
ShardingSphereTransformationPoint<>(methodDescription,
- new
ClassStaticMethodAroundInterceptor(pluginLoader.getOrCreateInstance(classStaticMethodPoints.get(0).getAdvice())));
- }
- } else {
- Collection<ClassStaticMethodAroundAdvice>
classStaticMethodAroundAdvices = new LinkedList<>();
- boolean isArgsOverride = false;
- for (ClassStaticMethodPoint point : classStaticMethodPoints) {
- if (point.isOverrideArgs()) {
- isArgsOverride = true;
- }
- if (null != point.getAdvice()) {
-
classStaticMethodAroundAdvices.add(pluginLoader.getOrCreateInstance(point.getAdvice()));
- }
+ if (1 == staticMethodPoints.size()) {
+ return getSingleStaticMethodPoint(methodDescription,
staticMethodPoints.get(0));
+ }
+ return getComposeStaticMethodPoint(methodDescription,
staticMethodPoints);
+ }
+
+ private ShardingSphereTransformationPoint<?>
getSingleStaticMethodPoint(final InDefinedShape methodDescription, final
ClassStaticMethodPoint staticMethodPoint) {
+ ClassStaticMethodAroundAdvice staticMethodAroundAdvice =
pluginLoader.getOrCreateInstance(staticMethodPoint.getAdvice());
+ return staticMethodPoint.isOverrideArgs()
+ ? new ShardingSphereTransformationPoint<>(methodDescription,
new ClassStaticMethodInterceptorArgsOverride(staticMethodAroundAdvice))
+ : new ShardingSphereTransformationPoint<>(methodDescription,
new ClassStaticMethodAroundInterceptor(staticMethodAroundAdvice));
+ }
+
+ private ShardingSphereTransformationPoint<?>
getComposeStaticMethodPoint(final InDefinedShape methodDescription, final
Collection<ClassStaticMethodPoint> staticMethodPoints) {
+ Collection<ClassStaticMethodAroundAdvice>
classStaticMethodAroundAdvices = new LinkedList<>();
+ boolean isArgsOverride = false;
+ for (ClassStaticMethodPoint each : staticMethodPoints) {
+ if (each.isOverrideArgs()) {
+ isArgsOverride = true;
}
- if (isArgsOverride) {
- return new
ShardingSphereTransformationPoint<>(methodDescription, new
ComposeClassStaticMethodInterceptorArgsOverride(classStaticMethodAroundAdvices));
- } else {
- return new
ShardingSphereTransformationPoint<>(methodDescription, new
ComposeClassStaticMethodAroundInterceptor(classStaticMethodAroundAdvices));
+ if (null != each.getAdvice()) {
+
classStaticMethodAroundAdvices.add(pluginLoader.getOrCreateInstance(each.getAdvice()));
}
}
+ return isArgsOverride ? new
ShardingSphereTransformationPoint<>(methodDescription, new
ComposeClassStaticMethodInterceptorArgsOverride(classStaticMethodAroundAdvices))
+ : new ShardingSphereTransformationPoint<>(methodDescription,
new ComposeClassStaticMethodAroundInterceptor(classStaticMethodAroundAdvices));
}
- private Builder<?> interceptorInstanceMethodPoint(final TypeDescription
description, final List<InstanceMethodPoint> instanceMethodAroundPoints, final
Builder<?> builder) {
- List<ShardingSphereTransformationPoint<?>>
instanceMethodAdviceComposePoints = description.getDeclaredMethods().stream()
+ private Builder<?> interceptorInstanceMethodPoint(final TypeDescription
description, final Collection<InstanceMethodPoint> instanceMethodAroundPoints,
final Builder<?> builder) {
+ Collection<ShardingSphereTransformationPoint<?>>
instanceMethodAdviceComposePoints = description.getDeclaredMethods().stream()
.filter(each -> !(each.isAbstract() || each.isSynthetic()))
- .map(methodDescription ->
getInstanceMethodPoint(methodDescription, instanceMethodAroundPoints))
+ .map(each ->
getMatchedInstanceMethodPoint(instanceMethodAroundPoints, each))
.filter(Objects::nonNull)
.collect(Collectors.toList());
Builder<?> result = builder;
for (ShardingSphereTransformationPoint<?> each :
instanceMethodAdviceComposePoints) {
try {
- result =
result.method(ElementMatchers.is(each.getDescription()))
-
.intercept(MethodDelegation.withDefaultConfiguration().to(each.getInterceptor()));
+ result =
result.method(ElementMatchers.is(each.getDescription())).intercept(MethodDelegation.withDefaultConfiguration().to(each.getInterceptor()));
// CHECKSTYLE:OFF
} catch (final Throwable ex) {
// CHECKSTYLE:ON
@@ -188,33 +188,36 @@ public final class ShardingSphereTransformer implements
Transformer {
return result;
}
- private ShardingSphereTransformationPoint<?> getInstanceMethodPoint(final
MethodDescription.InDefinedShape methodDescription, final
List<InstanceMethodPoint> instanceMethodAroundPoints) {
+ private ShardingSphereTransformationPoint<?>
getMatchedInstanceMethodPoint(final Collection<InstanceMethodPoint>
instanceMethodAroundPoints, final InDefinedShape methodDescription) {
List<InstanceMethodPoint> instanceMethodPoints =
instanceMethodAroundPoints.stream().filter(point ->
point.getMatcher().matches(methodDescription)).collect(Collectors.toList());
if (instanceMethodPoints.isEmpty()) {
return null;
}
if (1 == instanceMethodPoints.size()) {
- if (instanceMethodPoints.get(0).isOverrideArgs()) {
- return new
ShardingSphereTransformationPoint<>(methodDescription, new
InstanceMethodInterceptorArgsOverride(pluginLoader.getOrCreateInstance(instanceMethodPoints.get(0).getAdvice())));
- } else {
- return new
ShardingSphereTransformationPoint<>(methodDescription, new
InstanceMethodAroundInterceptor(pluginLoader.getOrCreateInstance(instanceMethodPoints.get(0).getAdvice())));
- }
- } else {
- Collection<InstanceMethodAroundAdvice> instanceMethodAroundAdvices
= new LinkedList<>();
- boolean isArgsOverride = false;
- for (InstanceMethodPoint point : instanceMethodPoints) {
- if (point.isOverrideArgs()) {
- isArgsOverride = true;
- }
- if (null != point.getAdvice()) {
-
instanceMethodAroundAdvices.add(pluginLoader.getOrCreateInstance(point.getAdvice()));
- }
+ return getSingleInstanceMethodPoint(methodDescription,
instanceMethodPoints.get(0));
+ }
+ return getComposeInstanceMethodPoint(methodDescription,
instanceMethodPoints);
+ }
+
+ private ShardingSphereTransformationPoint<?>
getSingleInstanceMethodPoint(final InDefinedShape methodDescription, final
InstanceMethodPoint instanceMethodPoint) {
+ InstanceMethodAroundAdvice instanceMethodAroundAdvice =
pluginLoader.getOrCreateInstance(instanceMethodPoint.getAdvice());
+ return instanceMethodPoint.isOverrideArgs()
+ ? new ShardingSphereTransformationPoint<>(methodDescription,
new InstanceMethodInterceptorArgsOverride(instanceMethodAroundAdvice))
+ : new ShardingSphereTransformationPoint<>(methodDescription,
new InstanceMethodAroundInterceptor(instanceMethodAroundAdvice));
+ }
+
+ private ShardingSphereTransformationPoint<?>
getComposeInstanceMethodPoint(final InDefinedShape methodDescription, final
Collection<InstanceMethodPoint> instanceMethodPoints) {
+ Collection<InstanceMethodAroundAdvice> instanceMethodAroundAdvices =
new LinkedList<>();
+ boolean isArgsOverride = false;
+ for (InstanceMethodPoint each : instanceMethodPoints) {
+ if (each.isOverrideArgs()) {
+ isArgsOverride = true;
}
- if (isArgsOverride) {
- return new
ShardingSphereTransformationPoint<>(methodDescription, new
ComposeInstanceMethodInterceptorArgsOverride(instanceMethodAroundAdvices));
- } else {
- return new
ShardingSphereTransformationPoint<>(methodDescription, new
ComposeInstanceMethodAroundInterceptor(instanceMethodAroundAdvices));
+ if (null != each.getAdvice()) {
+
instanceMethodAroundAdvices.add(pluginLoader.getOrCreateInstance(each.getAdvice()));
}
}
+ return isArgsOverride ? new
ShardingSphereTransformationPoint<>(methodDescription, new
ComposeInstanceMethodInterceptorArgsOverride(instanceMethodAroundAdvices))
+ : new ShardingSphereTransformationPoint<>(methodDescription,
new ComposeInstanceMethodAroundInterceptor(instanceMethodAroundAdvices));
}
}
diff --git
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeConstructorAdvice.java
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeConstructorAdvice.java
index 0c4846a..6da2a26 100644
---
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeConstructorAdvice.java
+++
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/bytebuddy/transformer/advice/ComposeConstructorAdvice.java
@@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.agent.api.advice.AdviceTargetObject;
import org.apache.shardingsphere.agent.api.advice.ConstructorAdvice;
-import java.util.List;
+import java.util.Collection;
/**
* Compose Constructor advice.
@@ -29,7 +29,7 @@ import java.util.List;
@RequiredArgsConstructor
public final class ComposeConstructorAdvice implements ConstructorAdvice {
- private final List<ConstructorAdvice> advices;
+ private final Collection<ConstructorAdvice> advices;
@Override
public void onConstructor(final AdviceTargetObject target, final Object[]
args) {
diff --git
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/entity/Interceptors.java
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/entity/Interceptors.java
index 605d336..c93baa2 100644
---
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/entity/Interceptors.java
+++
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/entity/Interceptors.java
@@ -20,14 +20,14 @@ package org.apache.shardingsphere.agent.core.entity;
import lombok.Getter;
import lombok.Setter;
-import java.util.LinkedList;
+import java.util.Collection;
/**
- * Interceptor list.
+ * Interceptors.
*/
@Setter
@Getter
public final class Interceptors {
- private LinkedList<Interceptor> interceptors;
+ private Collection<Interceptor> interceptors;
}
diff --git
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeConstructorInterceptor.java
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeConstructorInterceptor.java
index 60aac45..9ecfdf5 100644
---
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeConstructorInterceptor.java
+++
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeConstructorInterceptor.java
@@ -21,11 +21,11 @@ import
org.apache.shardingsphere.agent.api.advice.ConstructorAdvice;
import
org.apache.shardingsphere.agent.core.bytebuddy.transformer.advice.ComposeConstructorAdvice;
import
org.apache.shardingsphere.agent.core.plugin.interceptor.ConstructorInterceptor;
-import java.util.List;
+import java.util.Collection;
public final class ComposeConstructorInterceptor extends
ConstructorInterceptor {
- public ComposeConstructorInterceptor(final List<ConstructorAdvice>
constructorAdvices) {
+ public ComposeConstructorInterceptor(final Collection<ConstructorAdvice>
constructorAdvices) {
super(new ComposeConstructorAdvice(constructorAdvices));
}
}
diff --git
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeInstanceMethodInterceptorArgsOverride.java
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeInstanceMethodInterceptorArgsOverride.java
index 95a239f..2fa50f241 100644
---
a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeInstanceMethodInterceptorArgsOverride.java
+++
b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/interceptor/compose/ComposeInstanceMethodInterceptorArgsOverride.java
@@ -23,7 +23,11 @@ import
org.apache.shardingsphere.agent.core.plugin.interceptor.InstanceMethodInt
import java.util.Collection;
+/**
+ * Compose instance method interceptor args override.
+ */
public class ComposeInstanceMethodInterceptorArgsOverride extends
InstanceMethodInterceptorArgsOverride {
+
public ComposeInstanceMethodInterceptorArgsOverride(final
Collection<InstanceMethodAroundAdvice> instanceMethodAroundAdvices) {
super(new
ComposeInstanceMethodAroundAdvice(instanceMethodAroundAdvices));
}
diff --git
a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
index c904d0e..75c8ace 100644
---
a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
+++
b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/definition/PrometheusPluginDefinitionService.java
@@ -39,25 +39,25 @@ public final class PrometheusPluginDefinitionService
extends AbstractPluginDefin
Yaml yaml = new Yaml();
InputStream in =
this.getClass().getResourceAsStream("/prometheus/interceptors.yaml");
Interceptors interceptors = yaml.loadAs(in, Interceptors.class);
- for (Interceptor interceptor : interceptors.getInterceptors()) {
- if (null == interceptor.getTarget()) {
+ for (Interceptor each : interceptors.getInterceptors()) {
+ if (null == each.getTarget()) {
continue;
}
- PluginInterceptorPoint.Builder builder =
defineInterceptor(interceptor.getTarget());
- if (null != interceptor.getConstructAdvice() &&
!("".equals(interceptor.getConstructAdvice()))) {
-
builder.onConstructor(ElementMatchers.isConstructor()).implement(interceptor.getConstructAdvice()).build();
- log.debug("Init construct: {}",
interceptor.getConstructAdvice());
+ PluginInterceptorPoint.Builder builder =
defineInterceptor(each.getTarget());
+ if (null != each.getConstructAdvice() &&
!("".equals(each.getConstructAdvice()))) {
+
builder.onConstructor(ElementMatchers.isConstructor()).implement(each.getConstructAdvice()).build();
+ log.debug("Init construct: {}", each.getConstructAdvice());
}
- if (null == interceptor.getPoints()) {
+ if (null == each.getPoints()) {
continue;
}
- String[] instancePoints = interceptor
+ String[] instancePoints = each
.getPoints()
.stream()
.filter(i -> "instance".equals(i.getType()))
.map(TargetPoint::getName)
.toArray(String[]::new);
- String[] staticPoints = interceptor
+ String[] staticPoints = each
.getPoints()
.stream()
.filter(i -> "static".equals(i.getType()))
@@ -65,15 +65,15 @@ public final class PrometheusPluginDefinitionService
extends AbstractPluginDefin
.toArray(String[]::new);
if (instancePoints.length > 0) {
builder.aroundInstanceMethod(ElementMatchers.namedOneOf(instancePoints))
- .implement(interceptor.getInstanceAdvice())
+ .implement(each.getInstanceAdvice())
.build();
- log.debug("Init instance: {}",
interceptor.getInstanceAdvice());
+ log.debug("Init instance: {}", each.getInstanceAdvice());
}
if (staticPoints.length > 0) {
builder.aroundClassStaticMethod(ElementMatchers.namedOneOf(staticPoints))
- .implement(interceptor.getStaticAdvice())
+ .implement(each.getStaticAdvice())
.build();
- log.debug("Init static: {}", interceptor.getStaticAdvice());
+ log.debug("Init static: {}", each.getStaticAdvice());
}
}
}