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

liujun pushed a commit to branch 3.3.0-beta.1-release
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.3.0-beta.1-release by this 
push:
     new cff9bfd1d2 fix loading process cannot load environment variables. 
(#13091)
cff9bfd1d2 is described below

commit cff9bfd1d2901501d9d8ded74fac430edaf0a900
Author: Ken Liu <[email protected]>
AuthorDate: Sat Sep 23 16:54:00 2023 +0800

    fix loading process cannot load environment variables. (#13091)
---
 .../dubbo/common/config/ConfigurationUtils.java    |  4 ++--
 .../config/deploy/DefaultApplicationDeployer.java  | 25 ++++++++++++++--------
 .../registry/integration/RegistryProtocol.java     |  2 +-
 .../rest/NoAnnotationRestProtocolTest.java         |  9 +++++---
 4 files changed, 25 insertions(+), 15 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/config/ConfigurationUtils.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/common/config/ConfigurationUtils.java
index 043cdd9e78..ab91c881bb 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/common/config/ConfigurationUtils.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/common/config/ConfigurationUtils.java
@@ -277,7 +277,7 @@ public final class ConfigurationUtils {
             for (Map.Entry<String, V> entry : copy.entrySet()) {
                 String key = entry.getKey();
                 V val = entry.getValue();
-                if (StringUtils.startsWithIgnoreCase(key, prefix)
+                if ((StringUtils.startsWithIgnoreCase(key, prefix) || 
StringUtils.startsWithIgnoreCase(key, StringUtils.toOSStyleKey(prefix)))
                     && key.length() > prefix.length()
                     && !ConfigurationUtils.isEmptyValue(val)) {
 
@@ -317,7 +317,7 @@ public final class ConfigurationUtils {
         }
         for (Map.Entry<String, V> entry : copy.entrySet()) {
             String key = entry.getKey();
-            if (StringUtils.startsWithIgnoreCase(key, prefix)
+            if ((StringUtils.startsWithIgnoreCase(key, prefix) || 
StringUtils.startsWithIgnoreCase(key, StringUtils.toOSStyleKey(prefix)))
                 && key.length() > prefix.length()
                 && !ConfigurationUtils.isEmptyValue(entry.getValue())) {
                 return true;
diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
index 3e194f6557..dad986d200 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
@@ -187,7 +187,7 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
      * by default is false.
      */
     private boolean isRegisterConsumerInstance() {
-        Boolean registerConsumer = getApplication().getRegisterConsumer();
+        Boolean registerConsumer = 
getApplicationOrElseThrow().getRegisterConsumer();
         if (registerConsumer == null) {
             return false;
         }
@@ -310,7 +310,7 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
 
         useRegistryAsMetadataCenterIfNecessary();
 
-        ApplicationConfig applicationConfig = getApplication();
+        ApplicationConfig applicationConfig = getApplicationOrElseThrow();
 
         String metadataType = applicationConfig.getMetadataType();
         // FIXME, multiple metadata config support.
@@ -858,14 +858,18 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
                 if (StringUtils.isNotEmpty(configContent)) {
                     logger.info(String.format("Got global remote configuration 
from config center with key-%s and group-%s: \n %s", 
configCenter.getConfigFile(), configCenter.getGroup(), configContent));
                 }
-                String appGroup = getApplication().getName();
+                String appGroup = "";
                 String appConfigContent = null;
                 String appConfigFile = null;
-                if (isNotEmpty(appGroup)) {
-                    appConfigFile = 
isNotEmpty(configCenter.getAppConfigFile()) ? configCenter.getAppConfigFile() : 
configCenter.getConfigFile();
-                    appConfigContent = 
dynamicConfiguration.getProperties(appConfigFile, appGroup);
-                    if (StringUtils.isNotEmpty(appConfigContent)) {
-                        logger.info(String.format("Got application specific 
remote configuration from config center with key %s and group %s: \n %s", 
appConfigFile, appGroup, appConfigContent));
+                Optional<ApplicationConfig> applicationOptional = 
getApplication();
+                if (applicationOptional.isPresent()) {
+                    appGroup = applicationOptional.get().getName();
+                    if (isNotEmpty(appGroup)) {
+                        appConfigFile = 
isNotEmpty(configCenter.getAppConfigFile()) ? configCenter.getAppConfigFile() : 
configCenter.getConfigFile();
+                        appConfigContent = 
dynamicConfiguration.getProperties(appConfigFile, appGroup);
+                        if (StringUtils.isNotEmpty(appConfigContent)) {
+                            logger.info(String.format("Got application 
specific remote configuration from config center with key %s and group %s: \n 
%s", appConfigFile, appGroup, appConfigContent));
+                        }
                     }
                 }
                 try {
@@ -1322,9 +1326,12 @@ public class DefaultApplicationDeployer extends 
AbstractDeployer<ApplicationMode
         }
     }
 
-    private ApplicationConfig getApplication() {
+    private ApplicationConfig getApplicationOrElseThrow() {
         return configManager.getApplicationOrElseThrow();
     }
 
+    private Optional<ApplicationConfig> getApplication() {
+        return configManager.getApplication();
+    }
 
 }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
index f8d3f72e77..a15f1ad0cf 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
@@ -917,7 +917,7 @@ public class RegistryProtocol implements Protocol, 
ScopeModelAware {
         public ProviderConfigurationListener(ModuleModel moduleModel) {
             super(moduleModel);
             this.moduleModel = moduleModel;
-            if 
(moduleModel.modelEnvironment().getConfiguration().convert(Boolean.class, 
ENABLE_CONFIGURATION_LISTEN, true)) {
+            if 
(moduleModel.modelEnvironment().getConfiguration().getBoolean(ENABLE_CONFIGURATION_LISTEN,
 true)) {
                 
this.initWith(moduleModel.getApplicationModel().getApplicationName() + 
CONFIGURATORS_SUFFIX);
             }
         }
diff --git 
a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/NoAnnotationRestProtocolTest.java
 
b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/NoAnnotationRestProtocolTest.java
index 3d8ad1b2fe..b7a7b439bf 100644
--- 
a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/NoAnnotationRestProtocolTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/NoAnnotationRestProtocolTest.java
@@ -21,7 +21,6 @@ import org.apache.dubbo.common.constants.CommonConstants;
 import org.apache.dubbo.common.extension.ExtensionLoader;
 import org.apache.dubbo.common.utils.JsonUtils;
 import org.apache.dubbo.common.utils.NetUtils;
-
 import org.apache.dubbo.rpc.Exporter;
 import org.apache.dubbo.rpc.Invoker;
 import org.apache.dubbo.rpc.Protocol;
@@ -31,13 +30,11 @@ import org.apache.dubbo.rpc.model.FrameworkModel;
 import org.apache.dubbo.rpc.model.ModuleServiceRepository;
 import org.apache.dubbo.rpc.model.ProviderModel;
 import org.apache.dubbo.rpc.model.ServiceDescriptor;
-
 import org.apache.dubbo.rpc.protocol.rest.noannotation.NoAnnotationDemoService;
 import 
org.apache.dubbo.rpc.protocol.rest.noannotation.NoAnnotationDemoServiceImpl;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
-
 import org.junit.jupiter.api.Test;
 
 import java.util.Arrays;
@@ -53,6 +50,12 @@ class NoAnnotationRestProtocolTest {
     public void tearDown() {
         protocol.destroy();
         FrameworkModel.destroyAll();
+        new JsonUtils() {
+            public void clearJson() {
+                setJson(null);
+            }
+        }.clearJson();
+        System.clearProperty(CommonConstants.PREFER_JSON_FRAMEWORK_NAME);
     }
 
     @Test

Reply via email to