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:31 UTC

[dubbo] branch revert-configmanager created (now 9ef334a)

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

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


      at 9ef334a  Fix default consumer/provider config cannot be fetched from ConfigManager.

This branch includes the following new commits:

     new 6b33af8  Revert "Fix issue#5411 (#5427)"
     new 9ef334a  Fix default consumer/provider config cannot be fetched from ConfigManager.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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

Posted by li...@apache.org.
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);


[dubbo] 01/02: Revert "Fix issue#5411 (#5427)"

Posted by li...@apache.org.
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 6b33af8d4300a2701abe4b9dbb64da92efa9984d
Author: ken.lj <ke...@gmail.com>
AuthorDate: Tue Dec 10 16:52:09 2019 +0800

    Revert "Fix issue#5411 (#5427)"
    
    This reverts commit 4704413b
---
 .../dubbo/config/AbstractReferenceConfig.java      |  2 +-
 .../org/apache/dubbo/config/ServiceConfigBase.java |  2 +-
 .../apache/dubbo/config/context/ConfigManager.java | 21 +++--------------
 .../dubbo/config/context/ConfigManagerTest.java    | 26 +++++++++++++---------
 .../apache/dubbo/config/spring/demo-provider.xml   |  2 +-
 5 files changed, 21 insertions(+), 32 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 27d4ddc..dbacf29 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;
+    protected Boolean lazy = false;
 
     protected String reconnect;
 
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 f7488f6..2ab7936 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
@@ -462,4 +462,4 @@ public abstract class ServiceConfigBase<T> extends AbstractServiceConfig {
 
     public abstract boolean isUnexported();
 
-}
+}
\ No newline at end of file
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 90de5eb..296e604 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,17 +179,13 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
     }
 
     public Optional<ProviderConfig> getDefaultProvider() {
-        return getProvider(genDefaultId(ProviderConfig.class));
+        return getProvider(DEFAULT_KEY);
     }
 
     public Collection<ProviderConfig> getProviders() {
         return getConfigs(getTagName(ProviderConfig.class));
     }
 
-    private static String genDefaultId(Class<?> clazz) {
-        return clazz.getSimpleName() + "#" + DEFAULT_KEY;
-    }
-
     // ConsumerConfig correlative methods
 
     public void addConsumer(ConsumerConfig consumerConfig) {
@@ -205,7 +201,7 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
     }
 
     public Optional<ConsumerConfig> getDefaultConsumer() {
-        return getConsumer(genDefaultId(ConsumerConfig.class));
+        return getConsumer(DEFAULT_KEY);
     }
 
     public Collection<ConsumerConfig> getConsumers() {
@@ -488,20 +484,9 @@ public class ConfigManager extends LifecycleAdapter implements FrameworkExt {
     }
 
     static <C extends AbstractConfig> String getId(C config) {
-        if ((config instanceof ProviderConfig
-            || config instanceof ConsumerConfig
-            || config instanceof ApplicationConfig
-            || config instanceof MonitorConfig
-            || config instanceof RegistryConfig
-            || config instanceof ProtocolConfig
-            || config instanceof ModuleConfig)
-            && isDefaultConfig(config)) {
-            return genDefaultId(config.getClass());
-        }
-
         String id = config.getId();
         return isNotEmpty(id) ? id : isDefaultConfig(config) ?
-            genDefaultId(config.getClass()) : null;
+                config.getClass().getSimpleName() + "#" + DEFAULT_KEY : null;
     }
 
     static <C extends AbstractConfig> boolean isDefaultConfig(C config) {
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 e226b94..2314370 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,26 +132,30 @@ public class ConfigManagerTest {
         Collection<ProviderConfig> configs = configManager.getProviders();
         assertEquals(1, configs.size());
         assertEquals(config, configs.iterator().next());
+        assertFalse(configManager.getDefaultProvider().isPresent());
+
+        config.setId(DEFAULT_KEY);
+        configManager.addProvider(config);
         assertTrue(configManager.getDefaultProvider().isPresent());
+        configs = configManager.getProviders();
+        assertEquals(2, configs.size());
     }
 
     // Test ConsumerConfig correlative methods
     @Test
     public void testConsumerConfig() {
-        ConsumerConfig configDefault = new ConsumerConfig();
-        configDefault.setDefault(true);
-        configDefault.setId("default-id");
-
         ConsumerConfig config = new ConsumerConfig();
-        config.setDefault(false);
-        config.setId("my-id");
-
-        configManager.addConsumers(asList(configDefault, config));
-
+        configManager.addConsumers(asList(config, null));
         Collection<ConsumerConfig> configs = configManager.getConsumers();
-        assertEquals(2, configs.size());
+        assertEquals(1, configs.size());
+        assertEquals(config, configs.iterator().next());
+        assertFalse(configManager.getDefaultConsumer().isPresent());
+
+        config.setId(DEFAULT_KEY);
+        configManager.addConsumer(config);
         assertTrue(configManager.getDefaultConsumer().isPresent());
-        assertEquals("default-id", configManager.getDefaultConsumer().get().getId());
+        configs = configManager.getConsumers();
+        assertEquals(2, configs.size());
     }
 
     // Test ProtocolConfig correlative methods
diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/org/apache/dubbo/config/spring/demo-provider.xml b/dubbo-config/dubbo-config-spring/src/test/resources/org/apache/dubbo/config/spring/demo-provider.xml
index 58e0f8b..0105571 100644
--- a/dubbo-config/dubbo-config-spring/src/test/resources/org/apache/dubbo/config/spring/demo-provider.xml
+++ b/dubbo-config/dubbo-config-spring/src/test/resources/org/apache/dubbo/config/spring/demo-provider.xml
@@ -34,4 +34,4 @@
 
     <bean id="demoService" class="org.apache.dubbo.config.spring.impl.DemoServiceImpl"/>
 
-</beans>
+</beans>
\ No newline at end of file