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())