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/15 11:05:49 UTC
[incubator-dubbo] branch dev-metadata updated: modify the variable
name and support springbean configuration
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 <sh...@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));
}
}