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/12/10 09:10:33 UTC

[dubbo] 02/02: Fix default consumer/provider config cannot be fetched from ConfigManager.

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

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

commit 9ef334ac62fa4e75116205c729b32154a9168d06
Author: ken.lj <ke...@gmail.com>
AuthorDate: Tue Dec 10 17:09:47 2019 +0800

    Fix default consumer/provider config cannot be fetched from ConfigManager.
---
 .../apache/dubbo/config/AbstractReferenceConfig.java   |  2 +-
 .../org/apache/dubbo/config/context/ConfigManager.java | 18 ++++++++++++++++--
 .../apache/dubbo/config/context/ConfigManagerTest.java |  4 ++--
 3 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
index dbacf29..27d4ddc 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
@@ -59,7 +59,7 @@ public abstract class AbstractReferenceConfig extends AbstractInterfaceConfig {
     /**
      * Lazy create connection
      */
-    protected Boolean lazy = false;
+    protected Boolean lazy;
 
     protected String reconnect;
 
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java b/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
index 296e604..9c9e185 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
@@ -178,8 +178,15 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
         return ofNullable(getConfig(getTagName(ProviderConfig.class), id));
     }
 
+    /**
+     * Only allows one default ProviderConfig
+     */
     public Optional<ProviderConfig> getDefaultProvider() {
-        return getProvider(DEFAULT_KEY);
+        List<ProviderConfig> providerConfigs = getDefaultConfigs(getConfigsMap(getTagName(ProviderConfig.class)));
+        if (CollectionUtils.isNotEmpty(providerConfigs)) {
+            return Optional.of(providerConfigs.get(0));
+        }
+        return Optional.empty();
     }
 
     public Collection<ProviderConfig> getProviders() {
@@ -200,8 +207,15 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
         return ofNullable(getConfig(getTagName(ConsumerConfig.class), id));
     }
 
+    /**
+     * Only allows one default ConsumerConfig
+     */
     public Optional<ConsumerConfig> getDefaultConsumer() {
-        return getConsumer(DEFAULT_KEY);
+        List<ConsumerConfig> consumerConfigs = getDefaultConfigs(getConfigsMap(getTagName(ConsumerConfig.class)));
+        if (CollectionUtils.isNotEmpty(consumerConfigs)) {
+            return Optional.of(consumerConfigs.get(0));
+        }
+        return Optional.empty();
     }
 
     public Collection<ConsumerConfig> getConsumers() {
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/config/context/ConfigManagerTest.java b/dubbo-common/src/test/java/org/apache/dubbo/config/context/ConfigManagerTest.java
index 2314370..07d0a52 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/config/context/ConfigManagerTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/config/context/ConfigManagerTest.java
@@ -132,7 +132,7 @@ public class ConfigManagerTest {
         Collection<ProviderConfig> configs = configManager.getProviders();
         assertEquals(1, configs.size());
         assertEquals(config, configs.iterator().next());
-        assertFalse(configManager.getDefaultProvider().isPresent());
+        assertTrue(configManager.getDefaultProvider().isPresent());
 
         config.setId(DEFAULT_KEY);
         configManager.addProvider(config);
@@ -149,7 +149,7 @@ public class ConfigManagerTest {
         Collection<ConsumerConfig> configs = configManager.getConsumers();
         assertEquals(1, configs.size());
         assertEquals(config, configs.iterator().next());
-        assertFalse(configManager.getDefaultConsumer().isPresent());
+        assertTrue(configManager.getDefaultConsumer().isPresent());
 
         config.setId(DEFAULT_KEY);
         configManager.addConsumer(config);