You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2019/08/09 04:47:33 UTC

[dubbo] branch cloud-native updated: Remove ConfigManager operations in sub Configs, leave it to DubboBootstrap

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

liujun pushed a commit to branch cloud-native
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/cloud-native by this push:
     new 48c1cc4  Remove ConfigManager operations in sub Configs, leave it to DubboBootstrap
48c1cc4 is described below

commit 48c1cc4bfebcf3a66e4143862e87581ab6615d43
Author: ken.lj <ke...@gmail.com>
AuthorDate: Fri Aug 9 12:47:03 2019 +0800

    Remove ConfigManager operations in sub Configs, leave it to DubboBootstrap
---
 .../dubbo/config/AbstractInterfaceConfig.java      |  14 +-
 .../dubbo/config/AbstractReferenceConfig.java      |   4 +-
 .../apache/dubbo/config/AbstractServiceConfig.java |   2 -
 .../org/apache/dubbo/config/ReferenceConfig.java   |  11 +-
 .../org/apache/dubbo/config/ServiceConfig.java     |  19 ++
 .../apache/dubbo/config/spring/ReferenceBean.java  | 160 ----------------
 .../apache/dubbo/config/spring/ServiceBean.java    | 206 ---------------------
 7 files changed, 40 insertions(+), 376 deletions(-)

diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
index 874e38b..5819a50 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
@@ -462,6 +462,7 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
     }
 
     private void convertRegistryIdsToRegistries() {
+        computeValidRegistryIds();
         if (StringUtils.isEmpty(registryIds)) {
             if (CollectionUtils.isEmpty(registries)) {
                 List<RegistryConfig> registryConfigs = ConfigManager.getInstance().getDefaultRegistries();
@@ -492,6 +493,14 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
 
     }
 
+    protected void computeValidRegistryIds() {
+        if (StringUtils.isEmpty(getRegistryIds())) {
+            if (getApplication() != null && StringUtils.isNotEmpty(getApplication().getRegistryIds())) {
+                setRegistryIds(getApplication().getRegistryIds());
+            }
+        }
+    }
+
     private void loadRegistriesFromBackwardConfig() {
         // for backward compatibility
         // -Ddubbo.registry.address is now deprecated.
@@ -620,7 +629,6 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
     }
 
     public void setApplication(ApplicationConfig application) {
-        ConfigManager.getInstance().setApplication(application);
         this.application = application;
     }
 
@@ -645,7 +653,6 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
     }
 
     public void setModule(ModuleConfig module) {
-        ConfigManager.getInstance().setModule(module);
         this.module = module;
     }
 
@@ -665,7 +672,6 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
 
     @SuppressWarnings({"unchecked"})
     public void setRegistries(List<? extends RegistryConfig> registries) {
-        ConfigManager.getInstance().addRegistries((List<RegistryConfig>) registries);
         this.registries = (List<RegistryConfig>) registries;
     }
 
@@ -687,7 +693,6 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
     }
 
     public void setMonitor(MonitorConfig monitor) {
-        ConfigManager.getInstance().setMonitor(monitor);
         this.monitor = monitor;
     }
 
@@ -705,7 +710,6 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
     }
 
     public void setConfigCenter(ConfigCenterConfig configCenter) {
-        ConfigManager.getInstance().addConfigCenter(configCenter);
         this.configCenter = configCenter;
     }
 
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
index 545c2bc..7dcb70f 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
@@ -21,13 +21,13 @@ import org.apache.dubbo.remoting.Constants;
 import org.apache.dubbo.rpc.InvokerListener;
 import org.apache.dubbo.rpc.support.ProtocolUtils;
 
-import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_STICKY_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
-import static org.apache.dubbo.rpc.Constants.LAZY_CONNECT_KEY;
 import static org.apache.dubbo.rpc.Constants.INVOKER_LISTENER_KEY;
+import static org.apache.dubbo.rpc.Constants.LAZY_CONNECT_KEY;
 import static org.apache.dubbo.rpc.Constants.REFERENCE_FILTER_KEY;
 import static org.apache.dubbo.rpc.Constants.STUB_EVENT_KEY;
