You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by vi...@apache.org on 2018/11/14 10:50:10 UTC

[incubator-dubbo] branch dev-metadata updated (bdfc500 -> 21b4334)

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

victory pushed a change to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


    from bdfc500  Fix NPE in TagRouter
     add e572f15  merge from base
     add 678b3fd  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add fd36193  add metadata master flow
     add d3d6025  modify apache license
     add 1aa9138  new pull
     add 98021af  Merge branch 'dev-metadata' into dev-metadata
     add 653f5e4  new pull
     add cd13f62  new pull
     add bab12d2  new pull
     add d93515a  fix review issue: english comments and class format
     add 5ab51cf  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add 5fcfbce  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add 0cb75df  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add 1af7240  modify data store
     add f532ffd  add redis service store support
     add 98daa43  add test
     add d695b5e  add test on serviceStore and serviceStoreFactory
     add f8a9315  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add fe8380f  add classinfo collect
     add 9f6f0f5  add serviceStoreService test and modify the code
     add 6f86a8e  add tests
     add 0dac06e  add unit test
     add 336ffd1  add unit test
     add 00513f8  zk and redis unit test and fix some bug
     add 5e3415f  fix review issue
     add d3469fd  delete class
     add 462337f  remove author
     add 1dc5d35  remove author
     add a69bc0a  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add 695d9f8  move getKey from RedisServiceStore to AbstractServiceStore;  modify demo consumer url
     add 10b2af4  modify dubbo configuration key
     add 876b9d6  merge from dev-metadata
     add 5194066  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add a97bf43  renew the module name, package name, class name
     add 604439a  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add 0a29783  refactor AbstractMetadataReport
     add 1e6800b  seperate retry from AbstractMetadataReport
     add ca649e3  rename the serviceStore to metadataReport; default MetadataReportFactory to redis
     add f1ea451  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add 8416db1  refactor the interface and import jaket source
     add 2a8986a  refactor the interface and import jaket source
     add 801eb73  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add 26f01c9  modify servicestore and refactory abstractMetadataReport
     add 10bca19  add simple registry switch and metadata retry switch
     add a4db979  add simple registry switch and metadata retry switch
     add 6f90215  fix compiler issue
     add 033b58e  remove the group of registry from demo-provider
     add 8600ae4  remove dependent and import
     add a41930e  merge dev-metadata
     add 61bdd46  make demo work
     add 90a9134  merge dev-metadata from upstream and refactor zk store
     add 6b4bae0  merge dev-metadata and add unit test
     add 9d37574  remove origin metadata code , add new metadata test, add generic test for metadata
     add c064b0a  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     add 8f498c9  if no metadata config address, config the log level to warn
     new bc9cf99  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     new c5bc3bc  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     new d8db928  fix :dubbo.properties cannot work on MetadataReportConfig
     new efacb58  Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
     new 29ef73f  refactor the simplified, add some unit test, fix issue.
     new 21b4334  Merge branch 'dev-metadata' of github.com:apache/incubator-dubbo into dev-metadata

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


Summary of changes:
 .../java/org/apache/dubbo/common/Constants.java    |  6 +-
 .../src/main/java/org/apache/dubbo/common/URL.java |  8 +-
 .../dubbo/config/RegistryDataConfigTest.java       | 87 ++++++++++++++++++++++
 .../dubbo/config/AbstractInterfaceConfig.java      |  5 +-
 .../apache/dubbo/config/RegistryDataConfig.java    |  2 +-
 .../annotation/DubboConfigConfiguration.java       |  6 +-
 .../src/main/resources/META-INF/compat/dubbo.xsd   | 20 ++---
 .../src/main/resources/META-INF/dubbo.xsd          | 20 ++---
 .../META-INF/spring/dubbo-demo-provider.xml        |  2 +-
 .../registry/integration/RegistryProtocol.java     | 25 ++-----
 .../dubbo/registry/dubbo/RegistryProtocolTest.java | 11 ---
 .../registry/integration/RegistryProtocolTest.java | 23 ++++++
 12 files changed, 156 insertions(+), 59 deletions(-)
 create mode 100644 dubbo-compatible/src/test/java/org/apache/dubbo/config/RegistryDataConfigTest.java
 create mode 100644 dubbo-registry/dubbo-registry-default/src/test/java/org/apache/dubbo/registry/integration/RegistryProtocolTest.java


