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


The following commit(s) were added to refs/heads/master by this push:
     new f8c550e  [SCB-2057] set the AppId, ServiceName, Version information by 
reading the environment variable (#1909)
f8c550e is described below

commit f8c550edfd813e82d123a6537c529645ce174dce
Author: GuoYL <[email protected]>
AuthorDate: Thu Aug 6 17:14:56 2020 +0800

    [SCB-2057] set the AppId, ServiceName, Version information by reading the 
environment variable (#1909)
    
    (cherry picked from commit 9f6c57220fa48cd2f53324124ae0271b5ddae16f)
---
 .../common/base/ServiceCombConstants.java          |  6 ++++
 .../registry/api/registry/MicroserviceFactory.java | 37 ++++++++++++++++++----
 2 files changed, 37 insertions(+), 6 deletions(-)

diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/base/ServiceCombConstants.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/base/ServiceCombConstants.java
index a4f3273..53214fa 100644
--- 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/base/ServiceCombConstants.java
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/base/ServiceCombConstants.java
@@ -68,4 +68,10 @@ public interface ServiceCombConstants {
   String DEVELOPMENT_SERVICECOMB_ENV = "development";
 
   String PRODUCTION_SERVICECOMB_ENV = "production";
+
+  String SERVICE_MAPPING = "SERVICE_MAPPING";
+
+  String VERSION_MAPPING = "VERSION_MAPPING";
+
+  String APP_MAPPING = "APP_MAPPING";
 }
diff --git 
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
 
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
index 855afa3..d3f9f31 100644
--- 
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
+++ 
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
@@ -24,10 +24,15 @@ import static 
org.apache.servicecomb.foundation.common.base.ServiceCombConstants
 import static 
org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_MICROSERVICE_NAME;
 import static 
org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_SERVICECOMB_ENV;
 import static 
org.apache.servicecomb.foundation.common.base.ServiceCombConstants.SERVICECOMB_ENV;
+import static 
org.apache.servicecomb.foundation.common.base.ServiceCombConstants.APP_MAPPING;
+import static 
org.apache.servicecomb.foundation.common.base.ServiceCombConstants.SERVICE_MAPPING;
+import static 
org.apache.servicecomb.foundation.common.base.ServiceCombConstants.VERSION_MAPPING;
 
 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.registry.config.ConfigurePropertyUtils;
 import org.apache.servicecomb.registry.config.MicroservicePropertiesLoader;
 import org.apache.servicecomb.registry.definition.DefinitionConst;
@@ -49,14 +54,34 @@ public class MicroserviceFactory {
 
   private Microservice createMicroserviceFromDefinition(Configuration 
configuration) {
     Microservice microservice = new Microservice();
-    
microservice.setServiceName(configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY,
-        DEFAULT_MICROSERVICE_NAME));
-    microservice.setAppId(configuration.getString(CONFIG_APPLICATION_ID_KEY, 
DefinitionConst.DEFAULT_APPLICATION_ID));
-    String version = 
configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY,
-        DefinitionConst.DEFAULT_MICROSERVICE_VERSION);
+
+    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)));
+    } else {
+      microservice.setAppId(configuration
+          .getString(CONFIG_APPLICATION_ID_KEY, 
DefinitionConst.DEFAULT_APPLICATION_ID));
+    }
+    if (!StringUtils.isEmpty(envConfig.getString(SERVICE_MAPPING)) &&
+        
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(SERVICE_MAPPING))))
 {
+      
microservice.setServiceName(envConfig.getString(envConfig.getString(SERVICE_MAPPING)));
+    } else {
+      
microservice.setServiceName(configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY,
+          DEFAULT_MICROSERVICE_NAME));
+    }
+    String version;
+    if (!StringUtils.isEmpty(envConfig.getString(VERSION_MAPPING)) &&
+        
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(VERSION_MAPPING))))
 {
+      version = envConfig.getString(envConfig.getString(VERSION_MAPPING));
+    } else {
+      version = 
configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY,
+          DefinitionConst.DEFAULT_MICROSERVICE_VERSION);
+    }
     // just check version format
     new Version(version);
     microservice.setVersion(version);
+
     setDescription(configuration, microservice);
     
microservice.setLevel(configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_ROLE_KEY,
 "FRONT"));
     
microservice.setPaths(ConfigurePropertyUtils.getMicroservicePaths(configuration));
@@ -92,6 +117,6 @@ public class MicroserviceFactory {
   }
 
   private boolean allowCrossApp(Map<String, String> propertiesMap) {
-    return 
Boolean.valueOf(propertiesMap.get(DefinitionConst.CONFIG_ALLOW_CROSS_APP_KEY));
+    return 
Boolean.parseBoolean(propertiesMap.get(DefinitionConst.CONFIG_ALLOW_CROSS_APP_KEY));
   }
 }

Reply via email to