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>