You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2021/01/04 06:50:17 UTC
[shardingsphere] branch master updated: agent code refactor (#8872)
This is an automated email from the ASF dual-hosted git repository.
menghaoran 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 8d7c649 agent code refactor (#8872)
8d7c649 is described below
commit 8d7c649805152f57836a7d19d0fc89002be90961
Author: xiaoyu <54...@qq.com>
AuthorDate: Mon Jan 4 14:49:33 2021 +0800
agent code refactor (#8872)
---
.../agent/bootstrap/ShardingSphereAgent.java | 4 +--
.../agent/core/config/AgentConfiguration.java | 2 +-
.../agent/core/config/PluginConfiguration.java | 2 +-
.../core/config/yaml/YamlAgentConfiguration.java | 2 +-
.../core/config/yaml/YamlPluginConfiguration.java | 6 ++--
.../config/yaml/YamlRemotePluginConfiguration.java | 4 ++-
.../swapper/YamlAgentConfigurationSwapper.java | 2 +-
.../PluginDefinitionNotFoundException.java | 2 +-
.../agent/core/path/AgentPathBuilder.java | 14 ++++----
.../core/plugin/advice/MethodInvocationResult.java | 2 +-
.../plugin/advice/StaticMethodAroundAdvice.java | 8 ++---
.../agent/core/plugin/loader/PluginLoader.java | 18 +++++-----
.../core/plugin/service/PluginBootService.java | 2 +-
.../core/plugin/service/PluginServiceManager.java | 9 ++---
.../core/config/AgentConfigurationLoaderTest.java | 4 +--
.../agent/core/util/ReflectiveUtil.java | 38 +++++++---------------
.../src/test/resources/conf/agent.yaml | 4 +--
.../src/main/resources/conf/agent.yaml | 6 ++--
.../shardingsphere-agent-logging-base/pom.xml | 1 -
.../base/advice/SchemaMetaDataLoaderAdvice.java | 2 +-
.../shardingsphere/agent/metrics/api/BaseTest.java | 4 +--
.../metrics/api/{ => util}/ReflectiveUtil.java | 38 +++++++---------------
.../pom.xml | 1 -
.../service/PrometheusPluginBootService.java | 27 +++++++--------
.../shardingsphere-agent-tracing-jaeger/pom.xml | 1 -
.../shardingsphere-agent-tracing-zipkin/pom.xml | 1 -
26 files changed, 82 insertions(+), 122 deletions(-)
diff --git a/shardingsphere-agent/shardingsphere-agent-bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java b/shardingsphere-agent/shardingsphere-agent-bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java
index 9fa5d04..4debd10 100644
--- a/shardingsphere-agent/shardingsphere-agent-bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java
+++ b/shardingsphere-agent/shardingsphere-agent-bootstrap/src/main/java/org/apache/shardingsphere/agent/bootstrap/ShardingSphereAgent.java
@@ -63,8 +63,8 @@ public final class ShardingSphereAgent {
}
private static void setupPluginBootService(final Map<String, PluginConfiguration> pluginConfigurationMap) {
- PluginServiceManager.startAllService(pluginConfigurationMap);
- Runtime.getRuntime().addShutdownHook(new Thread(PluginServiceManager::closeAllService));
+ PluginServiceManager.startAllServices(pluginConfigurationMap);
+ Runtime.getRuntime().addShutdownHook(new Thread(PluginServiceManager::closeAllServices));
}
private static void setUpAgentBuilder(final Instrumentation instrumentation, final PluginLoader pluginLoader) {
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/AgentConfiguration.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/AgentConfiguration.java
index 5b68eb2..745d645 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/AgentConfiguration.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/AgentConfiguration.java
@@ -35,7 +35,7 @@ public final class AgentConfiguration {
private String metricsType = "Prometheus";
- private Set<String> ignorePlugins = new HashSet<>();
+ private Set<String> ignoredPluginNames = new HashSet<>();
private Map<String, PluginConfiguration> plugins = new HashMap<>();
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/PluginConfiguration.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/PluginConfiguration.java
index 7dfa26f..897ef92 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/PluginConfiguration.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/PluginConfiguration.java
@@ -26,7 +26,7 @@ import lombok.Setter;
*/
@Getter
@Setter
-public class PluginConfiguration extends RemotePluginConfiguration {
+public final class PluginConfiguration extends RemotePluginConfiguration {
private String host = "localhost";
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlAgentConfiguration.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlAgentConfiguration.java
index 21bc20f..fe692e9 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlAgentConfiguration.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlAgentConfiguration.java
@@ -35,7 +35,7 @@ public final class YamlAgentConfiguration {
private String metricsType = "Prometheus";
- private Set<String> ignorePlugins = new HashSet<>();
+ private Set<String> ignoredPluginNames = new HashSet<>();
private Map<String, YamlPluginConfiguration> plugins = new HashMap<>();
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlPluginConfiguration.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlPluginConfiguration.java
index e34286a..73ad460 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlPluginConfiguration.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlPluginConfiguration.java
@@ -26,11 +26,9 @@ import lombok.Setter;
*/
@Getter
@Setter
-public class YamlPluginConfiguration extends YamlRemotePluginConfiguration {
+public final class YamlPluginConfiguration extends YamlRemotePluginConfiguration {
- private String host = "localhost";
-
- private int port = 5775;
+ private String password;
private Properties props = new Properties();
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlRemotePluginConfiguration.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlRemotePluginConfiguration.java
index 700ac0d..96a237b 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlRemotePluginConfiguration.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/YamlRemotePluginConfiguration.java
@@ -27,5 +27,7 @@ import lombok.Setter;
@Setter
public class YamlRemotePluginConfiguration {
- private String password;
+ private String host = "localhost";
+
+ private int port = 5775;
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/swapper/YamlAgentConfigurationSwapper.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/swapper/YamlAgentConfigurationSwapper.java
index 384658c..02f2b8d 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/swapper/YamlAgentConfigurationSwapper.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/config/yaml/swapper/YamlAgentConfigurationSwapper.java
@@ -39,7 +39,7 @@ public final class YamlAgentConfigurationSwapper {
AgentConfiguration result = new AgentConfiguration();
result.setApplicationName(yamlConfig.getApplicationName());
result.setMetricsType(yamlConfig.getMetricsType());
- result.setIgnorePlugins(yamlConfig.getIgnorePlugins());
+ result.setIgnoredPluginNames(yamlConfig.getIgnoredPluginNames());
Map<String, PluginConfiguration> configurationMap = yamlConfig.getPlugins().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, entry -> transform(entry.getValue())));
result.setPlugins(configurationMap);
return result;
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/exception/PluginDefinitionNotFoundException.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/exception/PluginDefinitionNotFoundException.java
index 8ce3639..3c0f977 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/exception/PluginDefinitionNotFoundException.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/exception/PluginDefinitionNotFoundException.java
@@ -21,7 +21,7 @@ package org.apache.shardingsphere.agent.core.exception;
/**
* Plugin definition not found exception.
*/
-public class PluginDefinitionNotFoundException extends RuntimeException {
+public final class PluginDefinitionNotFoundException extends RuntimeException {
/**
* Constructs an exception with formatted error message and arguments.
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/path/AgentPathBuilder.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/path/AgentPathBuilder.java
index 7007dfa..fcd6556 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/path/AgentPathBuilder.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/path/AgentPathBuilder.java
@@ -45,14 +45,14 @@ public final class AgentPathBuilder {
}
private static File buildAgentPath() {
- String classResourcePath = AgentPathBuilder.class.getName().replaceAll("\\.", "/") + ".class";
+ String classResourcePath = String.join("", AgentPathBuilder.class.getName().replaceAll("\\.", "/"), ".class");
URL resource = ClassLoader.getSystemClassLoader().getResource(classResourcePath);
if (resource != null) {
String url = resource.toString();
log.debug("The beacon class location is {}.", url);
- int insideIndex = url.indexOf('!');
- boolean isInJar = insideIndex > -1;
- return isInJar ? getFileInJar(url, insideIndex) : getFileInResource(url, classResourcePath);
+ int existFileInJarIndex = url.indexOf('!');
+ boolean isInJar = existFileInJarIndex > -1;
+ return isInJar ? getFileInJar(url, existFileInJarIndex) : getFileInResource(url, classResourcePath);
}
throw new ShardingSphereAgentException("Can not locate agent jar file.");
}
@@ -63,8 +63,8 @@ public final class AgentPathBuilder {
return new File(classLocation);
}
- private static File getFileInJar(final String url, final int insidePathIndex) {
- String realUrl = url.substring(url.indexOf("file:"), insidePathIndex);
+ private static File getFileInJar(final String url, final int fileInJarIndex) {
+ String realUrl = url.substring(url.indexOf("file:"), fileInJarIndex);
try {
File agentJarFile = new File(new URL(realUrl).toURI());
return agentJarFile.exists() ? agentJarFile.getParentFile() : null;
@@ -75,6 +75,6 @@ public final class AgentPathBuilder {
}
private static File buildAgentPluginPath() {
- return new File(agentPath.getPath() + "/plugins");
+ return new File(String.join("", agentPath.getPath(), "/plugins"));
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodInvocationResult.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodInvocationResult.java
index 1dd6a33..c1ac84b 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodInvocationResult.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodInvocationResult.java
@@ -24,7 +24,7 @@ import lombok.Getter;
* The advice method invocation result.
*/
@Getter
-public class MethodInvocationResult {
+public final class MethodInvocationResult {
private boolean rebased;
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundAdvice.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundAdvice.java
index acda4ac..e6b831c 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundAdvice.java
@@ -28,12 +28,12 @@ public interface StaticMethodAroundAdvice {
/**
* Intercept the target method and weave the method before origin method. It will invoke before the origin calling.
*
- * @param klass the target class
+ * @param clazz the target class
* @param method the target method
* @param args all method arguments
* @param result wrapped class of result to detect whether or not to execute the origin method
*/
- default void beforeMethod(Class<?> klass, Method method, Object[] args, MethodInvocationResult result) {
+ default void beforeMethod(Class<?> clazz, Method method, Object[] args, MethodInvocationResult result) {
}
/**
@@ -50,11 +50,11 @@ public interface StaticMethodAroundAdvice {
/**
* Weaving the method after origin method throwing.
*
- * @param klass the target class
+ * @param clazz the target class
* @param method the target method
* @param args all method arguments
* @param throwable exception from target method
*/
- default void onThrowing(Class<?> klass, Method method, Object[] args, Throwable throwable) {
+ default void onThrowing(Class<?> clazz, Method method, Object[] args, Throwable throwable) {
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/loader/PluginLoader.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/loader/PluginLoader.java
index 44ecadf..da90756 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/loader/PluginLoader.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/loader/PluginLoader.java
@@ -105,7 +105,7 @@ public final class PluginLoader extends ClassLoader implements Closeable {
return;
}
Map<String, PluginInterceptorPoint> pointMap = Maps.newHashMap();
- Set<String> ignorePlugins = AgentObjectPool.INSTANCE.get(AgentConfiguration.class).getIgnorePlugins();
+ Set<String> ignoredPluginNames = AgentObjectPool.INSTANCE.get(AgentConfiguration.class).getIgnoredPluginNames();
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
for (File jarFile : jarFiles) {
outputStream.reset();
@@ -121,7 +121,7 @@ public final class PluginLoader extends ClassLoader implements Closeable {
try {
ByteStreams.copy(jar.getInputStream(jar.getEntry(classNameToPath(entrypoint))), outputStream);
PluginDefinition pluginDefinition = (PluginDefinition) defineClass(entrypoint, outputStream.toByteArray(), 0, outputStream.size()).newInstance();
- if (!ignorePlugins.isEmpty() && ignorePlugins.contains(pluginDefinition.getPluginName())) {
+ if (!ignoredPluginNames.isEmpty() && ignoredPluginNames.contains(pluginDefinition.getPluginName())) {
continue;
}
buildPluginInterceptorPointMap(pluginDefinition, pointMap);
@@ -213,9 +213,9 @@ public final class PluginLoader extends ClassLoader implements Closeable {
ZipEntry entry = each.jarFile.getEntry(path);
if (Objects.nonNull(entry)) {
try {
- int i = name.lastIndexOf('.');
- if (i != -1) {
- String packageName = name.substring(0, i);
+ int index = name.lastIndexOf('.');
+ if (index != -1) {
+ String packageName = name.substring(0, index);
definePackageInternal(packageName, each.jarFile.getManifest());
}
byte[] data = ByteStreams.toByteArray(each.jarFile.getInputStream(entry));
@@ -225,7 +225,7 @@ public final class PluginLoader extends ClassLoader implements Closeable {
}
}
}
- throw new ClassNotFoundException("Class " + name + " not found.");
+ throw new ClassNotFoundException(String.format("Class name is %s not found.", name));
}
@Override
@@ -235,7 +235,7 @@ public final class PluginLoader extends ClassLoader implements Closeable {
JarEntry entry = each.jarFile.getJarEntry(name);
if (Objects.nonNull(entry)) {
try {
- resources.add(new URL("jar:file:" + each.sourcePath.getAbsolutePath() + "!/" + name));
+ resources.add(new URL(String.format("jar:file:%s!/%s", each.sourcePath.getAbsolutePath(), name)));
} catch (final MalformedURLException ignored) {
}
}
@@ -249,7 +249,7 @@ public final class PluginLoader extends ClassLoader implements Closeable {
JarEntry entry = each.jarFile.getJarEntry(name);
if (Objects.nonNull(entry)) {
try {
- return new URL("jar:file:" + each.sourcePath.getAbsolutePath() + "!/" + name);
+ return new URL(String.format("jar:file:%s!/%s", each.sourcePath.getAbsolutePath(), name));
} catch (final MalformedURLException ignored) {
}
}
@@ -269,7 +269,7 @@ public final class PluginLoader extends ClassLoader implements Closeable {
}
private String classNameToPath(final String className) {
- return className.replace(".", "/") + ".class";
+ return String.join("", className.replace(".", "/"), ".class");
}
private void definePackageInternal(final String packageName, final Manifest manifest) {
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/service/PluginBootService.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/service/PluginBootService.java
index b232e49..8ae9e7c 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/service/PluginBootService.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/service/PluginBootService.java
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.agent.core.spi.AgentTypedSPI;
public interface PluginBootService extends AgentTypedSPI, AutoCloseable {
/**
- * Setup plugin boot service, like to configure or to initial.
+ * Start plugin boot service.
*
* @param pluginConfig plugin configuration
*/
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/service/PluginServiceManager.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/service/PluginServiceManager.java
index 89c3357..9912133 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/service/PluginServiceManager.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/service/PluginServiceManager.java
@@ -27,12 +27,13 @@ import org.apache.shardingsphere.agent.core.spi.AgentTypedSPIRegistry;
*/
@Slf4j
public final class PluginServiceManager {
+
/**
- * Start all service.
+ * Start all services.
*
* @param pluginConfigurationMap plugin configurations
*/
- public static void startAllService(final Map<String, PluginConfiguration> pluginConfigurationMap) {
+ public static void startAllServices(final Map<String, PluginConfiguration> pluginConfigurationMap) {
for (Map.Entry<String, PluginConfiguration> entry: pluginConfigurationMap.entrySet()) {
AgentTypedSPIRegistry.getRegisteredServiceOptional(PluginBootService.class, entry.getKey()).ifPresent(pluginBootService -> {
try {
@@ -47,9 +48,9 @@ public final class PluginServiceManager {
}
/**
- * Close all service.
+ * Close all services.
*/
- public static void closeAllService() {
+ public static void closeAllServices() {
AgentTypedSPIRegistry.getAllRegisteredService(PluginBootService.class).forEach(each -> {
try {
each.close();
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/config/AgentConfigurationLoaderTest.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/config/AgentConfigurationLoaderTest.java
index 2dfd9e3..7e566de 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/config/AgentConfigurationLoaderTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/config/AgentConfigurationLoaderTest.java
@@ -25,7 +25,6 @@ import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.net.URL;
-
import static org.junit.Assert.assertNotNull;
public final class AgentConfigurationLoaderTest {
@@ -34,8 +33,7 @@ public final class AgentConfigurationLoaderTest {
@Test
public void assertLoad() throws IOException {
- AgentPathBuilder builder = new AgentPathBuilder();
- ReflectiveUtil.setProperty(builder, "agentPath", new File(getResourceUrl()));
+ ReflectiveUtil.setStaticField(AgentPathBuilder.class, "agentPath", new File(getResourceUrl()));
AgentConfiguration configuration = AgentConfigurationLoader.load();
assertNotNull(configuration);
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/util/ReflectiveUtil.java b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/util/ReflectiveUtil.java
index 0be10d9..bd0ad48 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/util/ReflectiveUtil.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/java/org/apache/shardingsphere/agent/core/util/ReflectiveUtil.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.agent.core.util;
-import com.google.common.base.Preconditions;
+import java.lang.reflect.Modifier;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.SneakyThrows;
@@ -31,36 +31,20 @@ import java.lang.reflect.Field;
public final class ReflectiveUtil {
/**
- * Get field.
- *
- * @param target target
- * @param fieldName field name
- * @return field
- */
- private static Field getField(final Object target, final String fieldName) {
- Class<?> clazz = target.getClass();
- while (clazz != null) {
- try {
- return clazz.getDeclaredField(fieldName);
- } catch (final NoSuchFieldException ignored) {
- }
- clazz = clazz.getSuperclass();
- }
- return null;
- }
-
- /**
- * Set value to specified field.
- *
+ * Set value to static field.
+ *
* @param target target
* @param fieldName field name
* @param value value
*/
@SneakyThrows(ReflectiveOperationException.class)
- public static void setProperty(final Object target, final String fieldName, final Object value) {
- Field field = getField(target, fieldName);
- Preconditions.checkNotNull(field);
- field.setAccessible(true);
- field.set(target, value);
+ public static void setStaticField(final Class<?> target, final String fieldName, final Object value) {
+ Field[] fields = target.getDeclaredFields();
+ for (Field each : fields) {
+ if (Modifier.isStatic(each.getModifiers()) && each.getName().equalsIgnoreCase(fieldName)) {
+ each.setAccessible(true);
+ each.set(null, value);
+ }
+ }
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/test/resources/conf/agent.yaml b/shardingsphere-agent/shardingsphere-agent-core/src/test/resources/conf/agent.yaml
index f83a13c..1e99774 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/test/resources/conf/agent.yaml
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/test/resources/conf/agent.yaml
@@ -17,7 +17,7 @@
applicationName: shardingsphere-agent
metricsType : Prometheus
-ignorePlugins:
+ignoredPluginNames:
- test
plugins:
@@ -25,7 +25,7 @@ plugins:
host: "localhost"
port: 9090
props:
- jvmInformationCollectorEnabled : "true"
+ JVM_INFORMATION_COLLECTOR_ENABLED : "true"
Jaeger:
host: "localhost"
port: 5775
diff --git a/shardingsphere-agent/shardingsphere-agent-distribution/src/main/resources/conf/agent.yaml b/shardingsphere-agent/shardingsphere-agent-distribution/src/main/resources/conf/agent.yaml
index f83a13c..c71353c 100644
--- a/shardingsphere-agent/shardingsphere-agent-distribution/src/main/resources/conf/agent.yaml
+++ b/shardingsphere-agent/shardingsphere-agent-distribution/src/main/resources/conf/agent.yaml
@@ -17,7 +17,7 @@
applicationName: shardingsphere-agent
metricsType : Prometheus
-ignorePlugins:
+ignoredPluginNames:
- test
plugins:
@@ -25,7 +25,7 @@ plugins:
host: "localhost"
port: 9090
props:
- jvmInformationCollectorEnabled : "true"
+ JVM_INFORMATION_COLLECTOR_ENABLED : "true"
Jaeger:
host: "localhost"
port: 5775
@@ -38,4 +38,4 @@ plugins:
host: "localhost"
port: 15775
props:
- name: "Zipkin"
+ NAME: "Zipkin"
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/pom.xml b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/pom.xml
index 6021a6b..75bce1d 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/pom.xml
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-logging/shardingsphere-agent-logging-base/pom.xml
@@ -26,7 +26,6 @@
<version>5.0.0-RC1-SNAPSHOT</version>
</parent>
<artifactId>shardingsphere-agent-logging-base</artifactId>
- <packaging>jar</packaging>
<name>${project.artifactId}</name>
<properties>
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 f0cc91f..8cdbd35 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
@@ -31,7 +31,7 @@ public final class SchemaMetaDataLoaderAdvice implements StaticMethodAroundAdvic
@Override
@SuppressWarnings("unchecked")
- public void afterMethod(final Class<?> klass, final Method method, final Object[] args, final MethodInvocationResult result) {
+ 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());
}
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/BaseTest.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/BaseTest.java
index 59918ea..a493731 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/BaseTest.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/BaseTest.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.agent.core.config.AgentConfiguration;
import org.apache.shardingsphere.agent.core.config.loader.AgentConfigurationLoader;
import org.apache.shardingsphere.agent.core.cache.AgentObjectPool;
import org.apache.shardingsphere.agent.core.path.AgentPathBuilder;
+import org.apache.shardingsphere.agent.metrics.api.util.ReflectiveUtil;
import org.junit.Before;
public class BaseTest {
@@ -32,8 +33,7 @@ public class BaseTest {
@Before
public void assertLoad() throws IOException {
- AgentPathBuilder builder = new AgentPathBuilder();
- ReflectiveUtil.setProperty(builder, "agentPath", new File(getResourceUrl()));
+ ReflectiveUtil.setStaticField(AgentPathBuilder.class, "agentPath", new File(getResourceUrl()));
AgentConfiguration configuration = AgentConfigurationLoader.load();
AgentObjectPool.INSTANCE.put(configuration);
}
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/ReflectiveUtil.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/util/ReflectiveUtil.java
similarity index 58%
rename from shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/ReflectiveUtil.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/util/ReflectiveUtil.java
index 6bd8c59..f7296ac 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/ReflectiveUtil.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/test/java/org/apache/shardingsphere/agent/metrics/api/util/ReflectiveUtil.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.agent.metrics.api;
+package org.apache.shardingsphere.agent.metrics.api.util;
-import com.google.common.base.Preconditions;
import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.SneakyThrows;
@@ -30,34 +30,20 @@ import lombok.SneakyThrows;
public final class ReflectiveUtil {
/**
- * Get field.
- * @param target target
- * @param fieldName field name
- * @return field
- */
- private static Field getField(final Object target, final String fieldName) {
- Class<?> clazz = target.getClass();
- while (clazz != null) {
- try {
- return clazz.getDeclaredField(fieldName);
- } catch (final NoSuchFieldException ignored) {
- }
- clazz = clazz.getSuperclass();
- }
- return null;
- }
-
- /**
- * Set value to specified field.
+ * Set value to static field.
+ *
* @param target target
* @param fieldName field name
* @param value value
*/
@SneakyThrows(ReflectiveOperationException.class)
- public static void setProperty(final Object target, final String fieldName, final Object value) {
- Field field = getField(target, fieldName);
- Preconditions.checkNotNull(field);
- field.setAccessible(true);
- field.set(target, value);
+ public static void setStaticField(final Class<?> target, final String fieldName, final Object value) {
+ Field[] fields = target.getDeclaredFields();
+ for (Field each : fields) {
+ if (Modifier.isStatic(each.getModifiers()) && each.getName().equalsIgnoreCase(fieldName)) {
+ each.setAccessible(true);
+ each.set(null, value);
+ }
+ }
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/pom.xml b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/pom.xml
index 7325475..ef1e45b 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/pom.xml
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/pom.xml
@@ -26,7 +26,6 @@
<version>5.0.0-RC1-SNAPSHOT</version>
</parent>
<artifactId>shardingsphere-agent-metrics-prometheus</artifactId>
- <packaging>jar</packaging>
<name>${project.artifactId}</name>
<properties>
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/service/PrometheusPluginBootService.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootService.java
index 7f0b95d..4f688db 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootService.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/service/PrometheusPluginBootService.java
@@ -32,14 +32,12 @@ import java.net.InetSocketAddress;
* Prometheus plugin boot service.
*/
@Slf4j
-public class PrometheusPluginBootService implements PluginBootService {
+public final class PrometheusPluginBootService implements PluginBootService {
private HTTPServer httpServer;
@Override
public void start(final PluginConfiguration pluginConfig) {
- boolean enabled = Boolean.parseBoolean(pluginConfig.getProps().getProperty("jvmInformationCollectorEnabled"));
- registerJvm(enabled);
startServer(pluginConfig);
}
@@ -55,22 +53,12 @@ public class PrometheusPluginBootService implements PluginBootService {
return "Prometheus";
}
- private void registerJvm(final boolean enabled) {
- if (enabled) {
- new BuildInfoCollector().register();
- DefaultExports.initialize();
- }
- }
-
private void startServer(final PluginConfiguration configuration) {
+ boolean enabled = Boolean.parseBoolean(configuration.getProps().getProperty("JVM_INFORMATION_COLLECTOR_ENABLED"));
+ registerJvm(enabled);
int port = configuration.getPort();
String host = configuration.getHost();
- InetSocketAddress inetSocketAddress;
- if ("".equals(host) || null == host) {
- inetSocketAddress = new InetSocketAddress(port);
- } else {
- inetSocketAddress = new InetSocketAddress(host, port);
- }
+ InetSocketAddress inetSocketAddress = new InetSocketAddress(host, port);
try {
httpServer = new HTTPServer(inetSocketAddress, CollectorRegistry.defaultRegistry, true);
log.info(String.format("Prometheus metrics HTTP server `%s:%s` start success.", inetSocketAddress.getHostString(), inetSocketAddress.getPort()));
@@ -78,4 +66,11 @@ public class PrometheusPluginBootService implements PluginBootService {
log.error("Prometheus metrics HTTP server start fail", ex);
}
}
+
+ private void registerJvm(final boolean enabled) {
+ if (enabled) {
+ new BuildInfoCollector().register();
+ DefaultExports.initialize();
+ }
+ }
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/pom.xml b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/pom.xml
index 1db9076..37d59bd 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/pom.xml
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-jaeger/pom.xml
@@ -26,7 +26,6 @@
<version>5.0.0-RC1-SNAPSHOT</version>
</parent>
<artifactId>shardingsphere-agent-tracing-jaeger</artifactId>
- <packaging>jar</packaging>
<name>${project.artifactId}</name>
<properties>
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/pom.xml b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/pom.xml
index 4a617e8..9e8b524 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/pom.xml
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-tracing/shardingsphere-agent-tracing-zipkin/pom.xml
@@ -26,7 +26,6 @@
<version>5.0.0-RC1-SNAPSHOT</version>
</parent>
<artifactId>shardingsphere-agent-tracing-zipkin</artifactId>
- <packaging>jar</packaging>
<name>${project.artifactId}</name>
<properties>