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/03 03:25:43 UTC

[dubbo] 01/01: Fix addConfig and getConfig in ConfigManger does not match.

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

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

commit 92c0cb287095161b7fa7367b4806deb64860d3dc
Author: ken.lj <ke...@gmail.com>
AuthorDate: Tue Dec 3 11:25:25 2019 +0800

    Fix addConfig and getConfig in ConfigManger does not match.
---
 .../apache/dubbo/config/context/ConfigManager.java | 28 ++++++++++++----------
 .../dubbo/config/context/ConfigManagerTest.java    |  4 ++--
 2 files changed, 18 insertions(+), 14 deletions(-)

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 a49876d..dfd91a9 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
@@ -179,7 +179,7 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
     }
 
     public Optional<ProviderConfig> getDefaultProvider() {
-        return getProvider(DEFAULT_KEY);
+        return getProvider(genDefaultId(ProviderConfig.class));
     }
 
     public Collection<ProviderConfig> getProviders() {
@@ -201,7 +201,7 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
     }
 
     public Optional<ConsumerConfig> getDefaultConsumer() {
-        return getConsumer(DEFAULT_KEY);
+        return getConsumer(genDefaultId(ConsumerConfig.class));
     }
 
     public Collection<ConsumerConfig> getConsumers() {
@@ -336,7 +336,7 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
     }
 
     /**
-     * In some scenario,  we may nee to add and remove ServiceConfig or ReferenceConfig dynamically.
+     * In some scenario,  we may need to add and remove ServiceConfig or ReferenceConfig dynamically.
      *
      * @param config the config instance to remove.
      */
@@ -351,13 +351,6 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
         }
     }
 
-    // For test purpose
-    public void clear() {
-        write(() -> {
-            this.configsCache.clear();
-        });
-    }
-
     /**
      * Add the dubbo {@link AbstractConfig config}
      *
@@ -485,8 +478,7 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
 
     static <C extends AbstractConfig> String getId(C config) {
         String id = config.getId();
-        return isNotEmpty(id) ? id : isDefaultConfig(config) ?
-                config.getClass().getSimpleName() + "#" + DEFAULT_KEY : null;
+        return isNotEmpty(id) ? id : (isDefaultConfig(config) ? genDefaultId(config.getClass()) : null);
     }
 
     static <C extends AbstractConfig> boolean isDefaultConfig(C config) {
@@ -500,4 +492,16 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
                 .filter(ConfigManager::isDefaultConfig)
                 .collect(Collectors.toList());
     }
+
+    static String genDefaultId(Class<?> clazz) {
+        return clazz.getSimpleName() + "#" + DEFAULT_KEY;
+    }
+
+    // For test purpose
+    public void clear() {
+        write(() -> {
+            this.configsCache.clear();
+        });
+    }
+
 }
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);