From ca288152a0adcb48085f87b27a643bea31953449 Mon Sep 17 00:00:00 2001 From: "ken.lj" Date: Fri, 28 Feb 2020 19:50:06 +0800 Subject: [PATCH] fix config-center configured in dubbo.properties does not work. (#5811) fixes #5777 --- .../config/bootstrap/DubboBootstrap.java | 51 +++++++++++-------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java index 9d8f9bbd2b..7d1fb5ea80 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java @@ -507,16 +507,12 @@ public class DubboBootstrap extends GenericEventListener { useRegistryAsConfigCenterIfNecessary(); - startMetadataReport(); - loadRemoteConfigs(); checkGlobalConfigs(); initMetadataService(); - initMetadataServiceExporter(); - initEventListener(); if (logger.isInfoEnabled()) { @@ -527,17 +523,22 @@ public class DubboBootstrap extends GenericEventListener { private void checkGlobalConfigs() { // check Application ConfigValidationUtils.validateApplicationConfig(getApplication()); - // check Config Center - Collection configCenters = configManager.getConfigCenters(); - if (CollectionUtils.isNotEmpty(configCenters)) { - for (ConfigCenterConfig configCenterConfig : configCenters) { - ConfigValidationUtils.validateConfigCenterConfig(configCenterConfig); - } - } + // check Metadata Collection metadatas = configManager.getMetadataConfigs(); - for (MetadataReportConfig metadataReportConfig : metadatas) { - ConfigValidationUtils.validateMetadataConfig(metadataReportConfig); + if (CollectionUtils.isEmpty(metadatas)) { + MetadataReportConfig metadataReportConfig = new MetadataReportConfig(); + metadataReportConfig.refresh(); + if (metadataReportConfig.isValid()) { + configManager.addMetadataReport(metadataReportConfig); + metadatas = configManager.getMetadataConfigs(); + } + } + if (CollectionUtils.isNotEmpty(metadatas)) { + for (MetadataReportConfig metadataReportConfig : metadatas) { + metadataReportConfig.refresh(); + ConfigValidationUtils.validateMetadataConfig(metadataReportConfig); + } } // check Provider @@ -580,11 +581,24 @@ public class DubboBootstrap extends GenericEventListener { private void startConfigCenter() { Collection configCenters = configManager.getConfigCenters(); + // check Config Center + if (CollectionUtils.isEmpty(configCenters)) { + ConfigCenterConfig configCenterConfig = new ConfigCenterConfig(); + configCenterConfig.refresh(); + if (configCenterConfig.isValid()) { + configManager.addConfigCenter(configCenterConfig); + configCenters = configManager.getConfigCenters(); + } + } else { + for (ConfigCenterConfig configCenterConfig : configCenters) { + configCenterConfig.refresh(); + ConfigValidationUtils.validateConfigCenterConfig(configCenterConfig); + } + } + if (CollectionUtils.isNotEmpty(configCenters)) { CompositeDynamicConfiguration compositeDynamicConfiguration = new CompositeDynamicConfiguration(); for (ConfigCenterConfig configCenter : configCenters) { - configCenter.refresh(); - ConfigValidationUtils.validateConfigCenterConfig(configCenter); compositeDynamicConfiguration.addConfiguration(prepareEnvironment(configCenter)); } environment.setDynamicConfiguration(compositeDynamicConfiguration); @@ -695,13 +709,8 @@ public class DubboBootstrap extends GenericEventListener { * Initialize {@link MetadataService} from {@link WritableMetadataService}'s extension */ private void initMetadataService() { + startMetadataReport(); this.metadataService = getExtension(getMetadataType()); - } - - /** - * Initialize {@link MetadataServiceExporter} - */ - private void initMetadataServiceExporter() { this.metadataServiceExporter = new ConfigurableMetadataServiceExporter(metadataService); }