From 428ca27a94826e5dadda1b2ab0d588ba3ece5fa2 Mon Sep 17 00:00:00 2001 From: jiangyuan <469391363@qq.com> Date: Thu, 29 Feb 2024 15:25:22 +0800 Subject: [PATCH] Fix ModuleEnvironment#getDynamicGlobalConfiguration (#13781) * Update ModuleEnvironment#getDynamicGlobalConfiguration * add unit test * update --- .../dubbo/common/config/ModuleEnvironment.java | 18 +++++------------- .../OrderedPropertiesConfigurationTest.java | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/config/ModuleEnvironment.java b/dubbo-common/src/main/java/org/apache/dubbo/common/config/ModuleEnvironment.java index 3de18ccbf0..c014c57a64 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/config/ModuleEnvironment.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/config/ModuleEnvironment.java @@ -29,8 +29,6 @@ import java.util.Map; import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; -import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_UNEXPECTED_EXCEPTION; - public class ModuleEnvironment extends Environment implements ModuleExt { // delegate @@ -94,19 +92,13 @@ public class ModuleEnvironment extends Environment implements ModuleExt { @Override public Configuration getDynamicGlobalConfiguration() { if (dynamicConfiguration == null) { - return applicationDelegate.getDynamicGlobalConfiguration(); + CompositeConfiguration configuration = new CompositeConfiguration(); + configuration.addConfiguration(applicationDelegate.getDynamicGlobalConfiguration()); + configuration.addConfiguration(orderedPropertiesConfiguration); + return configuration; } + if (dynamicGlobalConfiguration == null) { - if (dynamicConfiguration == null) { - if (logger.isWarnEnabled()) { - logger.warn( - COMMON_UNEXPECTED_EXCEPTION, - "", - "", - "dynamicConfiguration is null , return globalConfiguration."); - } - return getConfiguration(); - } dynamicGlobalConfiguration = new CompositeConfiguration(); dynamicGlobalConfiguration.addConfiguration(dynamicConfiguration); dynamicGlobalConfiguration.addConfiguration(getConfiguration()); diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/config/OrderedPropertiesConfigurationTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/config/OrderedPropertiesConfigurationTest.java index 8fc082de28..aaf2eb628f 100644 --- a/dubbo-common/src/test/java/org/apache/dubbo/common/config/OrderedPropertiesConfigurationTest.java +++ b/dubbo-common/src/test/java/org/apache/dubbo/common/config/OrderedPropertiesConfigurationTest.java @@ -17,6 +17,8 @@ package org.apache.dubbo.common.config; import org.apache.dubbo.rpc.model.ApplicationModel; +import org.apache.dubbo.rpc.model.FrameworkModel; +import org.apache.dubbo.rpc.model.ModuleModel; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -32,4 +34,18 @@ class OrderedPropertiesConfigurationTest { ApplicationModel.defaultModel().getDefaultModule()); Assertions.assertEquals("999", configuration.getInternalProperty("testKey")); } + + @Test + void testGetPropertyFromOrderedPropertiesConfiguration() { + FrameworkModel frameworkModel = new FrameworkModel(); + + ApplicationModel applicationModel = frameworkModel.newApplication(); + + ModuleModel moduleModel = applicationModel.newModule(); + ModuleEnvironment moduleEnvironment = moduleModel.modelEnvironment(); + + Configuration configuration = moduleEnvironment.getDynamicGlobalConfiguration(); + // MockOrderedPropertiesProvider2 initProperties + Assertions.assertEquals("999", configuration.getString("testKey")); + } }