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 4b62723505abc7bf8c738a6f94bd0319a8a8a6c6
Author: liubao <[email protected]>
AuthorDate: Mon Oct 9 15:24:59 2023 +0800

    [SCB-2008]remove commons-configuration usage
---
 dependencies/default/pom.xml                       |  8 ---
 foundations/foundation-config/pom.xml              |  5 +-
 .../servicecomb/config/BootStrapProperties.java    | 22 --------
 .../org/apache/servicecomb/config/ConfigUtil.java  | 12 +++-
 foundations/foundation-test-scaffolding/pom.xml    |  5 --
 .../http/TestStandardHttpServletResponseEx.java    |  2 +-
 .../foundation/vertx/stream/TestPumpFromPart.java  |  7 +--
 .../dashboard/monitor/TransportUtils.java          |  1 -
 .../model/InstancePropertiesLoader.java            |  1 -
 .../lightweight/model/MicroserviceFactory.java     | 21 +++----
 .../registry/sc/MicroserviceHandler.java           | 65 +++++++++++-----------
 .../servicecomb/registry/sc/SCRegistration.java    | 15 ++++-
 12 files changed, 71 insertions(+), 93 deletions(-)

diff --git a/dependencies/default/pom.xml b/dependencies/default/pom.xml
index a4881cacf..a7b93a5ff 100644
--- a/dependencies/default/pom.xml
+++ b/dependencies/default/pom.xml
@@ -32,14 +32,12 @@
   <properties>
     <!-- Dependency versions: sort by alphabetic order -->
     <activation.version>1.2.2</activation.version>
-    <archaius.version>0.7.7</archaius.version>
     <asciidoctorj.version>2.5.3</asciidoctorj.version>
     <aspectj.version>1.9.19</aspectj.version>
     <assertj.version>3.24.2</assertj.version>
     <awaitility.version>4.2.0</awaitility.version>
     <brave.version>5.16.0</brave.version>
     <commons-beanutils.version>1.9.4</commons-beanutils.version>
-    <commons-configuration.version>1.10</commons-configuration.version>
     <commons-io.version>2.11.0</commons-io.version>
     <commons-lang.version>2.6</commons-lang.version>
     <commons-lang3.version>3.12.0</commons-lang3.version>
@@ -298,12 +296,6 @@
         <version>${commons-beanutils.version}</version>
       </dependency>
 
-      <dependency>
-        <groupId>commons-configuration</groupId>
-        <artifactId>commons-configuration</artifactId>
-        <version>${commons-configuration.version}</version>
-      </dependency>
-
       <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
diff --git a/foundations/foundation-config/pom.xml 
b/foundations/foundation-config/pom.xml
index f79b84d72..465bda360 100644
--- a/foundations/foundation-config/pom.xml
+++ b/foundations/foundation-config/pom.xml
@@ -43,10 +43,7 @@
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-autoconfigure</artifactId>
     </dependency>
-    <dependency>
-      <groupId>commons-configuration</groupId>
-      <artifactId>commons-configuration</artifactId>
-    </dependency>
+
     <dependency>
       <groupId>org.yaml</groupId>
       <artifactId>snakeyaml</artifactId>
diff --git 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/BootStrapProperties.java
 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/BootStrapProperties.java
index 6e9d9abcd..1023bdb38 100644
--- 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/BootStrapProperties.java
+++ 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/BootStrapProperties.java
@@ -18,11 +18,9 @@
 package org.apache.servicecomb.config;
 
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.configuration.Configuration;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.core.env.Environment;
 