+import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_STICKY_KEY;
 
 /**
  * AbstractConsumerConfig
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
index b7fb5c1..b7db2cb 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
@@ -17,7 +17,6 @@
 package org.apache.dubbo.config;
 
 import org.apache.dubbo.common.utils.CollectionUtils;
-import org.apache.dubbo.config.context.ConfigManager;
 import org.apache.dubbo.config.support.Parameter;
 import org.apache.dubbo.rpc.ExporterListener;
 
@@ -206,7 +205,6 @@ public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {
 
     @SuppressWarnings({"unchecked"})
     public void setProtocols(List<? extends ProtocolConfig> protocols) {
-        ConfigManager.getInstance().addProtocols((List<ProtocolConfig>) protocols);
         this.protocols = (List<ProtocolConfig>) protocols;
     }
 
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index b9e0eb9..3620761 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -625,7 +625,6 @@ public class ReferenceConfig<T> extends AbstractReferenceConfig {
     }
 
     public void setConsumer(ConsumerConfig consumer) {
-        ConfigManager.getInstance().addConsumer(consumer);
         this.consumer = consumer;
     }
 
@@ -691,4 +690,14 @@ public class ReferenceConfig<T> extends AbstractReferenceConfig {
     protected void dispatch(Event event) {
         eventDispatcher.dispatch(event);
     }
+
+    @Override
+    protected void computeValidRegistryIds() {
+        super.computeValidRegistryIds();
+        if (StringUtils.isEmpty(getRegistryIds())) {
+            if (getConsumer() != null && StringUtils.isNotEmpty(getConsumer().getRegistryIds())) {
+                setRegistryIds(getConsumer().getRegistryIds());
+            }
+        }
+    }
 }
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
index 192b558..c7b8f75 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
@@ -879,6 +879,7 @@ public class ServiceConfig<T> extends AbstractServiceConfig {
     }
 
     private void convertProtocolIdsToProtocols() {
+        computeValidProtocolIds();
         if (StringUtils.isEmpty(protocolIds)) {
             if (CollectionUtils.isEmpty(protocols)) {
                 List<ProtocolConfig> protocolConfigs = ConfigManager.getInstance().getDefaultProtocols();
@@ -1059,4 +1060,22 @@ public class ServiceConfig<T> extends AbstractServiceConfig {
     protected void dispatch(Event event) {
         eventDispatcher.dispatch(event);
     }
+
+    private void computeValidProtocolIds() {
+        if (StringUtils.isEmpty(getProtocolIds())) {
+            if (getProvider() != null && StringUtils.isNotEmpty(getProvider().getProtocolIds())) {
+                setProtocolIds(getProvider().getProtocolIds());
+            }
+        }
+    }
+
+    @Override
+    protected void computeValidRegistryIds() {
+        super.computeValidRegistryIds();
+        if (StringUtils.isEmpty(getRegistryIds())) {
+            if (getProvider() != null && StringUtils.isNotEmpty(getProvider().getRegistryIds())) {
+                setRegistryIds(getProvider().getRegistryIds());
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBean.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBean.java
index 314cdfe..4a07e83 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBean.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBean.java
@@ -16,17 +16,7 @@
  */
 package org.apache.dubbo.config.spring;
 
-import org.apache.dubbo.common.utils.CollectionUtils;
-import org.apache.dubbo.common.utils.StringUtils;
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ConfigCenterConfig;
-import org.apache.dubbo.config.ConsumerConfig;
-import org.apache.dubbo.config.MetadataReportConfig;
-import org.apache.dubbo.config.MetricsConfig;
-import org.apache.dubbo.config.ModuleConfig;
-import org.apache.dubbo.config.MonitorConfig;
 import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
 import org.apache.dubbo.config.annotation.Reference;
 import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;
 import org.apache.dubbo.config.support.Parameter;
@@ -38,13 +28,6 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;
-
 /**
  * ReferenceFactoryBean
  */
@@ -91,149 +74,6 @@ public class ReferenceBean<T> extends ReferenceConfig<T> implements FactoryBean,
             BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ConfigCenterBean.class, false, false);
         }
 
