You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/03/16 01:54:13 UTC
[incubator-servicecomb-java-chassis] 03/03: fix ut
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit 3dbfb87eb6249f3ad41ea7514d1a73ec6e193bfe
Author: weichao666 <we...@huawei.com>
AuthorDate: Thu Mar 15 22:03:42 2018 +0800
fix ut
---
.../client/http/ServiceRegistryClientImpl.java | 2 +-
.../registry/AbstractServiceRegistry.java | 24 ++++++++++++++++------
.../registry/TestServiceRegistryFactory.java | 13 ++----------
3 files changed, 21 insertions(+), 18 deletions(-)
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
index e916338..ab7f597 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
@@ -65,7 +65,7 @@ import io.vertx.core.Handler;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.HttpClientResponse;
-public class ServiceRegistryClientImpl implements ServiceRegistryClient {
+public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
private static final Logger LOGGER = LoggerFactory.getLogger(ServiceRegistryClientImpl.class);
private IpPortManager ipPortManager;
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java
index b524e2b..e30bf6f 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java
@@ -104,9 +104,6 @@ public abstract class AbstractServiceRegistry implements ServiceRegistry {
}
serviceCenterInfo = srClient.getServiceCenterInfo();
- if (serviceCenterInfo == null) {
- throw new IllegalStateException("Failed to load servicecenter info");
- }
createServiceCenterTask();
@@ -184,17 +181,32 @@ public abstract class AbstractServiceRegistry implements ServiceRegistry {
}
private void loadFrameworkVersions() {
- Version scVersion = VersionUtils.getOrCreate(serviceCenterInfo.getVersion());
- Version frameworkVersion = VersionUtils.getOrCreate(Const.SERVICECENTER_FRAMEWORK_VERSION);
Framework framework = new Framework();
framework.setName(CONFIG_FRAMEWORK_DEFAULT_NAME);
- if (scVersion.compareTo(frameworkVersion) >= 0) {
+
+ if (needSetFrameworkVersion()) {
framework.setVersion(FrameworkVersions.allVersions());
}
microservice.setFramework(framework);
microservice.setRegisterBy(CONFIG_DEFAULT_REGISTER_BY);
}
+ private boolean needSetFrameworkVersion() {
+ if (serviceCenterInfo == null) {
+ LOGGER.warn("Server startup when service center not started and cannot retrieve version info, assume latest.");
+ return true;
+ } else {
+ Version scVersion = VersionUtils.getOrCreate(serviceCenterInfo.getVersion());
+ Version frameworkVersion = VersionUtils.getOrCreate(Const.SERVICECENTER_FRAMEWORK_VERSION);
+
+ if (scVersion.compareTo(frameworkVersion) >= 0) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+
private void loadStaticConfiguration() {
// TODO 如果yaml定义了paths规则属性,替换默认值,现需要DynamicPropertyFactory支持数组获取
List<BasePath> paths = microservice.getPaths();
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java
index d6357a0..1e62441 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java
@@ -20,7 +20,6 @@ package org.apache.servicecomb.serviceregistry.registry;
import java.util.Collections;
import org.apache.servicecomb.serviceregistry.ServiceRegistry;
-import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
import org.apache.servicecomb.serviceregistry.client.LocalServiceRegistryClientImpl;
import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
import org.apache.servicecomb.serviceregistry.client.http.ServiceRegistryClientImpl;
@@ -43,16 +42,8 @@ public class TestServiceRegistryFactory {
ServiceRegistryConfig serviceRegistryConfig = ServiceRegistryConfig.INSTANCE;
MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(Collections.emptyList());
- ServiceRegistry serviceRegistry = new RemoteServiceRegistry(eventBus, serviceRegistryConfig, microserviceDefinition) {
- @Override
- protected ServiceRegistryClient createServiceRegistryClient() {
- return new ServiceRegistryClientImpl(ipPortManager) {
- public ServiceCenterInfo getServiceCenterInfo() {
- return new ServiceCenterInfo();
- }
- };
- }
- };
+ ServiceRegistry serviceRegistry =
+ ServiceRegistryFactory.create(eventBus, serviceRegistryConfig, microserviceDefinition);
serviceRegistry.init();
ServiceRegistryClient client = serviceRegistry.getServiceRegistryClient();
Assert.assertTrue(client instanceof ServiceRegistryClientImpl);
--
To stop receiving notification emails like this one, please contact
liubao@apache.org.