@@ -50,15 +48,11 @@ public class BootStrapProperties {
 
   public static final String OLD_CONFIG_SERVICE_PROPERTIES = 
"service_description.properties";
 
-  public static final String OLD_CONFIG_SERVICE_PATHS = 
"service_description.paths";
-
   // service instance definition keys of old version
   public static final String OLD_CONFIG_SERVICE_INSTANCE_PROPERTIES = 
"instance_description.properties";
 
   public static final String OLD_CONFIG_SERVICE_INSTANCE_EXTENDED_CLASS = 
"instance_description.propertyExtendedClass";
 
-  public static final String OLD_CONFIG_SERVICE_INSTANCE_ENVIRONMENT = 
"instance_description.environment";
-
   public static final String OLD_CONFIG_SERVICE_INSTANCE_INITIAL_STATUS = 
"instance_description.initialStatus";
 
   // service definition keys of new version
@@ -78,17 +72,11 @@ public class BootStrapProperties {
 
   public static final String CONFIG_SERVICE_PROPERTIES = 
"servicecomb.service.properties";
 
-  public static final String CONFIG_SERVICE_PATHS = 
"servicecomb.service.paths";
-
-  public static final String CONFIG_SERVICE_ALIAS = 
"servicecomb.service.alias";
-
   // service instance definition keys of new version
   public static final String CONFIG_SERVICE_INSTANCE_PROPERTIES = 
"servicecomb.instance.properties";
 
   public static final String CONFIG_SERVICE_INSTANCE_EXTENDED_CLASS = 
"servicecomb.instance.propertyExtendedClass";
 
-  public static final String CONFIG_SERVICE_INSTANCE_ENVIRONMENT = 
"servicecomb.instance.environment";
-
   public static final String CONFIG_SERVICE_INSTANCE_INITIAL_STATUS = 
"servicecomb.instance.initialStatus";
 
   // configuration default values
@@ -102,8 +90,6 @@ public class BootStrapProperties {
 
   public static final String DEFAULT_MICROSERVICE_ENVIRONMENT = "";
 
-  public static final String DEFAULT_MICROSERVICE_INSTANCE_ENVIRONMENT = 
"production";
-
   public static final String DEFAULT_MICROSERVICE_INSTANCE_INITIAL_STATUS = 
"UP";
 
   public static String readApplication(Environment environment) {
@@ -159,14 +145,6 @@ public class BootStrapProperties {
     return readProperties(environment, CONFIG_SERVICE_PROPERTIES, 
OLD_CONFIG_SERVICE_PROPERTIES);
   }
 
-  public static List<Object> readServicePaths(Configuration configuration) {
-    List<Object> result = configuration.getList(CONFIG_SERVICE_PATHS);
-    if (result == null || result.isEmpty()) {
-      result = configuration.getList(OLD_CONFIG_SERVICE_PATHS);
-    }
-    return result;
-  }
-
   public static Map<String, String> readServiceInstanceProperties(Environment 
environment) {
     return readProperties(environment, CONFIG_SERVICE_INSTANCE_PROPERTIES, 
OLD_CONFIG_SERVICE_INSTANCE_PROPERTIES);
   }
diff --git 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
index 73dc2348a..a09b2eaac 100644
--- 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
+++ 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
@@ -17,13 +17,13 @@
 
 package org.apache.servicecomb.config;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.configuration.PropertyConverter;
 import org.springframework.core.env.ConfigurableEnvironment;
 import org.springframework.core.env.EnumerablePropertySource;
 import org.springframework.core.env.Environment;
@@ -34,7 +34,15 @@ public final class ConfigUtil {
   }
 
   public static List<String> parseArrayValue(String value) {
-    return PropertyConverter.split(value, ',', true);
+    if (value == null) {
+      return new ArrayList<>(0);
+    }
+    String[] tokens = value.split(",");
+    List<String> result = new ArrayList<>(tokens.length);
+    for (String t : tokens) {
+      result.add(t.trim());
+    }
+    return result;
   }
 
   public static Set<String> propertiesWithPrefix(Environment environment, 
String prefix) {
diff --git a/foundations/foundation-test-scaffolding/pom.xml 
b/foundations/foundation-test-scaffolding/pom.xml
index 201d814b0..a149ef9de 100644
--- a/foundations/foundation-test-scaffolding/pom.xml
+++ b/foundations/foundation-test-scaffolding/pom.xml
@@ -31,11 +31,6 @@
       <groupId>org.springframework</groupId>
       <artifactId>spring-context</artifactId>
     </dependency>
-    <dependency>
-      <groupId>commons-configuration</groupId>
-      <artifactId>commons-configuration</artifactId>
-      <scope>compile</scope>
-    </dependency>
     <dependency>
       <groupId>io.vertx</groupId>
       <artifactId>vertx-web</artifactId>
diff --git 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestStandardHttpServletResponseEx.java
 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestStandardHttpServletResponseEx.java
index dbfd816a2..c672fb288 100644
--- 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestStandardHttpServletResponseEx.java
+++ 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestStandardHttpServletResponseEx.java
@@ -21,7 +21,7 @@ import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.lang.RandomStringUtils;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.servicecomb.foundation.common.part.InputStreamPart;
 import 
org.apache.servicecomb.foundation.test.scaffolding.exception.RuntimeExceptionWithoutStackTrace;
 import org.junit.Before;
diff --git 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
index 67415e00d..dafa8e7f0 100644
--- 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
+++ 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
@@ -22,23 +22,22 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.concurrent.ExecutionException;
 
-import jakarta.servlet.http.Part;
-
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.RandomStringUtils;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.servicecomb.foundation.common.part.InputStreamPart;
 import 
org.apache.servicecomb.foundation.vertx.stream.InputStreamToReadStream.ReadResult;
 import org.hamcrest.MatcherAssert;
 import org.hamcrest.Matchers;
 import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
 
 import io.vertx.core.Context;
 import io.vertx.core.Promise;
 import io.vertx.core.impl.SyncContext;
+import jakarta.servlet.http.Part;
 import mockit.Expectations;
 import mockit.Mock;
 import mockit.MockUp;
-import org.junit.jupiter.api.Assertions;
 
 public class TestPumpFromPart {
   String src = RandomStringUtils.random(100, true, true);
diff --git 
a/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/TransportUtils.java
 
b/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/TransportUtils.java
index ed2aaec26..f508038f9 100644
--- 
a/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/TransportUtils.java
+++ 
b/huawei-cloud/dashboard/src/main/java/org/apache/servicecomb/huaweicloud/dashboard/monitor/TransportUtils.java
@@ -19,7 +19,6 @@ package org.apache.servicecomb.huaweicloud.dashboard.monitor;
 
 import static org.apache.servicecomb.foundation.ssl.SSLOption.DEFAULT_OPTION;
 
-import org.apache.commons.configuration.Configuration;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
 import 
org.apache.servicecomb.http.client.common.HttpConfiguration.SSLProperties;
diff --git 
a/service-registry/registry-lightweight/src/main/java/org/apache/servicecomb/registry/lightweight/model/InstancePropertiesLoader.java
 
b/service-registry/registry-lightweight/src/main/java/org/apache/servicecomb/registry/lightweight/model/InstancePropertiesLoader.java
index 33bfff41c..a4dd1d30d 100644
--- 
a/service-registry/registry-lightweight/src/main/java/org/apache/servicecomb/registry/lightweight/model/InstancePropertiesLoader.java
+++ 
b/service-registry/registry-lightweight/src/main/java/org/apache/servicecomb/registry/lightweight/model/InstancePropertiesLoader.java
@@ -19,7 +19,6 @@ package org.apache.servicecomb.registry.lightweight.model;
 
 import java.util.Map;
 
-import org.apache.commons.configuration.Configuration;
 import org.apache.servicecomb.config.BootStrapProperties;
 import org.springframework.core.env.Environment;
 
diff --git 
a/service-registry/registry-lightweight/src/main/java/org/apache/servicecomb/registry/lightweight/model/MicroserviceFactory.java
 
b/service-registry/registry-lightweight/src/main/java/org/apache/servicecomb/registry/lightweight/model/MicroserviceFactory.java
index b4612b2ac..fed3b9a28 100644
--- 
a/service-registry/registry-lightweight/src/main/java/org/apache/servicecomb/registry/lightweight/model/MicroserviceFactory.java
+++ 
b/service-registry/registry-lightweight/src/main/java/org/apache/servicecomb/registry/lightweight/model/MicroserviceFactory.java
@@ -23,8 +23,6 @@ import static 
org.apache.servicecomb.foundation.common.base.ServiceCombConstants
 
 import java.util.Map;
 
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.EnvironmentConfiguration;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.config.BootStrapProperties;
 import org.apache.servicecomb.foundation.common.Version;
@@ -40,23 +38,22 @@ public class MicroserviceFactory {
   private Microservice createMicroserviceFromConfiguration(Environment 
environment) {
     Microservice microservice = new Microservice();
 
-    EnvironmentConfiguration envConfig = new EnvironmentConfiguration();
-    if (!StringUtils.isEmpty(envConfig.getString(APP_MAPPING)) &&
-        
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(APP_MAPPING)))) {
-      
microservice.setAppId(envConfig.getString(envConfig.getString(APP_MAPPING)));
+    if (!StringUtils.isEmpty(environment.getProperty(APP_MAPPING)) &&
+        
!StringUtils.isEmpty(environment.getProperty(environment.getProperty(APP_MAPPING))))
 {
+      
microservice.setAppId(environment.getProperty(environment.getProperty(APP_MAPPING)));
     } else {
       microservice.setAppId(BootStrapProperties.readApplication(environment));
     }
-    if (!StringUtils.isEmpty(envConfig.getString(SERVICE_MAPPING)) &&
-        
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(SERVICE_MAPPING))))
 {
-      
microservice.setServiceName(envConfig.getString(envConfig.getString(SERVICE_MAPPING)));
+    if (!StringUtils.isEmpty(environment.getProperty(SERVICE_MAPPING)) &&
+        
!StringUtils.isEmpty(environment.getProperty(environment.getProperty(SERVICE_MAPPING))))
 {
+      
microservice.setServiceName(environment.getProperty(environment.getProperty(SERVICE_MAPPING)));
     } else {
       
microservice.setServiceName(BootStrapProperties.readServiceName(environment));
     }
     String version;
-    if (!StringUtils.isEmpty(envConfig.getString(VERSION_MAPPING)) &&
-        
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(VERSION_MAPPING))))
 {
-      version = envConfig.getString(envConfig.getString(VERSION_MAPPING));
+    if (!StringUtils.isEmpty(environment.getProperty(VERSION_MAPPING)) &&
+        
!StringUtils.isEmpty(environment.getProperty(environment.getProperty(VERSION_MAPPING))))
 {
+      version = 
environment.getProperty(environment.getProperty(VERSION_MAPPING));
     } else {
       version = BootStrapProperties.readServiceVersion(environment);
     }
diff --git 
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/MicroserviceHandler.java
 
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/MicroserviceHandler.java
index ec495c710..92abac9c9 100644
--- 
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/MicroserviceHandler.java
+++ 
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/MicroserviceHandler.java
@@ -22,8 +22,8 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import org.apache.commons.configuration.EnvironmentConfiguration;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.config.DataCenterProperties;
 import org.apache.servicecomb.config.MicroserviceProperties;
 import org.apache.servicecomb.foundation.common.net.NetUtils;
@@ -35,6 +35,7 @@ import 
org.apache.servicecomb.service.center.client.model.Microservice;
 import org.apache.servicecomb.service.center.client.model.MicroserviceInstance;
 import 
org.apache.servicecomb.service.center.client.model.MicroserviceInstanceStatus;
 import org.apache.servicecomb.service.center.client.model.MicroserviceStatus;
+import org.springframework.core.env.Environment;
 
 public class MicroserviceHandler {
   private static final String SERVICE_MAPPING = "SERVICE_MAPPING";
@@ -57,26 +58,27 @@ public class MicroserviceHandler {
 
   private static final String INSTANCE_PROPS = "SERVICECOMB_INSTANCE_PROPS";
 
-  public static Microservice createMicroservice(SCConfigurationProperties 
bootstrapProperties,
+  public static Microservice createMicroservice(
+      Environment environment,
+      SCConfigurationProperties bootstrapProperties,
       MicroserviceProperties microserviceProperties) {
     Microservice microservice = new Microservice();
     microservice.setProperties(microserviceProperties.getProperties());
-    EnvironmentConfiguration envConfig = new EnvironmentConfiguration();
-    if (!StringUtils.isEmpty(envConfig.getString(APP_MAPPING)) &&
-        
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(APP_MAPPING)))) {
-      
microservice.setAppId(envConfig.getString(envConfig.getString(APP_MAPPING)));
+    if (!StringUtils.isEmpty(environment.getProperty(APP_MAPPING)) &&
+        
!StringUtils.isEmpty(environment.getProperty(environment.getProperty(APP_MAPPING))))
 {
+      
microservice.setAppId(environment.getProperty(environment.getProperty(APP_MAPPING)));
     } else {
       microservice.setAppId(microserviceProperties.getApplication());
     }
-    if (!StringUtils.isEmpty(envConfig.getString(SERVICE_MAPPING)) &&
-        
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(SERVICE_MAPPING))))
 {
-      
microservice.setServiceName(envConfig.getString(envConfig.getString(SERVICE_MAPPING)));
+    if (!StringUtils.isEmpty(environment.getProperty(SERVICE_MAPPING)) &&
+        
!StringUtils.isEmpty(environment.getProperty(environment.getProperty(SERVICE_MAPPING))))
 {
+      
microservice.setServiceName(environment.getProperty(environment.getProperty(SERVICE_MAPPING)));
     } else {
       microservice.setServiceName(microserviceProperties.getName());
     }
-    if (!StringUtils.isEmpty(envConfig.getString(VERSION_MAPPING)) &&
-        
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(VERSION_MAPPING))))
 {
-      
microservice.setVersion(envConfig.getString(envConfig.getString(VERSION_MAPPING)));
+    if (!StringUtils.isEmpty(environment.getProperty(VERSION_MAPPING)) &&
+        
!StringUtils.isEmpty(environment.getProperty(environment.getProperty(VERSION_MAPPING))))
 {
+      
microservice.setVersion(environment.getProperty(environment.getProperty(VERSION_MAPPING)));
     } else {
       microservice.setVersion(microserviceProperties.getVersion());
     }
@@ -84,7 +86,8 @@ public class MicroserviceHandler {
 
     Framework framework = createFramework();
     microservice.setFramework(framework);
-    String[] servicePropArray = envConfig.getStringArray(SERVICE_PROPS);
+    String[] servicePropArray = 
ConfigUtil.parseArrayValue(environment.getProperty(SERVICE_PROPS))
+        .toArray(new String[0]);
     if (servicePropArray.length != 0) {
       microservice.getProperties().putAll(parseProps(servicePropArray));
     }
@@ -101,6 +104,7 @@ public class MicroserviceHandler {
   }
 
   public static MicroserviceInstance createMicroserviceInstance(
+      Environment environment,
       SCConfigurationProperties scConfigurationProperties,
       MicroserviceProperties microserviceProperties,
       DataCenterProperties dataCenterProperties) {
@@ -130,42 +134,41 @@ public class MicroserviceHandler {
     microserviceInstance.setModTimestamp(currTime);
 
     // what's MicroserviceInstance doing? same sa Microservice?
-    EnvironmentConfiguration envConfig = new EnvironmentConfiguration();
-    if (!StringUtils.isEmpty(envConfig.getString(VERSION_MAPPING)) &&
-        
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(VERSION_MAPPING))))
 {
-      microserviceInstance.setVersion(envConfig.getString(VERSION_MAPPING));
+    if (!StringUtils.isEmpty(environment.getProperty(VERSION_MAPPING)) &&
+        
!StringUtils.isEmpty(environment.getProperty(environment.getProperty(VERSION_MAPPING))))
 {
+      
microserviceInstance.setVersion(environment.getProperty(environment.getProperty(VERSION_MAPPING)));
     } else {
       microserviceInstance.setVersion(microserviceProperties.getVersion());
     }
 
     Map<String, String> properties = new HashMap<>();
     properties.putAll(microserviceProperties.getProperties());
-    properties.putAll(genCasProperties());
+    properties.putAll(genCasProperties(environment));
     microserviceInstance.setProperties(properties);
     
microserviceInstance.setStatus(MicroserviceInstanceStatus.valueOf(scConfigurationProperties.getInitialStatus()));
     return microserviceInstance;
   }
 
-  private static Map<String, String> genCasProperties() {
+  private static Map<String, String> genCasProperties(Environment environment) 
{
     Map<String, String> properties = new HashMap<>();
-    EnvironmentConfiguration envConfig = new EnvironmentConfiguration();
-    if (!StringUtils.isEmpty(envConfig.getString(CAS_APPLICATION_ID))) {
-      properties.put(CAS_APPLICATION_ID, 
envConfig.getString(CAS_APPLICATION_ID));
+    if (!StringUtils.isEmpty(environment.getProperty(CAS_APPLICATION_ID))) {
+      properties.put(CAS_APPLICATION_ID, 
environment.getProperty(CAS_APPLICATION_ID));
     }
-    if (!StringUtils.isEmpty(envConfig.getString(CAS_COMPONENT_NAME))) {
-      properties.put(CAS_COMPONENT_NAME, 
envConfig.getString(CAS_COMPONENT_NAME));
+    if (!StringUtils.isEmpty(environment.getProperty(CAS_COMPONENT_NAME))) {
+      properties.put(CAS_COMPONENT_NAME, 
environment.getProperty(CAS_COMPONENT_NAME));
     }
-    if (!StringUtils.isEmpty(envConfig.getString(CAS_INSTANCE_VERSION))) {
-      properties.put(CAS_INSTANCE_VERSION, 
envConfig.getString(CAS_INSTANCE_VERSION));
+    if (!StringUtils.isEmpty(environment.getProperty(CAS_INSTANCE_VERSION))) {
+      properties.put(CAS_INSTANCE_VERSION, 
environment.getProperty(CAS_INSTANCE_VERSION));
     }
-    if (!StringUtils.isEmpty(envConfig.getString(CAS_INSTANCE_ID))) {
-      properties.put(CAS_INSTANCE_ID, envConfig.getString(CAS_INSTANCE_ID));
+    if (!StringUtils.isEmpty(environment.getProperty(CAS_INSTANCE_ID))) {
+      properties.put(CAS_INSTANCE_ID, 
environment.getProperty(CAS_INSTANCE_ID));
     }
-    if (!StringUtils.isEmpty(envConfig.getString(CAS_ENVIRONMENT_ID))) {
-      properties.put(CAS_ENVIRONMENT_ID, 
envConfig.getString(CAS_ENVIRONMENT_ID));
+    if (!StringUtils.isEmpty(environment.getProperty(CAS_ENVIRONMENT_ID))) {
+      properties.put(CAS_ENVIRONMENT_ID, 
environment.getProperty(CAS_ENVIRONMENT_ID));
     }
 
-    String[] instancePropArray = envConfig.getStringArray(INSTANCE_PROPS);
+    String[] instancePropArray = 
ConfigUtil.parseArrayValue(environment.getProperty(INSTANCE_PROPS))
+        .toArray(new String[0]);
     if (instancePropArray.length != 0) {
       properties.putAll(parseProps(instancePropArray));
     }
diff --git 
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistration.java
 
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistration.java
index b21400a84..fda0273ca 100644
--- 
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistration.java
+++ 
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/registry/sc/SCRegistration.java
@@ -33,6 +33,7 @@ import 
org.apache.servicecomb.service.center.client.model.MicroserviceInstance;
 import org.apache.servicecomb.service.center.client.model.SchemaInfo;
 import 
org.apache.servicecomb.service.center.client.model.ServiceCenterConfiguration;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 
 import com.google.common.base.Charsets;
 import com.google.common.eventbus.EventBus;
@@ -60,6 +61,8 @@ public class SCRegistration implements 
Registration<SCRegistrationInstance> {
 
   private DataCenterProperties dataCenterProperties;
 
+  private Environment environment;
+
   private CountDownLatch readyWaiter = new CountDownLatch(1);
 
   @Autowired
@@ -80,11 +83,19 @@ public class SCRegistration implements 
Registration<SCRegistrationInstance> {
     this.dataCenterProperties = dataCenterProperties;
   }
 
+  @Autowired
+  public void setEnvironment(Environment environment) {
+    this.environment = environment;
+  }
+
 
   @Override
   public void init() {
-    microservice = 
MicroserviceHandler.createMicroservice(configurationProperties, 
microserviceProperties);
-    microserviceInstance = 
MicroserviceHandler.createMicroserviceInstance(configurationProperties,
+    microservice = MicroserviceHandler.createMicroservice(
+        environment, configurationProperties, microserviceProperties);
+    microserviceInstance = MicroserviceHandler.createMicroserviceInstance(
+        environment,
+        configurationProperties,
         microserviceProperties,
         dataCenterProperties);
     serviceCenterRegistration = new 
ServiceCenterRegistration(serviceCenterClient,

Reply via email to