-        if (getConsumer() == null) {
-            Map<String, ConsumerConfig> consumerConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ConsumerConfig.class, false, false);
-            if (consumerConfigMap != null && consumerConfigMap.size() > 0) {
-                ConsumerConfig consumerConfig = null;
-                for (ConsumerConfig config : consumerConfigMap.values()) {
-                    if (config.isDefault() == null || config.isDefault()) {
-                        if (consumerConfig != null) {
-                            throw new IllegalStateException("Duplicate consumer configs: " + consumerConfig + " and " + config);
-                        }
-                        consumerConfig = config;
-                    }
-                }
-                if (consumerConfig != null) {
-                    setConsumer(consumerConfig);
-                }
-            }
-        }
-        if (getApplication() == null
-                && (getConsumer() == null || getConsumer().getApplication() == null)) {
-            Map<String, ApplicationConfig> applicationConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ApplicationConfig.class, false, false);
-            if (applicationConfigMap != null && applicationConfigMap.size() > 0) {
-                ApplicationConfig applicationConfig = null;
-                for (ApplicationConfig config : applicationConfigMap.values()) {
-                    if (applicationConfig != null) {
-                        throw new IllegalStateException("Duplicate application configs: " + applicationConfig + " and " + config);
-                    }
-                    applicationConfig = config;
-                }
-                if (applicationConfig != null) {
-                    setApplication(applicationConfig);
-                }
-            }
-        }
-        if (getModule() == null
-                && (getConsumer() == null || getConsumer().getModule() == null)) {
-            Map<String, ModuleConfig> moduleConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ModuleConfig.class, false, false);
-            if (moduleConfigMap != null && moduleConfigMap.size() > 0) {
-                ModuleConfig moduleConfig = null;
-                for (ModuleConfig config : moduleConfigMap.values()) {
-                    if (config.isDefault() == null || config.isDefault()) {
-                        if (moduleConfig != null) {
-                            throw new IllegalStateException("Duplicate module configs: " + moduleConfig + " and " + config);
-                        }
-                        moduleConfig = config;
-                    }
-                }
-                if (moduleConfig != null) {
-                    setModule(moduleConfig);
-                }
-            }
-        }
-
-        if (StringUtils.isEmpty(getRegistryIds())) {
-            if (getApplication() != null && StringUtils.isNotEmpty(getApplication().getRegistryIds())) {
-                setRegistryIds(getApplication().getRegistryIds());
-            }
-            if (getConsumer() != null && StringUtils.isNotEmpty(getConsumer().getRegistryIds())) {
-                setRegistryIds(getConsumer().getRegistryIds());
-            }
-        }
-
-        if (CollectionUtils.isEmpty(getRegistries())
-                && (getConsumer() == null || CollectionUtils.isEmpty(getConsumer().getRegistries()))
-                && (getApplication() == null || CollectionUtils.isEmpty(getApplication().getRegistries()))) {
-            Map<String, RegistryConfig> registryConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, RegistryConfig.class, false, false);
-            if (registryConfigMap != null && registryConfigMap.size() > 0) {
-                List<RegistryConfig> registryConfigs = new ArrayList<>();
-                if (StringUtils.isNotEmpty(registryIds)) {
-                    Arrays.stream(COMMA_SPLIT_PATTERN.split(registryIds)).forEach(id -> {
-                        if (registryConfigMap.containsKey(id)) {
-                            registryConfigs.add(registryConfigMap.get(id));
-                        }
-                    });
-                }
-
-                if (registryConfigs.isEmpty()) {
-                    for (RegistryConfig config : registryConfigMap.values()) {
-                        if (StringUtils.isEmpty(registryIds)) {
-                            registryConfigs.add(config);
-                        }
-                    }
-                }
-                if (!registryConfigs.isEmpty()) {
-                    super.setRegistries(registryConfigs);
-                }
-            }
-        }
-
-        if (getMetadataReportConfig() == null) {
-            Map<String, MetadataReportConfig> metadataReportConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, MetadataReportConfig.class, false, false);
-            if (metadataReportConfigMap != null && metadataReportConfigMap.size() == 1) {
-                // first elements
-                super.setMetadataReportConfig(metadataReportConfigMap.values().iterator().next());
-            } else if (metadataReportConfigMap != null && metadataReportConfigMap.size() > 1) {
-                throw new IllegalStateException("Multiple MetadataReport configs: " + metadataReportConfigMap);
-            }
-        }
-
-        if (getConfigCenter() == null) {
-            Map<String, ConfigCenterConfig> configenterMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ConfigCenterConfig.class, false, false);
-            if (configenterMap != null && configenterMap.size() == 1) {
-                super.setConfigCenter(configenterMap.values().iterator().next());
-            } else if (configenterMap != null && configenterMap.size() > 1) {
-                throw new IllegalStateException("Multiple ConfigCenter found:" + configenterMap);
-            }
-        }
-
-        if (getMonitor() == null
-                && (getConsumer() == null || getConsumer().getMonitor() == null)
-                && (getApplication() == null || getApplication().getMonitor() == null)) {
-            Map<String, MonitorConfig> monitorConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, MonitorConfig.class, false, false);
-            if (monitorConfigMap != null && monitorConfigMap.size() > 0) {
-                MonitorConfig monitorConfig = null;
-                for (MonitorConfig config : monitorConfigMap.values()) {
-                    if (config.isDefault() == null || config.isDefault()) {
-                        if (monitorConfig != null) {
-                            throw new IllegalStateException("Duplicate monitor configs: " + monitorConfig + " and " + config);
-                        }
-                        monitorConfig = config;
-                    }
-                }
-                if (monitorConfig != null) {
-                    setMonitor(monitorConfig);
-                }
-            }
-        }
-
-        if (getMetrics() == null) {
-            Map<String, MetricsConfig> metricsConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, MetricsConfig.class, false, false);
-            if (metricsConfigMap != null && metricsConfigMap.size() > 0) {
-                MetricsConfig metricsConfig = null;
-                for (MetricsConfig config : metricsConfigMap.values()) {
-                    if (metricsConfig != null) {
-                        throw new IllegalStateException("Duplicate metrics configs: " + metricsConfig + " and " + config);
-                    }
-                    metricsConfig = config;
-                }
-                if (metricsConfig != null) {
-                    setMetrics(metricsConfig);
-                }
-            }
-        }
-
         if (shouldInit()) {
             getObject();
         }
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ServiceBean.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ServiceBean.java
index 40eea8c..5e54c25 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ServiceBean.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ServiceBean.java
@@ -16,24 +16,13 @@
  */
 package org.apache.dubbo.config.spring;
 
