You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2023/09/19 12:50:05 UTC

[servicecomb-java-chassis] 09/12: [SCB-2008]change DynamicPropertyFactory to Environment: foundation vertx

This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit fd5cdff1ec2f31caf8689bd899a9477f85588e93
Author: liubao <bi...@qq.com>
AuthorDate: Mon Sep 18 17:04:04 2023 +0800

    [SCB-2008]change DynamicPropertyFactory to Environment: foundation vertx
---
 .../common/accessLog/AccessLogConfig.java          |  74 +++++++-------
 .../common/accessLog/core/AccessLogConfigTest.java |  42 --------
 .../servicecomb/common/rest/UploadConfig.java      |   2 +-
 .../core/governance/GovernanceConfiguration.java   |   2 +-
 .../core/transport/TestAbstractTransport.java      |   8 ++
 .../foundation/common}/LegacyPropertyFactory.java  |   6 +-
 .../config/FoundationConfigConfiguration.java      |   1 +
 .../config/ServiceRegistryCommonConfig.java        |  40 --------
 .../foundation/vertx/AddressResolverConfig.java    |  57 ++++-------
 .../foundation/vertx/SharedVertxFactory.java       |   5 +-
 .../servicecomb/foundation/vertx/VertxUtils.java   |   9 +-
 .../vertx/TestAddressResolverConfig.java           | 106 ---------------------
 .../foundation/vertx/TestSharedVertxFactory.java   |  18 ++++
 .../foundation/vertx/TestVertxUtils.java           |  29 ++++--
 .../servicecomb/loadbalance/Configuration.java     |   2 +-
 .../servicecomb/loadbalance/TestConfiguration.java |   2 +-
 .../loadbalance/TestExtensionsManager.java         |   2 +-
 .../internal/TestInspectorBootListener.java        |  42 ++++----
 .../inspector/internal/TestInspectorImpl.java      |   2 +-
 .../metrics/core/TestVertxMetersInitializer.java   |   7 ++
 .../extension/ProducerInvokeExtension.java         |   2 +-
 .../invocation/validator/ParameterValidator.java   |  30 +++---
 .../transport/common/TransportConfigUtils.java     |   2 +-
 .../transport/common/TestTransportConfigUtils.java |   2 +-
 .../transport/highway/HighwayClient.java           |   2 +-
 .../transport/highway/HighwayConfig.java           |   2 +-
 .../transport/highway/HighwayServer.java           |   2 +-
 .../highway/HighwayServerCodecFilterTest.java      |  36 ++++---
 .../transport/highway/TestHighwayClient.java       |   2 +-
 .../transport/highway/TestHighwayTransport.java    |  15 ++-
 .../rest/client/TransportClientConfig.java         |   2 +-
 .../transport/rest/servlet/ServletConfig.java      |   2 +-
 .../transport/rest/servlet/TestRestServlet.java    |  29 ++++--
 .../rest/servlet/TestServletRestTransport.java     |  12 ++-
 .../transport/rest/servlet/TestServletUtils.java   |   3 +-
 .../transport/rest/vertx/RestServerVerticle.java   |   2 +-
 .../transport/rest/vertx/TransportConfig.java      |   2 +-
 .../transport/rest/vertx/VertxRestDispatcher.java  |   2 +-
 .../vertx/TestAbstractVertxHttpDispatcher.java     |   2 +-
 .../rest/vertx/TestRestServerVerticle.java         |  22 ++++-
 .../rest/vertx/TestVertxRestDispatcher.java        |   2 +-
 .../rest/vertx/TestVertxRestTransport.java         |  10 +-
 42 files changed, 255 insertions(+), 386 deletions(-)

diff --git a/common/common-access-log/src/main/java/org/apache/servicecomb/common/accessLog/AccessLogConfig.java b/common/common-access-log/src/main/java/org/apache/servicecomb/common/accessLog/AccessLogConfig.java
index ce2dc5885..e2f204b3c 100644
--- a/common/common-access-log/src/main/java/org/apache/servicecomb/common/accessLog/AccessLogConfig.java
+++ b/common/common-access-log/src/main/java/org/apache/servicecomb/common/accessLog/AccessLogConfig.java
@@ -17,64 +17,60 @@
 
 package org.apache.servicecomb.common.accessLog;
 
-import com.netflix.config.DynamicPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 
 public class AccessLogConfig {
 
-    private static final String SERVER_BASE = "servicecomb.accesslog.";
+  public static final String SERVER_BASE = "servicecomb.accesslog.";
 
-    private static final String CLIENT_BASE = "servicecomb.accesslog.request.";
+  public static final String CLIENT_BASE = "servicecomb.accesslog.request.";
 
-    private static final String SERVER_LOG_ENABLED = SERVER_BASE + "enabled";
+  public static final String SERVER_LOG_ENABLED = SERVER_BASE + "enabled";
 
-    private static final String SERVER_LOG_PATTERN = SERVER_BASE + "pattern";
+  public static final String SERVER_LOG_PATTERN = SERVER_BASE + "pattern";
 
-    private static final String CLIENT_LOG_ENABLED = CLIENT_BASE + "enabled";
+  public static final String CLIENT_LOG_ENABLED = CLIENT_BASE + "enabled";
 
-    private static final String CLIENT_LOG_PATTERN = CLIENT_BASE + "pattern";
+  public static final String CLIENT_LOG_PATTERN = CLIENT_BASE + "pattern";
 
-    private static final String DEFAULT_SERVER_PATTERN = "%h - - %t %r %s %B %D";
+  public static final String DEFAULT_SERVER_PATTERN = "%h - - %t %r %s %B %D";
 
-    private static final String DEFAULT_CLIENT_PATTERN = "%h %SCB-transport - - %t %r %s %D";
+  public static final String DEFAULT_CLIENT_PATTERN = "%h %SCB-transport - - %t %r %s %D";
 
-    public static final AccessLogConfig INSTANCE = new AccessLogConfig();
+  public static final AccessLogConfig INSTANCE = new AccessLogConfig();
 
-    private boolean serverLogEnabled;
+  private boolean serverLogEnabled;
 
-    private boolean clientLogEnabled;
+  private boolean clientLogEnabled;
 
-    private String serverLogPattern;
+  private String serverLogPattern;
 
-    private String clientLogPattern;
+  private String clientLogPattern;
 
-    private AccessLogConfig() {
-        init();
-    }
+  private AccessLogConfig() {
+    init();
+  }
 
-    private void init() {
-        clientLogEnabled = DynamicPropertyFactory
-            .getInstance().getBooleanProperty(CLIENT_LOG_ENABLED, false).get();
-        serverLogEnabled = DynamicPropertyFactory
-            .getInstance().getBooleanProperty(SERVER_LOG_ENABLED, false).get();
-        clientLogPattern = DynamicPropertyFactory
-          .getInstance().getStringProperty(CLIENT_LOG_PATTERN, DEFAULT_CLIENT_PATTERN).get();
-        serverLogPattern = DynamicPropertyFactory
-            .getInstance().getStringProperty(SERVER_LOG_PATTERN, DEFAULT_SERVER_PATTERN).get();
-    }
+  private void init() {
+    clientLogEnabled = LegacyPropertyFactory.getBooleanProperty(CLIENT_LOG_ENABLED, false);
+    serverLogEnabled = LegacyPropertyFactory.getBooleanProperty(SERVER_LOG_ENABLED, false);
+    clientLogPattern = LegacyPropertyFactory.getStringProperty(CLIENT_LOG_PATTERN, DEFAULT_CLIENT_PATTERN);
+    serverLogPattern = LegacyPropertyFactory.getStringProperty(SERVER_LOG_PATTERN, DEFAULT_SERVER_PATTERN);
+  }
 
-    public boolean isServerLogEnabled() {
-        return serverLogEnabled;
-    }
+  public boolean isServerLogEnabled() {
+    return serverLogEnabled;
+  }
 
-    public boolean isClientLogEnabled() {
-        return clientLogEnabled;
-    }
+  public boolean isClientLogEnabled() {
+    return clientLogEnabled;
+  }
 
-    public String getServerLogPattern() {
-        return serverLogPattern;
-    }
+  public String getServerLogPattern() {
+    return serverLogPattern;
+  }
 
-    public String getClientLogPattern() {
-        return clientLogPattern;
-    }
+  public String getClientLogPattern() {
+    return clientLogPattern;
+  }
 }
