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 <[email protected]> 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); + } +} +