-import org.apache.dubbo.common.utils.CollectionUtils;
 import org.apache.dubbo.common.utils.StringUtils;
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ConfigCenterConfig;
-import org.apache.dubbo.config.MetadataReportConfig;
-import org.apache.dubbo.config.MetricsConfig;
-import org.apache.dubbo.config.ModuleConfig;
-import org.apache.dubbo.config.MonitorConfig;
-import org.apache.dubbo.config.ProtocolConfig;
-import org.apache.dubbo.config.ProviderConfig;
-import org.apache.dubbo.config.RegistryConfig;
 import org.apache.dubbo.config.ServiceConfig;
 import org.apache.dubbo.config.annotation.Service;
 import org.apache.dubbo.config.spring.context.event.ServiceBeanExportedEvent;
 import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;
 
 import org.springframework.aop.support.AopUtils;
-import org.springframework.beans.factory.BeanFactoryUtils;
 import org.springframework.beans.factory.BeanNameAware;
 import org.springframework.beans.factory.DisposableBean;
 import org.springframework.beans.factory.InitializingBean;
@@ -44,12 +33,6 @@ import org.springframework.context.ApplicationEventPublisherAware;
 import org.springframework.context.ApplicationListener;
 import org.springframework.context.event.ContextRefreshedEvent;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;
 import static org.apache.dubbo.config.spring.util.BeanFactoryUtils.addApplicationListener;
 
 /**
@@ -116,196 +99,7 @@ public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean
     }
 
     @Override
-    @SuppressWarnings({"unchecked", "deprecation"})
     public void afterPropertiesSet() throws Exception {
-        if (getProvider() == null) {
-            Map<String, ProviderConfig> providerConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ProviderConfig.class, false, false);
-            if (providerConfigMap != null && providerConfigMap.size() > 0) {
-                Map<String, ProtocolConfig> protocolConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ProtocolConfig.class, false, false);
-                if (CollectionUtils.isEmptyMap(protocolConfigMap)
-                        && providerConfigMap.size() > 1) { // backward compatibility
-                    List<ProviderConfig> providerConfigs = new ArrayList<ProviderConfig>();
-                    for (ProviderConfig config : providerConfigMap.values()) {
-                        if (config.isDefault() != null && config.isDefault()) {
-                            providerConfigs.add(config);
-                        }
-                    }
-                    if (!providerConfigs.isEmpty()) {
-                        setProviders(providerConfigs);
-                    }
-                } else {
-                    ProviderConfig providerConfig = null;
-                    for (ProviderConfig config : providerConfigMap.values()) {
-                        if (config.isDefault() == null || config.isDefault()) {
-                            if (providerConfig != null) {
-                                throw new IllegalStateException("Duplicate provider configs: " + providerConfig + " and " + config);
-                            }
-                            providerConfig = config;
-                        }
-                    }
-                    if (providerConfig != null) {
-                        setProvider(providerConfig);
-                    }
-                }
-            }
-        }
-        if (getApplication() == null
-                && (getProvider() == null || getProvider().getApplication() == null)) {
-            Map<String, ApplicationConfig> applicationConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ApplicationConfig.class, false, false);
-            if (applicationConfigMap != null && applicationConfigMap.size() > 0) {
-                ApplicationConfig applicationConfig = null;
-                for (ApplicationConfig config : applicationConfigMap.values()) {
-                    if (applicationConfig != null) {
-                        throw new IllegalStateException("Duplicate application configs: " + applicationConfig + " and " + config);
-                    }
-                    applicationConfig = config;
-                }
-                if (applicationConfig != null) {
-                    setApplication(applicationConfig);
-                }
-            }
-        }
-        if (getModule() == null
-                && (getProvider() == null || getProvider().getModule() == null)) {
-            Map<String, ModuleConfig> moduleConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ModuleConfig.class, false, false);
-            if (moduleConfigMap != null && moduleConfigMap.size() > 0) {
-                ModuleConfig moduleConfig = null;
-                for (ModuleConfig config : moduleConfigMap.values()) {
-                    if (config.isDefault() == null || config.isDefault()) {
-                        if (moduleConfig != null) {
-                            throw new IllegalStateException("Duplicate module configs: " + moduleConfig + " and " + config);
-                        }
-                        moduleConfig = config;
-                    }
-                }
-                if (moduleConfig != null) {
-                    setModule(moduleConfig);
-                }
-            }
-        }
-
-        if (StringUtils.isEmpty(getRegistryIds())) {
-            if (getApplication() != null && StringUtils.isNotEmpty(getApplication().getRegistryIds())) {
-                setRegistryIds(getApplication().getRegistryIds());
-            }
-            if (getProvider() != null && StringUtils.isNotEmpty(getProvider().getRegistryIds())) {
-                setRegistryIds(getProvider().getRegistryIds());
-            }
-        }
-
-        if ((CollectionUtils.isEmpty(getRegistries()))
-                && (getProvider() == null || CollectionUtils.isEmpty(getProvider().getRegistries()))
-                && (getApplication() == null || CollectionUtils.isEmpty(getApplication().getRegistries()))) {
-            Map<String, RegistryConfig> registryConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, RegistryConfig.class, false, false);
-            if (CollectionUtils.isNotEmptyMap(registryConfigMap)) {
-                List<RegistryConfig> registryConfigs = new ArrayList<>();
-                if (StringUtils.isNotEmpty(registryIds)) {
-                    Arrays.stream(COMMA_SPLIT_PATTERN.split(registryIds)).forEach(id -> {
-                        if (registryConfigMap.containsKey(id)) {
-                            registryConfigs.add(registryConfigMap.get(id));
-                        }
-                    });
-                }
-
-                if (registryConfigs.isEmpty()) {
-                    for (RegistryConfig config : registryConfigMap.values()) {
-                        if (StringUtils.isEmpty(registryIds)) {
-                            registryConfigs.add(config);
-                        }
-                    }
-                }
-                if (!registryConfigs.isEmpty()) {
-                    super.setRegistries(registryConfigs);
-                }
-            }
-        }
-        if (getMetadataReportConfig() == null) {
-            Map<String, MetadataReportConfig> metadataReportConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, MetadataReportConfig.class, false, false);
-            if (metadataReportConfigMap != null && metadataReportConfigMap.size() == 1) {
-                super.setMetadataReportConfig(metadataReportConfigMap.values().iterator().next());
-            } else if (metadataReportConfigMap != null && metadataReportConfigMap.size() > 1) {
-                throw new IllegalStateException("Multiple MetadataReport configs: " + metadataReportConfigMap);
-            }
-        }
-
-        if (getConfigCenter() == null) {
-            Map<String, ConfigCenterConfig> configenterMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ConfigCenterConfig.class, false, false);
-            if (configenterMap != null && configenterMap.size() == 1) {
-                super.setConfigCenter(configenterMap.values().iterator().next());
-            } else if (configenterMap != null && configenterMap.size() > 1) {
-                throw new IllegalStateException("Multiple ConfigCenter found:" + configenterMap);
-            }
-        }
-
-        if (getMonitor() == null
-                && (getProvider() == null || getProvider().getMonitor() == null)
-                && (getApplication() == null || getApplication().getMonitor() == null)) {
-            Map<String, MonitorConfig> monitorConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, MonitorConfig.class, false, false);
-            if (monitorConfigMap != null && monitorConfigMap.size() > 0) {
-                MonitorConfig monitorConfig = null;
-                for (MonitorConfig config : monitorConfigMap.values()) {
-                    if (config.isDefault() == null || config.isDefault()) {
-                        if (monitorConfig != null) {
-                            throw new IllegalStateException("Duplicate monitor configs: " + monitorConfig + " and " + config);
-                        }
-                        monitorConfig = config;
-                    }
-                }
-                if (monitorConfig != null) {
-                    setMonitor(monitorConfig);
-                }
-            }
-        }
-
-        if (getMetrics() == null) {
-            Map<String, MetricsConfig> metricsConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, MetricsConfig.class, false, false);
-            if (metricsConfigMap != null && metricsConfigMap.size() > 0) {
-                MetricsConfig metricsConfig = null;
-                for (MetricsConfig config : metricsConfigMap.values()) {
-                    if (metricsConfig != null) {
-                        throw new IllegalStateException("Duplicate metrics configs: " + metricsConfig + " and " + config);
-                    }
-                    metricsConfig = config;
-                }
-                if (metricsConfig != null) {
-                    setMetrics(metricsConfig);
-                }
-            }
-        }
-
-        if (StringUtils.isEmpty(getProtocolIds())) {
-            if (getProvider() != null && StringUtils.isNotEmpty(getProvider().getProtocolIds())) {
-                setProtocolIds(getProvider().getProtocolIds());
-            }
-        }
-
-        if (CollectionUtils.isEmpty(getProtocols())
-                && (getProvider() == null || CollectionUtils.isEmpty(getProvider().getProtocols()))) {
-            Map<String, ProtocolConfig> protocolConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, ProtocolConfig.class, false, false);
-            if (protocolConfigMap != null && protocolConfigMap.size() > 0) {
-                List<ProtocolConfig> protocolConfigs = new ArrayList<ProtocolConfig>();
-                if (StringUtils.isNotEmpty(getProtocolIds())) {
-                    Arrays.stream(COMMA_SPLIT_PATTERN.split(getProtocolIds()))
-                            .forEach(id -> {
-                                if (protocolConfigMap.containsKey(id)) {
-                                    protocolConfigs.add(protocolConfigMap.get(id));
-                                }
-                            });
-                }
-
-                if (protocolConfigs.isEmpty()) {
-                    for (ProtocolConfig config : protocolConfigMap.values()) {
-                        if (StringUtils.isEmpty(protocolIds)) {
-                            protocolConfigs.add(config);
-                        }
-                    }
-                }
-
-                if (!protocolConfigs.isEmpty()) {
-                    super.setProtocols(protocolConfigs);
-                }
-            }
-        }
         if (StringUtils.isEmpty(getPath())) {
             if (StringUtils.isNotEmpty(beanName)
                     && StringUtils.isNotEmpty(getInterface())