diff --git a/common/common-access-log/src/test/java/org/apache/servicecomb/common/accessLog/core/AccessLogConfigTest.java b/common/common-access-log/src/test/java/org/apache/servicecomb/common/accessLog/core/AccessLogConfigTest.java
deleted file mode 100644
index 964cc6d0e..000000000
--- a/common/common-access-log/src/test/java/org/apache/servicecomb/common/accessLog/core/AccessLogConfigTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.common.accessLog.core;
-
-import org.apache.servicecomb.common.accessLog.AccessLogConfig;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-
-public class AccessLogConfigTest {
-
-  @Test
-  public void getAccessLogEnabled() {
-    boolean serverEnabled = AccessLogConfig.INSTANCE.isServerLogEnabled();
-    boolean clientEnabled = AccessLogConfig.INSTANCE.isClientLogEnabled();
-    Assertions.assertFalse(serverEnabled);
-    Assertions.assertFalse(clientEnabled);
-  }
-
-  @Test
-  public void getAccessLogPattern() {
-    String clientLogPattern = AccessLogConfig.INSTANCE.getClientLogPattern();
-    String serverLogPattern = AccessLogConfig.INSTANCE.getServerLogPattern();
-
-    Assertions.assertEquals("%h - - %t %r %s %B %D", serverLogPattern);
-    Assertions.assertEquals("%h %SCB-transport - - %t %r %s %D", clientLogPattern);
-  }
-}
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/UploadConfig.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/UploadConfig.java
index fb89bf91c..c885dc3f1 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/UploadConfig.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/UploadConfig.java
@@ -16,7 +16,7 @@
  */
 package org.apache.servicecomb.common.rest;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 
 import jakarta.servlet.MultipartConfigElement;
 
