This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 186b09f move global check such as checkApplication to bootstrap.
186b09f is described below
commit 186b09fc321cf1a9ab7bd2f410e2f47dd5da20f9
Author: ken.lj <[email protected]>
AuthorDate: Sun Nov 10 23:04:14 2019 +0800
move global check such as checkApplication to bootstrap.
---
.../dubbo/config/AbstractInterfaceConfig.java | 165 +++++++----------
.../apache/dubbo/config/context/ConfigManager.java | 9 +
.../apache/dubbo/rpc/model/ApplicationModel.java | 6 +-
.../org/apache/dubbo/config/ReferenceConfig.java | 10 +-
.../org/apache/dubbo/config/ServiceConfig.java | 10 +-
.../dubbo/config/bootstrap/DubboBootstrap.java | 114 ++++++++++--
.../ConfigValidationUtils.java} | 204 +++++++++++++++------
.../apache/dubbo/config/AbstractConfigTest.java | 29 +--
.../dubbo/config/AbstractInterfaceConfigTest.java | 33 ++--
9 files changed, 358 insertions(+), 222 deletions(-)
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
index 77262d0..363d058 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
@@ -41,8 +41,6 @@ import static
org.apache.dubbo.common.constants.CommonConstants.INVOKER_LISTENER
import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY;
import static
org.apache.dubbo.common.constants.CommonConstants.REFERENCE_FILTER_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.RELEASE_KEY;
-import static
org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;
-import static
org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_SECONDS_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.TAG_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;
@@ -181,71 +179,6 @@ public abstract class AbstractInterfaceConfig extends
AbstractMethodConfig {
}
}
- @SuppressWarnings("deprecation")
- public void checkApplication() {
- // for backward compatibility
- createApplicationIfAbsent();
-
- if (!application.isValid()) {
- throw new IllegalStateException("No application config found or
it's not a valid config! " +
- "Please add <dubbo:application name=\"...\" /> to your
spring config.");
- }
-
- // backward compatibility
- String wait = ConfigUtils.getProperty(SHUTDOWN_WAIT_KEY);
- if (wait != null && wait.trim().length() > 0) {
- System.setProperty(SHUTDOWN_WAIT_KEY, wait.trim());
- } else {
- wait = ConfigUtils.getProperty(SHUTDOWN_WAIT_SECONDS_KEY);
- if (wait != null && wait.trim().length() > 0) {
- System.setProperty(SHUTDOWN_WAIT_SECONDS_KEY, wait.trim());
- }
- }
- }
-
- public void checkMonitor() {
- createMonitorIfAbsent();
- if (!monitor.isValid()) {
- logger.info("There's no valid monitor config found, if you want to
open monitor statistics for Dubbo, " +
- "please make sure your monitor is configured properly.");
- }
- }
-
- private void createMonitorIfAbsent() {
- if (this.monitor != null) {
- return;
- }
- ConfigManager configManager = ApplicationModel.getConfigManager();
- setMonitor(
- configManager
- .getMonitor()
- .orElseGet(() -> {
- MonitorConfig monitorConfig = new MonitorConfig();
- monitorConfig.refresh();
- return monitorConfig;
- })
- );
- }
-
- public void checkMetadataReport() {
- // TODO get from ConfigManager first, only create if absent.
- if (metadataReportConfig == null) {
- ConfigManager configManager = ApplicationModel.getConfigManager();
- if
(CollectionUtils.isNotEmpty(configManager.getMetadataConfigs())) {
- setMetadataReportConfig(configManager.getMetadataConfigs()
- .toArray(new
MetadataReportConfig[configManager.getMetadataConfigs().size()])[0]);
- }
- }
- if (metadataReportConfig == null) {
- setMetadataReportConfig(new MetadataReportConfig());
- }
- metadataReportConfig.refresh();
- if (!metadataReportConfig.isValid()) {
- logger.warn("There's no valid metadata config found, if you are
using the simplified mode of registry url, " +
- "please make sure you have a metadata address configured
properly.");
- }
- }
-
public static void appendRuntimeParameters(Map<String, String> map) {
map.put(DUBBO_VERSION_KEY, Version.getProtocolVersion());
map.put(RELEASE_KEY, Version.getVersion());
@@ -494,42 +427,35 @@ public abstract class AbstractInterfaceConfig extends
AbstractMethodConfig {
}
public ApplicationConfig getApplication() {
- return application;
+ return ApplicationModel.getConfigManager().getApplicationOrElseThrow();
}
@Deprecated
public void setApplication(ApplicationConfig application) {
this.application = application;
- ConfigManager configManager = ApplicationModel.getConfigManager();
- configManager.getApplication().orElseGet(() -> {
- configManager.setApplication(application);
- return application;
- });
- }
-
- private void createApplicationIfAbsent() {
- if (this.application != null) {
- this.application.refresh();
- return;
+ if (application != null) {
+ ConfigManager configManager = ApplicationModel.getConfigManager();
+ configManager.getApplication().orElseGet(() -> {
+ configManager.setApplication(application);
+ return application;
+ });
}
- ConfigManager configManager = ApplicationModel.getConfigManager();
- setApplication(
- configManager
- .getApplication()
- .orElseGet(() -> {
- ApplicationConfig applicationConfig = new
ApplicationConfig();
- applicationConfig.refresh();
- return applicationConfig;
- })
- );
}
public ModuleConfig getModule() {
- return module;
+ return ApplicationModel.getConfigManager().getModule().orElse(null);
}
+ @Deprecated
public void setModule(ModuleConfig module) {
this.module = module;
+ if (module != null) {
+ ConfigManager configManager = ApplicationModel.getConfigManager();
+ configManager.getModule().orElseGet(() -> {
+ configManager.setModule(module);
+ return module;
+ });
+ }
}
public RegistryConfig getRegistry() {
@@ -574,15 +500,24 @@ public abstract class AbstractInterfaceConfig extends
AbstractMethodConfig {
public MonitorConfig getMonitor() {
- return monitor;
+ return ApplicationModel.getConfigManager().getMonitor().orElse(null);
}
+ @Deprecated
public void setMonitor(String monitor) {
setMonitor(new MonitorConfig(monitor));
}
+ @Deprecated
public void setMonitor(MonitorConfig monitor) {
this.monitor = monitor;
+ if (monitor != null) {
+ ConfigManager configManager = ApplicationModel.getConfigManager();
+ configManager.getMonitor().orElseGet(() -> {
+ configManager.setMonitor(monitor);
+ return monitor;
+ });
+ }
}
public String getOwner() {
@@ -595,17 +530,26 @@ public abstract class AbstractInterfaceConfig extends
AbstractMethodConfig {
@Deprecated
public ConfigCenterConfig getConfigCenter() {
- return configCenter;
+ if (configCenter != null) {
+ return configCenter;
+ }
+ Collection<ConfigCenterConfig> configCenterConfigs =
ApplicationModel.getConfigManager().getConfigCenters();
+ if (CollectionUtils.isNotEmpty(configCenterConfigs)) {
+ return configCenterConfigs.iterator().next();
+ }
+ return null;
}
@Deprecated
public void setConfigCenter(ConfigCenterConfig configCenter) {
this.configCenter = configCenter;
- ConfigManager configManager = ApplicationModel.getConfigManager();
- Collection<ConfigCenterConfig> configs =
configManager.getConfigCenters();
- if (CollectionUtils.isEmpty(configs)
- || configs.stream().noneMatch(existed ->
existed.getAddress().equals(configCenter.getAddress()))) {
- configManager.addConfigCenter(configCenter);
+ if (configCenter != null) {
+ ConfigManager configManager = ApplicationModel.getConfigManager();
+ Collection<ConfigCenterConfig> configs =
configManager.getConfigCenters();
+ if (CollectionUtils.isEmpty(configs)
+ || configs.stream().noneMatch(existed ->
existed.getAddress().equals(configCenter.getAddress()))) {
+ configManager.addConfigCenter(configCenter);
+ }
}
}
@@ -649,20 +593,31 @@ public abstract class AbstractInterfaceConfig extends
AbstractMethodConfig {
@Deprecated
public void setMetadataReportConfig(MetadataReportConfig
metadataReportConfig) {
this.metadataReportConfig = metadataReportConfig;
- ConfigManager configManager = ApplicationModel.getConfigManager();
- Collection<MetadataReportConfig> configs =
configManager.getMetadataConfigs();
- if (CollectionUtils.isEmpty(configs)
- || configs.stream().noneMatch(existed ->
existed.getAddress().equals(metadataReportConfig.getAddress()))) {
- configManager.addMetadataReport(metadataReportConfig);
+ if (metadataReportConfig != null) {
+ ConfigManager configManager = ApplicationModel.getConfigManager();
+ Collection<MetadataReportConfig> configs =
configManager.getMetadataConfigs();
+ if (CollectionUtils.isEmpty(configs)
+ || configs.stream().noneMatch(existed ->
existed.getAddress().equals(metadataReportConfig.getAddress()))) {
+ configManager.addMetadataReport(metadataReportConfig);
+ }
}
}
+ @Deprecated
public MetricsConfig getMetrics() {
- return metrics;
+ return ApplicationModel.getConfigManager().getMetrics().orElse(null);
}
+ @Deprecated
public void setMetrics(MetricsConfig metrics) {
this.metrics = metrics;
+ if (metrics != null) {
+ ConfigManager configManager = ApplicationModel.getConfigManager();
+ configManager.getMetrics().orElseGet(() -> {
+ configManager.setMetrics(metrics);
+ return metrics;
+ });
+ }
}
@Parameter(key = TAG_KEY, useKeyAsProperty = false)
@@ -673,4 +628,8 @@ public abstract class AbstractInterfaceConfig extends
AbstractMethodConfig {
public void setTag(String tag) {
this.tag = tag;
}
+
+ public SslConfig getSslConfig() {
+ return ApplicationModel.getConfigManager().getSsl().orElse(null);
+ }
}
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
b/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
index 24c9d7b..50d01e6 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/config/context/ConfigManager.java
@@ -32,6 +32,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.SslConfig;
import org.apache.dubbo.config.service.ReferenceConfigBase;
import org.apache.dubbo.config.service.ServiceConfigBase;
import org.apache.dubbo.rpc.model.ApplicationModel;
@@ -113,6 +114,14 @@ public class ConfigManager extends LifecycleAdapter
implements FrameworkExt {
return ofNullable(getConfig(getTagName(MetricsConfig.class)));
}
+ public void setSsl(SslConfig sslConfig) {
+ addConfig(sslConfig, true);
+ }
+
+ public Optional<SslConfig> getSsl() {
+ return ofNullable(getConfig(getTagName(SslConfig.class)));
+ }
+
// ConfigCenterConfig correlative methods
public void addConfigCenter(ConfigCenterConfig configCenter) {
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
index 459ffb5..e9a3654 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
@@ -75,13 +75,9 @@ public class ApplicationModel {
return getServiceRepository().lookupReferredService(serviceKey);
}
- /**
- * instances
- **/
-
private static final ExtensionLoader<FrameworkExt> loader =
ExtensionLoader.getExtensionLoader(FrameworkExt.class);
- public static void initApplication() {
+ public static void iniFrameworkExts() {
Set<FrameworkExt> exts =
ExtensionLoader.getExtensionLoader(FrameworkExt.class).getSupportedExtensionInstances();
for (FrameworkExt ext : exts) {
ext.initialize();
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 b3588f2..eaf89f3 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
@@ -31,6 +31,7 @@ import org.apache.dubbo.config.annotation.Reference;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.config.event.ReferenceConfigDestroyedEvent;
import org.apache.dubbo.config.service.ReferenceConfigBase;
+import org.apache.dubbo.config.utils.ConfigValidationUtils;
import org.apache.dubbo.event.Event;
import org.apache.dubbo.event.EventDispatcher;
import org.apache.dubbo.metadata.WritableMetadataService;
@@ -204,7 +205,7 @@ public class ReferenceConfig<T> extends
ReferenceConfigBase<T> {
serviceMetadata.setServiceKey(URL.buildKey(interfaceName, group,
version));
checkStubAndLocal(interfaceClass);
- BootstrapUtils.checkMock(interfaceClass, this);
+ ConfigValidationUtils.checkMock(interfaceClass, this);
Map<String, String> map = new HashMap<String, String>();
map.put(SIDE_KEY, CONSUMER_SIDE);
@@ -312,10 +313,10 @@ public class ReferenceConfig<T> extends
ReferenceConfigBase<T> {
// if protocols not injvm checkRegistry
if (!LOCAL_PROTOCOL.equalsIgnoreCase(getProtocol())) {
checkRegistry();
- List<URL> us = BootstrapUtils.loadRegistries(this, false);
+ List<URL> us = ConfigValidationUtils.loadRegistries(this,
false);
if (CollectionUtils.isNotEmpty(us)) {
for (URL u : us) {
- URL monitorUrl = BootstrapUtils.loadMonitor(this,
u);
+ URL monitorUrl =
ConfigValidationUtils.loadMonitor(this, u);
if (monitorUrl != null) {
map.put(MONITOR_KEY,
URL.encode(monitorUrl.toFullString()));
}
@@ -406,8 +407,7 @@ public class ReferenceConfig<T> extends
ReferenceConfigBase<T> {
checkInterfaceAndMethods(interfaceClass, getMethods());
}
resolveFile();
- checkApplication();
- checkMetadataReport();
+ ConfigValidationUtils.validateReferenceConfig(this);
appendParameters();
}
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 d109be1..b7a8a1b 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
@@ -34,6 +34,7 @@ import
org.apache.dubbo.config.event.ServiceConfigExportedEvent;
import org.apache.dubbo.config.invoker.DelegateProviderMetaDataInvoker;
import org.apache.dubbo.config.service.ServiceConfigBase;
import org.apache.dubbo.config.support.Parameter;
+import org.apache.dubbo.config.utils.ConfigValidationUtils;
import org.apache.dubbo.event.Event;
import org.apache.dubbo.event.EventDispatcher;
import org.apache.dubbo.metadata.WritableMetadataService;
@@ -220,13 +221,11 @@ public class ServiceConfig<T> extends
ServiceConfigBase<T> {
completeCompoundConfigs();
checkDefault();
checkProtocol();
- checkApplication();
// if protocol is not injvm checkRegistry
if (!isOnlyInJvm()) {
checkRegistry();
}
this.refresh();
- checkMetadataReport();
if (StringUtils.isEmpty(interfaceName)) {
throw new IllegalStateException("<dubbo:service interface=\"\" />
interface not allow null!");
@@ -277,7 +276,8 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
}
}
checkStubAndLocal(interfaceClass);
- BootstrapUtils.checkMock(interfaceClass, this);
+ ConfigValidationUtils.checkMock(interfaceClass, this);
+ ConfigValidationUtils.validateServiceConfig(this);
appendParameters();
}
@@ -312,7 +312,7 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
serviceMetadata
);
- List<URL> registryURLs = BootstrapUtils.loadRegistries(this, true);
+ List<URL> registryURLs = ConfigValidationUtils.loadRegistries(this,
true);
for (ProtocolConfig protocolConfig : protocols) {
String pathKey = URL.buildKey(getContextPath(protocolConfig)
@@ -456,7 +456,7 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
continue;
}
url = url.addParameterIfAbsent(DYNAMIC_KEY,
registryURL.getParameter(DYNAMIC_KEY));
- URL monitorUrl = BootstrapUtils.loadMonitor(this,
registryURL);
+ URL monitorUrl =
ConfigValidationUtils.loadMonitor(this, registryURL);
if (monitorUrl != null) {
url = url.addParameterAndEncoded(MONITOR_KEY,
monitorUrl.toFullString());
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
index 8c3a9d6..06e2bba 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
@@ -42,6 +42,7 @@ import org.apache.dubbo.config.ProviderConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
+import org.apache.dubbo.config.SslConfig;
import org.apache.dubbo.config.bootstrap.builders.ApplicationBuilder;
import org.apache.dubbo.config.bootstrap.builders.ConsumerBuilder;
import org.apache.dubbo.config.bootstrap.builders.ProtocolBuilder;
@@ -52,6 +53,7 @@ import
org.apache.dubbo.config.bootstrap.builders.ServiceBuilder;
import org.apache.dubbo.config.context.ConfigManager;
import org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
import org.apache.dubbo.config.service.ServiceConfigBase;
+import org.apache.dubbo.config.utils.ConfigValidationUtils;
import org.apache.dubbo.config.utils.ReferenceConfigCache;
import org.apache.dubbo.event.EventDispatcher;
import org.apache.dubbo.event.EventListener;
@@ -456,6 +458,11 @@ public class DubboBootstrap extends GenericEventListener {
return this;
}
+ public DubboBootstrap ssl(SslConfig sslConfig) {
+ configManager.setSsl(sslConfig);
+ return this;
+ }
+
public DubboBootstrap cache(ReferenceConfigCache cache) {
this.cache = cache;
return this;
@@ -491,15 +498,17 @@ public class DubboBootstrap extends GenericEventListener {
return;
}
- ApplicationModel.initApplication();
+ ApplicationModel.iniFrameworkExts();
startConfigCenter();
+ useRegistryAsConfigCenterIfNecessary();
+
startMetadataReport();
loadRemoteConfigs();
- useRegistryAsConfigCenterIfNecessary();
+ checkGlobalConfigs();
initMetadataService();
@@ -512,6 +521,31 @@ public class DubboBootstrap extends GenericEventListener {
}
}
+ private void checkGlobalConfigs() {
+ // check Application
+ ConfigValidationUtils.validateApplicationConfig(getApplication());
+ // check Config Center
+ Collection<ConfigCenterConfig> configCenters =
configManager.getConfigCenters();
+ if (CollectionUtils.isNotEmpty(configCenters)) {
+ for (ConfigCenterConfig configCenterConfig : configCenters) {
+
ConfigValidationUtils.validateConfigCenterConfig(configCenterConfig);
+ }
+ }
+ // check Metadata
+ Collection<MetadataReportConfig> metadatas =
configManager.getMetadataConfigs();
+ for (MetadataReportConfig metadataReportConfig : metadatas) {
+ ConfigValidationUtils.validateMetadataConfig(metadataReportConfig);
+ }
+ // check Monitor
+ ConfigValidationUtils.validateMonitorConfig(getMonitor());
+ // check Metrics
+ ConfigValidationUtils.validateMetricsConfig(getMetrics());
+ // check Module
+ ConfigValidationUtils.validateModuleConfig(getModule());
+ // check Ssl
+ ConfigValidationUtils.validateSslConfig(getSsl());
+ }
+
private void startConfigCenter() {
Collection<ConfigCenterConfig> configCenters =
configManager.getConfigCenters();
@@ -519,6 +553,7 @@ public class DubboBootstrap extends GenericEventListener {
CompositeDynamicConfiguration compositeDynamicConfiguration = new
CompositeDynamicConfiguration();
for (ConfigCenterConfig configCenter : configCenters) {
configCenter.refresh();
+ ConfigValidationUtils.validateConfigCenterConfig(configCenter);
compositeDynamicConfiguration.addConfiguration(prepareEnvironment(configCenter));
}
environment.setDynamicConfiguration(compositeDynamicConfiguration);
@@ -539,6 +574,7 @@ public class DubboBootstrap extends GenericEventListener {
return;
}
MetadataReportConfig metadataReportConfig =
metadataReportConfigs.iterator().next();
+ ConfigValidationUtils.validateMetadataConfig(metadataReportConfig);
if (!metadataReportConfig.isValid()) {
return;
}
@@ -684,20 +720,6 @@ public class DubboBootstrap extends GenericEventListener {
return !metadataService.getExportedURLs().isEmpty();
}
- private ApplicationConfig getApplication() {
- ApplicationConfig application = configManager
- .getApplication()
- .orElseGet(() -> {
- ApplicationConfig applicationConfig = new
ApplicationConfig();
- applicationConfig.refresh();
- return applicationConfig;
- });
- if (!application.isValid()) {
- throw new IllegalStateException("ApplicationConfig cannot be
null");
- }
- return application;
- }
-
/**
* Block current thread to be await.
*
@@ -1047,4 +1069,64 @@ public class DubboBootstrap extends GenericEventListener
{
lock.unlock();
}
}
+
+ private ApplicationConfig getApplication() {
+ ApplicationConfig application = configManager
+ .getApplication()
+ .orElseGet(() -> {
+ ApplicationConfig applicationConfig = new
ApplicationConfig();
+ applicationConfig.refresh();
+ return applicationConfig;
+ });
+ configManager.setApplication(application);
+ return application;
+ }
+
+ private MonitorConfig getMonitor() {
+ MonitorConfig monitor = configManager
+ .getMonitor()
+ .orElseGet(() -> {
+ MonitorConfig monitorConfig = new MonitorConfig();
+ monitorConfig.refresh();
+ return monitorConfig;
+ });
+ configManager.setMonitor(monitor);
+ return monitor;
+ }
+
+ private MetricsConfig getMetrics() {
+ MetricsConfig metrics = configManager
+ .getMetrics()
+ .orElseGet(() -> {
+ MetricsConfig metricsConfig = new MetricsConfig();
+ metricsConfig.refresh();
+ return metricsConfig;
+ });
+ configManager.setMetrics(metrics);
+ return metrics;
+ }
+
+ private ModuleConfig getModule() {
+ ModuleConfig module = configManager
+ .getModule()
+ .orElseGet(() -> {
+ ModuleConfig moduleConfig = new ModuleConfig();
+ moduleConfig.refresh();
+ return moduleConfig;
+ });
+ configManager.setModule(module);
+ return module;
+ }
+
+ private SslConfig getSsl() {
+ SslConfig ssl = configManager
+ .getSsl()
+ .orElseGet(() -> {
+ SslConfig sslConfig = new SslConfig();
+ sslConfig.refresh();
+ return sslConfig;
+ });
+ configManager.setSsl(ssl);
+ return ssl;
+ }
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/BootstrapUtils.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
similarity index 74%
rename from
dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/BootstrapUtils.java
rename to
dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
index 06ec356..1be05d4 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/BootstrapUtils.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
@@ -14,11 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.config;
+package org.apache.dubbo.config.utils;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.URLBuilder;
import org.apache.dubbo.common.extension.ExtensionLoader;
+import org.apache.dubbo.common.logger.Logger;
+import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.serialize.Serialization;
import org.apache.dubbo.common.status.StatusChecker;
import org.apache.dubbo.common.threadpool.ThreadPool;
@@ -27,6 +29,22 @@ import org.apache.dubbo.common.utils.ConfigUtils;
import org.apache.dubbo.common.utils.NetUtils;
import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.common.utils.UrlUtils;
+import org.apache.dubbo.config.AbstractConfig;
+import org.apache.dubbo.config.AbstractInterfaceConfig;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ConfigCenterConfig;
+import org.apache.dubbo.config.ConsumerConfig;
+import org.apache.dubbo.config.MetadataReportConfig;
+import org.apache.dubbo.config.MethodConfig;
+import org.apache.dubbo.config.MetricsConfig;
+import org.apache.dubbo.config.ModuleConfig;
+import org.apache.dubbo.config.MonitorConfig;
+import org.apache.dubbo.config.ProtocolConfig;
+import org.apache.dubbo.config.ProviderConfig;
+import org.apache.dubbo.config.ReferenceConfig;
+import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.config.ServiceConfig;
+import org.apache.dubbo.config.SslConfig;
import org.apache.dubbo.monitor.MonitorFactory;
import org.apache.dubbo.monitor.MonitorService;
import org.apache.dubbo.registry.RegistryService;
@@ -63,6 +81,8 @@ import static
org.apache.dubbo.common.constants.CommonConstants.PASSWORD_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
import static
org.apache.dubbo.common.constants.CommonConstants.REMOVE_VALUE_PREFIX;
+import static
org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;
+import static
org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_SECONDS_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.USERNAME_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
@@ -103,10 +123,8 @@ import static org.apache.dubbo.rpc.Constants.THROW_PREFIX;
import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;
import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;
-/**
- *
- */
-public class BootstrapUtils {
+public class ConfigValidationUtils {
+ private static final Logger logger =
LoggerFactory.getLogger(ConfigValidationUtils.class);
/**
* The maximum length of a <b>parameter's value</b>
*/
@@ -188,7 +206,6 @@ public class BootstrapUtils {
}
public static URL loadMonitor(AbstractInterfaceConfig interfaceConfig, URL
registryURL) {
- interfaceConfig.checkMonitor();
Map<String, String> map = new HashMap<String, String>();
map.put(INTERFACE_KEY, MonitorService.class.getName());
AbstractInterfaceConfig.appendRuntimeParameters(map);
@@ -284,10 +301,8 @@ public class BootstrapUtils {
List<MethodConfig> methods = config.getMethods();
if (CollectionUtils.isNotEmpty(methods)) {
- methods.forEach(BootstrapUtils::validateMethodConfig);
+ methods.forEach(ConfigValidationUtils::validateMethodConfig);
}
-
-
}
public static void validateServiceConfig(ServiceConfig config) {
@@ -300,6 +315,24 @@ public class BootstrapUtils {
validateAbstractInterfaceConfig(config);
+ List<RegistryConfig> registries = config.getRegistries();
+ if (registries != null) {
+ for (RegistryConfig registry : registries) {
+ validateRegistryConfig(registry);
+ }
+ }
+
+ List<ProtocolConfig> protocols = config.getProtocols();
+ if (protocols != null) {
+ for (ProtocolConfig protocol : protocols) {
+ validateProtocolConfig(protocol);
+ }
+ }
+
+ ProviderConfig providerConfig = config.getProvider();
+ if (providerConfig != null) {
+ validateProviderConfig(providerConfig);
+ }
}
public static void validateReferenceConfig(ReferenceConfig config) {
@@ -309,13 +342,47 @@ public class BootstrapUtils {
checkName(CLIENT_KEY, config.getClient());
validateAbstractInterfaceConfig(config);
+
+ List<RegistryConfig> registries = config.getRegistries();
+ if (registries != null) {
+ for (RegistryConfig registry : registries) {
+ validateRegistryConfig(registry);
+ }
+ }
+
+ ConsumerConfig consumerConfig = config.getConsumer();
+ if (consumerConfig != null) {
+ validateConsumerConfig(consumerConfig);
+ }
}
public static void validateConfigCenterConfig(ConfigCenterConfig config) {
- checkParameterName(config.getParameters());
+ if (config != null) {
+ checkParameterName(config.getParameters());
+ }
}
public static void validateApplicationConfig(ApplicationConfig config) {
+ if (config == null) {
+ return;
+ }
+
+ if (!config.isValid()) {
+ throw new IllegalStateException("No application config found or
it's not a valid config! " +
+ "Please add <dubbo:application name=\"...\" /> to your
spring config.");
+ }
+
+ // backward compatibility
+ String wait = ConfigUtils.getProperty(SHUTDOWN_WAIT_KEY);
+ if (wait != null && wait.trim().length() > 0) {
+ System.setProperty(SHUTDOWN_WAIT_KEY, wait.trim());
+ } else {
+ wait = ConfigUtils.getProperty(SHUTDOWN_WAIT_SECONDS_KEY);
+ if (wait != null && wait.trim().length() > 0) {
+ System.setProperty(SHUTDOWN_WAIT_SECONDS_KEY, wait.trim());
+ }
+ }
+
checkName(NAME, config.getName());
checkMultiName(OWNER, config.getOwner());
checkName(ORGANIZATION, config.getOrganization());
@@ -325,41 +392,70 @@ public class BootstrapUtils {
}
public static void validateModuleConfig(ModuleConfig config) {
- checkName(NAME, config.getName());
- checkName(OWNER, config.getOwner());
- checkName(ORGANIZATION, config.getOrganization());
+ if (config != null) {
+ checkName(NAME, config.getName());
+ checkName(OWNER, config.getOwner());
+ checkName(ORGANIZATION, config.getOrganization());
+ }
+ }
+
+ public static void validateMetadataConfig(MetadataReportConfig
metadataReportConfig) {
+ if (metadataReportConfig == null) {
+ return;
+ }
+ }
+
+ public static void validateMetricsConfig(MetricsConfig metricsConfig) {
+ if (metricsConfig == null) {
+ return;
+ }
+ }
+
+ public static void validateSslConfig(SslConfig sslConfig) {
+ if (sslConfig == null) {
+ return;
+ }
}
public static void validateMonitorConfig(MonitorConfig config) {
- checkParameterName(config.getParameters());
+ if (config != null) {
+ if (!config.isValid()) {
+ logger.info("There's no valid monitor config found, if you
want to open monitor statistics for Dubbo, " +
+ "please make sure your monitor is configured
properly.");
+ }
+
+ checkParameterName(config.getParameters());
+ }
}
public static void validateProtocolConfig(ProtocolConfig config) {
- String name = config.getName();
- checkName("name", name);
- checkName(HOST_KEY, config.getHost());
- checkPathName("contextpath", config.getContextpath());
+ if (config != null) {
+ String name = config.getName();
+ checkName("name", name);
+ checkName(HOST_KEY, config.getHost());
+ checkPathName("contextpath", config.getContextpath());
- if (DUBBO_PROTOCOL.equals(name)) {
- checkMultiExtension(Codec.class, CODEC_KEY, config.getCodec());
- }
- if (DUBBO_PROTOCOL.equals(name)) {
- checkMultiExtension(Serialization.class, SERIALIZATION_KEY,
config.getSerialization());
- }
- if (DUBBO_PROTOCOL.equals(name)) {
- checkMultiExtension(Transporter.class, SERVER_KEY,
config.getServer());
- }
- if (DUBBO_PROTOCOL.equals(name)) {
- checkMultiExtension(Transporter.class, CLIENT_KEY,
config.getClient());
+ if (DUBBO_PROTOCOL.equals(name)) {
+ checkMultiExtension(Codec.class, CODEC_KEY, config.getCodec());
+ }
+ if (DUBBO_PROTOCOL.equals(name)) {
+ checkMultiExtension(Serialization.class, SERIALIZATION_KEY,
config.getSerialization());
+ }
+ if (DUBBO_PROTOCOL.equals(name)) {
+ checkMultiExtension(Transporter.class, SERVER_KEY,
config.getServer());
+ }
+ if (DUBBO_PROTOCOL.equals(name)) {
+ checkMultiExtension(Transporter.class, CLIENT_KEY,
config.getClient());
+ }
+ checkMultiExtension(TelnetHandler.class, TELNET,
config.getTelnet());
+ checkMultiExtension(StatusChecker.class, "status",
config.getStatus());
+ checkExtension(Transporter.class, TRANSPORTER_KEY,
config.getTransporter());
+ checkExtension(Exchanger.class, EXCHANGER_KEY,
config.getExchanger());
+ checkExtension(Dispatcher.class, DISPATCHER_KEY,
config.getDispatcher());
+ checkExtension(Dispatcher.class, "dispather",
config.getDispather());
+ checkExtension(ThreadPool.class, THREADPOOL_KEY,
config.getThreadpool());
}
- checkMultiExtension(TelnetHandler.class, TELNET, config.getTelnet());
- checkMultiExtension(StatusChecker.class, "status", config.getStatus());
- checkExtension(Transporter.class, TRANSPORTER_KEY,
config.getTransporter());
- checkExtension(Exchanger.class, EXCHANGER_KEY, config.getExchanger());
- checkExtension(Dispatcher.class, DISPATCHER_KEY,
config.getDispatcher());
- checkExtension(Dispatcher.class, "dispather", config.getDispather());
- checkExtension(ThreadPool.class, THREADPOOL_KEY,
config.getThreadpool());
}
public static void validateProviderConfig(ProviderConfig config) {
@@ -371,6 +467,12 @@ public class BootstrapUtils {
checkExtension(Exchanger.class, EXCHANGER_KEY, config.getExchanger());
}
+ public static void validateConsumerConfig(ConsumerConfig config) {
+ if (config == null) {
+ return;
+ }
+ }
+
public static void validateRegistryConfig(RegistryConfig config) {
checkName(PROTOCOL_KEY, config.getProtocol());
checkName(USERNAME_KEY, config.getUsername());
@@ -382,11 +484,7 @@ public class BootstrapUtils {
checkParameterName(config.getParameters());
}
- public static void validateSslConfig(SslConfig config) {
-
- }
-
- protected static void validateMethodConfig(MethodConfig config) {
+ public static void validateMethodConfig(MethodConfig config) {
checkExtension(LoadBalance.class, LOADBALANCE_KEY,
config.getLoadbalance());
checkParameterName(config.getParameters());
checkMethodName("name", config.getName());
@@ -405,7 +503,7 @@ public class BootstrapUtils {
return isServiceDiscoveryRegistryType(url) ? SERVICE_REGISTRY_PROTOCOL
: REGISTRY_PROTOCOL;
}
- protected static void checkExtension(Class<?> type, String property,
String value) {
+ public static void checkExtension(Class<?> type, String property, String
value) {
checkName(property, value);
if (StringUtils.isNotEmpty(value)
&&
!ExtensionLoader.getExtensionLoader(type).hasExtension(value)) {
@@ -421,7 +519,7 @@ public class BootstrapUtils {
* @param property The extension key
* @param value The Extension name
*/
- protected static void checkMultiExtension(Class<?> type, String property,
String value) {
+ public static void checkMultiExtension(Class<?> type, String property,
String value) {
checkMultiName(property, value);
if (StringUtils.isNotEmpty(value)) {
String[] values = value.split("\\s*[,]+\\s*");
@@ -439,39 +537,39 @@ public class BootstrapUtils {
}
}
- protected static void checkLength(String property, String value) {
+ public static void checkLength(String property, String value) {
checkProperty(property, value, MAX_LENGTH, null);
}
- protected static void checkPathLength(String property, String value) {
+ public static void checkPathLength(String property, String value) {
checkProperty(property, value, MAX_PATH_LENGTH, null);
}
- protected static void checkName(String property, String value) {
+ public static void checkName(String property, String value) {
checkProperty(property, value, MAX_LENGTH, PATTERN_NAME);
}
- protected static void checkNameHasSymbol(String property, String value) {
+ public static void checkNameHasSymbol(String property, String value) {
checkProperty(property, value, MAX_LENGTH, PATTERN_NAME_HAS_SYMBOL);
}
- protected static void checkKey(String property, String value) {
+ public static void checkKey(String property, String value) {
checkProperty(property, value, MAX_LENGTH, PATTERN_KEY);
}
- protected static void checkMultiName(String property, String value) {
+ public static void checkMultiName(String property, String value) {
checkProperty(property, value, MAX_LENGTH, PATTERN_MULTI_NAME);
}
- protected static void checkPathName(String property, String value) {
+ public static void checkPathName(String property, String value) {
checkProperty(property, value, MAX_PATH_LENGTH, PATTERN_PATH);
}
- protected static void checkMethodName(String property, String value) {
+ public static void checkMethodName(String property, String value) {
checkProperty(property, value, MAX_LENGTH, PATTERN_METHOD_NAME);
}
- protected static void checkParameterName(Map<String, String> parameters) {
+ public static void checkParameterName(Map<String, String> parameters) {
if (CollectionUtils.isEmptyMap(parameters)) {
return;
}
@@ -480,7 +578,7 @@ public class BootstrapUtils {
}
}
- protected static void checkProperty(String property, String value, int
maxlength, Pattern pattern) {
+ public static void checkProperty(String property, String value, int
maxlength, Pattern pattern) {
if (StringUtils.isEmpty(value)) {
return;
}
diff --git
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
index 32263c5..26470cb 100644
---
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
+++
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
@@ -19,6 +19,7 @@ package org.apache.dubbo.config;
import org.apache.dubbo.common.utils.ConfigUtils;
import org.apache.dubbo.config.api.Greeting;
import org.apache.dubbo.config.support.Parameter;
+import org.apache.dubbo.config.utils.ConfigValidationUtils;
import org.apache.dubbo.rpc.model.ApplicationModel;
import org.hamcrest.Matchers;
@@ -166,17 +167,17 @@ public class AbstractConfigTest {
@Test
public void checkExtension() throws Exception {
- Assertions.assertThrows(IllegalStateException.class, () ->
BootstrapUtils.checkExtension(Greeting.class, "hello", "world"));
+ Assertions.assertThrows(IllegalStateException.class, () ->
ConfigValidationUtils.checkExtension(Greeting.class, "hello", "world"));
}
@Test
public void checkMultiExtension1() throws Exception {
- Assertions.assertThrows(IllegalStateException.class, () ->
BootstrapUtils.checkMultiExtension(Greeting.class, "hello", "default,world"));
+ Assertions.assertThrows(IllegalStateException.class, () ->
ConfigValidationUtils.checkMultiExtension(Greeting.class, "hello",
"default,world"));
}
@Test
public void checkMultiExtension2() throws Exception {
- Assertions.assertThrows(IllegalStateException.class, () ->
BootstrapUtils.checkMultiExtension(Greeting.class, "hello", "default,-world"));
+ Assertions.assertThrows(IllegalStateException.class, () ->
ConfigValidationUtils.checkMultiExtension(Greeting.class, "hello",
"default,-world"));
}
@Test
@@ -186,7 +187,7 @@ public class AbstractConfigTest {
for (int i = 0; i <= 200; i++) {
builder.append("a");
}
- BootstrapUtils.checkLength("hello", builder.toString());
+ ConfigValidationUtils.checkLength("hello", builder.toString());
});
}
@@ -197,20 +198,20 @@ public class AbstractConfigTest {
for (int i = 0; i <= 200; i++) {
builder.append("a");
}
- BootstrapUtils.checkPathLength("hello", builder.toString());
+ ConfigValidationUtils.checkPathLength("hello", builder.toString());
});
}
@Test
public void checkName() throws Exception {
- Assertions.assertThrows(IllegalStateException.class, () ->
BootstrapUtils.checkName("hello", "world%"));
+ Assertions.assertThrows(IllegalStateException.class, () ->
ConfigValidationUtils.checkName("hello", "world%"));
}
@Test
public void checkNameHasSymbol() throws Exception {
try {
- BootstrapUtils.checkNameHasSymbol("hello", ":*,/ -0123\tabcdABCD");
- BootstrapUtils.checkNameHasSymbol("mock", "force:return world");
+ ConfigValidationUtils.checkNameHasSymbol("hello", ":*,/
-0123\tabcdABCD");
+ ConfigValidationUtils.checkNameHasSymbol("mock", "force:return
world");
} catch (Exception e) {
fail("the value should be legal.");
}
@@ -219,7 +220,7 @@ public class AbstractConfigTest {
@Test
public void checkKey() throws Exception {
try {
- BootstrapUtils.checkKey("hello", "*,-0123abcdABCD");
+ ConfigValidationUtils.checkKey("hello", "*,-0123abcdABCD");
} catch (Exception e) {
fail("the value should be legal.");
}
@@ -228,7 +229,7 @@ public class AbstractConfigTest {
@Test
public void checkMultiName() throws Exception {
try {
- BootstrapUtils.checkMultiName("hello", ",-._0123abcdABCD");
+ ConfigValidationUtils.checkMultiName("hello", ",-._0123abcdABCD");
} catch (Exception e) {
fail("the value should be legal.");
}
@@ -237,7 +238,7 @@ public class AbstractConfigTest {
@Test
public void checkPathName() throws Exception {
try {
- BootstrapUtils.checkPathName("hello", "/-$._0123abcdABCD");
+ ConfigValidationUtils.checkPathName("hello", "/-$._0123abcdABCD");
} catch (Exception e) {
fail("the value should be legal.");
}
@@ -246,13 +247,13 @@ public class AbstractConfigTest {
@Test
public void checkMethodName() throws Exception {
try {
- BootstrapUtils.checkMethodName("hello", "abcdABCD0123abcd");
+ ConfigValidationUtils.checkMethodName("hello", "abcdABCD0123abcd");
} catch (Exception e) {
fail("the value should be legal.");
}
try {
- BootstrapUtils.checkMethodName("hello", "0a");
+ ConfigValidationUtils.checkMethodName("hello", "0a");
fail("the value should be illegal.");
} catch (Exception e) {
// ignore
@@ -263,7 +264,7 @@ public class AbstractConfigTest {
public void checkParameterName() throws Exception {
Map<String, String> parameters = Collections.singletonMap("hello",
":*,/-._0123abcdABCD");
try {
- BootstrapUtils.checkParameterName(parameters);
+ ConfigValidationUtils.checkParameterName(parameters);
} catch (Exception e) {
fail("the value should be legal.");
}
diff --git
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
index d2c7c50..1b69f22 100644
---
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
+++
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
@@ -25,6 +25,7 @@ import org.apache.dubbo.config.mock.GreetingLocal2;
import org.apache.dubbo.config.mock.GreetingLocal3;
import org.apache.dubbo.config.mock.GreetingMock1;
import org.apache.dubbo.config.mock.GreetingMock2;
+import org.apache.dubbo.config.utils.ConfigValidationUtils;
import org.apache.dubbo.monitor.MonitorService;
import org.apache.dubbo.registry.RegistryService;
import org.apache.dubbo.rpc.model.ApplicationModel;
@@ -98,7 +99,6 @@ public class AbstractInterfaceConfigTest {
writeDubboProperties(SHUTDOWN_WAIT_KEY, "100");
System.setProperty("dubbo.application.name", "demo");
InterfaceConfig interfaceConfig = new InterfaceConfig();
- interfaceConfig.checkApplication();
ApplicationConfig appConfig = interfaceConfig.getApplication();
Assertions.assertEquals("demo", appConfig.getName());
Assertions.assertEquals("100",
System.getProperty(SHUTDOWN_WAIT_KEY));
@@ -107,8 +107,6 @@ public class AbstractInterfaceConfigTest {
ConfigUtils.setProperties(null);
writeDubboProperties(SHUTDOWN_WAIT_SECONDS_KEY, "1000");
System.setProperty("dubbo.application.name", "demo");
- interfaceConfig = new InterfaceConfig();
- interfaceConfig.checkApplication();
Assertions.assertEquals("1000",
System.getProperty(SHUTDOWN_WAIT_SECONDS_KEY));
} finally {
ConfigUtils.setProperties(null);
@@ -118,13 +116,6 @@ public class AbstractInterfaceConfigTest {
}
}
- @Test
- public void checkApplication2() {
- Assertions.assertThrows(IllegalStateException.class, () -> {
- InterfaceConfig interfaceConfig = new InterfaceConfig();
- interfaceConfig.checkApplication();
- });
- }
@Test
public void testLoadRegistries() {
@@ -132,7 +123,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
// FIXME: now we need to check first, then load
interfaceConfig.checkRegistry();
- List<URL> urls = BootstrapUtils.loadRegistries(interfaceConfig, true);
+ List<URL> urls = ConfigValidationUtils.loadRegistries(interfaceConfig,
true);
Assertions.assertEquals(1, urls.size());
URL url = urls.get(0);
Assertions.assertEquals("registry", url.getProtocol());
@@ -149,7 +140,7 @@ public class AbstractInterfaceConfigTest {
System.setProperty("dubbo.monitor.address", "monitor-addr:12080");
System.setProperty("dubbo.monitor.protocol", "monitor");
InterfaceConfig interfaceConfig = new InterfaceConfig();
- URL url = BootstrapUtils.loadMonitor(interfaceConfig, new URL("dubbo",
"addr1", 9090));
+ URL url = ConfigValidationUtils.loadMonitor(interfaceConfig, new
URL("dubbo", "addr1", 9090));
Assertions.assertEquals("monitor-addr:12080", url.getAddress());
Assertions.assertEquals(MonitorService.class.getName(),
url.getParameter("interface"));
Assertions.assertNotNull(url.getParameter("dubbo"));
@@ -206,7 +197,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
interfaceConfig.setLocal(GreetingLocal1.class.getName());
interfaceConfig.checkStubAndLocal(Greeting.class);
- BootstrapUtils.checkMock(Greeting.class, interfaceConfig);
+ ConfigValidationUtils.checkMock(Greeting.class, interfaceConfig);
});
}
@@ -216,7 +207,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
interfaceConfig.setLocal(GreetingLocal2.class.getName());
interfaceConfig.checkStubAndLocal(Greeting.class);
- BootstrapUtils.checkMock(Greeting.class, interfaceConfig);
+ ConfigValidationUtils.checkMock(Greeting.class, interfaceConfig);
});
}
@@ -225,7 +216,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
interfaceConfig.setLocal(GreetingLocal3.class.getName());
interfaceConfig.checkStubAndLocal(Greeting.class);
- BootstrapUtils.checkMock(Greeting.class, interfaceConfig);
+ ConfigValidationUtils.checkMock(Greeting.class, interfaceConfig);
}
@Test
@@ -234,7 +225,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
interfaceConfig.setStub(GreetingLocal1.class.getName());
interfaceConfig.checkStubAndLocal(Greeting.class);
- BootstrapUtils.checkMock(Greeting.class, interfaceConfig);
+ ConfigValidationUtils.checkMock(Greeting.class, interfaceConfig);
});
}
@@ -244,7 +235,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
interfaceConfig.setStub(GreetingLocal2.class.getName());
interfaceConfig.checkStubAndLocal(Greeting.class);
- BootstrapUtils.checkMock(Greeting.class, interfaceConfig);
+ ConfigValidationUtils.checkMock(Greeting.class, interfaceConfig);
});
}
@@ -253,7 +244,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
interfaceConfig.setStub(GreetingLocal3.class.getName());
interfaceConfig.checkStubAndLocal(Greeting.class);
- BootstrapUtils.checkMock(Greeting.class, interfaceConfig);
+ ConfigValidationUtils.checkMock(Greeting.class, interfaceConfig);
}
@Test
@@ -262,7 +253,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
interfaceConfig.setMock("return {a, b}");
interfaceConfig.checkStubAndLocal(Greeting.class);
- BootstrapUtils.checkMock(Greeting.class, interfaceConfig);
+ ConfigValidationUtils.checkMock(Greeting.class, interfaceConfig);
});
}
@@ -272,7 +263,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
interfaceConfig.setMock(GreetingMock1.class.getName());
interfaceConfig.checkStubAndLocal(Greeting.class);
- BootstrapUtils.checkMock(Greeting.class, interfaceConfig);
+ ConfigValidationUtils.checkMock(Greeting.class, interfaceConfig);
});
}
@@ -282,7 +273,7 @@ public class AbstractInterfaceConfigTest {
InterfaceConfig interfaceConfig = new InterfaceConfig();
interfaceConfig.setMock(GreetingMock2.class.getName());
interfaceConfig.checkStubAndLocal(Greeting.class);
- BootstrapUtils.checkMock(Greeting.class, interfaceConfig);
+ ConfigValidationUtils.checkMock(Greeting.class, interfaceConfig);
});
}