You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by il...@apache.org on 2018/10/29 07:33:21 UTC
[incubator-dubbo] branch 2.6.x updated: Bug Fix & Enhancement
(#2687)
This is an automated email from the ASF dual-hosted git repository.
iluo pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/2.6.x by this push:
new bb9fd69 Bug Fix & Enhancement (#2687)
bb9fd69 is described below
commit bb9fd69233f0e81c3a47709b323dd4d835fcc301
Author: 小马哥 <me...@gmail.com>
AuthorDate: Mon Oct 29 15:33:16 2018 +0800
Bug Fix & Enhancement (#2687)
* Polish apache/incubator-dubbo#2235 apache/incubator-dubbo#2251 apache/incubator-dubbo-spring-boot-project#243
* Fixed bugs and optimized imports
* Remove local PropertySourcesUtils and re-use it from spring-context-extras
* Add Test cases for YAML properties
issues :
apache/incubator-dubbo-spring-boot-project/issues/273
* Optimize imports using code-style template
* Refactor Utilities class
* Fixed test cases
* [Enhancement] @EnableDubboConfigBinding annotates @Repeatable apache/incubator-dubbo#1770
* Bug fix
* Remove feature :
[Enhancement] @EnableDubboConfigBinding annotates @Repeatable apache/incubator-dubbo#1770
---
dependencies-bom/pom.xml | 18 +++-
dubbo-config/dubbo-config-spring/pom.xml | 5 +
.../alibaba/dubbo/config/spring/ReferenceBean.java | 1 +
.../AbstractAnnotationConfigBeanBuilder.java | 4 +-
.../AnnotationPropertyValuesAdapter.java | 3 +-
.../DubboConfigBindingBeanPostProcessor.java | 1 +
.../ReferenceAnnotationBeanPostProcessor.java | 2 +-
.../factory/annotation/ReferenceBeanBuilder.java | 5 +-
.../ServiceAnnotationBeanPostProcessor.java | 3 +-
.../factory/annotation/ServiceBeanNameBuilder.java | 2 +
.../context/annotation/DubboComponentScan.java | 1 +
.../annotation/DubboComponentScanRegistrar.java | 1 +
.../annotation/DubboConfigBindingRegistrar.java | 13 +--
.../annotation/DubboConfigBindingsRegistrar.java | 1 +
.../annotation/DubboConfigConfiguration.java | 1 +
.../DubboConfigConfigurationSelector.java | 1 +
.../spring/context/annotation/EnableDubbo.java | 1 +
.../context/annotation/EnableDubboConfig.java | 1 +
.../annotation/EnableDubboConfigBinding.java | 1 +
.../context/event/ServiceBeanExportedEvent.java | 1 +
.../properties/DefaultDubboConfigBinder.java | 5 +-
.../context/properties/DubboConfigBinder.java | 1 +
.../schema/AnnotationBeanDefinitionParser.java | 1 +
.../spring/schema/DubboNamespaceHandler.java | 1 +
.../spring/status/DataSourceStatusChecker.java | 1 +
.../config/spring/status/SpringStatusChecker.java | 1 +
.../dubbo/config/spring/util/AnnotationUtils.java | 61 -----------
.../dubbo/config/spring/util/BeanFactoryUtils.java | 92 -----------------
.../dubbo/config/spring/util/ObjectUtils.java | 37 -------
.../config/spring/util/PropertySourcesUtils.java | 75 --------------
.../alibaba/dubbo/config/spring/ConfigTest.java | 1 +
.../dubbo/config/spring/ServiceBeanTest.java | 1 +
.../spring/action/DemoActionByAnnotation.java | 1 +
.../annotation/consumer/AnnotationAction.java | 1 +
.../AnnotationPropertyValuesAdapterTest.java | 1 +
.../DubboConfigBindingBeanPostProcessorTest.java | 1 +
.../ReferenceAnnotationBeanPostProcessorTest.java | 3 +-
.../ServiceAnnotationBeanPostProcessorTest.java | 1 +
.../ServiceAnnotationTestConfiguration.java | 1 +
.../annotation/ServiceBeanNameBuilderTest.java | 1 +
.../factory/config/YamlPropertySourceFactory.java | 76 ++++++++++++++
.../config/YamlPropertySourceFactoryTest.java | 71 +++++++++++++
.../DubboComponentScanRegistrarTest.java | 1 +
.../DubboConfigBindingRegistrarTest.java | 1 +
.../DubboConfigBindingsRegistrarTest.java | 1 +
.../annotation/DubboConfigConfigurationTest.java | 1 +
.../context/annotation/EnableDubboConfigTest.java | 1 +
.../spring/context/annotation/EnableDubboTest.java | 1 +
.../annotation/consumer/ConsumerConfiguration.java | 1 +
.../consumer/test/TestConsumerConfiguration.java | 1 +
.../annotation/provider/DefaultHelloService.java | 1 +
.../annotation/provider/DemoServiceImpl.java | 1 +
.../annotation/provider/ProviderConfiguration.java | 1 +
.../properties/DefaultDubboConfigBinderTest.java | 38 ++++++-
.../spring/schema/DubboNamespaceHandlerTest.java | 1 +
.../spring/status/DataSourceStatusCheckerTest.java | 1 +
.../spring/status/SpringStatusCheckerTest.java | 1 +
.../config/spring/util/BeanFactoryUtilsTest.java | 111 ---------------------
.../spring/util/PropertySourcesUtilsTest.java | 74 --------------
.../resources/META-INF/dubbb-consumer.properties | 2 +-
.../resources/META-INF/dubbb-provider.properties | 2 +-
.../src/test/resources/META-INF/dubbo.yml | 8 ++
.../src/test/resources/dubbo.properties | 4 +-
63 files changed, 278 insertions(+), 475 deletions(-)
diff --git a/dependencies-bom/pom.xml b/dependencies-bom/pom.xml
index e6bda8f..8da6b97 100644
--- a/dependencies-bom/pom.xml
+++ b/dependencies-bom/pom.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@@ -29,8 +30,8 @@
<url>https://github.com/apache/incubator-dubbo</url>
<connection>scm:git:https://github.com/apache/incubator-dubbo.git</connection>
<developerConnection>scm:git:https://github.com/apache/incubator-dubbo.git</developerConnection>
- <tag>HEAD</tag>
- </scm>
+ <tag>HEAD</tag>
+ </scm>
<mailingLists>
<mailingList>
<name>Development List</name>
@@ -112,7 +113,8 @@
<jaxb_version>2.2.7</jaxb_version>
<activation_version>1.2.0</activation_version>
<hessian_lite_version>3.2.4</hessian_lite_version>
- <alibaba_spring_context_support_version>1.0.1</alibaba_spring_context_support_version>
+ <alibaba_spring_context_support_version>1.0.2</alibaba_spring_context_support_version>
+ <yaml_version>1.17</yaml_version>
</properties>
<dependencyManagement>
@@ -369,6 +371,13 @@
<version>${alibaba_spring_context_support_version}</version>
</dependency>
+ <!-- YAML -->
+ <dependency>
+ <groupId>org.yaml</groupId>
+ <artifactId>snakeyaml</artifactId>
+ <version>${yaml_version}</version>
+ </dependency>
+
<!-- Test lib -->
<dependency>
<groupId>org.apache.curator</groupId>
@@ -382,6 +391,7 @@
<version>${embedded_redis_version}</version>
<scope>test</scope>
</dependency>
+
</dependencies>
</dependencyManagement>
diff --git a/dubbo-config/dubbo-config-spring/pom.xml b/dubbo-config/dubbo-config-spring/pom.xml
index 8978c48..7697f6f 100644
--- a/dubbo-config/dubbo-config-spring/pom.xml
+++ b/dubbo-config/dubbo-config-spring/pom.xml
@@ -132,6 +132,11 @@
<artifactId>tomcat-embed-core</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.yaml</groupId>
+ <artifactId>snakeyaml</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ReferenceBean.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ReferenceBean.java
index 00a6bec..b2e548d 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ReferenceBean.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ReferenceBean.java
@@ -25,6 +25,7 @@ import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.spring.extension.SpringExtensionFactory;
import com.alibaba.dubbo.config.support.Parameter;
+
import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AbstractAnnotationConfigBeanBuilder.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AbstractAnnotationConfigBeanBuilder.java
index 0357ff0..7a4129f 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AbstractAnnotationConfigBeanBuilder.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AbstractAnnotationConfigBeanBuilder.java
@@ -30,8 +30,8 @@ import org.springframework.util.Assert;
import java.lang.annotation.Annotation;
import java.util.List;
-import static com.alibaba.dubbo.config.spring.util.BeanFactoryUtils.getBeans;
-import static com.alibaba.dubbo.config.spring.util.BeanFactoryUtils.getOptionalBean;
+import static com.alibaba.spring.util.BeanFactoryUtils.getBeans;
+import static com.alibaba.spring.util.BeanFactoryUtils.getOptionalBean;
/**
* Abstract Configurable {@link Annotation} Bean Builder
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapter.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapter.java
index 751399f..29a8acc 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapter.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapter.java
@@ -23,7 +23,8 @@ import org.springframework.core.env.PropertyResolver;
import java.lang.annotation.Annotation;
-import static com.alibaba.dubbo.config.spring.util.AnnotationUtils.getAttributes;
+import static com.alibaba.spring.util.AnnotationUtils.getAttributes;
+
/**
* {@link Annotation} {@link PropertyValues} Adapter
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessor.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessor.java
index cbb5435..46ace14 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessor.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessor.java
@@ -22,6 +22,7 @@ import com.alibaba.dubbo.config.spring.context.annotation.DubboConfigBindingRegi
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubboConfigBinding;
import com.alibaba.dubbo.config.spring.context.properties.DefaultDubboConfigBinder;
import com.alibaba.dubbo.config.spring.context.properties.DubboConfigBinder;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
index 2e45c69..517c625 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
@@ -20,8 +20,8 @@ import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.spring.ReferenceBean;
import com.alibaba.dubbo.config.spring.ServiceBean;
import com.alibaba.dubbo.config.spring.context.event.ServiceBeanExportedEvent;
-import com.alibaba.dubbo.config.spring.util.AnnotationUtils;
import com.alibaba.spring.beans.factory.annotation.AnnotationInjectedBeanPostProcessor;
+import com.alibaba.spring.util.AnnotationUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.InjectionMetadata;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilder.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilder.java
index 883a56a..7b5288d 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilder.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilder.java
@@ -20,6 +20,7 @@ import com.alibaba.dubbo.common.utils.CollectionUtils;
import com.alibaba.dubbo.config.ConsumerConfig;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.spring.ReferenceBean;
+
import org.springframework.beans.propertyeditors.StringTrimmerEditor;
import org.springframework.context.ApplicationContext;
import org.springframework.util.Assert;
@@ -30,8 +31,8 @@ import org.springframework.validation.DataBinder;
import java.beans.PropertyEditorSupport;
import java.util.Map;
-import static com.alibaba.dubbo.config.spring.util.BeanFactoryUtils.getOptionalBean;
-import static com.alibaba.dubbo.config.spring.util.ObjectUtils.of;
+import static com.alibaba.spring.util.BeanFactoryUtils.getOptionalBean;
+import static com.alibaba.spring.util.ObjectUtils.of;
import static org.springframework.util.StringUtils.commaDelimitedListToStringArray;
/**
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessor.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessor.java
index df46850..9ba4cc5 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessor.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessor.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.common.logger.LoggerFactory;
import com.alibaba.dubbo.config.annotation.Service;
import com.alibaba.dubbo.config.spring.ServiceBean;
import com.alibaba.dubbo.config.spring.context.annotation.DubboClassPathBeanDefinitionScanner;
+
import org.springframework.beans.BeansException;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.BeanClassLoaderAware;
@@ -56,7 +57,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
-import static com.alibaba.dubbo.config.spring.util.ObjectUtils.of;
+import static com.alibaba.spring.util.ObjectUtils.of;
import static org.springframework.beans.factory.support.BeanDefinitionBuilder.rootBeanDefinition;
import static org.springframework.context.annotation.AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR;
import static org.springframework.core.annotation.AnnotationUtils.findAnnotation;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilder.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilder.java
index b80840c..06b2dfa 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilder.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilder.java
@@ -20,11 +20,13 @@ import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.annotation.Service;
import com.alibaba.dubbo.config.spring.ReferenceBean;
import com.alibaba.dubbo.config.spring.ServiceBean;
+
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;
import static com.alibaba.dubbo.config.spring.util.AnnotationUtils.resolveInterfaceName;
+
/**
* Dubbo {@link Service @Service} Bean Builder
*
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScan.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScan.java
index a0d1739..593949e 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScan.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScan.java
@@ -18,6 +18,7 @@ package com.alibaba.dubbo.config.spring.context.annotation;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.annotation.Service;
+
import org.springframework.context.annotation.Import;
import java.lang.annotation.Annotation;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java
index 6423176..2821b1f 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java
@@ -20,6 +20,7 @@ import com.alibaba.dubbo.config.annotation.Service;
import com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
import com.alibaba.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
import com.alibaba.dubbo.config.spring.util.BeanRegistrar;
+
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingRegistrar.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingRegistrar.java
index 6936787..8e8cf20 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingRegistrar.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingRegistrar.java
@@ -18,6 +18,7 @@ package com.alibaba.dubbo.config.spring.context.annotation;
import com.alibaba.dubbo.config.AbstractConfig;
import com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.config.BeanDefinition;
@@ -40,8 +41,8 @@ import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
-import static com.alibaba.dubbo.config.spring.util.PropertySourcesUtils.getSubProperties;
-import static com.alibaba.dubbo.config.spring.util.PropertySourcesUtils.normalizePrefix;
+import static com.alibaba.spring.util.PropertySourcesUtils.getSubProperties;
+import static com.alibaba.spring.util.PropertySourcesUtils.normalizePrefix;
import static org.springframework.beans.factory.support.BeanDefinitionBuilder.rootBeanDefinition;
import static org.springframework.beans.factory.support.BeanDefinitionReaderUtils.registerWithGeneratedName;
@@ -85,7 +86,7 @@ public class DubboConfigBindingRegistrar implements ImportBeanDefinitionRegistra
boolean multiple,
BeanDefinitionRegistry registry) {
- Map<String, String> properties = getSubProperties(environment.getPropertySources(), prefix);
+ Map<String, Object> properties = getSubProperties(environment.getPropertySources(), prefix);
if (CollectionUtils.isEmpty(properties)) {
if (log.isDebugEnabled()) {
@@ -157,7 +158,7 @@ public class DubboConfigBindingRegistrar implements ImportBeanDefinitionRegistra
}
- private Set<String> resolveMultipleBeanNames(Map<String, String> properties) {
+ private Set<String> resolveMultipleBeanNames(Map<String, Object> properties) {
Set<String> beanNames = new LinkedHashSet<String>();
@@ -178,10 +179,10 @@ public class DubboConfigBindingRegistrar implements ImportBeanDefinitionRegistra
}
- private String resolveSingleBeanName(Map<String, String> properties, Class<? extends AbstractConfig> configClass,
+ private String resolveSingleBeanName(Map<String, Object> properties, Class<? extends AbstractConfig> configClass,
BeanDefinitionRegistry registry) {
- String beanName = properties.get("id");
+ String beanName = (String) properties.get("id");
if (!StringUtils.hasText(beanName)) {
BeanDefinitionBuilder builder = rootBeanDefinition(configClass);
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingsRegistrar.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingsRegistrar.java
index a035a2b..8646678 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingsRegistrar.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingsRegistrar.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring.context.annotation;
import com.alibaba.dubbo.config.AbstractConfig;
+
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
index 0c20493..ba4b344 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
@@ -24,6 +24,7 @@ import com.alibaba.dubbo.config.MonitorConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.ProviderConfig;
import com.alibaba.dubbo.config.RegistryConfig;
+
import org.springframework.context.annotation.Configuration;
/**
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationSelector.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationSelector.java
index 8c46ff5..24f581b 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationSelector.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationSelector.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring.context.annotation;
import com.alibaba.dubbo.config.AbstractConfig;
+
import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.AnnotationAttributes;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java
index 53bd883..25d8cad 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring.context.annotation;
import com.alibaba.dubbo.config.AbstractConfig;
+
import org.springframework.core.annotation.AliasFor;
import java.lang.annotation.Documented;
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 e5e9e12..fe20770 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
@@ -23,6 +23,7 @@ import com.alibaba.dubbo.config.MonitorConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.ProviderConfig;
import com.alibaba.dubbo.config.RegistryConfig;
+
import org.springframework.context.annotation.Import;
import java.lang.annotation.Documented;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfigBinding.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfigBinding.java
index f032cf6..ba87c16 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfigBinding.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfigBinding.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ModuleConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor;
+
import org.springframework.context.annotation.Import;
import org.springframework.core.env.PropertySources;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/event/ServiceBeanExportedEvent.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/event/ServiceBeanExportedEvent.java
index 3b14d01..333da08 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/event/ServiceBeanExportedEvent.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/event/ServiceBeanExportedEvent.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring.context.event;
import com.alibaba.dubbo.config.spring.ServiceBean;
+
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java
index 52cc87c..045a5ac 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java
@@ -17,12 +17,13 @@
package com.alibaba.dubbo.config.spring.context.properties;
import com.alibaba.dubbo.config.AbstractConfig;
+
import org.springframework.beans.MutablePropertyValues;
import org.springframework.validation.DataBinder;
import java.util.Map;
-import static com.alibaba.dubbo.config.spring.util.PropertySourcesUtils.getSubProperties;
+import static com.alibaba.spring.util.PropertySourcesUtils.getSubProperties;
/**
* Default {@link DubboConfigBinder} implementation based on Spring {@link DataBinder}
@@ -36,7 +37,7 @@ public class DefaultDubboConfigBinder extends AbstractDubboConfigBinder {
dataBinder.setIgnoreInvalidFields(isIgnoreInvalidFields());
dataBinder.setIgnoreUnknownFields(isIgnoreUnknownFields());
// Get properties under specified prefix from PropertySources
- Map<String, String> properties = getSubProperties(getPropertySources(), prefix);
+ Map<String, Object> properties = getSubProperties(getPropertySources(), prefix);
// Convert Map to MutablePropertyValues
MutablePropertyValues propertyValues = new MutablePropertyValues(properties);
// Bind
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/properties/DubboConfigBinder.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/properties/DubboConfigBinder.java
index 6ebb862..52ebdfe 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/properties/DubboConfigBinder.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/properties/DubboConfigBinder.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring.context.properties;
import com.alibaba.dubbo.config.AbstractConfig;
+
import org.springframework.context.EnvironmentAware;
/**
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java
index cf4ef36..084e9dd 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java
@@ -20,6 +20,7 @@ import com.alibaba.dubbo.config.spring.AnnotationBean;
import com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
import com.alibaba.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
import com.alibaba.dubbo.config.spring.util.BeanRegistrar;
+
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandler.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandler.java
index 81c0995..7336ff5 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandler.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandler.java
@@ -26,6 +26,7 @@ import com.alibaba.dubbo.config.ProviderConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.spring.ReferenceBean;
import com.alibaba.dubbo.config.spring.ServiceBean;
+
import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
/**
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusChecker.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusChecker.java
index 99c42ab..fd0e32d 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusChecker.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusChecker.java
@@ -22,6 +22,7 @@ import com.alibaba.dubbo.common.logger.LoggerFactory;
import com.alibaba.dubbo.common.status.Status;
import com.alibaba.dubbo.common.status.StatusChecker;
import com.alibaba.dubbo.config.spring.ServiceBean;
+
import org.springframework.context.ApplicationContext;
import javax.sql.DataSource;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/SpringStatusChecker.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/SpringStatusChecker.java
index 3bdc996..f722c91 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/SpringStatusChecker.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/SpringStatusChecker.java
@@ -22,6 +22,7 @@ import com.alibaba.dubbo.common.logger.LoggerFactory;
import com.alibaba.dubbo.common.status.Status;
import com.alibaba.dubbo.common.status.StatusChecker;
import com.alibaba.dubbo.config.spring.ServiceBean;
+
import org.springframework.context.ApplicationContext;
import org.springframework.context.Lifecycle;
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/AnnotationUtils.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/AnnotationUtils.java
index f9b3c61..7e5bb49 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/AnnotationUtils.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/AnnotationUtils.java
@@ -19,22 +19,8 @@ package com.alibaba.dubbo.config.spring.util;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.annotation.Service;
-import org.springframework.core.env.PropertyResolver;
import org.springframework.util.StringUtils;
-import java.lang.annotation.Annotation;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-
-import static java.lang.String.valueOf;
-import static org.springframework.core.annotation.AnnotationUtils.getAnnotationAttributes;
-import static org.springframework.core.annotation.AnnotationUtils.getDefaultValue;
-import static org.springframework.util.CollectionUtils.arrayToList;
-import static org.springframework.util.ObjectUtils.nullSafeEquals;
-import static org.springframework.util.StringUtils.trimAllWhitespace;
-
/**
* Annotation Utilities Class
*
@@ -43,53 +29,6 @@ import static org.springframework.util.StringUtils.trimAllWhitespace;
*/
public class AnnotationUtils {
- /**
- * Get {@link Annotation} attributes
- *
- * @param annotation
- * @param propertyResolver
- * @param ignoreDefaultValue
- * @return non-null
- */
- public static Map<String, Object> getAttributes(Annotation annotation, PropertyResolver propertyResolver,
- boolean ignoreDefaultValue, String... ignoreAttributeNames) {
-
- Set<String> ignoreAttributeNamesSet = new HashSet<String>(arrayToList(ignoreAttributeNames));
-
- Map<String, Object> attributes = getAnnotationAttributes(annotation);
-
- Map<String, Object> actualAttributes = new LinkedHashMap<String, Object>();
-
- boolean requiredResolve = propertyResolver != null;
-
- for (Map.Entry<String, Object> entry : attributes.entrySet()) {
-
- String attributeName = entry.getKey();
- Object attributeValue = entry.getValue();
-
- // ignore default attribute value
- if (ignoreDefaultValue && nullSafeEquals(attributeValue, getDefaultValue(annotation, attributeName))) {
- continue;
- }
-
- // ignore attribute name
- if (ignoreAttributeNamesSet.contains(attributeName)) {
- continue;
- }
-
- if (requiredResolve && attributeValue instanceof String) { // Resolve Placeholder
- String resolvedValue = propertyResolver.resolvePlaceholders(valueOf(attributeValue));
- attributeValue = trimAllWhitespace(resolvedValue);
- }
-
- actualAttributes.put(attributeName, attributeValue);
-
- }
-
- return actualAttributes;
-
- }
-
public static String resolveInterfaceName(Service service, Class<?> defaultInterfaceClass)
throws IllegalStateException {
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/BeanFactoryUtils.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/BeanFactoryUtils.java
deleted file mode 100644
index 16aa120..0000000
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/BeanFactoryUtils.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.dubbo.config.spring.util;
-
-import com.alibaba.dubbo.common.utils.StringUtils;
-import org.springframework.beans.factory.BeanFactory;
-import org.springframework.beans.factory.ListableBeanFactory;
-import org.springframework.beans.factory.config.ConfigurableBeanFactory;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import static org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors;
-import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors;
-
-/**
- * {@link BeanFactory} Utilities class
- *
- * @see BeanFactory
- * @see ConfigurableBeanFactory
- * @see org.springframework.beans.factory.BeanFactoryUtils
- * @since 2.5.7
- */
-public class BeanFactoryUtils {
-
-
- /**
- * Get optional Bean
- *
- * @param beanFactory {@link ListableBeanFactory}
- * @param beanName the name of Bean
- * @param beanType the {@link Class type} of Bean
- * @param <T> the {@link Class type} of Bean
- * @return A bean if present , or <code>null</code>
- */
- public static <T> T getOptionalBean(ListableBeanFactory beanFactory, String beanName, Class<T> beanType) {
-
- String[] allBeanNames = beanNamesForTypeIncludingAncestors(beanFactory, beanType);
-
- if (!StringUtils.isContains(allBeanNames, beanName)) {
- return null;
- }
-
- Map<String, T> beansOfType = beansOfTypeIncludingAncestors(beanFactory, beanType);
-
- return beansOfType.get(beanName);
-
- }
-
-
- /**
- * Gets name-matched Beans from {@link ListableBeanFactory BeanFactory}
- *
- * @param beanFactory {@link ListableBeanFactory BeanFactory}
- * @param beanNames the names of Bean
- * @param beanType the {@link Class type} of Bean
- * @param <T> the {@link Class type} of Bean
- * @return
- */
- public static <T> List<T> getBeans(ListableBeanFactory beanFactory, String[] beanNames, Class<T> beanType) {
-
- String[] allBeanNames = beanNamesForTypeIncludingAncestors(beanFactory, beanType);
-
- List<T> beans = new ArrayList<T>(beanNames.length);
-
- for (String beanName : beanNames) {
- if (StringUtils.isContains(allBeanNames, beanName)) {
- beans.add(beanFactory.getBean(beanName, beanType));
- }
- }
-
- return Collections.unmodifiableList(beans);
-
- }
-
-}
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/ObjectUtils.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/ObjectUtils.java
deleted file mode 100644
index 00db1e7..0000000
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/ObjectUtils.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.dubbo.config.spring.util;
-
-/**
- * Object Utilities Class
- *
- * @since 2.5.11
- */
-public class ObjectUtils {
-
- /**
- * of factory method
- *
- * @param values
- * @param <T>
- * @return
- */
- public static <T> T[] of(T... values) {
- return values;
- }
-
-}
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/PropertySourcesUtils.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/PropertySourcesUtils.java
deleted file mode 100644
index 5b183e1..0000000
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/util/PropertySourcesUtils.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.dubbo.config.spring.util;
-
-import org.springframework.core.env.EnumerablePropertySource;
-import org.springframework.core.env.PropertySource;
-import org.springframework.core.env.PropertySources;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Properties;
-
-/**
- * {@link PropertySources} Utilities
- *
- * @see PropertySources
- * @since 2.5.8
- */
-public abstract class PropertySourcesUtils {
-
- /**
- * Get Sub {@link Properties}
- *
- * @param propertySources {@link PropertySource} Iterable
- * @param prefix the prefix of property name
- * @return Map<String , [...]
- * @see Properties
- */
- public static Map<String, String> getSubProperties(Iterable<PropertySource<?>> propertySources, String prefix) {
-
- Map<String, String> subProperties = new LinkedHashMap<String, String>();
-
- String normalizedPrefix = normalizePrefix(prefix);
-
- for (PropertySource<?> source : propertySources) {
- if (source instanceof EnumerablePropertySource) {
- for (String name : ((EnumerablePropertySource<?>) source).getPropertyNames()) {
- if (name.startsWith(normalizedPrefix)) {
- String subName = name.substring(normalizedPrefix.length());
- Object value = source.getProperty(name);
- subProperties.put(subName, String.valueOf(value));
- }
- }
- }
- }
-
- return subProperties;
-
- }
-
- /**
- * Normalize the prefix
- *
- * @param prefix the prefix
- * @return the prefix
- */
- public static String normalizePrefix(String prefix) {
- return prefix.endsWith(".") ? prefix : prefix + ".";
- }
-
-}
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java
index c8eaee2..2415de4 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java
@@ -46,6 +46,7 @@ import com.alibaba.dubbo.rpc.RpcContext;
import com.alibaba.dubbo.rpc.RpcException;
import com.alibaba.dubbo.rpc.service.GenericException;
import com.alibaba.dubbo.rpc.service.GenericService;
+
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ServiceBeanTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ServiceBeanTest.java
index 11f7055..e965189 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ServiceBeanTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ServiceBeanTest.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring;
import com.alibaba.dubbo.config.annotation.Service;
+
import org.junit.Assert;
import org.junit.Test;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/action/DemoActionByAnnotation.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/action/DemoActionByAnnotation.java
index 8c66286..6e0964f 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/action/DemoActionByAnnotation.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/action/DemoActionByAnnotation.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring.action;
import com.alibaba.dubbo.config.spring.api.DemoService;
+
import org.springframework.beans.factory.annotation.Autowired;
/**
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/annotation/consumer/AnnotationAction.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/annotation/consumer/AnnotationAction.java
index 37700a0..be7c3df 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/annotation/consumer/AnnotationAction.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/annotation/consumer/AnnotationAction.java
@@ -18,6 +18,7 @@ package com.alibaba.dubbo.config.spring.annotation.consumer;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.spring.api.DemoService;
+
import org.springframework.stereotype.Controller;
/**
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
index 0eb969d..01c5ee6 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.common.utils.CollectionUtils;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.spring.ReferenceBean;
import com.alibaba.dubbo.config.spring.api.DemoService;
+
import org.junit.Assert;
import org.junit.Test;
import org.springframework.core.annotation.AnnotationUtils;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessorTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessorTest.java
index 05a4980..b98364b 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessorTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessorTest.java
@@ -19,6 +19,7 @@ package com.alibaba.dubbo.config.spring.beans.factory.annotation;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.spring.context.properties.DefaultDubboConfigBinder;
import com.alibaba.dubbo.config.spring.context.properties.DubboConfigBinder;
+
import org.junit.Assert;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessorTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessorTest.java
index eba43b2..a48a85e 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessorTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessorTest.java
@@ -19,6 +19,7 @@ package com.alibaba.dubbo.config.spring.beans.factory.annotation;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.spring.ReferenceBean;
import com.alibaba.dubbo.config.spring.api.DemoService;
+
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -35,8 +36,6 @@ import java.util.Collection;
import java.util.Map;
import static com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.BEAN_NAME;
-import static org.hamcrest.CoreMatchers.*;
-import static org.hamcrest.MatcherAssert.assertThat;
/**
* {@link ReferenceAnnotationBeanPostProcessor} Test
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessorTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessorTest.java
index 6133c48..22b1f56 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessorTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessorTest.java
@@ -18,6 +18,7 @@ package com.alibaba.dubbo.config.spring.beans.factory.annotation;
import com.alibaba.dubbo.config.spring.ServiceBean;
import com.alibaba.dubbo.config.spring.api.HelloService;
+
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationTestConfiguration.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationTestConfiguration.java
index 2e20797f..58d5217 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationTestConfiguration.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationTestConfiguration.java
@@ -20,6 +20,7 @@ import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.annotation.Service;
+
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilderTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilderTest.java
index 8ee0c4b..84451bc 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilderTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilderTest.java
@@ -19,6 +19,7 @@ package com.alibaba.dubbo.config.spring.beans.factory.annotation;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.annotation.Service;
import com.alibaba.dubbo.config.spring.api.DemoService;
+
import org.junit.Assert;
import org.junit.Test;
import org.springframework.core.annotation.AnnotationUtils;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactory.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactory.java
new file mode 100644
index 0000000..5b8412f
--- /dev/null
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactory.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.config.spring.beans.factory.config;
+
+import org.springframework.beans.factory.config.YamlProcessor;
+import org.springframework.core.env.MapPropertySource;
+import org.springframework.core.env.PropertySource;
+import org.springframework.core.io.support.EncodedResource;
+import org.springframework.core.io.support.PropertySourceFactory;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.nodes.Tag;
+import org.yaml.snakeyaml.representer.Representer;
+import org.yaml.snakeyaml.resolver.Resolver;
+
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.regex.Pattern;
+
+/**
+ * YAML {@link PropertySourceFactory} implementation, some source code is copied Spring Boot
+ * org.springframework.boot.env.YamlPropertySourceLoader , see {@link #createYaml()} and {@link #process()}
+ *
+ * @since 2.6.5
+ */
+public class YamlPropertySourceFactory extends YamlProcessor implements PropertySourceFactory {
+
+ @Override
+ public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {
+ setResources(resource.getResource());
+ return new MapPropertySource(name, process());
+ }
+
+ @Override
+ protected Yaml createYaml() {
+ return new Yaml(new StrictMapAppenderConstructor(), new Representer(),
+ new DumperOptions(), new Resolver() {
+ @Override
+ public void addImplicitResolver(Tag tag, Pattern regexp,
+ String first) {
+ if (tag == Tag.TIMESTAMP) {
+ return;
+ }
+ super.addImplicitResolver(tag, regexp, first);
+ }
+ });
+ }
+
+ public Map<String, Object> process() {
+ final Map<String, Object> result = new LinkedHashMap<String, Object>();
+ process(new MatchCallback() {
+ @Override
+ public void process(Properties properties, Map<String, Object> map) {
+ result.putAll(getFlattenedMap(map));
+ }
+ });
+ return result;
+ }
+
+}
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactoryTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactoryTest.java
new file mode 100644
index 0000000..91042cd
--- /dev/null
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactoryTest.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.dubbo.config.spring.beans.factory.config;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.core.env.Environment;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * {@link YamlPropertySourceFactory} Test
+ *
+ * @since 2.6.5
+ */
+@RunWith(SpringRunner.class)
+@PropertySource(name = "yaml-source", value = {"classpath:/META-INF/dubbo.yml"}, factory = YamlPropertySourceFactory.class)
+@Configuration
+@ContextConfiguration(classes = YamlPropertySourceFactoryTest.class)
+public class YamlPropertySourceFactoryTest {
+
+ @Autowired
+ private Environment environment;
+
+ @Value("${dubbo.consumer.default}")
+ private Boolean isDefault;
+
+ @Value("${dubbo.consumer.client}")
+ private String client;
+
+ @Value("${dubbo.consumer.threadpool}")
+ private String threadPool;
+
+ @Value("${dubbo.consumer.corethreads}")
+ private Integer coreThreads;
+
+ @Value("${dubbo.consumer.threads}")
+ private Integer threads;
+
+ @Value("${dubbo.consumer.queues}")
+ private Integer queues;
+
+ @Test
+ public void testProperty() {
+ Assert.assertEquals(isDefault, environment.getProperty("dubbo.consumer.default", Boolean.class));
+ Assert.assertEquals(client, environment.getProperty("dubbo.consumer.client", String.class));
+ Assert.assertEquals(threadPool, environment.getProperty("dubbo.consumer.threadpool", String.class));
+ Assert.assertEquals(coreThreads, environment.getProperty("dubbo.consumer.corethreads", Integer.class));
+ Assert.assertEquals(threads, environment.getProperty("dubbo.consumer.threads", Integer.class));
+ Assert.assertEquals(queues, environment.getProperty("dubbo.consumer.queues", Integer.class));
+ }
+}
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScanRegistrarTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScanRegistrarTest.java
index 5b5478b..54d6c97 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScanRegistrarTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboComponentScanRegistrarTest.java
@@ -20,6 +20,7 @@ import com.alibaba.dubbo.config.spring.api.DemoService;
import com.alibaba.dubbo.config.spring.context.annotation.consumer.ConsumerConfiguration;
import com.alibaba.dubbo.config.spring.context.annotation.provider.DemoServiceImpl;
import com.alibaba.dubbo.config.spring.context.annotation.provider.ProviderConfiguration;
+
import org.junit.Assert;
import org.junit.Test;
import org.springframework.aop.support.AopUtils;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingRegistrarTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingRegistrarTest.java
index 712789a..853df84 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingRegistrarTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingRegistrarTest.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring.context.annotation;
import com.alibaba.dubbo.config.ApplicationConfig;
+
import org.junit.Assert;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingsRegistrarTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingsRegistrarTest.java
index c02a21d..a73dbf2 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingsRegistrarTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigBindingsRegistrarTest.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring.context.annotation;
import com.alibaba.dubbo.config.ApplicationConfig;
+
import org.junit.Assert;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationTest.java
index 26a38f7..ff21bcd 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/DubboConfigConfigurationTest.java
@@ -20,6 +20,7 @@ import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ModuleConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.RegistryConfig;
+
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfigTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfigTest.java
index 1673be1..d5c41b0 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfigTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboConfigTest.java
@@ -23,6 +23,7 @@ import com.alibaba.dubbo.config.MonitorConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.ProviderConfig;
import com.alibaba.dubbo.config.RegistryConfig;
+
import org.junit.Assert;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboTest.java
index c5018da..e419632 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubboTest.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.spring.api.DemoService;
import com.alibaba.dubbo.config.spring.context.annotation.consumer.test.TestConsumerConfiguration;
import com.alibaba.dubbo.config.spring.context.annotation.provider.DemoServiceImpl;
+
import org.junit.Assert;
import org.junit.Test;
import org.springframework.aop.support.AopUtils;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/consumer/ConsumerConfiguration.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/consumer/ConsumerConfiguration.java
index 3e6b463..cf903ca 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/consumer/ConsumerConfiguration.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/consumer/ConsumerConfiguration.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.spring.api.DemoService;
import com.alibaba.dubbo.config.spring.context.annotation.DubboComponentScan;
+
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/consumer/test/TestConsumerConfiguration.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/consumer/test/TestConsumerConfiguration.java
index 4edf2fc..a345c1b 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/consumer/test/TestConsumerConfiguration.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/consumer/test/TestConsumerConfiguration.java
@@ -19,6 +19,7 @@ package com.alibaba.dubbo.config.spring.context.annotation.consumer.test;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.spring.api.DemoService;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
+
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
import org.springframework.transaction.annotation.EnableTransactionManagement;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/DefaultHelloService.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/DefaultHelloService.java
index fd70e82..5b5f894 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/DefaultHelloService.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/DefaultHelloService.java
@@ -17,6 +17,7 @@
package com.alibaba.dubbo.config.spring.context.annotation.provider;
import com.alibaba.dubbo.config.spring.api.HelloService;
+
import org.springframework.stereotype.Service;
/**
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/DemoServiceImpl.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/DemoServiceImpl.java
index 9961aa2..2641fae 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/DemoServiceImpl.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/DemoServiceImpl.java
@@ -18,6 +18,7 @@ package com.alibaba.dubbo.config.spring.context.annotation.provider;
import com.alibaba.dubbo.config.spring.api.Box;
import com.alibaba.dubbo.config.spring.api.DemoService;
+
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/ProviderConfiguration.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/ProviderConfiguration.java
index ef2eeca..afa6e0f 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/ProviderConfiguration.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/annotation/provider/ProviderConfiguration.java
@@ -20,6 +20,7 @@ import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.spring.context.annotation.DubboComponentScan;
+
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.PropertySource;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/properties/DefaultDubboConfigBinderTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/properties/DefaultDubboConfigBinderTest.java
index f0ec69f..9fe8be3 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/properties/DefaultDubboConfigBinderTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/context/properties/DefaultDubboConfigBinderTest.java
@@ -18,24 +18,50 @@ package com.alibaba.dubbo.config.spring.context.properties;
import com.alibaba.dubbo.config.ApplicationConfig;
+import com.alibaba.dubbo.config.ConsumerConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.RegistryConfig;
+import com.alibaba.dubbo.config.spring.beans.factory.config.YamlPropertySourceFactory;
+
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@TestPropertySource(locations = "classpath:/dubbo.properties")
-@ContextConfiguration(classes = DefaultDubboConfigBinder.class)
+@PropertySource(name = "yaml-source", value = {"classpath:/META-INF/dubbo.yml"}, factory = YamlPropertySourceFactory.class)
+@Configuration
+@ContextConfiguration(classes = {DefaultDubboConfigBinder.class, DefaultDubboConfigBinderTest.class})
public class DefaultDubboConfigBinderTest {
@Autowired
private DubboConfigBinder dubboConfigBinder;
+ @Value("${dubbo.consumer.default}")
+ private Boolean isDefault;
+
+ @Value("${dubbo.consumer.client}")
+ private String client;
+
+ @Value("${dubbo.consumer.threadpool}")
+ private String threadPool;
+
+ @Value("${dubbo.consumer.corethreads}")
+ private Integer coreThreads;
+
+ @Value("${dubbo.consumer.threads}")
+ private Integer threads;
+
+ @Value("${dubbo.consumer.queues}")
+ private Integer queues;
+
@Test
public void testBinder() {
@@ -52,5 +78,15 @@ public class DefaultDubboConfigBinderTest {
dubboConfigBinder.bind("dubbo.protocol", protocolConfig);
Assert.assertEquals(Integer.valueOf(20881), protocolConfig.getPort());
+ ConsumerConfig consumerConfig = new ConsumerConfig();
+ dubboConfigBinder.bind("dubbo.consumer", consumerConfig);
+
+ Assert.assertEquals(isDefault, consumerConfig.isDefault());
+ Assert.assertEquals(client, consumerConfig.getClient());
+ Assert.assertEquals(threadPool, consumerConfig.getThreadpool());
+ Assert.assertEquals(coreThreads, consumerConfig.getCorethreads());
+ Assert.assertEquals(threads, consumerConfig.getThreads());
+ Assert.assertEquals(queues, consumerConfig.getQueues());
}
}
+
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandlerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandlerTest.java
index 7b86652..7c7ddb0 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandlerTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandlerTest.java
@@ -25,6 +25,7 @@ import com.alibaba.dubbo.config.spring.ConfigTest;
import com.alibaba.dubbo.config.spring.ServiceBean;
import com.alibaba.dubbo.config.spring.api.DemoService;
import com.alibaba.dubbo.config.spring.impl.DemoServiceImpl;
+
import org.junit.Test;
import org.springframework.beans.factory.BeanCreationException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusCheckerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusCheckerTest.java
index 27ef380..178f32c 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusCheckerTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusCheckerTest.java
@@ -18,6 +18,7 @@ package com.alibaba.dubbo.config.spring.status;
import com.alibaba.dubbo.common.status.Status;
import com.alibaba.dubbo.config.spring.ServiceBean;
+
import org.junit.Before;
import org.junit.Test;
import org.mockito.Answers;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/SpringStatusCheckerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/SpringStatusCheckerTest.java
index 1a57925..39f9125 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/SpringStatusCheckerTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/SpringStatusCheckerTest.java
@@ -18,6 +18,7 @@ package com.alibaba.dubbo.config.spring.status;
import com.alibaba.dubbo.common.status.Status;
import com.alibaba.dubbo.config.spring.ServiceBean;
+
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/util/BeanFactoryUtilsTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/util/BeanFactoryUtilsTest.java
deleted file mode 100644
index 70b013b..0000000
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/util/BeanFactoryUtilsTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.dubbo.config.spring.util;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * {@link BeanFactoryUtils} Test
- *
- * @since 2.5.7
- */
-public class BeanFactoryUtilsTest {
-
- private AnnotationConfigApplicationContext applicationContext;
-
- @Before
- public void init() {
- applicationContext = new AnnotationConfigApplicationContext();
- }
-
- @Test
- public void testGetOptionalBean() {
-
- applicationContext.register(TestBean.class);
-
- applicationContext.refresh();
-
- TestBean testBean = BeanFactoryUtils.getOptionalBean(applicationContext, "testBean", TestBean.class);
-
- Assert.assertNotNull(testBean);
-
- Assert.assertEquals("Hello,World", testBean.getName());
-
- }
-
- @Test
- public void testGetOptionalBeanIfAbsent() {
-
- applicationContext.refresh();
-
- TestBean testBean = BeanFactoryUtils.getOptionalBean(applicationContext, "testBean", TestBean.class);
-
- Assert.assertNull(testBean);
- }
-
- @Test
- public void testGetBeans() {
-
- applicationContext.register(TestBean.class, TestBean2.class);
-
- applicationContext.refresh();
-
- List<TestBean> testBeans = BeanFactoryUtils.getBeans(applicationContext, new String[]{"testBean"}, TestBean.class);
-
- Assert.assertEquals(1, testBeans.size());
-
- Assert.assertEquals("Hello,World", testBeans.get(0).getName());
-
- }
-
- @Test
- public void testGetBeansIfAbsent() {
-
- applicationContext.refresh();
-
- List<TestBean> testBeans = BeanFactoryUtils.getBeans(applicationContext, new String[]{"testBean"}, TestBean.class);
-
- Assert.assertTrue(testBeans.isEmpty());
-
- }
-
-
- @Component("testBean2")
- private static class TestBean2 extends TestBean {
-
- }
-
- @Component("testBean")
- private static class TestBean {
-
- private String name = "Hello,World";
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- }
-}
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/util/PropertySourcesUtilsTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/util/PropertySourcesUtilsTest.java
deleted file mode 100644
index 5dd526f..0000000
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/util/PropertySourcesUtilsTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.dubbo.config.spring.util;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.springframework.core.env.MapPropertySource;
-import org.springframework.core.env.MutablePropertySources;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * {@link PropertySourcesUtils} Test
- *
- * @see PropertySourcesUtils
- * @since 2.5.8
- */
-public class PropertySourcesUtilsTest {
-
- @Test
- public void testGetSubProperties() {
-
- MutablePropertySources propertySources = new MutablePropertySources();
-
- Map<String, Object> source = new HashMap<String, Object>();
-
- MapPropertySource propertySource = new MapPropertySource("test", source);
-
- propertySources.addFirst(propertySource);
-
- String KEY_PREFIX = "user";
- String KEY_NAME = "name";
- String KEY_AGE = "age";
- Map<String, String> result = PropertySourcesUtils.getSubProperties(propertySources, KEY_PREFIX);
-
- Assert.assertEquals(Collections.emptyMap(), result);
-
- source.put(KEY_PREFIX + "." + KEY_NAME, "Mercy");
- source.put(KEY_PREFIX + "." + KEY_AGE, 31);
-
- Map<String, Object> expected = new HashMap<String, Object>();
- expected.put(KEY_NAME, "Mercy");
- expected.put(KEY_AGE, "31");
-
- result = PropertySourcesUtils.getSubProperties(propertySources, KEY_PREFIX);
- Assert.assertEquals(expected, result);
-
- result = PropertySourcesUtils.getSubProperties(propertySources, "");
-
- Assert.assertEquals(Collections.emptyMap(), result);
-
- result = PropertySourcesUtils.getSubProperties(propertySources, "no-exists");
-
- Assert.assertEquals(Collections.emptyMap(), result);
-
- }
-
-}
diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbb-consumer.properties b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbb-consumer.properties
index ef6a32a..4e003cc 100644
--- a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbb-consumer.properties
+++ b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbb-consumer.properties
@@ -5,7 +5,7 @@ demo.service.registry = my-registry
## Dubbo configs binding properties
### <dubbo:application name="dubbo-annotation-consumer"/>
-dubbo.applications.dubbo-annotation-consumer.name = Dubbo Consumer
+dubbo.applications.dubbo-annotation-consumer.name = dubbo-consumer
dubbo.applications.dubbo-annotation-consumer2.name = dubbo-consumer2
### <dubbo:registry id="my-registry" address="N/A"/>
diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbb-provider.properties b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbb-provider.properties
index 0376ee8..61d99ba 100644
--- a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbb-provider.properties
+++ b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbb-provider.properties
@@ -12,7 +12,7 @@ demo.service.registry = my-registry
### <dubbo:application name="dubbo-annotation-provider"/>
dubbo.application.id = dubbo-annotation-provider
-dubbo.application.name = Dubbo Provider
+dubbo.application.name = dubbo-provider
### <dubbo:registry id="my-registry" address="N/A"/>
dubbo.registry.id = my-registry
diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbo.yml b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbo.yml
new file mode 100644
index 0000000..ed0f0dd
--- /dev/null
+++ b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/dubbo.yml
@@ -0,0 +1,8 @@
+dubbo:
+ consumer:
+ default: false
+ client: netty
+ threadpool: cached
+ corethreads: 1
+ threads: 10
+ queues: 99
\ No newline at end of file
diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/dubbo.properties b/dubbo-config/dubbo-config-spring/src/test/resources/dubbo.properties
index 98b869b..6c4d999 100644
--- a/dubbo-config/dubbo-config-spring/src/test/resources/dubbo.properties
+++ b/dubbo-config/dubbo-config-spring/src/test/resources/dubbo.properties
@@ -1,4 +1,6 @@
-dubbo.application.name=hello
+name = hello
+app.name = ${name}
+dubbo.application.name=${app.name}
dubbo.application.owner=world
dubbo.registry.address=10.20.153.17
dubbo.protocol.port=20881