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:15 UTC

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

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);
+    }
+}
+