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 <[email protected]> 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) {
