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 2018/11/22 09:30:06 UTC
[incubator-dubbo] 02/02: Merge branch 'dev-metadata' of
https://github.com/apache/incubator-dubbo into dev-metadata
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
commit 1e28f7a49980ad5ef5d373ed11d004de7d7082aa
Merge: 1bebd2d 7adf111
Author: ken.lj <ke...@gmail.com>
AuthorDate: Thu Nov 22 17:29:21 2018 +0800
Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
.../java/org/apache/dubbo/common/Constants.java | 18 ++-
.../org/apache/dubbo/common/utils/ClassHelper.java | 55 ++++++++
.../org/apache/dubbo/config/AbstractConfig.java | 142 ++++++---------------
.../dubbo/config/AbstractInterfaceConfig.java | 18 ++-
.../apache/dubbo/config/MetadataReportConfig.java | 16 ++-
.../apache/dubbo/config/RegistryDataConfig.java | 35 +++--
.../apache/dubbo/config/utils/ConfigConverter.java | 40 ------
.../dubbo/configcenter/ConfigurationListener.java | 5 -
.../support/apollo/ApolloDynamicConfiguration.java | 73 +++++------
.../archaius/ArchaiusDynamicConfiguration.java | 40 +++---
.../sources/ZooKeeperConfigurationSource.java | 36 +++---
.../metadata/identifier/MetadataIdentifier.java | 13 +-
.../metadata/support/AbstractMetadataReport.java | 29 ++---
.../store/test/JTestMetadataReport4Test.java | 3 +-
.../support/AbstractMetadataReportTest.java | 20 +--
.../store/redis/RedisMetadataReportTest.java | 9 +-
.../store/zookeeper/ZookeeperMetadataReport.java | 2 +-
.../zookeeper/ZookeeperMetadataReportTest.java | 2 +-
.../registry/integration/RegistryProtocol.java | 5 -
19 files changed, 263 insertions(+), 298 deletions(-)
diff --cc dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
index 43a327b,4395a71..91e226d
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
@@@ -552,15 -491,16 +491,17 @@@ public abstract class AbstractConfig im
// loop methods, get override value and set the new value back to method
Method[] methods = getClass().getMethods();
for (Method method : methods) {
- if (isSetter(method)) {
+ if (ClassHelper.isSetter(method)) {
try {
- String value = compositeConfiguration.getString(extractPropertyName(method));
+ String value = compositeConfiguration.getString(extractPropertyName(getClass(), method));
- if (value != null) {
+ // isTypeMatch() is called to avoid duplicate and incorrect update, for example, we have two 'setGeneric' methods in ReferenceConfig.
+ if (value != null && isTypeMatch(method.getParameterTypes()[0], value)) {
- method.invoke(this, convertPrimitive(method.getParameterTypes()[0], value));
+ method.invoke(this, ClassHelper.convertPrimitive(method.getParameterTypes()[0], value));
}
} catch (NoSuchMethodException e) {
- logger.info("Failed to override the property " + method.getName() + " in " + this.getClass().getSimpleName() + ", please make sure every property has a getter/setter pair.");
+ logger.info("Failed to override the property " + method.getName() + " in " +
+ this.getClass().getSimpleName() +
+ ", please make sure every property has getter/setter method provided.");
}
}
}
diff --cc dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
index 5460861,0d484a7..69dfc2a
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
@@@ -229,10 -235,14 +236,11 @@@ public abstract class AbstractInterface
protected List<URL> loadRegistries(boolean provider) {
// check && override if necessary
checkRegistry();
+ checkRegistryDataConfig();
List<URL> registryList = new ArrayList<URL>();
if (registries != null && !registries.isEmpty()) {
- Map<String, String> registryDataConfigurationMap = this.registryDataConfig.transferToMap();
+ Map<String, String> registryDataConfigurationMap = new HashMap<>(4);
+ appendParameters(registryDataConfigurationMap, registryDataConfig);
for (RegistryConfig config : registries) {
String address = config.getAddress();
if (address == null || address.length() == 0) {