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
The following commit(s) were added to refs/heads/dev-metadata by this push: new e430443 modify the variable name and support springbean configuration new 1a8e8b1 Merge branch 'dev-metadata' of github.com:apache/incubator-dubbo into dev-metadata e430443 is described below commit e430443afd3944cae362bef6145a6049a2ef84f3 Author: cvictory <shenglic...@gmail.com> AuthorDate: Thu Nov 15 18:59:48 2018 +0800 modify the variable name and support springbean configuration --- .../java/org/apache/dubbo/common/Constants.java | 8 +-- .../dubbo/config/RegistryDataConfigTest.java | 52 ++++++++++---------- .../dubbo/config/AbstractInterfaceConfig.java | 8 +++ .../apache/dubbo/config/RegistryDataConfig.java | 57 +++++++++++----------- .../apache/dubbo/config/spring/ReferenceBean.java | 12 +++++ .../apache/dubbo/config/spring/ServiceBean.java | 12 ++++- .../registry/integration/RegistryProtocol.java | 8 +-- 7 files changed, 93 insertions(+), 64 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 284c06c..a6c53be 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 @@ -469,23 +469,23 @@ public class Constants { * simple the registry for provider. * @since 2.7.0 */ - public static final String SIMPLE_PROVIDER_URL_KEY = "simpleProviderUrl"; + public static final String SIMPLE_PROVIDER_CONFIG_KEY = "simpleProviderConfig"; /** * simple the registry for consumer. * @since 2.7.0 */ - public static final String SIMPLE_CONSUMER_URL_KEY = "simpleConsumerUrl"; + public static final String SIMPLE_CONSUMER_CONFIG_KEY = "simpleConsumerConfig"; /** * After simplify the registry, should add some paramter individually for provider. * @since 2.7.0 */ - public static final String EXTRA_PROVIDER_URL_PARAM_KEYS_KEY = "extraProviderUrlParamKeys"; + public static final String EXTRA_PROVIDER_CONFIG_KEYS_KEY = "extraProviderKeys"; /** * After simplify the registry, should add some paramter individually for consumer. * * @since 2.7.0 */ - public static final String EXTRA_CONSUMER_URL_PARAM_KEYS_KEY = "extraConsumerUrlParamKeys"; + public static final String EXTRA_CONSUMER_CONFIG_KEYS_KEY = "extraConsumerKeys"; /** * To decide whether to exclude unavailable invoker from the cluster 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 index bca6f72..881a7ed 100644 --- a/dubbo-compatible/src/test/java/org/apache/dubbo/config/RegistryDataConfigTest.java +++ b/dubbo-compatible/src/test/java/org/apache/dubbo/config/RegistryDataConfigTest.java @@ -13,8 +13,8 @@ public class RegistryDataConfigTest { @Test public void testProviderNoValue(){ RegistryDataConfig registryDataConfig = new RegistryDataConfig(); - registryDataConfig.setSimpleProviderUrl(false); - registryDataConfig.setExtraProviderUrlParamKeys("xxx,sss"); + registryDataConfig.setSimpleProviderConfig(false); + registryDataConfig.setExtraProviderKeys("xxx,sss"); Map<String,String> result = registryDataConfig.transferToMap(); Assert.assertTrue(result.isEmpty()); } @@ -22,29 +22,29 @@ public class RegistryDataConfigTest { @Test public void testProviderNoParamKey(){ RegistryDataConfig registryDataConfig = new RegistryDataConfig(); - registryDataConfig.setSimpleProviderUrl(true); + registryDataConfig.setSimpleProviderConfig(true); Map<String,String> result = registryDataConfig.transferToMap(); Assert.assertFalse(result.isEmpty()); - Assert.assertEquals(result.get("simpleProviderUrl"), "true"); - Assert.assertNull(result.get("extraProviderUrlParamKeys")); + Assert.assertEquals(result.get("simpleProviderConfig"), "true"); + Assert.assertNull(result.get("extraProviderKeys")); } @Test public void testProviderHasParamKey(){ RegistryDataConfig registryDataConfig = new RegistryDataConfig(); - registryDataConfig.setSimpleProviderUrl(true); - registryDataConfig.setExtraProviderUrlParamKeys("xxx,sss"); + registryDataConfig.setSimpleProviderConfig(true); + registryDataConfig.setExtraProviderKeys("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"); + Assert.assertEquals(result.get("simpleProviderConfig"), "true"); + Assert.assertEquals(result.get("extraProviderKeys"), "xxx,sss"); } @Test public void testConsumerNoValue(){ RegistryDataConfig registryDataConfig = new RegistryDataConfig(); - registryDataConfig.setSimpleConsumerUrl(false); - registryDataConfig.setExtraConsumerUrlParamKeys("xxx,sss"); + registryDataConfig.setSimpleConsumerConfig(false); + registryDataConfig.setExtraConsumerKeys("xxx,sss"); Map<String,String> result = registryDataConfig.transferToMap(); Assert.assertTrue(result.isEmpty()); } @@ -52,36 +52,36 @@ public class RegistryDataConfigTest { @Test public void testConsumerNoParamKey(){ RegistryDataConfig registryDataConfig = new RegistryDataConfig(); - registryDataConfig.setSimpleConsumerUrl(true); + registryDataConfig.setSimpleConsumerConfig(true); Map<String,String> result = registryDataConfig.transferToMap(); Assert.assertFalse(result.isEmpty()); - Assert.assertEquals(result.get("simpleConsumerUrl"), "true"); - Assert.assertNull(result.get("extraConsumerUrlParamKeys")); + Assert.assertEquals(result.get("simpleConsumerConfig"), "true"); + Assert.assertNull(result.get("extraConsumerKeys")); } @Test public void testConsumerHasParamKey(){ RegistryDataConfig registryDataConfig = new RegistryDataConfig(); - registryDataConfig.setSimpleConsumerUrl(true); - registryDataConfig.setExtraConsumerUrlParamKeys("xxx,sss"); + registryDataConfig.setSimpleConsumerConfig(true); + registryDataConfig.setExtraConsumerKeys("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"); + Assert.assertEquals(result.get("simpleConsumerConfig"), "true"); + Assert.assertEquals(result.get("extraConsumerKeys"), "xxx,sss"); } @Test public void testMixHasParamKey(){ RegistryDataConfig registryDataConfig = new RegistryDataConfig(); - registryDataConfig.setSimpleConsumerUrl(true); - registryDataConfig.setExtraConsumerUrlParamKeys("xxx,sss"); - registryDataConfig.setSimpleProviderUrl(true); - registryDataConfig.setExtraProviderUrlParamKeys("yyy,xxx"); + registryDataConfig.setSimpleConsumerConfig(true); + registryDataConfig.setExtraConsumerKeys("xxx,sss"); + registryDataConfig.setSimpleProviderConfig(true); + registryDataConfig.setExtraProviderKeys("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"); + Assert.assertEquals(result.get("simpleProviderConfig"), "true"); + Assert.assertEquals(result.get("extraProviderKeys"), "yyy,xxx"); + Assert.assertEquals(result.get("simpleConsumerConfig"), "true"); + Assert.assertEquals(result.get("extraConsumerKeys"), "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 c726fd5..b572f5e 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 @@ -561,6 +561,14 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig { this.owner = owner; } + public RegistryDataConfig getRegistryDataConfig() { + return registryDataConfig; + } + + public void setRegistryDataConfig(RegistryDataConfig registryDataConfig) { + this.registryDataConfig = registryDataConfig; + } + public Integer getCallbacks() { return callbacks; } 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 21d57ec..be5f72b 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 @@ -27,60 +27,59 @@ import java.util.Map; */ public class RegistryDataConfig extends AbstractConfig { - private boolean simpleProviderUrl; - private String extraProviderUrlParamKeys; + private boolean simpleProviderConfig; + private String extraProviderKeys; - private boolean simpleConsumerUrl; - private String extraConsumerUrlParamKeys; + private boolean simpleConsumerConfig; + private String extraConsumerKeys; 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()); - if (StringUtils.isNotEmpty(extraProviderUrlParamKeys)) { - map.put(Constants.EXTRA_PROVIDER_URL_PARAM_KEYS_KEY, extraProviderUrlParamKeys.trim()); + if (simpleProviderConfig) { + map.put(Constants.SIMPLE_PROVIDER_CONFIG_KEY, Boolean.TRUE.toString()); + if (StringUtils.isNotEmpty(extraProviderKeys)) { + map.put(Constants.EXTRA_PROVIDER_CONFIG_KEYS_KEY, extraProviderKeys.trim()); } } - if (simpleConsumerUrl) { - map.put(Constants.SIMPLE_CONSUMER_URL_KEY, Boolean.TRUE.toString()); - if (StringUtils.isNotEmpty(extraConsumerUrlParamKeys)) { - map.put(Constants.EXTRA_CONSUMER_URL_PARAM_KEYS_KEY, extraConsumerUrlParamKeys.trim()); + if (simpleConsumerConfig) { + map.put(Constants.SIMPLE_CONSUMER_CONFIG_KEY, Boolean.TRUE.toString()); + if (StringUtils.isNotEmpty(extraConsumerKeys)) { + map.put(Constants.EXTRA_CONSUMER_CONFIG_KEYS_KEY, extraConsumerKeys.trim()); } } return map; } - - public boolean isSimpleProviderUrl() { - return simpleProviderUrl; + public boolean isSimpleProviderConfig() { + return simpleProviderConfig; } - public void setSimpleProviderUrl(boolean simpleProviderUrl) { - this.simpleProviderUrl = simpleProviderUrl; + public void setSimpleProviderConfig(boolean simpleProviderConfig) { + this.simpleProviderConfig = simpleProviderConfig; } - public String getExtraProviderUrlParamKeys() { - return extraProviderUrlParamKeys; + public String getExtraProviderKeys() { + return extraProviderKeys; } - public void setExtraProviderUrlParamKeys(String extraProviderUrlParamKeys) { - this.extraProviderUrlParamKeys = extraProviderUrlParamKeys; + public void setExtraProviderKeys(String extraProviderKeys) { + this.extraProviderKeys = extraProviderKeys; } - public boolean isSimpleConsumerUrl() { - return simpleConsumerUrl; + public boolean isSimpleConsumerConfig() { + return simpleConsumerConfig; } - public void setSimpleConsumerUrl(boolean simpleConsumerUrl) { - this.simpleConsumerUrl = simpleConsumerUrl; + public void setSimpleConsumerConfig(boolean simpleConsumerConfig) { + this.simpleConsumerConfig = simpleConsumerConfig; } - public String getExtraConsumerUrlParamKeys() { - return extraConsumerUrlParamKeys; + public String getExtraConsumerKeys() { + return extraConsumerKeys; } - public void setExtraConsumerUrlParamKeys(String extraConsumerUrlParamKeys) { - this.extraConsumerUrlParamKeys = extraConsumerUrlParamKeys; + public void setExtraConsumerKeys(String extraConsumerKeys) { + this.extraConsumerKeys = extraConsumerKeys; } } diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBean.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBean.java index 9283c3b..b6ac23b 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBean.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ReferenceBean.java @@ -23,6 +23,7 @@ import org.apache.dubbo.config.ModuleConfig; import org.apache.dubbo.config.MonitorConfig; import org.apache.dubbo.config.ReferenceConfig; import org.apache.dubbo.config.RegistryConfig; +import org.apache.dubbo.config.RegistryDataConfig; import org.apache.dubbo.config.annotation.Reference; import org.apache.dubbo.config.spring.extension.SpringExtensionFactory; import org.apache.dubbo.config.support.Parameter; @@ -162,6 +163,17 @@ public class ReferenceBean<T> extends ReferenceConfig<T> implements FactoryBean, throw new IllegalStateException("Multiple MetadataReport configs: " + metadataReportConfigMap); } } + + + if (getRegistryDataConfig() == null) { + Map<String, RegistryDataConfig> registryDataConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, RegistryDataConfig.class, false, false); + if (registryDataConfigMap != null && registryDataConfigMap.size() == 1) { + super.setRegistryDataConfig(registryDataConfigMap.values().iterator().next()); + } else if (registryDataConfigMap != null && registryDataConfigMap.size() > 1) { + throw new IllegalStateException("Multiple RegistryData configs: " + registryDataConfigMap); + } + } + if (getMonitor() == null && (getConsumer() == null || getConsumer().getMonitor() == null) && (getApplication() == null || getApplication().getMonitor() == null)) { diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ServiceBean.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ServiceBean.java index a6cb6e2..74d06df 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ServiceBean.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ServiceBean.java @@ -23,6 +23,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.ServiceConfig; import org.apache.dubbo.config.annotation.Service; import org.apache.dubbo.config.spring.extension.SpringExtensionFactory; @@ -190,12 +191,21 @@ public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean if (getMetadataReportConfig() == null) { Map<String, MetadataReportConfig> metadataReportConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, MetadataReportConfig.class, false, false); if (metadataReportConfigMap != null && metadataReportConfigMap.size() == 1) { - // 第一个元素 super.setMetadataReportConfig(metadataReportConfigMap.values().iterator().next()); } else if (metadataReportConfigMap != null && metadataReportConfigMap.size() > 1) { throw new IllegalStateException("Multiple MetadataReport configs: " + metadataReportConfigMap); } } + + if (getRegistryDataConfig() == null) { + Map<String, RegistryDataConfig> registryDataConfigMap = applicationContext == null ? null : BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, RegistryDataConfig.class, false, false); + if (registryDataConfigMap != null && registryDataConfigMap.size() == 1) { + super.setRegistryDataConfig(registryDataConfigMap.values().iterator().next()); + } else if (registryDataConfigMap != null && registryDataConfigMap.size() > 1) { + throw new IllegalStateException("Multiple RegistryData configs: " + registryDataConfigMap); + } + } + if (getMonitor() == null && (getProvider() == null || getProvider().getMonitor() == null) && (getApplication() == null || getApplication().getMonitor() == null)) { 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 91d3ffd..acf6b17 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 @@ -283,12 +283,12 @@ public class RegistryProtocol implements Protocol { */ private URL getRegistedProviderUrl(final URL providerUrl, final URL registryUrl) { //The address you see at the registry - if (!registryUrl.getParameter(Constants.SIMPLE_PROVIDER_URL_KEY, false)) { + if (!registryUrl.getParameter(Constants.SIMPLE_PROVIDER_CONFIG_KEY, false)) { final URL registedProviderUrl = providerUrl.removeParameters(getFilteredKeys(providerUrl)) .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(Constants.DEFAULT_REGISTER_PROVIDER_KEYS, 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_CONFIG_KEYS_KEY, new String[0])), providerUrl.getParameter(METHODS_KEY, (String[]) null)); } } @@ -374,11 +374,11 @@ public class RegistryProtocol implements Protocol { } private URL getRegistedConsumerUrl(final URL consumerUrl, URL registryUrl) { - if (!registryUrl.getParameter(Constants.SIMPLE_CONSUMER_URL_KEY, false)) { + if (!registryUrl.getParameter(Constants.SIMPLE_CONSUMER_CONFIG_KEY, false)) { return consumerUrl.addParameters(Constants.CATEGORY_KEY, Constants.CONSUMERS_CATEGORY, Constants.CHECK_KEY, String.valueOf(false)); } else { - return URL.valueOf(consumerUrl, getParamsToRegistry(Constants.DEFAULT_REGISTER_CONSUMER_KEYS, registryUrl.getParameter(Constants.EXTRA_CONSUMER_URL_PARAM_KEYS_KEY, new String[0])), null) + return URL.valueOf(consumerUrl, getParamsToRegistry(Constants.DEFAULT_REGISTER_CONSUMER_KEYS, registryUrl.getParameter(Constants.EXTRA_CONSUMER_CONFIG_KEYS_KEY, new String[0])), null) .addParameters(Constants.CATEGORY_KEY, Constants.CONSUMERS_CATEGORY, Constants.CHECK_KEY, String.valueOf(false)); } }