laijianbin closed pull request #736: [SCB-595] Compatible with old SC
URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/736
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java
 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java
index f91ffd3a0..6e102415c 100644
--- 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java
+++ 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java
@@ -16,10 +16,6 @@
  */
 package org.apache.servicecomb.serviceregistry.api.registry;
 
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
 import java.util.ServiceLoader;
 
 import org.apache.servicecomb.serviceregistry.api.Versions;
@@ -28,17 +24,12 @@
   private static final ServiceLoader<Versions> frameworkVersions = 
ServiceLoader.load(Versions.class);
 
   public static String allVersions() {
-    Map<String, String> versions = new HashMap<>();
-    Entry<String, String> entry;
     StringBuffer sb = new StringBuffer();
-
-    frameworkVersions.forEach(version -> 
versions.putAll(version.loadVersion()));
-    for (Iterator<Entry<String, String>> iterator = 
versions.entrySet().iterator(); iterator.hasNext();) {
-      entry = (Entry<String, String>) iterator.next();
-      sb.append(entry.getKey())
-          .append(":")
-          .append(entry.getValue())
-          .append(iterator.hasNext() ? ";" : "");
+    frameworkVersions.forEach(version -> version.loadVersion().forEach((key, 
value) -> {
+      sb.append(key).append(":").append(value).append(";");
+    }));
+    if (sb.length() > 0) {
+      sb.setLength(sb.length() - 1);
     }
     return sb.toString();
   }
diff --git 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
index 113fed0f0..e91444fd6 100644
--- 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
+++ 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryConfig.java
@@ -85,10 +85,12 @@
   public static final String PROXY_USERNAME = PROXY_PRE_NAME + "username";
 
   public static final String PROXY_PASSWD = PROXY_PRE_NAME + "passwd";
-
+  
+  
   private ServiceRegistryConfig() {
 
   }
+  
 
   public String getMicroserviceVersionFactory() {
     return 
DynamicPropertyFactory.getInstance().getStringProperty(MICROSERVICE_VERSION_FACTORY,
 null).get();
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 a3c25f923..d92bbcd94 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
@@ -46,8 +46,6 @@
 import 
org.apache.servicecomb.serviceregistry.task.MicroserviceServiceCenterTask;
 import org.apache.servicecomb.serviceregistry.task.ServiceCenterTask;
 import org.apache.servicecomb.serviceregistry.task.event.ShutdownEvent;
-import org.apache.servicecomb.serviceregistry.version.Version;
-import org.apache.servicecomb.serviceregistry.version.VersionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -183,24 +181,11 @@ public void run() {
   private void loadFrameworkVersions() {
     Framework framework = new Framework();
     framework.setName(CONFIG_FRAMEWORK_DEFAULT_NAME);
-
-    if (needSetFrameworkVersion()) {
-      framework.setVersion(FrameworkVersions.allVersions());
-    }
+    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;
-    }
-
-    Version scVersion = 
VersionUtils.getOrCreate(serviceCenterInfo.getVersion());
-    Version frameworkVersion = 
VersionUtils.getOrCreate(Const.SERVICECENTER_FRAMEWORK_VERSION);
-    return scVersion.compareTo(frameworkVersion) >= 0;
-  }
 
   private void loadStaticConfiguration() {
     // TODO 如果yaml定义了paths规则属性,替换默认值,现需要DynamicPropertyFactory支持数组获取
diff --git 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
index f207b4635..08cfcb453 100644
--- 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
+++ 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
@@ -68,10 +68,14 @@ public void 
onInstanceRegistryFailed(MicroserviceInstanceRegisterTask task) {
   @Override
   protected boolean doRegister() {
     LOGGER.info("running microservice register task.");
-    String serviceId = srClient.getMicroserviceId(microservice.getAppId(),
-        microservice.getServiceName(),
-        microservice.getVersion(),
-        microservice.getEnvironment());
+    String serviceId = srClient.getMicroserviceId(microservice.getAppId(), 
microservice.getServiceName(),
+        microservice.getVersion(), microservice.getEnvironment());
+    String serviceCenterVersion = srClient.getServiceCenterInfo().getVersion();
+    String validateSuccessVersion = "1.0.0";
+    int compareResult = serviceCenterVersion.compareTo(validateSuccessVersion);
+    if (compareResult < 1) {
+      microservice.getFramework().setVersion(null);
+    }
     if (!StringUtils.isEmpty(serviceId)) {
       // 已经注册过了,不需要重新注册
       microservice.setServiceId(serviceId);


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to