This is an automated email from the ASF dual-hosted git repository.
iluo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new e172b29 Replace hard coded dubbo-config-api values and small code
optimization (#3108)
e172b29 is described below
commit e172b29ffc80b0c4f2cffcc232555b1ab49c689f
Author: Imteyaz Ahmed Khan <[email protected]>
AuthorDate: Wed Jan 2 18:10:03 2019 +0530
Replace hard coded dubbo-config-api values and small code optimization
(#3108)
* Refactoring to replace hard coded value with constant and some code
optiomization
* Fixed UT failure
* Added review comment by Ian and code4wt
---
.../java/org/apache/dubbo/common/Constants.java | 44 +++++++++++++
.../apache/dubbo/config/AbstractServiceConfig.java | 6 +-
.../org/apache/dubbo/config/ApplicationConfig.java | 25 +++++---
.../apache/dubbo/config/ConfigCenterConfig.java | 2 +-
.../java/org/apache/dubbo/config/MethodConfig.java | 2 +-
.../java/org/apache/dubbo/config/ModuleConfig.java | 7 ++-
.../org/apache/dubbo/config/ProtocolConfig.java | 33 +++++-----
.../org/apache/dubbo/config/ProviderConfig.java | 8 +--
.../org/apache/dubbo/config/ReferenceConfig.java | 61 +++++++++++-------
.../org/apache/dubbo/config/RegistryConfig.java | 21 ++-----
.../org/apache/dubbo/config/ServiceConfig.java | 73 ++++++++++++----------
11 files changed, 175 insertions(+), 107 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 71cc04d..f799358 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
@@ -231,6 +231,8 @@ public class Constants {
public static final String DOBBO_PROTOCOL = DUBBO;
+ public static final String ZOOKEEPER_PROTOCOL = "zookeeper";
+
public static final String PROXY_KEY = "proxy";
public static final String WEIGHT_KEY = "weight";
@@ -324,6 +326,8 @@ public class Constants {
public static final String EXCHANGER_KEY = "exchanger";
+ public static final String DISPACTHER_KEY = "dispacther";
+
public static final String TRANSPORTER_KEY = "transporter";
public static final String SERVER_KEY = "server";
@@ -769,6 +773,46 @@ public class Constants {
public static final String[] DEFAULT_REGISTER_CONSUMER_KEYS =
{APPLICATION_KEY, VERSION_KEY, GROUP_KEY, DUBBO_VERSION_KEY,
SPECIFICATION_VERSION_KEY};
public static final String TELNET = "telnet";
+
+ /**
+ * Application name;
+ */
+ public static final String NAME = "name";
+
+ /**
+ * Application owner name;
+ */
+ public static final String OWNER = "owner";
+
+ /**
+ * Running application organization name.
+ */
+ public static final String ORGANIZATION = "organization";
+
+ /**
+ * Application architecture name.
+ */
+ public static final String ARCHITECTURE = "architecture";
+
+ /**
+ * Environment name
+ */
+ public static final String ENVIRONMENT = "environment";
+
+ /**
+ * Test environment key.
+ */
+ public static final String TEST_ENVIRONMENT = "test";
+
+ /**
+ * Development environment key.
+ */
+ public static final String DEVELOPMENT_ENVIRONMENT = "develop";
+
+ /**
+ * Production environment key.
+ */
+ public static final String PRODUCTION_ENVIRONMENT = "product";
/*
* private Constants(){ }
*/
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
index 2f3311b..191fcf8 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
@@ -79,7 +79,7 @@ public abstract class AbstractServiceConfig extends
AbstractInterfaceConfig {
}
public void setVersion(String version) {
- checkKey("version", version);
+ checkKey(Constants.VERSION_KEY, version);
this.version = version;
}
@@ -88,7 +88,7 @@ public abstract class AbstractServiceConfig extends
AbstractInterfaceConfig {
}
public void setGroup(String group) {
- checkKey("group", group);
+ checkKey(Constants.GROUP_KEY, group);
this.group = group;
}
@@ -138,7 +138,7 @@ public abstract class AbstractServiceConfig extends
AbstractInterfaceConfig {
}
public void setToken(String token) {
- checkName("token", token);
+ checkName(Constants.TOKEN_KEY, token);
this.token = token;
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
index a5c29db..6b1f531 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
@@ -102,9 +102,9 @@ public class ApplicationConfig extends AbstractConfig {
}
public void setName(String name) {
- checkName("name", name);
+ checkName(Constants.NAME, name);
this.name = name;
- if (id == null || id.length() == 0) {
+ if (StringUtils.isEmpty(id)) {
id = name;
}
}
@@ -123,7 +123,7 @@ public class ApplicationConfig extends AbstractConfig {
}
public void setOwner(String owner) {
- checkMultiName("owner", owner);
+ checkMultiName(Constants.OWNER, owner);
this.owner = owner;
}
@@ -132,7 +132,7 @@ public class ApplicationConfig extends AbstractConfig {
}
public void setOrganization(String organization) {
- checkName("organization", organization);
+ checkName(Constants.ORGANIZATION, organization);
this.organization = organization;
}
@@ -141,7 +141,7 @@ public class ApplicationConfig extends AbstractConfig {
}
public void setArchitecture(String architecture) {
- checkName("architecture", architecture);
+ checkName(Constants.ARCHITECTURE, architecture);
this.architecture = architecture;
}
@@ -150,10 +150,18 @@ public class ApplicationConfig extends AbstractConfig {
}
public void setEnvironment(String environment) {
- checkName("environment", environment);
+ checkName(Constants.ENVIRONMENT, environment);
if (environment != null) {
- if (!("develop".equals(environment) || "test".equals(environment)
|| "product".equals(environment))) {
- throw new IllegalStateException("Unsupported environment: " +
environment + ", only support develop/test/product, default is product.");
+ if (!(Constants.DEVELOPMENT_ENVIRONMENT.equals(environment)
+ || Constants.TEST_ENVIRONMENT.equals(environment)
+ || Constants.PRODUCTION_ENVIRONMENT.equals(environment))) {
+
+ throw new IllegalStateException(String.format("Unsupported
environment: %s, only support %s/%s/%s, default is %s.",
+ environment,
+ Constants.DEVELOPMENT_ENVIRONMENT,
+ Constants.TEST_ENVIRONMENT,
+ Constants.PRODUCTION_ENVIRONMENT,
+ Constants.PRODUCTION_ENVIRONMENT));
}
}
this.environment = environment;
@@ -284,4 +292,5 @@ public class ApplicationConfig extends AbstractConfig {
public boolean isValid() {
return !StringUtils.isEmpty(name);
}
+
}
\ No newline at end of file
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ConfigCenterConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ConfigCenterConfig.java
index fe62fda..84e7fdd 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ConfigCenterConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ConfigCenterConfig.java
@@ -115,7 +115,7 @@ public class ConfigCenterConfig extends AbstractConfig {
map.put(Constants.PATH_KEY, ConfigCenterConfig.class.getSimpleName());
// use 'zookeeper' as the default configcenter.
if (StringUtils.isEmpty(map.get(Constants.PROTOCOL_KEY))) {
- map.put(Constants.PROTOCOL_KEY, "zookeeper");
+ map.put(Constants.PROTOCOL_KEY, Constants.ZOOKEEPER_PROTOCOL);
}
return UrlUtils.parseURL(address, map);
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/MethodConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/MethodConfig.java
index 48045d4..50ac47d 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/MethodConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/MethodConfig.java
@@ -89,7 +89,7 @@ public class MethodConfig extends AbstractMethodConfig {
public void setName(String name) {
checkMethodName("name", name);
this.name = name;
- if (id == null || id.length() == 0) {
+ if (StringUtils.isEmpty(id)) {
id = name;
}
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ModuleConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ModuleConfig.java
index 0f15018..f07638f 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ModuleConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ModuleConfig.java
@@ -16,6 +16,7 @@
*/
package org.apache.dubbo.config;
+import org.apache.dubbo.common.Constants;
import org.apache.dubbo.config.support.Parameter;
import java.util.ArrayList;
@@ -64,7 +65,7 @@ public class ModuleConfig extends AbstractConfig {
}
public void setName(String name) {
- checkName("name", name);
+ checkName(Constants.NAME, name);
this.name = name;
if (id == null || id.length() == 0) {
id = name;
@@ -85,7 +86,7 @@ public class ModuleConfig extends AbstractConfig {
}
public void setOwner(String owner) {
- checkName("owner", owner);
+ checkName(Constants.OWNER, owner);
this.owner = owner;
}
@@ -94,7 +95,7 @@ public class ModuleConfig extends AbstractConfig {
}
public void setOrganization(String organization) {
- checkName("organization", organization);
+ checkName(Constants.ORGANIZATION, organization);
this.organization = organization;
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
index 7313f59..1f6bc3c 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
@@ -16,6 +16,7 @@
*/
package org.apache.dubbo.config;
+import org.apache.dubbo.common.Constants;
import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.serialize.Serialization;
import org.apache.dubbo.common.status.StatusChecker;
@@ -154,7 +155,7 @@ public class ProtocolConfig extends AbstractConfig {
return name;
}
- public void setName(String name) {
+ public final void setName(String name) {
checkName("name", name);
this.name = name;
this.updateIdIfAbsent(name);
@@ -166,7 +167,7 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setHost(String host) {
- checkName("host", host);
+ checkName(Constants.HOST_KEY, host);
this.host = host;
}
@@ -175,7 +176,7 @@ public class ProtocolConfig extends AbstractConfig {
return port;
}
- public void setPort(Integer port) {
+ public final void setPort(Integer port) {
this.port = port;
}
@@ -205,7 +206,7 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setThreadpool(String threadpool) {
- checkExtension(ThreadPool.class, "threadpool", threadpool);
+ checkExtension(ThreadPool.class, Constants.THREADPOOL_KEY, threadpool);
this.threadpool = threadpool;
}
@@ -254,8 +255,8 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setCodec(String codec) {
- if ("dubbo".equals(name)) {
- checkMultiExtension(Codec.class, "codec", codec);
+ if (Constants.DOBBO_PROTOCOL.equals(name)) {
+ checkMultiExtension(Codec.class, Constants.CODEC_KEY, codec);
}
this.codec = codec;
}
@@ -265,8 +266,8 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setSerialization(String serialization) {
- if ("dubbo".equals(name)) {
- checkMultiExtension(Serialization.class, "serialization",
serialization);
+ if (Constants.DOBBO_PROTOCOL.equals(name)) {
+ checkMultiExtension(Serialization.class,
Constants.SERIALIZATION_KEY, serialization);
}
this.serialization = serialization;
}
@@ -308,8 +309,8 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setServer(String server) {
- if ("dubbo".equals(name)) {
- checkMultiExtension(Transporter.class, "server", server);
+ if (Constants.DOBBO_PROTOCOL.equals(name)) {
+ checkMultiExtension(Transporter.class, Constants.SERVER_KEY,
server);
}
this.server = server;
}
@@ -319,8 +320,8 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setClient(String client) {
- if ("dubbo".equals(name)) {
- checkMultiExtension(Transporter.class, "client", client);
+ if (Constants.DOBBO_PROTOCOL.equals(name)) {
+ checkMultiExtension(Transporter.class, Constants.CLIENT_KEY,
client);
}
this.client = client;
}
@@ -338,7 +339,7 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setTelnet(String telnet) {
- checkMultiExtension(TelnetHandler.class, "telnet", telnet);
+ checkMultiExtension(TelnetHandler.class, Constants.TELNET, telnet);
this.telnet = telnet;
}
@@ -373,7 +374,7 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setTransporter(String transporter) {
- checkExtension(Transporter.class, "transporter", transporter);
+ checkExtension(Transporter.class, Constants.TRANSPORTER_KEY,
transporter);
this.transporter = transporter;
}
@@ -382,7 +383,7 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setExchanger(String exchanger) {
- checkExtension(Exchanger.class, "exchanger", exchanger);
+ checkExtension(Exchanger.class, Constants.EXCHANGER_KEY, exchanger);
this.exchanger = exchanger;
}
@@ -412,7 +413,7 @@ public class ProtocolConfig extends AbstractConfig {
}
public void setDispatcher(String dispatcher) {
- checkExtension(Dispatcher.class, "dispacther", dispatcher);
+ checkExtension(Dispatcher.class, Constants.DISPACTHER_KEY, dispatcher);
this.dispatcher = dispatcher;
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProviderConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProviderConfig.java
index 7d69395..aeb4efa 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProviderConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProviderConfig.java
@@ -169,7 +169,7 @@ public class ProviderConfig extends AbstractServiceConfig {
}
public void setThreadpool(String threadpool) {
- checkExtension(ThreadPool.class, "threadpool", threadpool);
+ checkExtension(ThreadPool.class, Constants.THREADPOOL_KEY, threadpool);
this.threadpool = threadpool;
}
@@ -258,7 +258,7 @@ public class ProviderConfig extends AbstractServiceConfig {
}
public void setTelnet(String telnet) {
- checkMultiExtension(TelnetHandler.class, "telnet", telnet);
+ checkMultiExtension(TelnetHandler.class, Constants.TELNET, telnet);
this.telnet = telnet;
}
@@ -320,7 +320,7 @@ public class ProviderConfig extends AbstractServiceConfig {
}
public void setTransporter(String transporter) {
- checkExtension(Transporter.class, "transporter", transporter);
+ checkExtension(Transporter.class, Constants.TRANSPORTER_KEY,
transporter);
this.transporter = transporter;
}
@@ -329,7 +329,7 @@ public class ProviderConfig extends AbstractServiceConfig {
}
public void setExchanger(String exchanger) {
- checkExtension(Exchanger.class, "exchanger", exchanger);
+ checkExtension(Exchanger.class, Constants.EXCHANGER_KEY, exchanger);
this.exchanger = exchanger;
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index 3c8eb63..198f7c3 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -147,34 +147,13 @@ public class ReferenceConfig<T> extends
AbstractReferenceConfig {
}
resolveFile();
if (consumer != null) {
- if (application == null) {
- application = consumer.getApplication();
- }
- if (module == null) {
- module = consumer.getModule();
- }
- if (registries == null) {
- registries = consumer.getRegistries();
- }
- if (monitor == null) {
- monitor = consumer.getMonitor();
- }
+ inheritIfAbsentFromConsumer();
}
if (module != null) {
- if (registries == null) {
- registries = module.getRegistries();
- }
- if (monitor == null) {
- monitor = module.getMonitor();
- }
+ inheritIfAbsentFromModule();
}
if (application != null) {
- if (registries == null) {
- registries = application.getRegistries();
- }
- if (monitor == null) {
- monitor = application.getMonitor();
- }
+ inheritIfAbsentFromApplication();
}
checkApplication();
checkMetadataReport();
@@ -380,6 +359,40 @@ public class ReferenceConfig<T> extends
AbstractReferenceConfig {
consumer.refresh();
}
+ private void inheritIfAbsentFromConsumer() {
+ if (application == null) {
+ application = consumer.getApplication();
+ }
+ if (module == null) {
+ module = consumer.getModule();
+ }
+ if (registries == null) {
+ registries = consumer.getRegistries();
+ }
+ if (monitor == null) {
+ monitor = consumer.getMonitor();
+ }
+ }
+
+ private void inheritIfAbsentFromModule() {
+ if (registries == null) {
+ registries = module.getRegistries();
+ }
+ if (monitor == null) {
+ monitor = module.getMonitor();
+ }
+ }
+
+ private void inheritIfAbsentFromApplication() {
+ if (registries == null) {
+ registries = application.getRegistries();
+ }
+ if (monitor == null) {
+ monitor = application.getMonitor();
+ }
+ }
+
+
public Class<?> getInterfaceClass() {
if (interfaceClass != null) {
return interfaceClass;
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryConfig.java
index 7f15e4c..512fbe8 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryConfig.java
@@ -120,7 +120,7 @@ public class RegistryConfig extends AbstractConfig {
}
public void setProtocol(String protocol) {
- checkName("protocol", protocol);
+ checkName(Constants.PROTOCOL_KEY, protocol);
this.protocol = protocol;
this.updateIdIfAbsent(protocol);
}
@@ -232,7 +232,7 @@ public class RegistryConfig extends AbstractConfig {
}
public void setTransporter(String transporter) {
- checkName("transporter", transporter);
+ checkName(Constants.TRANSPORTER_KEY, transporter);
/*if(transporter != null && transporter.length() > 0 && !
ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(transporter)){
throw new IllegalStateException("No such transporter type : " +
transporter);
}*/
@@ -244,7 +244,7 @@ public class RegistryConfig extends AbstractConfig {
}
public void setServer(String server) {
- checkName("server", server);
+ checkName(Constants.SERVER_KEY, server);
/*if(server != null && server.length() > 0 && !
ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(server)){
throw new IllegalStateException("No such server type : " + server);
}*/
@@ -349,18 +349,8 @@ public class RegistryConfig extends AbstractConfig {
if (!isValid()) {
return false;
}
- boolean isZookeeper = StringUtils.isNotEmpty(this.getProtocol()) &&
this.getProtocol().equals("zookeeper");
- if (!isZookeeper) {
- String address = this.getAddress();
- int index = address.indexOf("://");
- if (StringUtils.isNotEmpty(address) && index >= 0) {
- address = address.substring(0, index);
- }
- if (address.equals("zookeeper")) {
- isZookeeper = true;
- }
- }
- return isZookeeper;
+ return Constants.ZOOKEEPER_PROTOCOL.equals(getProtocol())
+ || getAddress().startsWith(Constants.ZOOKEEPER_PROTOCOL);
}
@Override
@@ -369,4 +359,5 @@ public class RegistryConfig extends AbstractConfig {
// empty protocol will default to 'dubbo'
return !StringUtils.isEmpty(address);
}
+
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
index e0f419b..84b8188 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
@@ -163,10 +163,7 @@ public class ServiceConfig<T> extends
AbstractServiceConfig {
private static Integer getRandomPort(String protocol) {
protocol = protocol.toLowerCase();
- if (RANDOM_PORT_MAP.containsKey(protocol)) {
- return RANDOM_PORT_MAP.get(protocol);
- }
- return Integer.MIN_VALUE;
+ return RANDOM_PORT_MAP.getOrDefault(protocol, Integer.MIN_VALUE);
}
private static void putRandomPort(String protocol, Integer port) {
@@ -198,37 +195,13 @@ public class ServiceConfig<T> extends
AbstractServiceConfig {
public void checkAndUpdateSubConfigs() {
checkDefault();
if (provider != null) {
- if (application == null) {
- application = provider.getApplication();
- }
- if (module == null) {
- module = provider.getModule();
- }
- if (registries == null) {
- registries = provider.getRegistries();
- }
- if (monitor == null) {
- monitor = provider.getMonitor();
- }
- if (protocols == null) {
- protocols = provider.getProtocols();
- }
+ inheritIfAbsentFromProvider();
}
if (module != null) {
- if (registries == null) {
- registries = module.getRegistries();
- }
- if (monitor == null) {
- monitor = module.getMonitor();
- }
+ inheritIfAbsentFromModule();
}
if (application != null) {
- if (registries == null) {
- registries = application.getRegistries();
- }
- if (monitor == null) {
- monitor = application.getMonitor();
- }
+ inheritIfAbsentFromApplication();
}
checkApplication();
@@ -372,7 +345,7 @@ public class ServiceConfig<T> extends AbstractServiceConfig
{
private void doExportUrlsFor1Protocol(ProtocolConfig protocolConfig,
List<URL> registryURLs) {
String name = protocolConfig.getName();
if (name == null || name.length() == 0) {
- name = "dubbo";
+ name = Constants.DUBBO;
}
Map<String, String> map = new HashMap<String, String>();
@@ -553,6 +526,42 @@ public class ServiceConfig<T> extends
AbstractServiceConfig {
}
}
+ private void inheritIfAbsentFromProvider() {
+ if (application == null) {
+ application = provider.getApplication();
+ }
+ if (module == null) {
+ module = provider.getModule();
+ }
+ if (registries == null) {
+ registries = provider.getRegistries();
+ }
+ if (monitor == null) {
+ monitor = provider.getMonitor();
+ }
+ if (protocols == null) {
+ protocols = provider.getProtocols();
+ }
+ }
+
+ private void inheritIfAbsentFromModule() {
+ if (registries == null) {
+ registries = module.getRegistries();
+ }
+ if (monitor == null) {
+ monitor = module.getMonitor();
+ }
+ }
+
+ private void inheritIfAbsentFromApplication() {
+ if (registries == null) {
+ registries = application.getRegistries();
+ }
+ if (monitor == null) {
+ monitor = application.getMonitor();
+ }
+ }
+
protected Class getServiceClass(T ref) {
return ref.getClass();
}