enhance configuration api (#5774)
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 58f3fb3..b0447c8 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
@@ -37,11 +37,40 @@
public class ConfigurationUtils {
private static final Logger logger = LoggerFactory.getLogger(ConfigurationUtils.class);
+ /**
+ * Used to get properties from the jvm
+ *
+ * @return
+ */
+ public static Configuration getSystemConfiguration() {
+ return ApplicationModel.getEnvironment().getSystemConfiguration();
+ }
+
+ /**
+ * Used to get properties from the os environment
+ *
+ * @return
+ */
+ public static Configuration getEnvConfiguration() {
+ return ApplicationModel.getEnvironment().getEnvironmentConfiguration();
+ }
+
+ /**
+ * Used to get an composite property value.
+ * <p>
+ * Also see {@link Environment#getConfiguration()}
+ *
+ * @return
+ */
+ public static Configuration getGlobalConfiguration() {
+ return ApplicationModel.getEnvironment().getConfiguration();
+ }
+
// FIXME
@SuppressWarnings("deprecation")
public static int getServerShutdownTimeout() {
int timeout = DEFAULT_SERVER_SHUTDOWN_TIMEOUT;
- Configuration configuration = ApplicationModel.getEnvironment().getConfiguration();
+ Configuration configuration = getGlobalConfiguration();
String value = StringUtils.trim(configuration.getString(SHUTDOWN_WAIT_KEY));
if (value != null && value.length() > 0) {
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/config/Environment.java b/dubbo-common/src/main/java/org/apache/dubbo/common/config/Environment.java
index e4522a7..52da9d0 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/config/Environment.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/config/Environment.java
@@ -191,6 +191,26 @@
clearAppExternalConfigs();
}
+ public PropertiesConfiguration getPropertiesConfiguration() {
+ return propertiesConfiguration;
+ }
+
+ public SystemConfiguration getSystemConfiguration() {
+ return systemConfiguration;
+ }
+
+ public EnvironmentConfiguration getEnvironmentConfiguration() {
+ return environmentConfiguration;
+ }
+
+ public InmemoryConfiguration getExternalConfiguration() {
+ return externalConfiguration;
+ }
+
+ public InmemoryConfiguration getAppExternalConfiguration() {
+ return appExternalConfiguration;
+ }
+
// For test
public void clearExternalConfigs() {
this.externalConfiguration.clear();