From 989963edc4eb60ae386ec721c4f446a6419d40a1 Mon Sep 17 00:00:00 2001 From: mercyblitz Date: Wed, 16 Jan 2019 13:19:23 +0800 Subject: [PATCH] Polish apache/incubator-dubbo#3193 : [Enhancement] Change the default behavior of @EnableDubboConfig.multiple() --- .../DubboConfigConfigurationRegistrar.java | 44 +++---------------- .../context/annotation/EnableDubboConfig.java | 9 ++-- .../DubboConfigBindingRegistrarTest.java | 14 +++++- .../DubboConfigBindingsRegistrarTest.java | 2 +- .../DubboConfigConfigurationTest.java | 4 +- .../annotation/EnableDubboConfigTest.java | 44 +++++++------------ .../test/resources/META-INF/config.properties | 2 +- 7 files changed, 44 insertions(+), 75 deletions(-) diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationRegistrar.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationRegistrar.java index fc292411db2..ff20d8dfd5f 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationRegistrar.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationRegistrar.java @@ -19,32 +19,23 @@ import com.alibaba.dubbo.config.AbstractConfig; import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.context.EnvironmentAware; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; import org.springframework.core.Ordered; import org.springframework.core.annotation.AnnotationAttributes; -import org.springframework.core.env.Environment; import org.springframework.core.type.AnnotationMetadata; import static com.alibaba.dubbo.config.spring.util.AnnotatedBeanDefinitionRegistryUtils.registerBeans; /** - * Dubbo {@link AbstractConfig Config} {@link ImportBeanDefinitionRegistrar register}, which order can be configured + * Dubbo {@link AbstractConfig Config} {@link ImportBeanDefinitionRegistrar register} * * @see EnableDubboConfig * @see DubboConfigConfiguration * @see Ordered * @since 2.5.8 */ -public class DubboConfigConfigurationRegistrar implements ImportBeanDefinitionRegistrar, EnvironmentAware, Ordered { - - /** - * The property name of {@link EnableDubboConfig}'s {@link Ordered order} - */ - public static final String DUBBO_CONFIG_ORDER_PROPERTY_NAME = "dubbo.config.order"; - - private int order; +public class DubboConfigConfigurationRegistrar implements ImportBeanDefinitionRegistrar { @Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { @@ -54,34 +45,11 @@ public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, B boolean multiple = attributes.getBoolean("multiple"); - if (multiple) { + // Single Config Bindings + registerBeans(registry, DubboConfigConfiguration.Single.class); + + if (multiple) { // Since 2.6.6 https://github.com/apache/incubator-dubbo/issues/3193 registerBeans(registry, DubboConfigConfiguration.Multiple.class); - } else { - registerBeans(registry, DubboConfigConfiguration.Single.class); } } - - /** - * Set {@link Ordered order}, it may be changed in in the future. - * - * @param order {@link Ordered order} - */ - public void setOrder(int order) { - this.order = order; - } - - @Override - public int getOrder() { - return order; - } - - @Override - public void setEnvironment(Environment environment) { - this.order = environment.getProperty(DUBBO_CONFIG_ORDER_PROPERTY_NAME, int.class, LOWEST_PRECEDENCE); - } - - private static T[] of(T... values) { - return values; - } - } \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfig.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfig.java index 8c70e114c4b..ad394f7f093 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfig.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfig.java @@ -46,7 +46,7 @@ *
  • {@link ConsumerConfig} binding to property : "dubbo.consumer"
  • * *

    - * In contrast, on multiple bean bindings that requires to set {@link #multiple()} to be true : + * On multiple bean bindings that requires to set {@link #multiple()} to be true : *