diff --git a/core/src/main/java/org/apache/servicecomb/core/governance/GovernanceConfiguration.java b/core/src/main/java/org/apache/servicecomb/core/governance/GovernanceConfiguration.java
index 37ca9ce0c..e0e65b9ee 100644
--- a/core/src/main/java/org/apache/servicecomb/core/governance/GovernanceConfiguration.java
+++ b/core/src/main/java/org/apache/servicecomb/core/governance/GovernanceConfiguration.java
@@ -16,7 +16,7 @@
  */
 package org.apache.servicecomb.core.governance;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 
 public class GovernanceConfiguration {
   public static final String ROOT = "servicecomb.loadbalance.";
diff --git a/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java b/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
index 640134367..3a91b355e 100644
--- a/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
+++ b/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
@@ -24,6 +24,7 @@ import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
@@ -31,6 +32,8 @@ import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 import org.springframework.core.env.Environment;
 
+import io.vertx.core.file.impl.FileResolverImpl;
+
 public class TestAbstractTransport {
   Environment environment = Mockito.mock(Environment.class);
 
@@ -51,6 +54,11 @@ public class TestAbstractTransport {
   public void setUp() {
     Mockito.when(environment.getProperty(PUBLISH_ADDRESS, String.class, "")).thenReturn("");
     Mockito.when(environment.getProperty("servicecomb.my.publishPort", int.class, 0)).thenReturn(0);
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+            .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
+    LegacyPropertyFactory.setEnvironment(environment);
   }
 
   @Test
diff --git a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/LegacyPropertyFactory.java b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
similarity index 91%
rename from foundations/foundation-config/src/main/java/org/apache/servicecomb/config/LegacyPropertyFactory.java
rename to foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
index f01f8736b..ffe426b50 100644
--- a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/LegacyPropertyFactory.java
+++ b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.config;
+package org.apache.servicecomb.foundation.common;
 
 import org.springframework.core.env.Environment;
 
@@ -37,6 +37,10 @@ public class LegacyPropertyFactory {
     LegacyPropertyFactory.environment = environment;
   }
 
+  public static <T> T getProperty(String key, Class<T> targetType, T defaultValue) {
+    return environment.getProperty(key, targetType, defaultValue);
+  }
+
   public static boolean getBooleanProperty(String key, boolean defaultValue) {
     return environment.getProperty(key, boolean.class, defaultValue);
   }
diff --git a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/FoundationConfigConfiguration.java b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/FoundationConfigConfiguration.java
index 00e302bf5..9e521b091 100644
--- a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/FoundationConfigConfiguration.java
+++ b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/FoundationConfigConfiguration.java
@@ -20,6 +20,7 @@ import org.apache.servicecomb.config.inject.InjectBeanPostProcessor;
 import org.apache.servicecomb.config.priority.ConfigObjectFactory;
 import org.apache.servicecomb.config.priority.PriorityPropertyFactory;
 import org.apache.servicecomb.config.priority.PriorityPropertyManager;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java
deleted file mode 100644
index f307164c7..000000000
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.registry.config;
-
-import com.netflix.config.DynamicPropertyFactory;
-
-public class ServiceRegistryCommonConfig {
-  private static final String REGISTRY_EMPTY_PROTECTION = "servicecomb.service.registry.instance.empty.protection";
-
-  private static final String REGISTRY_FILTER_UP_INSTANCES = "servicecomb.service.registry.instance.useUpInstancesOnly";
-
-  public static boolean isEmptyInstanceProtectionEnabled() {
-    return
-        DynamicPropertyFactory.getInstance()
-            .getBooleanProperty(REGISTRY_EMPTY_PROTECTION,
-                true).get();
-  }
-
-  public static boolean useUpInstancesOnly() {
-    return
-        DynamicPropertyFactory.getInstance()
-            .getBooleanProperty(REGISTRY_FILTER_UP_INSTANCES,
-                false).get();
-  }
-}
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/AddressResolverConfig.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/AddressResolverConfig.java
index 2f0f14a23..c15ec0d0b 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/AddressResolverConfig.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/AddressResolverConfig.java
@@ -21,11 +21,10 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.commons.configuration.Configuration;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.netflix.config.DynamicPropertyFactory;
-
 import io.vertx.core.dns.AddressResolverOptions;
 
 public class AddressResolverConfig {
@@ -50,71 +49,66 @@ public class AddressResolverConfig {
   public static AddressResolverOptions getAddressResover(String tag, Configuration configSource) {
     AddressResolverOptions addressResolverOptions = new AddressResolverOptions();
     addressResolverOptions
-        .setServers(getStringListProperty(configSource,
+        .setServers(getStringListProperty(
             AddressResolverOptions.DEFAULT_SERVERS,
             "addressResolver." + tag + ".servers",
             "addressResolver.servers"));
     addressResolverOptions
-        .setOptResourceEnabled(getBooleanProperty(configSource,
+        .setOptResourceEnabled(getBooleanProperty(
             AddressResolverOptions.DEFAULT_OPT_RESOURCE_ENABLED,
             "addressResolver." + tag + ".optResourceEnabled",
             "addressResolver.optResourceEnabled"));
     addressResolverOptions
-        .setCacheMinTimeToLive(getPositiveIntProperty(configSource,
+        .setCacheMinTimeToLive(getPositiveIntProperty(
             AddressResolverOptions.DEFAULT_CACHE_MIN_TIME_TO_LIVE,
             "addressResolver." + tag + ".cacheMinTimeToLive",
             "addressResolver.cacheMinTimeToLive"));
     addressResolverOptions
-        .setCacheMaxTimeToLive(getPositiveIntProperty(configSource,
+        .setCacheMaxTimeToLive(getPositiveIntProperty(
             AddressResolverOptions.DEFAULT_CACHE_MAX_TIME_TO_LIVE,
             "addressResolver." + tag + ".cacheMaxTimeToLive",
             "addressResolver.cacheMaxTimeToLive"));
     addressResolverOptions
-        .setCacheNegativeTimeToLive(getPositiveIntProperty(configSource,
+        .setCacheNegativeTimeToLive(getPositiveIntProperty(
             AddressResolverOptions.DEFAULT_CACHE_NEGATIVE_TIME_TO_LIVE,
             "addressResolver." + tag + ".cacheNegativeTimeToLive",
             "addressResolver.cacheNegativeTimeToLive"));
     addressResolverOptions
-        .setQueryTimeout(getPositiveIntProperty(configSource,
+        .setQueryTimeout(getPositiveIntProperty(
             AddressResolverOptions.DEFAULT_QUERY_TIMEOUT,
             "addressResolver." + tag + ".queryTimeout",
             "addressResolver.queryTimeout"));
     addressResolverOptions
-        .setMaxQueries(getPositiveIntProperty(configSource,
+        .setMaxQueries(getPositiveIntProperty(
             AddressResolverOptions.DEFAULT_MAX_QUERIES,
             "addressResolver." + tag + ".maxQueries",
             "addressResolver.maxQueries"));
     addressResolverOptions
-        .setRdFlag(getBooleanProperty(configSource,
+        .setRdFlag(getBooleanProperty(
             AddressResolverOptions.DEFAULT_RD_FLAG,
             "addressResolver." + tag + ".rdFlag",
             "addressResolver.rdFlag"));
     addressResolverOptions
-        .setSearchDomains(getStringListProperty(configSource,
+        .setSearchDomains(getStringListProperty(
             AddressResolverOptions.DEFAULT_SEACH_DOMAINS,
             "addressResolver." + tag + ".searchDomains",
             "addressResolver.searchDomains"));
     addressResolverOptions
-        .setNdots(getPositiveIntProperty(configSource,
+        .setNdots(getPositiveIntProperty(
             AddressResolverOptions.DEFAULT_NDOTS,
             "addressResolver." + tag + ".ndots",
             "addressResolver.ndots"));
     addressResolverOptions
-        .setRotateServers(getBooleanProperty(configSource,
+        .setRotateServers(getBooleanProperty(
             AddressResolverOptions.DEFAULT_ROTATE_SERVERS,
             "addressResolver." + tag + ".rotateServers",
             "addressResolver.rotateServers"));
     return addressResolverOptions;
   }
 
-  private static List<String> getStringListProperty(Configuration configSource,
-      List<String> defaultValue, String... keys) {
-    configSource = guardConfigSource(configSource);
-    if (configSource == null) {
-      return defaultValue;
-    }
+  private static List<String> getStringListProperty(List<String> defaultValue, String... keys) {
     for (String key : keys) {
-      String[] vals = configSource.getStringArray(key);
+      String[] vals = LegacyPropertyFactory.getProperty(key, String[].class, null);
       if (vals != null && vals.length > 0) {
         return Arrays.asList(vals);
       }
@@ -122,13 +116,9 @@ public class AddressResolverConfig {
     return defaultValue;
   }
 
-  private static int getPositiveIntProperty(Configuration configSource, int defaultValue, String... keys) {
-    configSource = guardConfigSource(configSource);
-    if (configSource == null) {
-      return defaultValue;
-    }
+  private static int getPositiveIntProperty(int defaultValue, String... keys) {
     for (String key : keys) {
-      Integer val = configSource.getInteger(key, null);
+      Integer val = LegacyPropertyFactory.getProperty(key, Integer.class, null);
       if (val != null && val <= 0) {
         LOGGER.warn("Address resover key:{}'s value:{} is not positive, please check!", key, val);
         continue;
@@ -140,25 +130,14 @@ public class AddressResolverConfig {
     return defaultValue;
   }
 
-  private static boolean getBooleanProperty(Configuration configSource, boolean defaultValue,
+  private static boolean getBooleanProperty(boolean defaultValue,
       String... keys) {
-    configSource = guardConfigSource(configSource);
-    if (configSource == null) {
-      return defaultValue;
-    }
     for (String key : keys) {
-      Boolean val = configSource.getBoolean(key, null);
+      Boolean val = LegacyPropertyFactory.getProperty(key, Boolean.class, null);
       if (val != null) {
         return val;
       }
     }
     return defaultValue;
   }
-
-  private static Configuration guardConfigSource(Configuration configSource) {
-    if (configSource == null && DynamicPropertyFactory.getBackingConfigurationSource() != null) {
-      configSource = (Configuration) DynamicPropertyFactory.getBackingConfigurationSource();
-    }
-    return configSource;
-  }
 }
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/SharedVertxFactory.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/SharedVertxFactory.java
index 5e35641a2..d31ccecca 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/SharedVertxFactory.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/SharedVertxFactory.java
@@ -16,11 +16,10 @@
  */
 package org.apache.servicecomb.foundation.vertx;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.vertx.metrics.DefaultVertxMetricsFactory;
 import org.apache.servicecomb.foundation.vertx.metrics.MetricsOptionsEx;
 
-import com.netflix.config.DynamicPropertyFactory;
-
 import io.vertx.core.Vertx;
 import io.vertx.core.VertxOptions;
 import io.vertx.core.shareddata.Shareable;
@@ -39,7 +38,7 @@ public class SharedVertxFactory {
     }
 
     private static int readEventLoopPoolSize(String key) {
-      int count = DynamicPropertyFactory.getInstance().getIntProperty(key, -1).get();
+      int count = LegacyPropertyFactory.getIntProperty(key, -1);
       if (count > 0) {
         return count;
       }
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
index a3f7efa42..787a452f6 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
@@ -25,9 +25,9 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-import io.vertx.core.file.impl.FileResolverImpl;
 import org.apache.commons.io.IOUtils;
 import org.apache.servicecomb.foundation.common.Holder;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
 import org.apache.servicecomb.foundation.vertx.client.ClientPoolManager;
 import org.apache.servicecomb.foundation.vertx.client.ClientVerticle;
@@ -35,8 +35,6 @@ import org.apache.servicecomb.foundation.vertx.stream.BufferInputStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.netflix.config.DynamicPropertyFactory;
-
 import io.netty.buffer.ByteBuf;
 import io.vertx.core.AbstractVerticle;
 import io.vertx.core.DeploymentOptions;
@@ -44,6 +42,7 @@ import io.vertx.core.Verticle;
 import io.vertx.core.Vertx;
 import io.vertx.core.VertxOptions;
 import io.vertx.core.buffer.Buffer;
+import io.vertx.core.file.impl.FileResolverImpl;
 import io.vertx.core.impl.VertxBuilder;
 import io.vertx.core.impl.VertxThread;
 import io.vertx.core.spi.VertxThreadFactory;
@@ -137,8 +136,8 @@ public final class VertxUtils {
    * 配置vertx的文件缓存功能,默认关闭
    */
   private static void configureVertxFileCaching(VertxOptions vertxOptions) {
-    boolean disableFileCPResolving = DynamicPropertyFactory.getInstance()
-        .getBooleanProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, true).get();
+    boolean disableFileCPResolving = LegacyPropertyFactory
+        .getBooleanProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, true);
     vertxOptions.getFileSystemOptions().setClassPathResolvingEnabled(!disableFileCPResolving);
   }
 
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestAddressResolverConfig.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestAddressResolverConfig.java
deleted file mode 100644
index a8ce06a33..000000000
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestAddressResolverConfig.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.vertx;
-
-import java.util.Arrays;
-import java.util.Collections;
-
-import org.apache.commons.configuration.Configuration;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-
-import io.vertx.core.dns.AddressResolverOptions;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-
-public class TestAddressResolverConfig {
-
-  @BeforeAll
-  public static void classSetup() {
-    ArchaiusUtils.resetConfig();
-  }
-
-  @AfterAll
-  public static void classTeardown() {
-    ArchaiusUtils.resetConfig();
-  }
-
-  @Test
-  public void testGetResolverFromResource() {
-    Configuration finalConfig = Mockito.mock(Configuration.class);
-    ArchaiusUtils.resetConfig();
-    ArchaiusUtils.setProperty("addressResolver.servers", "8.8.8.8,8.8.4.4");
-
-    Mockito.when(finalConfig.getStringArray("addressResolver.servers")).thenReturn(new String[] {"6.6.6.6", "6.6.4.4"});
-    Mockito.when(finalConfig.getStringArray("addressResolver.searchDomains")).thenReturn(new String[] {"default.svc.local.cluster"});
-    Mockito.when(finalConfig.getInteger("addressResolver.queryTimeout", null)).thenReturn(2000);
-    Mockito.when(finalConfig.getInteger("addressResolver.maxQueries", null)).thenReturn(-2);
-
-    AddressResolverOptions resolverOptions = AddressResolverConfig.getAddressResover("test", finalConfig);
-    Assertions.assertEquals(Arrays.asList("6.6.6.6", "6.6.4.4"), resolverOptions.getServers());
-    Assertions.assertEquals(Collections.singletonList("default.svc.local.cluster"), resolverOptions.getSearchDomains());
-    Assertions.assertEquals(resolverOptions.getQueryTimeout(),
-        2000);
-    Assertions.assertNotEquals(resolverOptions.getMaxQueries(),
-        -2);
-  }
-
-  @Test
-  public void testGetResolver() {
-    ArchaiusUtils.resetConfig();
-    ArchaiusUtils.setProperty("addressResolver.servers", "8.8.8.8,8.8.4.4");
-    ArchaiusUtils.setProperty("addressResolver.optResourceEnabled", true);
-    ArchaiusUtils.setProperty("addressResolver.cacheMinTimeToLive", 0);
-    ArchaiusUtils.setProperty("addressResolver.cacheMaxTimeToLive", 10000);
-    ArchaiusUtils.setProperty("addressResolver.cacheNegativeTimeToLive", 0);
-    ArchaiusUtils.setProperty("addressResolver.queryTimeout", 1000);
-    ArchaiusUtils.setProperty("addressResolver.maxQueries", 3);
-    ArchaiusUtils.setProperty("addressResolver.test.maxQueries", 3);
-    ArchaiusUtils.setProperty("addressResolver.rdFlag", true);
-    ArchaiusUtils.setProperty("addressResolver.searchDomains",
-        "default.svc.local.cluster,svc.local.cluster,local.cluster");
-    ArchaiusUtils.setProperty("addressResolver.test.searchDomains",
-        "test.svc.local.cluster,svc.local.cluster,local.cluster");
-    ArchaiusUtils.setProperty("addressResolver.ndots", 3);
-    ArchaiusUtils.setProperty("addressResolver.rotateServers", true);
-    AddressResolverOptions aroc = AddressResolverConfig.getAddressResover("test");
-    Assertions.assertEquals(Arrays.asList("8.8.8.8", "8.8.4.4"), aroc.getServers());
-    Assertions.assertEquals(Arrays.asList("test.svc.local.cluster", "svc.local.cluster", "local.cluster"),
-            aroc.getSearchDomains());
-    AddressResolverOptions aroc1 = AddressResolverConfig.getAddressResover("test1");
-    Assertions.assertEquals(Arrays.asList("default.svc.local.cluster", "svc.local.cluster", "local.cluster"),
-            aroc1.getSearchDomains());
-    Assertions.assertTrue(aroc.isOptResourceEnabled());
-  }
-
-  @Test
-  public void testGetResolverDefault() {
-    ArchaiusUtils.resetConfig();
-    ArchaiusUtils.setProperty("addressResolver.servers", "8.8.8.8,8.8.4.4");
-    ArchaiusUtils.setProperty("addressResolver.maxQueries", 3);
-    ArchaiusUtils.setProperty("addressResolver.rdFlag", false);
-    AddressResolverOptions resolverOptions = AddressResolverConfig.getAddressResover("test");
-    Assertions.assertEquals(Arrays.asList("8.8.8.8", "8.8.4.4"), resolverOptions.getServers());
-    Assertions.assertEquals(3, resolverOptions.getMaxQueries());
-    Assertions.assertEquals(Integer.MAX_VALUE, resolverOptions.getCacheMaxTimeToLive());
-    Assertions.assertFalse(resolverOptions.isOptResourceEnabled());
-    Assertions.assertNull(resolverOptions.getSearchDomains());
-  }
-}
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestSharedVertxFactory.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestSharedVertxFactory.java
index 176285b71..0e334fc1c 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestSharedVertxFactory.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestSharedVertxFactory.java
@@ -16,10 +16,28 @@
  */
 package org.apache.servicecomb.foundation.vertx;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
+
+import io.vertx.core.file.impl.FileResolverImpl;
 
 public class TestSharedVertxFactory {
+  Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeEach
+  public void setUp() {
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+        .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
+    LegacyPropertyFactory.setEnvironment(environment);
+  }
+
+
   @Test
   public void getTransportVertx() {
     Assertions.assertNotNull(SharedVertxFactory.getSharedVertx());
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxUtils.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxUtils.java
index 813e01525..e675efa7c 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxUtils.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxUtils.java
@@ -23,21 +23,35 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.concurrent.CountDownLatch;
 
-import io.vertx.core.file.impl.FileResolverImpl;
 import org.apache.commons.io.FileUtils;
 import org.apache.servicecomb.foundation.common.Holder;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.foundation.vertx.stream.BufferInputStream;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import io.vertx.core.Vertx;
 import io.vertx.core.VertxOptions;
 import io.vertx.core.buffer.Buffer;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
+import io.vertx.core.file.impl.FileResolverImpl;
 
 public class TestVertxUtils {
+  Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeEach
+  public void setUp() {
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
+
+    LegacyPropertyFactory.setEnvironment(environment);
+  }
+
   @Test
   public void testGetOrCreateVertx() throws InterruptedException {
     Vertx vertx = VertxUtils.getOrCreateVertxByName("ut", null);
@@ -56,11 +70,9 @@ public class TestVertxUtils {
 
   @Test
   public void testCreateVertxWithFileCPResolving() {
-    // Prepare
-    ArchaiusUtils.resetConfig();
-
     // create .vertx folder
-    ArchaiusUtils.setProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, false);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(false);
     deleteCacheFile();
     VertxUtils.getOrCreateVertxByName("testCreateVertxWithFileCPResolvingFalse", null);
     Assertions.assertTrue(isCacheFileExists());
@@ -69,7 +81,8 @@ public class TestVertxUtils {
     // don't create .vertx folder
     deleteCacheFile();
     Assertions.assertFalse(isCacheFileExists());
-    ArchaiusUtils.setProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, true);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
     VertxUtils.getOrCreateVertxByName("testCreateVertxWithFileCPResolvingTrue", null);
     Assertions.assertFalse(isCacheFileExists());
     VertxUtils.blockCloseVertxByName("testCreateVertxWithFileCPResolvingTrue");
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java
index ed34d2bcc..47226c0b0 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.loadbalance;
 
 import java.util.Map;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.registry.config.ConfigurePropertyUtils;
 
 /**
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestConfiguration.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestConfiguration.java
index 390e05eca..ff505fc99 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestConfiguration.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestConfiguration.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.loadbalance;
 
 import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestExtensionsManager.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestExtensionsManager.java
index 3f1b47fed..c3d1b4a04 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestExtensionsManager.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestExtensionsManager.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.loadbalance;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
diff --git a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorBootListener.java b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorBootListener.java
index b02f8aa1e..e6ce70c36 100644
--- a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorBootListener.java
+++ b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorBootListener.java
@@ -21,11 +21,28 @@ import org.apache.servicecomb.core.BootListener.EventType;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
+
+import io.vertx.core.file.impl.FileResolverImpl;
 
 public class TestInspectorBootListener {
+  Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeEach
+  public void setUp() {
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+        .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
+    LegacyPropertyFactory.setEnvironment(environment);
+  }
+
   @Test
   public void getOrder() {
     Assertions.assertEquals(Short.MAX_VALUE, new InspectorBootListener(null, null).getOrder());
@@ -61,29 +78,4 @@ public class TestInspectorBootListener {
 
     Assertions.assertNull(scbEngine.getProducerMicroserviceMeta().findSchemaMeta("inspector"));
   }
-
-  @Test
-  public void enabled() {
-    // TODO: may be delete in future
-//    Holder<Object> holder = new Holder<>();
-//
-//    SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
-//    scbEngine.setProducerMicroserviceMeta(new MicroserviceMeta(scbEngine, "ms", false));
-//    scbEngine.setProducerProviderManager(new ProducerProviderManager(scbEngine) {
-//      @Override
-//      public SchemaMeta registerSchema(String schemaId, Object instance) {
-//        if ("inspector".equals(schemaId)) {
-//          holder.value = instance;
-//        }
-//        return null;
-//      }
-//    });
-//
-//    InspectorConfig inspectorConfig = new InspectorConfig()
-//        .setEnabled(true);
-//    new InspectorBootListener(inspectorConfig, null)
-//        .onAfterTransport(new BootEvent(scbEngine, EventType.AFTER_TRANSPORT));
-//
-//    Assertions.assertNotNull(holder.value);
-  }
 }
diff --git a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java
index 715d3fed4..da443566a 100644
--- a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java
+++ b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java
@@ -34,7 +34,7 @@ import java.util.zip.ZipInputStream;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.config.priority.PriorityPropertyFactory;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java
index c765fbeb5..cafff83f9 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java
@@ -24,6 +24,7 @@ import static org.apache.servicecomb.metrics.core.publish.DefaultLogPublisher.EN
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.metrics.MetricsBootstrapConfig;
 import org.apache.servicecomb.foundation.metrics.PolledEvent;
 import org.apache.servicecomb.foundation.metrics.registry.GlobalRegistry;
@@ -50,6 +51,7 @@ import com.netflix.spectator.api.Registry;
 import io.vertx.core.AbstractVerticle;
 import io.vertx.core.DeploymentOptions;
 import io.vertx.core.Promise;
+import io.vertx.core.file.impl.FileResolverImpl;
 import io.vertx.core.http.HttpClient;
 import io.vertx.core.http.HttpClientRequest;
 import io.vertx.core.http.HttpMethod;
@@ -112,6 +114,11 @@ public class TestVertxMetersInitializer {
 
   @Before
   public void setup() {
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+        .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
+    LegacyPropertyFactory.setEnvironment(environment);
     HttpClients.load();
   }
 
diff --git a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/extension/ProducerInvokeExtension.java b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/extension/ProducerInvokeExtension.java
index 2aa33a7d4..107a3a722 100644
--- a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/extension/ProducerInvokeExtension.java
+++ b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/extension/ProducerInvokeExtension.java
@@ -27,6 +27,6 @@ public interface ProducerInvokeExtension {
   int getOrder();
 
   ///Invoked before the method execution to handle the required checks before method invocation.
-  <T> void beforeMethodInvoke(SwaggerInvocation invocation, SwaggerProducerOperation producerOperation,
+  void beforeMethodInvoke(SwaggerInvocation invocation, SwaggerProducerOperation producerOperation,
       Object[] args) throws Exception;
 }
diff --git a/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/ParameterValidator.java b/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/ParameterValidator.java
index 4520268a0..ad2cf2dcf 100644
--- a/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/ParameterValidator.java
+++ b/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/ParameterValidator.java
@@ -18,13 +18,7 @@ package org.apache.servicecomb.swagger.invocation.validator;
 
 import java.util.Set;
 
-import jakarta.validation.ConstraintViolation;
-import jakarta.validation.ConstraintViolationException;
-import jakarta.validation.Validation;
-import jakarta.validation.ValidatorFactory;
-import jakarta.validation.executable.ExecutableValidator;
-import jakarta.validation.groups.Default;
-
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.swagger.engine.SwaggerProducerOperation;
 import org.apache.servicecomb.swagger.invocation.SwaggerInvocation;
 import org.apache.servicecomb.swagger.invocation.extension.ProducerInvokeExtension;
@@ -34,8 +28,12 @@ import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpo
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.netflix.config.DynamicBooleanProperty;
-import com.netflix.config.DynamicPropertyFactory;
+import jakarta.validation.ConstraintViolation;
+import jakarta.validation.ConstraintViolationException;
+import jakarta.validation.Validation;
+import jakarta.validation.ValidatorFactory;
+import jakarta.validation.executable.ExecutableValidator;
+import jakarta.validation.groups.Default;
 
 public class ParameterValidator implements ProducerInvokeExtension {
 
@@ -45,23 +43,19 @@ public class ParameterValidator implements ProducerInvokeExtension {
 
   private static final String ENABLE_EL = "servicecomb.filters.validation.useResourceBundleMessageInterpolator";
 
-  private final DynamicBooleanProperty paramValidationEnabled = DynamicPropertyFactory.getInstance()
-      .getBooleanProperty(PARAM_VALIDATION_ENABLED, true);
+  private final boolean paramValidationEnabled;
 
   public ParameterValidator() {
-    paramValidationEnabled.addCallback(() -> {
-      boolean newValue = paramValidationEnabled.get();
-      LOGGER.info("{} changed from {} to {}", PARAM_VALIDATION_ENABLED, paramValidationEnabled, newValue);
-    });
+    paramValidationEnabled = LegacyPropertyFactory.getBooleanProperty(PARAM_VALIDATION_ENABLED, true);
   }
 
   private static ExecutableValidator executableValidator;
 
   @Override
-  public <T> void beforeMethodInvoke(SwaggerInvocation invocation, SwaggerProducerOperation producerOperation,
+  public void beforeMethodInvoke(SwaggerInvocation invocation, SwaggerProducerOperation producerOperation,
       Object[] args)
       throws ConstraintViolationException {
-    if (paramValidationEnabled.get()) {
+    if (paramValidationEnabled) {
       if (null == executableValidator) {
         ValidatorFactory factory =
             Validation.byDefaultProvider()
@@ -91,7 +85,7 @@ public class ParameterValidator implements ProducerInvokeExtension {
   }
 
   private boolean useResourceBundleMessageInterpolator() {
-    return DynamicPropertyFactory.getInstance().getBooleanProperty(ENABLE_EL, false).get();
+    return LegacyPropertyFactory.getBooleanProperty(ENABLE_EL, false);
   }
 
   @Override
diff --git a/transports/transport-common/src/main/java/org/apache/servicecomb/transport/common/TransportConfigUtils.java b/transports/transport-common/src/main/java/org/apache/servicecomb/transport/common/TransportConfigUtils.java
index 26524a094..672475e59 100644
--- a/transports/transport-common/src/main/java/org/apache/servicecomb/transport/common/TransportConfigUtils.java
+++ b/transports/transport-common/src/main/java/org/apache/servicecomb/transport/common/TransportConfigUtils.java
@@ -16,7 +16,7 @@
  */
 package org.apache.servicecomb.transport.common;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/transports/transport-common/src/test/java/org/apache/servicecomb/transport/common/TestTransportConfigUtils.java b/transports/transport-common/src/test/java/org/apache/servicecomb/transport/common/TestTransportConfigUtils.java
index 14a77032d..16c16adc8 100644
--- a/transports/transport-common/src/test/java/org/apache/servicecomb/transport/common/TestTransportConfigUtils.java
+++ b/transports/transport-common/src/test/java/org/apache/servicecomb/transport/common/TestTransportConfigUtils.java
@@ -18,7 +18,7 @@ package org.apache.servicecomb.transport.common;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
index 122be005e..83659f94d 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
@@ -21,7 +21,7 @@ import java.util.concurrent.TimeoutException;
 
 import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
 import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayConfig.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayConfig.java
index 0148cfbfe..4ddf9c47f 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayConfig.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayConfig.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.transport.highway;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.transport.common.TransportConfigUtils;
 
 public final class HighwayConfig {
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServer.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServer.java
index 9224c6ac2..2a76d0b89 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServer.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServer.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.transport.highway;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.foundation.vertx.server.TcpServer;
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/HighwayServerCodecFilterTest.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/HighwayServerCodecFilterTest.java
index 749b70ea3..ee159fc1e 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/HighwayServerCodecFilterTest.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/HighwayServerCodecFilterTest.java
@@ -26,7 +26,6 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 
 import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
-import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.SCBEngine;
@@ -35,20 +34,20 @@ import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.filter.FilterNode;
 import org.apache.servicecomb.core.invocation.InvocationFactory;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.test.scaffolding.exception.RuntimeExceptionWithoutStackTrace;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.transport.highway.message.RequestHeader;
 import org.apache.servicecomb.transport.highway.message.ResponseHeader;
-import org.junit.AfterClass;
+import org.junit.After;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.springframework.core.env.Environment;
 
 import io.vertx.core.MultiMap;
 import io.vertx.core.buffer.Buffer;
+import io.vertx.core.file.impl.FileResolverImpl;
 import io.vertx.core.json.Json;
 import mockit.Expectations;
 import mockit.Mocked;
@@ -78,28 +77,27 @@ public class HighwayServerCodecFilterTest {
 
   static SCBEngine engine;
 
-  @BeforeClass
-  public static void beforeClass() {
-    ArchaiusUtils.resetConfig();
-    ConfigUtil.installDynamicConfig();
+  Environment environment = Mockito.mock(Environment.class);
 
-    engine = SCBBootstrap.createSCBEngineForTest();
-    Environment environment = Mockito.mock(Environment.class);
-    engine.setEnvironment(environment);
+  @Before
+  public void setUp() {
     Mockito.when(environment.getProperty(CFG_KEY_TURN_DOWN_STATUS_WAIT_SEC,
         long.class, DEFAULT_TURN_DOWN_STATUS_WAIT_SEC)).thenReturn(DEFAULT_TURN_DOWN_STATUS_WAIT_SEC);
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+        .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
+    LegacyPropertyFactory.setEnvironment(environment);
+
+    engine = SCBBootstrap.createSCBEngineForTest();
+    engine.setEnvironment(environment);
     engine.setStatus(SCBStatus.UP);
+    invocation = InvocationFactory.forProvider(endpoint, operationMeta, null);
   }
 
-  @AfterClass
-  public static void afterClass() {
+  @After
+  public void tearDown() {
     engine.destroy();
-    ArchaiusUtils.resetConfig();
-  }
-
-  @Before
-  public void setUp() {
-    invocation = InvocationFactory.forProvider(endpoint, operationMeta, null);
   }
 
   private void mockDecodeRequestFail() throws Exception {
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
index 999688a16..24a9cfa50 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.transport.highway;
 
 import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
 import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.definition.OperationConfig;
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
index 263d2e264..ff3cb30b1 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
@@ -19,10 +19,10 @@ package org.apache.servicecomb.transport.highway;
 
 import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
 import org.apache.servicecomb.codec.protobuf.definition.RequestRootSerializer;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.definition.OperationMeta;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
 import org.apache.servicecomb.foundation.vertx.client.tcp.TcpClientConfig;
@@ -36,11 +36,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.core.env.Environment;
 
+import io.vertx.core.file.impl.FileResolverImpl;
+
 public class TestHighwayTransport {
   private static final Logger LOGGER = LoggerFactory.getLogger(TestHighwayTransport.class);
 
-  private final HighwayTransport transport = new HighwayTransport();
-
   Environment environment = Mockito.mock(Environment.class);
 
   @BeforeClass
@@ -61,23 +61,29 @@ public class TestHighwayTransport {
             "servicecomb.request.timeout", long.class, (long) TcpClientConfig.DEFAULT_LOGIN_TIMEOUT))
         .thenReturn((long) TcpClientConfig.DEFAULT_LOGIN_TIMEOUT);
     Mockito.when(environment.getProperty("servicecomb.highway.client.verticle-count", int.class, -1))
-            .thenReturn(-1);
+        .thenReturn(-1);
     Mockito.when(environment.getProperty("servicecomb.highway.client.thread-count", int.class, -1))
         .thenReturn(-1);
     Mockito.when(environment.getProperty("servicecomb.highway.server.verticle-count", int.class, -1))
         .thenReturn(-1);
     Mockito.when(environment.getProperty("servicecomb.highway.server.thread-count", int.class, -1))
         .thenReturn(-1);
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+        .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
     LegacyPropertyFactory.setEnvironment(environment);
   }
 
   @Test
   public void testGetInstance() {
+    HighwayTransport transport = new HighwayTransport();
     Assertions.assertNotNull(transport);
   }
 
   @Test
   public void testInit() {
+    HighwayTransport transport = new HighwayTransport();
     boolean status = true;
     try {
       transport.init();
@@ -91,6 +97,7 @@ public class TestHighwayTransport {
 
   @Test
   public void testHighway() {
+    HighwayTransport transport = new HighwayTransport();
     Invocation invocation = Mockito.mock(Invocation.class);
     commonHighwayMock(invocation);
     Assertions.assertEquals("highway", transport.getName());
diff --git a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java
index a371a8bc6..1e07973e2 100644
--- a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java
+++ b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.transport.rest.client;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.transport.common.TransportConfigUtils;
 
 import io.vertx.core.http.HttpClientOptions;
diff --git a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletConfig.java b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletConfig.java
index 8c5934c04..2ede8edbe 100644
--- a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletConfig.java
+++ b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletConfig.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.transport.rest.servlet;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 
 public final class ServletConfig {
   public static final long DEFAULT_ASYN_SERVLET_TIMEOUT = -1;
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestRestServlet.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestRestServlet.java
index 40db27bcd..3fe2094f4 100644
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestRestServlet.java
+++ b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestRestServlet.java
@@ -17,31 +17,43 @@
 
 package org.apache.servicecomb.transport.rest.servlet;
 
-import jakarta.servlet.ServletException;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
+import static org.apache.servicecomb.core.transport.AbstractTransport.PUBLISH_ADDRESS;
 
-import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.foundation.common.Holder;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
+import io.vertx.core.file.impl.FileResolverImpl;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import mockit.Deencapsulation;
 import mockit.Mock;
 import mockit.MockUp;
-import org.junit.jupiter.api.Assertions;
 
 public class TestRestServlet {
   private RestServlet restservlet = null;
 
+  Environment environment = Mockito.mock(Environment.class);
+
   @Before
   public void setUp() {
-    ConfigUtil.installDynamicConfig();
-
+    Mockito.when(environment.getProperty(PUBLISH_ADDRESS, String.class, ""))
+        .thenReturn("");
+    Mockito.when(environment.getProperty("servicecomb.rest.publishPort", int.class, 0))
+        .thenReturn(0);
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+        .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
+    LegacyPropertyFactory.setEnvironment(environment);
     restservlet = new RestServlet();
 
     SCBBootstrap.createSCBEngineForTest();
@@ -51,7 +63,6 @@ public class TestRestServlet {
   public void tearDown() {
     restservlet = null;
     SCBEngine.getInstance().destroy();
-    ArchaiusUtils.resetConfig();
   }
 
   @Test
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java
index 50169fa67..2034d03fd 100644
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java
+++ b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java
@@ -22,6 +22,7 @@ import static org.apache.servicecomb.core.transport.AbstractTransport.PUBLISH_AD
 import java.io.IOException;
 import java.net.ServerSocket;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
 import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.junit.After;
@@ -31,10 +32,11 @@ import org.junit.jupiter.api.Assertions;
 import org.mockito.Mockito;
 import org.springframework.core.env.Environment;
 
+import io.vertx.core.file.impl.FileResolverImpl;
 import mockit.Expectations;
 
 public class TestServletRestTransport {
-  ServletRestTransport transport = new ServletRestTransport();
+  ServletRestTransport transport;
 
   Environment environment = Mockito.mock(Environment.class);
 
@@ -43,7 +45,13 @@ public class TestServletRestTransport {
     Mockito.when(environment.getProperty(PUBLISH_ADDRESS, String.class, ""))
         .thenReturn("");
     Mockito.when(environment.getProperty("servicecomb.rest.publishPort", int.class, 0))
-            .thenReturn(0);
+        .thenReturn(0);
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+        .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
+    LegacyPropertyFactory.setEnvironment(environment);
+    transport = new ServletRestTransport();
     transport.setEnvironment(environment);
   }
 
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java
index febed525e..3f7a6491f 100644
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java
+++ b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java
@@ -30,10 +30,9 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.servicecomb.common.rest.RestConst;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.hamcrest.MatcherAssert;
 import org.hamcrest.Matchers;
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
index ecc0e175d..e86f6c493 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
@@ -24,7 +24,7 @@ import java.util.Set;
 import org.apache.servicecomb.common.accessLog.AccessLogConfig;
 import org.apache.servicecomb.common.accessLog.core.element.impl.LocalHostAccessItem;
 import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.event.ServerAccessLogEvent;
 import org.apache.servicecomb.core.transport.AbstractTransport;
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/TransportConfig.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/TransportConfig.java
index 59308280c..a07cb12b0 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/TransportConfig.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/TransportConfig.java
@@ -22,7 +22,7 @@ import java.util.Set;
 import java.util.stream.Stream;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.transport.common.TransportConfigUtils;
 
 import io.vertx.core.Verticle;
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
index abce41bf5..38f87fba4 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.transport.rest.vertx;
 
 import org.apache.servicecomb.common.rest.RestProducerInvocationFlow;
 import org.apache.servicecomb.common.rest.RestVertxProducerInvocationCreator;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.core.CoreConst;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestAbstractVertxHttpDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestAbstractVertxHttpDispatcher.java
index 93bececb8..2482d2b3d 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestAbstractVertxHttpDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestAbstractVertxHttpDispatcher.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.transport.rest.vertx;
 
 import org.apache.servicecomb.common.rest.RestConst;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.Before;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
index d4c963ee3..d4d73d759 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
@@ -24,6 +24,12 @@ import static io.vertx.core.http.HttpServerOptions.DEFAULT_HTTP2_CONNECTION_WIND
 import static io.vertx.core.http.HttpServerOptions.DEFAULT_MAX_CHUNK_SIZE;
 import static io.vertx.core.http.HttpServerOptions.DEFAULT_MAX_FORM_ATTRIBUTE_SIZE;
 import static io.vertx.core.http.HttpServerOptions.DEFAULT_MAX_INITIAL_LINE_LENGTH;
+import static org.apache.servicecomb.common.accessLog.AccessLogConfig.CLIENT_LOG_ENABLED;
+import static org.apache.servicecomb.common.accessLog.AccessLogConfig.CLIENT_LOG_PATTERN;
+import static org.apache.servicecomb.common.accessLog.AccessLogConfig.DEFAULT_CLIENT_PATTERN;
+import static org.apache.servicecomb.common.accessLog.AccessLogConfig.DEFAULT_SERVER_PATTERN;
+import static org.apache.servicecomb.common.accessLog.AccessLogConfig.SERVER_LOG_ENABLED;
+import static org.apache.servicecomb.common.accessLog.AccessLogConfig.SERVER_LOG_PATTERN;
 import static org.apache.servicecomb.core.transport.AbstractTransport.PUBLISH_ADDRESS;
 import static org.apache.servicecomb.transport.rest.vertx.TransportConfig.DEFAULT_SERVER_COMPRESSION_SUPPORT;
 import static org.apache.servicecomb.transport.rest.vertx.TransportConfig.DEFAULT_SERVER_CONNECTION_IDLE_TIMEOUT_SECOND;
@@ -35,13 +41,13 @@ import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.servicecomb.common.rest.RestConst;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.core.transport.AbstractTransport;
 import org.apache.servicecomb.foundation.common.Holder;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.foundation.vertx.client.tcp.TcpClientConfig;
@@ -58,6 +64,7 @@ import io.vertx.core.Context;
 import io.vertx.core.Handler;
 import io.vertx.core.Promise;
 import io.vertx.core.Vertx;
+import io.vertx.core.file.impl.FileResolverImpl;
 import io.vertx.core.http.Http2Settings;
 import io.vertx.core.http.HttpMethod;
 import io.vertx.core.http.HttpServerResponse;
@@ -148,7 +155,18 @@ public class TestRestServerVerticle {
     Mockito.when(environment.getProperty("servicecomb.rest.server.http2.pushEnabled", boolean.class,
             Http2Settings.DEFAULT_ENABLE_PUSH))
         .thenReturn(Http2Settings.DEFAULT_ENABLE_PUSH);
-
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+        .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
+    Mockito.when(environment.getProperty(CLIENT_LOG_ENABLED, boolean.class, false))
+        .thenReturn(false);
+    Mockito.when(environment.getProperty(SERVER_LOG_ENABLED, boolean.class, false))
+        .thenReturn(false);
+    Mockito.when(environment.getProperty(CLIENT_LOG_PATTERN, String.class, DEFAULT_CLIENT_PATTERN))
+        .thenReturn(DEFAULT_CLIENT_PATTERN);
+    Mockito.when(environment.getProperty(SERVER_LOG_PATTERN, String.class, DEFAULT_SERVER_PATTERN))
+        .thenReturn(DEFAULT_CLIENT_PATTERN);
     LegacyPropertyFactory.setEnvironment(environment);
 
     instance = new RestServerVerticle();
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
index ddce28c37..a0758445f 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.transport.rest.vertx;
 
 import org.apache.http.HttpHeaders;
 import org.apache.servicecomb.common.rest.RestConst;
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.core.transport.TransportManager;
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestTransport.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestTransport.java
index 29377821f..808d55e12 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestTransport.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestTransport.java
@@ -22,7 +22,7 @@ import static org.apache.servicecomb.core.transport.AbstractTransport.PUBLISH_AD
 import java.io.IOException;
 import java.net.ServerSocket;
 
-import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
 import org.apache.servicecomb.foundation.vertx.client.tcp.TcpClientConfig;
 import org.junit.Before;
@@ -35,13 +35,14 @@ import io.vertx.core.AbstractVerticle;
 import io.vertx.core.DeploymentOptions;
 import io.vertx.core.Vertx;
 import io.vertx.core.VertxOptions;
+import io.vertx.core.file.impl.FileResolverImpl;
 import mockit.Expectations;
 import mockit.Mock;
 import mockit.MockUp;
 
 public class TestVertxRestTransport {
 
-  private final VertxRestTransport instance = new VertxRestTransport();
+  private VertxRestTransport instance;
 
   Environment environment = Mockito.mock(Environment.class);
 
@@ -64,7 +65,12 @@ public class TestVertxRestTransport {
         .thenReturn(0);
     Mockito.when(environment.getProperty(PUBLISH_ADDRESS, String.class, ""))
         .thenReturn("");
+    Mockito.when(environment.getProperty("servicecomb.transport.eventloop.size", int.class, -1))
+        .thenReturn(-1);
+    Mockito.when(environment.getProperty(FileResolverImpl.DISABLE_CP_RESOLVING_PROP_NAME, boolean.class, true))
+        .thenReturn(true);
     LegacyPropertyFactory.setEnvironment(environment);
+    instance = new VertxRestTransport();
   }
 
   @Test