[incubator-dubbo] 01/06: Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

victory pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit bc9cf99edb51e39c9bb89cd49a0611e7775dafb0
Merge: 8f498c9 072b51e
Author: cvictory <sh...@gmail.com>
AuthorDate: Tue Nov 6 17:33:58 2018 +0800

    Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata



[incubator-dubbo] 05/06: refactor the simplified, add some unit test, fix issue.

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

victory pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit 29ef73f1b122768ddf446bdfb814e815aef3efc9
Author: cvictory <sh...@gmail.com>
AuthorDate: Wed Nov 14 18:41:45 2018 +0800

    refactor the simplified, add some unit test, fix issue.
---
 .../java/org/apache/dubbo/common/Constants.java    |  6 +-
 .../src/main/java/org/apache/dubbo/common/URL.java |  8 +-
 .../dubbo/config/RegistryDataConfigTest.java       | 87 ++++++++++++++++++++++
 .../dubbo/config/AbstractInterfaceConfig.java      |  5 +-
 .../apache/dubbo/config/RegistryDataConfig.java    |  2 +-
 .../annotation/DubboConfigConfiguration.java       |  2 +
 .../src/main/resources/META-INF/compat/dubbo.xsd   | 20 ++---
 .../src/main/resources/META-INF/dubbo.xsd          | 20 ++---
 .../META-INF/spring/dubbo-demo-provider.xml        |  2 +-
 .../registry/integration/RegistryProtocol.java     | 25 ++-----
 .../dubbo/registry/dubbo/RegistryProtocolTest.java | 11 ---
 .../registry/integration/RegistryProtocolTest.java | 23 ++++++
 12 files changed, 153 insertions(+), 58 deletions(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/Constants.java b/dubbo-common/src/main/java/org/apache/dubbo/common/Constants.java
index a4b64ca..be9a8fc 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/Constants.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/Constants.java
@@ -711,8 +711,10 @@ public class Constants {
 
     public static final String CYCLE_REPORT_KEY = "cyclereport";
 
-    public static final String[] EXCHANGING_KEYS = {APPLICATION_KEY, CODEC_KEY, EXCHANGER_KEY, SERIALIZATION_KEY, CLUSTER_KEY, CONNECTIONS_KEY, DEPRECATED_KEY,
-            GROUP_KEY, LOADBALANCE_KEY, MOCK_KEY, PATH_KEY, TIMEOUT_KEY, TOKEN_KEY, VERSION_KEY, WARMUP_KEY, WEIGHT_KEY, TIMESTAMP_KEY};
+    public static final String[] DEFAULT_REGISTER_PROVIDER_KEYS = {APPLICATION_KEY, CODEC_KEY, EXCHANGER_KEY, SERIALIZATION_KEY, CLUSTER_KEY, CONNECTIONS_KEY, DEPRECATED_KEY,
+            GROUP_KEY, LOADBALANCE_KEY, MOCK_KEY, PATH_KEY, TIMEOUT_KEY, TOKEN_KEY, VERSION_KEY, WARMUP_KEY, WEIGHT_KEY, TIMESTAMP_KEY, DUBBO_VERSION_KEY};
+
+    public static final String[] DEFAULT_REGISTER_CONSUMER_KEYS = {APPLICATION_KEY, VERSION_KEY, GROUP_KEY, DUBBO_VERSION_KEY};
 
     /*
      * private Constants(){ }
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
index f739715..b0396bd 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
@@ -279,8 +279,8 @@ public /**final**/ class URL implements Serializable {
         Map<String, String> oldMap = url.getParameters();
         if (reserveParamPrefixs != null && reserveParamPrefixs.length != 0) {
             for (Map.Entry<String, String> entry : oldMap.entrySet()) {
-                for (String reserveParamPrefix : reserveParamPrefixs){
-                    if (entry.getKey().startsWith(reserveParamPrefix) && StringUtils.isNotEmpty(entry.getValue())){
+                for (String reserveParamPrefix : reserveParamPrefixs) {
+                    if (entry.getKey().startsWith(reserveParamPrefix) && StringUtils.isNotEmpty(entry.getValue())) {
                         newMap.put(entry.getKey(), entry.getValue());
                     }
                 }
@@ -295,8 +295,8 @@ public /**final**/ class URL implements Serializable {
                 }
             }
         }
-
-        return newMap.isEmpty() ? url : url.clearParameters().addParameters(newMap);
+        return newMap.isEmpty() ? new URL(url.getProtocol(), url.getUsername(), url.getPassword(), url.getHost(), url.getPort(), url.getPath())
+                : new URL(url.getProtocol(), url.getUsername(), url.getPassword(), url.getHost(), url.getPort(), url.getPath(), newMap);
     }
 
     public static String encode(String value) {
diff --git a/dubbo-compatible/src/test/java/org/apache/dubbo/config/RegistryDataConfigTest.java b/dubbo-compatible/src/test/java/org/apache/dubbo/config/RegistryDataConfigTest.java
new file mode 100644
index 0000000..bca6f72
--- /dev/null
+++ b/dubbo-compatible/src/test/java/org/apache/dubbo/config/RegistryDataConfigTest.java
@@ -0,0 +1,87 @@
+package org.apache.dubbo.config;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Map;
+
+/**
+ * @author cvictory ON 2018/11/14
+ */
+public class RegistryDataConfigTest {
+
+    @Test
+    public void testProviderNoValue(){
+        RegistryDataConfig registryDataConfig = new RegistryDataConfig();
+        registryDataConfig.setSimpleProviderUrl(false);
+        registryDataConfig.setExtraProviderUrlParamKeys("xxx,sss");
+        Map<String,String> result = registryDataConfig.transferToMap();
+        Assert.assertTrue(result.isEmpty());
+    }
+
+    @Test
+    public void testProviderNoParamKey(){
+        RegistryDataConfig registryDataConfig = new RegistryDataConfig();
+        registryDataConfig.setSimpleProviderUrl(true);
+        Map<String,String> result = registryDataConfig.transferToMap();
+        Assert.assertFalse(result.isEmpty());
+        Assert.assertEquals(result.get("simpleProviderUrl"), "true");
+        Assert.assertNull(result.get("extraProviderUrlParamKeys"));
+    }
+
+    @Test
+    public void testProviderHasParamKey(){
+        RegistryDataConfig registryDataConfig = new RegistryDataConfig();
+        registryDataConfig.setSimpleProviderUrl(true);
+        registryDataConfig.setExtraProviderUrlParamKeys("xxx,sss");
+        Map<String,String> result = registryDataConfig.transferToMap();
+        Assert.assertFalse(result.isEmpty());
+        Assert.assertEquals(result.get("simpleProviderUrl"), "true");
+        Assert.assertEquals(result.get("extraProviderUrlParamKeys"), "xxx,sss");
+    }
+
+    @Test
+    public void testConsumerNoValue(){
+        RegistryDataConfig registryDataConfig = new RegistryDataConfig();
+        registryDataConfig.setSimpleConsumerUrl(false);
+        registryDataConfig.setExtraConsumerUrlParamKeys("xxx,sss");
+        Map<String,String> result = registryDataConfig.transferToMap();
+        Assert.assertTrue(result.isEmpty());
+    }
+
+    @Test
+    public void testConsumerNoParamKey(){
+        RegistryDataConfig registryDataConfig = new RegistryDataConfig();
+        registryDataConfig.setSimpleConsumerUrl(true);
+        Map<String,String> result = registryDataConfig.transferToMap();
+        Assert.assertFalse(result.isEmpty());
+        Assert.assertEquals(result.get("simpleConsumerUrl"), "true");
+        Assert.assertNull(result.get("extraConsumerUrlParamKeys"));
+    }
+
+    @Test
+    public void testConsumerHasParamKey(){
+        RegistryDataConfig registryDataConfig = new RegistryDataConfig();
+        registryDataConfig.setSimpleConsumerUrl(true);
+        registryDataConfig.setExtraConsumerUrlParamKeys("xxx,sss");
+        Map<String,String> result = registryDataConfig.transferToMap();
+        Assert.assertFalse(result.isEmpty());
+        Assert.assertEquals(result.get("simpleConsumerUrl"), "true");
+        Assert.assertEquals(result.get("extraConsumerUrlParamKeys"), "xxx,sss");
+    }
+
+    @Test
+    public void testMixHasParamKey(){
+        RegistryDataConfig registryDataConfig = new RegistryDataConfig();
+        registryDataConfig.setSimpleConsumerUrl(true);
+        registryDataConfig.setExtraConsumerUrlParamKeys("xxx,sss");
+        registryDataConfig.setSimpleProviderUrl(true);
+        registryDataConfig.setExtraProviderUrlParamKeys("yyy,xxx");
+        Map<String,String> result = registryDataConfig.transferToMap();
+        Assert.assertTrue(result.size() == 4);
+        Assert.assertEquals(result.get("simpleProviderUrl"), "true");
+        Assert.assertEquals(result.get("extraProviderUrlParamKeys"), "yyy,xxx");
+        Assert.assertEquals(result.get("simpleConsumerUrl"), "true");
+        Assert.assertEquals(result.get("extraConsumerUrlParamKeys"), "xxx,sss");
+    }
+}
diff --git 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
index 6e41fe6..a1363d6 100644
--- 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
@@ -202,7 +202,7 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
         checkRegistry();
         List<URL> registryList = new ArrayList<URL>();
         if (registries != null && !registries.isEmpty()) {
-            Map<String, String> registryDataConfigurationMap = this.registryDataConfig.transferMap();
+            Map<String, String> registryDataConfigurationMap = this.registryDataConfig.transferToMap();
             for (RegistryConfig config : registries) {
                 String address = config.getAddress();
                 if (address == null || address.length() == 0) {
@@ -227,7 +227,8 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
                     for (URL url : urls) {
                         url = url.addParameter(Constants.REGISTRY_KEY, url.getProtocol());
                         url = url.setProtocol(Constants.REGISTRY_PROTOCOL);
-                        url.addParameters(registryDataConfigurationMap);
+                        // add parameter
+                        url = url.addParametersIfAbsent(registryDataConfigurationMap);
                         if ((provider && url.getParameter(Constants.REGISTER_KEY, true))
                                 || (!provider && url.getParameter(Constants.SUBSCRIBE_KEY, true))) {
                             registryList.add(url);
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryDataConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryDataConfig.java
index 3ccaab5..21d57ec 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryDataConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryDataConfig.java
@@ -33,7 +33,7 @@ public class RegistryDataConfig extends AbstractConfig {
     private boolean simpleConsumerUrl;
     private String extraConsumerUrlParamKeys;
 
-    public Map<String, String> transferMap() {
+    public Map<String, String> transferToMap() {
         Map<String, String> map = new HashMap<String, String>(4);
         if (simpleProviderUrl) {
             map.put(Constants.SIMPLE_PROVIDER_URL_KEY, Boolean.TRUE.toString());
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
index 1424e86..e154baf 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
@@ -25,6 +25,7 @@ import org.apache.dubbo.config.MonitorConfig;
 import org.apache.dubbo.config.ProtocolConfig;
 import org.apache.dubbo.config.ProviderConfig;
 import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.config.RegistryDataConfig;
 import org.apache.dubbo.config.spring.ConfigCenterBean;
 import org.springframework.context.annotation.Configuration;
 
@@ -58,6 +59,7 @@ public class DubboConfigConfiguration {
             @EnableDubboConfigBinding(prefix = "dubbo.provider", type = ProviderConfig.class),
             @EnableDubboConfigBinding(prefix = "dubbo.consumer", type = ConsumerConfig.class),
             @EnableDubboConfigBinding(prefix = "dubbo.configcenter", type = ConfigCenterBean.class),
+            @EnableDubboConfigBinding(prefix = "dubbo.registrydata", type = RegistryDataConfig.class),
             @EnableDubboConfigBinding(prefix = "dubbo.metadatareport", type = MetadataReportConfig.class)
     })
     public static class Single {
diff --git a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd
index 9810969..807f7a7 100644
--- a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd
+++ b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd
@@ -550,16 +550,16 @@
                 <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation>
             </xsd:annotation>
         </xsd:attribute>
-        <xsd:attribute name="simple" type="xsd:boolean">
-            <xsd:annotation>
-                <xsd:documentation><![CDATA[ Is simple. ]]></xsd:documentation>
-            </xsd:annotation>
-        </xsd:attribute>
-        <xsd:attribute name="plusparamkeys" type="xsd:string">
-            <xsd:annotation>
-                <xsd:documentation><![CDATA[ Addtional Parameter Keys. ]]></xsd:documentation>
-            </xsd:annotation>
-        </xsd:attribute>
+        <!--<xsd:attribute name="simple" type="xsd:boolean">-->
+            <!--<xsd:annotation>-->
+                <!--<xsd:documentation><![CDATA[ Is simple. ]]></xsd:documentation>-->
+            <!--</xsd:annotation>-->
+        <!--</xsd:attribute>-->
+        <!--<xsd:attribute name="plusparamkeys" type="xsd:string">-->
+            <!--<xsd:annotation>-->
+                <!--<xsd:documentation><![CDATA[ Addtional Parameter Keys. ]]></xsd:documentation>-->
+            <!--</xsd:annotation>-->
+        <!--</xsd:attribute>-->
     </xsd:complexType>
 
     <xsd:complexType name="metadataReportType">
diff --git a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd
index b2ff6cb..d4f47db 100644
--- a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd
+++ b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd
@@ -544,16 +544,16 @@
                 <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation>
             </xsd:annotation>
         </xsd:attribute>
-        <xsd:attribute name="simple" type="xsd:boolean">
-            <xsd:annotation>
-                <xsd:documentation><![CDATA[ Is simple. ]]></xsd:documentation>
-            </xsd:annotation>
-        </xsd:attribute>
-        <xsd:attribute name="plusparamkeys" type="xsd:string">
-            <xsd:annotation>
-                <xsd:documentation><![CDATA[ Addtional Parameter Keys. ]]></xsd:documentation>
-            </xsd:annotation>
-        </xsd:attribute>
+        <!--<xsd:attribute name="simple" type="xsd:boolean">-->
+            <!--<xsd:annotation>-->
+                <!--<xsd:documentation><![CDATA[ Is simple. ]]></xsd:documentation>-->
+            <!--</xsd:annotation>-->
+        <!--</xsd:attribute>-->
+        <!--<xsd:attribute name="plusparamkeys" type="xsd:string">-->
+            <!--<xsd:annotation>-->
+                <!--<xsd:documentation><![CDATA[ Addtional Parameter Keys. ]]></xsd:documentation>-->
+            <!--</xsd:annotation>-->
+        <!--</xsd:attribute>-->
     </xsd:complexType>
 
     <xsd:complexType name="metadataReportType">
diff --git a/dubbo-demo/dubbo-demo-provider/src/main/resources/META-INF/spring/dubbo-demo-provider.xml b/dubbo-demo/dubbo-demo-provider/src/main/resources/META-INF/spring/dubbo-demo-provider.xml
index 7af535e..5f0d473 100644
--- a/dubbo-demo/dubbo-demo-provider/src/main/resources/META-INF/spring/dubbo-demo-provider.xml
+++ b/dubbo-demo/dubbo-demo-provider/src/main/resources/META-INF/spring/dubbo-demo-provider.xml
@@ -25,7 +25,7 @@
     <dubbo:application name="demo-provider"/>
     <!--<dubbo:provider tag="tag3"/>-->
 
-    <dubbo:registry group="dubboregistrygroup1" address="zookeeper://127.0.0.1:2181" simple="false">
+    <dubbo:registry group="dubboregistrygroup1" address="zookeeper://127.0.0.1:2181">
     </dubbo:registry>
 
     <dubbo:configcenter type="zookeeper" address="127.0.0.1:2181" namespace="dubboregistrygroup1"
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
index 4fbf5c9..957fdc3 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
@@ -59,7 +59,6 @@ import java.util.stream.Collectors;
 import static org.apache.dubbo.common.Constants.ACCEPT_FOREIGN_IP;
 import static org.apache.dubbo.common.Constants.APPLICATION_KEY;
 import static org.apache.dubbo.common.Constants.CONFIGURATORS_SUFFIX;
-import static org.apache.dubbo.common.Constants.EXCHANGING_KEYS;
 import static org.apache.dubbo.common.Constants.EXPORT_KEY;
 import static org.apache.dubbo.common.Constants.INTERFACES;
 import static org.apache.dubbo.common.Constants.METHODS_KEY;
@@ -259,17 +258,10 @@ public class RegistryProtocol implements Protocol {
         //The address you see at the registry
         if (!registryUrl.getParameter(Constants.SIMPLE_PROVIDER_URL_KEY, false)) {
             final URL registedProviderUrl = providerUrl.removeParameters(getFilteredKeys(providerUrl))
-                    .removeParameter(Constants.MONITOR_KEY)
-                    .removeParameter(Constants.BIND_IP_KEY)
-                    .removeParameter(Constants.BIND_PORT_KEY)
-                    .removeParameter(QOS_ENABLE)
-                    .removeParameter(QOS_PORT)
-                    .removeParameter(ACCEPT_FOREIGN_IP)
-                    .removeParameter(VALIDATION_KEY)
-                    .removeParameter(INTERFACES);
+                    .removeParameters(Constants.MONITOR_KEY, Constants.BIND_IP_KEY, Constants.BIND_PORT_KEY, QOS_ENABLE, QOS_PORT, ACCEPT_FOREIGN_IP, VALIDATION_KEY, INTERFACES);
             return registedProviderUrl;
         } else {
-            return URL.valueOf(providerUrl, getParamsToRegistry(registryUrl.getParameter(Constants.EXTRA_PROVIDER_URL_PARAM_KEYS_KEY, new String[0])), providerUrl.getParameter(METHODS_KEY, (String[]) null));
+            return URL.valueOf(providerUrl, getParamsToRegistry(Constants.DEFAULT_REGISTER_PROVIDER_KEYS, registryUrl.getParameter(Constants.EXTRA_PROVIDER_URL_PARAM_KEYS_KEY, new String[0])), providerUrl.getParameter(METHODS_KEY, (String[]) null));
         }
 
     }
@@ -342,7 +334,7 @@ public class RegistryProtocol implements Protocol {
         URL subscribeUrl = new URL(Constants.CONSUMER_PROTOCOL, parameters.remove(Constants.REGISTER_IP_KEY), 0, type.getName(), parameters);
         if (!Constants.ANY_VALUE.equals(url.getServiceInterface())
                 && url.getParameter(Constants.REGISTER_KEY, true)) {
-            registry.register(getRegistedConsumerUrl(subscribeUrl, directory.getUrl()));
+            registry.register(getRegistedConsumerUrl(subscribeUrl, url));
         }
         directory.subscribe(subscribeUrl.addParameter(Constants.CATEGORY_KEY,
                 Constants.PROVIDERS_CATEGORY
@@ -359,18 +351,17 @@ public class RegistryProtocol implements Protocol {
             return consumerUrl.addParameters(Constants.CATEGORY_KEY, Constants.CONSUMERS_CATEGORY,
                     Constants.CHECK_KEY, String.valueOf(false));
         } else {
-            return URL.valueOf(consumerUrl, getParamsToRegistry(registryUrl
-                    .getParameter(Constants.EXTRA_CONSUMER_URL_PARAM_KEYS_KEY, new String[0])), consumerUrl.getParameter(METHODS_KEY, (String[]) null))
+            return URL.valueOf(consumerUrl, getParamsToRegistry(Constants.DEFAULT_REGISTER_CONSUMER_KEYS, registryUrl.getParameter(Constants.EXTRA_CONSUMER_URL_PARAM_KEYS_KEY, new String[0])), null)
                     .addParameters(Constants.CATEGORY_KEY, Constants.CONSUMERS_CATEGORY, Constants.CHECK_KEY, String.valueOf(false));
         }
     }
 
     // available to test
-    public String[] getParamsToRegistry(String[] addionalParameterKeys) {
+    String[] getParamsToRegistry(String[] defaultKeys, String[] addionalParameterKeys) {
         int additionalLen = addionalParameterKeys.length;
-        String[] registryParams = new String[EXCHANGING_KEYS.length + additionalLen];
-        System.arraycopy(EXCHANGING_KEYS, 0, registryParams, 0, EXCHANGING_KEYS.length);
-        System.arraycopy(addionalParameterKeys, 0, registryParams, EXCHANGING_KEYS.length, additionalLen);
+        String[] registryParams = new String[defaultKeys.length + additionalLen];
+        System.arraycopy(defaultKeys, 0, registryParams, 0, defaultKeys.length);
+        System.arraycopy(addionalParameterKeys, 0, registryParams, defaultKeys.length, additionalLen);
         return registryParams;
     }
 
diff --git a/dubbo-registry/dubbo-registry-default/src/test/java/org/apache/dubbo/registry/dubbo/RegistryProtocolTest.java b/dubbo-registry/dubbo-registry-default/src/test/java/org/apache/dubbo/registry/dubbo/RegistryProtocolTest.java
index 855a010..819f292 100644
--- a/dubbo-registry/dubbo-registry-default/src/test/java/org/apache/dubbo/registry/dubbo/RegistryProtocolTest.java
+++ b/dubbo-registry/dubbo-registry-default/src/test/java/org/apache/dubbo/registry/dubbo/RegistryProtocolTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.dubbo.registry.dubbo;
 
-import org.apache.commons.lang3.ArrayUtils;
 import org.apache.dubbo.common.Constants;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.extension.ExtensionLoader;
@@ -40,7 +39,6 @@ import org.junit.Test;
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.apache.dubbo.common.Constants.EXCHANGING_KEYS;
 import static org.junit.Assert.assertEquals;
 
 /**
@@ -59,15 +57,6 @@ public class RegistryProtocolTest {
     final private Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
 
     @Test
-    public void testGetParamsToRegistry() {
-        RegistryProtocol registryProtocol = new RegistryProtocol();
-        String[] additionalParams = new String[]{"key1", "key2"};
-        String[] registryParams = registryProtocol.getParamsToRegistry(additionalParams);
-        String[] expectParams = ArrayUtils.addAll(EXCHANGING_KEYS, additionalParams);
-        Assert.assertArrayEquals(expectParams, registryParams);
-    }
-
-    @Test
     public void testDefaultPort() {
         RegistryProtocol registryProtocol = new RegistryProtocol();
         assertEquals(9090, registryProtocol.getDefaultPort());
diff --git a/dubbo-registry/dubbo-registry-default/src/test/java/org/apache/dubbo/registry/integration/RegistryProtocolTest.java b/dubbo-registry/dubbo-registry-default/src/test/java/org/apache/dubbo/registry/integration/RegistryProtocolTest.java
new file mode 100644
index 0000000..3b6ec31
--- /dev/null
+++ b/dubbo-registry/dubbo-registry-default/src/test/java/org/apache/dubbo/registry/integration/RegistryProtocolTest.java
@@ -0,0 +1,23 @@
+package org.apache.dubbo.registry.integration;
+
+import org.apache.commons.lang3.ArrayUtils;
+import org.junit.Assert;
+import org.junit.Test;
+
+import static org.apache.dubbo.common.Constants.DEFAULT_REGISTER_PROVIDER_KEYS;
+
+/**
+ * @author cvictory ON 2018/11/14
+ */
+public class RegistryProtocolTest {
+
+    @Test
+    public void testGetParamsToRegistry() {
+        RegistryProtocol registryProtocol = new RegistryProtocol();
+        String[] additionalParams = new String[]{"key1", "key2"};
+        String[] registryParams = registryProtocol.getParamsToRegistry(DEFAULT_REGISTER_PROVIDER_KEYS, additionalParams);
+        String[] expectParams = ArrayUtils.addAll(DEFAULT_REGISTER_PROVIDER_KEYS, additionalParams);
+        Assert.assertArrayEquals(expectParams, registryParams);
+    }
+}
+


[incubator-dubbo] 02/06: Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

victory pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit c5bc3bc4f91d9a2a14a1511d51387fa6015e67d9
Merge: bc9cf99 d85550a
Author: cvictory <sh...@gmail.com>
AuthorDate: Wed Nov 7 14:56:40 2018 +0800

    Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata

 .../apache/dubbo/config/ConfigCenterConfig.java    | 37 +++++++++++++++++++++-
 .../dubbo/config/spring/ConfigCenterBean.java      | 35 +++++++++++++++++++-
 .../apache/dubbo/config/spring/ReferenceBean.java  |  4 +++
 .../apache/dubbo/config/spring/ServiceBean.java    | 13 ++------
 4 files changed, 76 insertions(+), 13 deletions(-)


[incubator-dubbo] 03/06: fix :dubbo.properties cannot work on MetadataReportConfig

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

victory pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit d8db928d0a080767fe7ad4a3398d17ec39ec9614
Author: cvictory <sh...@gmail.com>
AuthorDate: Thu Nov 8 18:31:15 2018 +0800

    fix :dubbo.properties cannot work on MetadataReportConfig
---
 .../config/spring/context/annotation/DubboConfigConfiguration.java    | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
index 8f4dea8..1424e86 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.dubbo.config.spring.context.annotation;
 import org.apache.dubbo.config.AbstractConfig;
 import org.apache.dubbo.config.ApplicationConfig;
 import org.apache.dubbo.config.ConsumerConfig;
+import org.apache.dubbo.config.MetadataReportConfig;
 import org.apache.dubbo.config.ModuleConfig;
 import org.apache.dubbo.config.MonitorConfig;
 import org.apache.dubbo.config.ProtocolConfig;
@@ -56,7 +57,8 @@ public class DubboConfigConfiguration {
             @EnableDubboConfigBinding(prefix = "dubbo.monitor", type = MonitorConfig.class),
             @EnableDubboConfigBinding(prefix = "dubbo.provider", type = ProviderConfig.class),
             @EnableDubboConfigBinding(prefix = "dubbo.consumer", type = ConsumerConfig.class),
-            @EnableDubboConfigBinding(prefix = "dubbo.configcenter", type = ConfigCenterBean.class)
+            @EnableDubboConfigBinding(prefix = "dubbo.configcenter", type = ConfigCenterBean.class),
+            @EnableDubboConfigBinding(prefix = "dubbo.metadatareport", type = MetadataReportConfig.class)
     })
     public static class Single {
 


[incubator-dubbo] 04/06: Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

victory pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit efacb58b71401002511c93fc78e0d7ac6d6511f2
Merge: d8db928 ebb7dd7
Author: cvictory <sh...@gmail.com>
AuthorDate: Thu Nov 8 18:31:26 2018 +0800

    Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata

 .../dubbo/governance/AbstractDynamicConfiguration.java  |  5 ++---
 .../support/apollo/ApolloDynamicConfiguration.java      |  2 +-
 .../dubbo/registry/integration/RegistryDirectory.java   | 17 ++++++++++++++---
 .../dubbo/registry/integration/parser/ConfigParser.java |  2 ++
 4 files changed, 19 insertions(+), 7 deletions(-)


[incubator-dubbo] 06/06: Merge branch 'dev-metadata' of github.com:apache/incubator-dubbo into dev-metadata

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

victory pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit 21b4334dc9fd61907d2cb26f08c5eb26e05195e4
Merge: 29ef73f bdfc500
Author: cvictory <sh...@gmail.com>
AuthorDate: Wed Nov 14 18:42:00 2018 +0800

    Merge branch 'dev-metadata' of github.com:apache/incubator-dubbo into dev-metadata

 .../cluster/configurator/AbstractConfigurator.java |   7 +-
 .../dubbo/rpc/cluster/router/tag/TagRouter.java    |   8 +-
 .../org/apache/dubbo/common/utils/UrlUtils.java    |   5 +-
 .../apache/dubbo/config/ConfigCenterConfig.java    |   6 +-
 .../org/apache/dubbo/config/ReferenceConfig.java   |   2 +
 .../org/apache/dubbo/config/ServiceConfig.java     |   2 +
 .../dubbo/config/spring/ConfigCenterBean.java      |  29 +++-
 .../apache/dubbo/config/spring/ReferenceBean.java  |   2 -
 .../apache/dubbo/config/spring/ServiceBean.java    |   2 -
 .../META-INF/spring/dubbo-demo-consumer.xml        |   3 +-
 .../registry/integration/RegistryProtocol.java     | 149 +++++++++++++--------
 .../registry/integration/parser/ConfigParser.java  |  11 +-
 .../parser/model/ConfiguratorConfig.java           |   9 ++
 .../registry/support/ProviderConsumerRegTable.java |  34 +++--
 .../registry/support/ProviderInvokerWrapper.java   |   9 ++
 15 files changed, 194 insertions(+), 84 deletions(-)