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 2020/01/31 07:50:43 UTC
[dubbo] branch master updated: [Dubbo-5633] fixes Provider and
Consumer default config do not work (#5682)
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 457b04d [Dubbo-5633] fixes Provider and Consumer default config do not work (#5682)
457b04d is described below
commit 457b04dcf534ad3a2700eeb0cde483dad1a68a5e
Author: ken.lj <ke...@gmail.com>
AuthorDate: Fri Jan 31 15:50:13 2020 +0800
[Dubbo-5633] fixes Provider and Consumer default config do not work (#5682)
* fixes Provider and Consumer default config do not work
* create new instance if there isn't one.
---
.../apache/dubbo/config/ReferenceConfigBase.java | 15 ++++++------
.../org/apache/dubbo/config/ServiceConfigBase.java | 25 +++++++------------
.../dubbo/config/bootstrap/DubboBootstrap.java | 28 ++++++++++++++++++++++
3 files changed, 44 insertions(+), 24 deletions(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/ReferenceConfigBase.java b/dubbo-common/src/main/java/org/apache/dubbo/config/ReferenceConfigBase.java
index fe91632..4d633c0 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/ReferenceConfigBase.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ReferenceConfigBase.java
@@ -111,15 +111,12 @@ public abstract class ReferenceConfigBase<T> extends AbstractReferenceConfig {
return shouldInit;
}
- public void checkDefault() {
- if (consumer != null) {
- return;
+ public void checkDefault() throws IllegalStateException {
+ if (consumer == null) {
+ consumer = ApplicationModel.getConfigManager()
+ .getDefaultConsumer()
+ .orElse(new ConsumerConfig());
}
- setConsumer(ApplicationModel.getConfigManager().getDefaultConsumer().orElseGet(() -> {
- ConsumerConfig consumerConfig = new ConsumerConfig();
- consumerConfig.refresh();
- return consumerConfig;
- }));
}
public Class<?> getActualInterface() {
@@ -271,6 +268,8 @@ public abstract class ReferenceConfigBase<T> extends AbstractReferenceConfig {
@Parameter(excluded = true)
public String getUniqueServiceName() {
+ String group = StringUtils.isEmpty(this.group) ? consumer.getGroup() : this.group;
+ String version = StringUtils.isEmpty(this.version) ? consumer.getVersion() : this.version;
return URL.buildKey(interfaceName, group, version);
}
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/ServiceConfigBase.java b/dubbo-common/src/main/java/org/apache/dubbo/config/ServiceConfigBase.java
index fbbda9e..3d73efd 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/ServiceConfigBase.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ServiceConfigBase.java
@@ -197,23 +197,12 @@ public abstract class ServiceConfigBase<T> extends AbstractServiceConfig {
return ref.getClass();
}
- public void checkDefault() {
- createProviderIfAbsent();
- }
-
- private void createProviderIfAbsent() {
- if (provider != null) {
- return;
+ public void checkDefault() throws IllegalStateException {
+ if (provider == null) {
+ provider = ApplicationModel.getConfigManager()
+ .getDefaultProvider()
+ .orElse(new ProviderConfig());
}
- setProvider(
- ApplicationModel.getConfigManager()
- .getDefaultProvider()
- .orElseGet(() -> {
- ProviderConfig providerConfig = new ProviderConfig();
- providerConfig.refresh();
- return providerConfig;
- })
- );
}
public void checkProtocol() {
@@ -248,8 +237,10 @@ public abstract class ServiceConfigBase<T> extends AbstractServiceConfig {
if (protocolConfigs.isEmpty()) {
protocolConfigs = new ArrayList<>(1);
ProtocolConfig protocolConfig = new ProtocolConfig();
+ protocolConfig.setDefault(true);
protocolConfig.refresh();
protocolConfigs.add(protocolConfig);
+ ApplicationModel.getConfigManager().addProtocol(protocolConfig);
}
setProtocols(protocolConfigs);
}
@@ -411,6 +402,8 @@ public abstract class ServiceConfigBase<T> extends AbstractServiceConfig {
@Parameter(excluded = true)
public String getUniqueServiceName() {
+ String group = StringUtils.isEmpty(this.group) ? provider.getGroup() : this.group;
+ String version = StringUtils.isEmpty(this.version) ? provider.getVersion() : this.version;
return URL.buildKey(interfaceName, group, version);
}
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 8d97ad7..3d13009 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
@@ -539,6 +539,34 @@ public class DubboBootstrap extends GenericEventListener {
for (MetadataReportConfig metadataReportConfig : metadatas) {
ConfigValidationUtils.validateMetadataConfig(metadataReportConfig);
}
+
+ // check Provider
+ Collection<ProviderConfig> providers = configManager.getProviders();
+ if (CollectionUtils.isEmpty(providers)) {
+ configManager.getDefaultProvider().orElseGet(() -> {
+ ProviderConfig providerConfig = new ProviderConfig();
+ configManager.addProvider(providerConfig);
+ providerConfig.refresh();
+ return providerConfig;
+ });
+ }
+ for (ProviderConfig providerConfig : providers) {
+ ConfigValidationUtils.validateProviderConfig(providerConfig);
+ }
+ // check Consumer
+ Collection<ConsumerConfig> consumers = configManager.getConsumers();
+ if (CollectionUtils.isEmpty(consumers)) {
+ configManager.getDefaultConsumer().orElseGet(() -> {
+ ConsumerConfig consumerConfig = new ConsumerConfig();
+ configManager.addConsumer(consumerConfig);
+ consumerConfig.refresh();
+ return consumerConfig;
+ });
+ }
+ for (ConsumerConfig consumerConfig : consumers) {
+ ConfigValidationUtils.validateConsumerConfig(consumerConfig);
+ }
+
// check Monitor
ConfigValidationUtils.validateMonitorConfig(getMonitor());
// check Metrics