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/12/04 10:50:16 UTC
[servicecomb-java-chassis] 03/03: [SCB-1047]microservice.yaml
service_description.version support format xxx.xx.xxx.xxx: modify details
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/servicecomb-java-chassis.git
commit e0e8df7059603fc740fa84d47f2f76807bc75ed3
Author: heyile <25...@qq.com>
AuthorDate: Tue Dec 4 15:59:39 2018 +0800
[SCB-1047]microservice.yaml service_description.version support format xxx.xx.xxx.xxx: modify details
---
.../api/registry/MicroserviceFactory.java | 6 ++---
.../serviceregistry/version/Version.java | 30 +++++-----------------
.../serviceregistry/version/VersionRuleUtils.java | 3 ++-
.../api/registry/TestMicroserviceFactory.java | 2 +-
.../registry/TestRemoteServiceRegistry.java | 19 +++++++++-----
.../serviceregistry/version/TestVersion.java | 24 -----------------
6 files changed, 24 insertions(+), 60 deletions(-)
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceFactory.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceFactory.java
index b25baf7..2ace55f 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceFactory.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceFactory.java
@@ -56,10 +56,8 @@ public class MicroserviceFactory {
microservice.setAppId(configuration.getString(CONFIG_APPLICATION_ID_KEY, DEFAULT_APPLICATION_ID));
String version = configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY,
DEFAULT_MICROSERVICE_VERSION);
- //check version format
- if (!Version.checkVersion(version)) {
- throw new IllegalStateException(String.format("config service_description.version %s is invalid", version));
- }
+ // just check version format
+ new Version(version);
microservice.setVersion(version);
setDescription(configuration, microservice);
microservice.setLevel(configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_ROLE_KEY, "FRONT"));
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java
index b4a82a2..3ec9753 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java
@@ -21,8 +21,6 @@ import java.util.Objects;
import org.apache.commons.lang.ArrayUtils;
-import com.google.common.annotations.VisibleForTesting;
-
// short version is enough
public class Version implements Comparable<Version> {
private static final String[] ZERO = new String[] {"0", "0", "0", "0"};
@@ -51,7 +49,9 @@ public class Version implements Comparable<Version> {
throw new IllegalStateException(String.format("Invalid version \"%s\".", version));
}
- versions = (String[]) ArrayUtils.addAll(versions, ZERO);
+ if (versions.length < 4) {
+ versions = (String[]) ArrayUtils.addAll(versions, ZERO);
+ }
this.major = parseNumber("major", version, versions[0]);
this.minor = parseNumber("minor", version, versions[1]);
this.patch = parseNumber("patch", version, versions[2]);
@@ -66,8 +66,8 @@ public class Version implements Comparable<Version> {
try {
value = Short.parseShort(version);
} catch (NumberFormatException e) {
- throw new IllegalStateException(String.format("Invalid %s \"%s\", version \"%s\".", name, version, allVersion),
- e);
+ throw new IllegalStateException(
+ String.format("Invalid %s \"%s\", version \"%s\".", name, version, allVersion), e);
}
if (value < 0) {
@@ -88,15 +88,7 @@ public class Version implements Comparable<Version> {
}
private String combineStringVersion() {
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append(major)
- .append(".")
- .append(minor)
- .append(".")
- .append(patch)
- .append(".")
- .append(build);
- return stringBuilder.toString();
+ return major + "." + minor + "." + patch + "." + build;
}
// 1.0.0 equals 1.0.0.0
@@ -104,22 +96,18 @@ public class Version implements Comparable<Version> {
return (long) major << 48 | (long) minor << 32 | (long) patch << 16 | (long) build;
}
- @VisibleForTesting
public short getMajor() {
return major;
}
- @VisibleForTesting
public short getMinor() {
return minor;
}
- @VisibleForTesting
public short getPatch() {
return patch;
}
- @VisibleForTesting
public short getBuild() {
return build;
}
@@ -155,10 +143,4 @@ public class Version implements Comparable<Version> {
public int compareTo(Version other) {
return Long.compare(numberVersion, other.numberVersion);
}
-
- //check version. maybe not contains the range of short. but it's just ok
- public static boolean checkVersion(String version) {
- Objects.requireNonNull(version);
- return version.matches("\\d+(.\\d+){0,3}");
- }
}
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java
index c36f9fb..f8d512e 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java
@@ -54,6 +54,7 @@ public final class VersionRuleUtils {
return versionRule;
}
}
- throw new IllegalStateException("config service_description.version is invalid ");
+
+ throw new IllegalStateException("never run to here");
}
}
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java
index 108bab5..c735f9b 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java
@@ -149,7 +149,7 @@ public class TestMicroserviceFactory {
}
};
expectedException.equals(IllegalStateException.class);
- expectedException.expectMessage("config service_description.version x.y.x.1 is invalid");
+ expectedException.expectMessage("Invalid major \"x\", version \"x.y.x.1\".");
MicroserviceFactory microserviceFactory = new MicroserviceFactory();
microserviceFactory.create(microserviceDefinition);
}
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java
index 6fa1a9d..718e649 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java
@@ -16,6 +16,9 @@
*/
package org.apache.servicecomb.serviceregistry.registry;
+import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY;
+import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.DEFAULT_MICROSERVICE_VERSION;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.CountDownLatch;
@@ -23,6 +26,7 @@ import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.foundation.common.net.IpPort;
import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
@@ -35,7 +39,6 @@ import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
import org.apache.servicecomb.serviceregistry.task.event.PullMicroserviceVersionsInstancesEvent;
import org.apache.servicecomb.serviceregistry.task.event.ShutdownEvent;
-import org.apache.servicecomb.serviceregistry.version.Version;
import org.hamcrest.Matchers;
import org.junit.Assert;
import org.junit.Rule;
@@ -129,7 +132,8 @@ public class TestRemoteServiceRegistry {
@Test
public void onPullMicroserviceVersionsInstancesEvent(@Injectable ServiceRegistryConfig config,
- @Injectable MicroserviceDefinition definition, @Mocked MicroserviceVersions microserviceVersions) {
+ @Injectable MicroserviceDefinition definition, @Mocked MicroserviceVersions microserviceVersions,
+ @Mocked Configuration configuration) {
PullMicroserviceVersionsInstancesEvent event = new PullMicroserviceVersionsInstancesEvent(microserviceVersions, 1);
ScheduledThreadPoolExecutor taskPool = new MockUp<ScheduledThreadPoolExecutor>() {
@@ -142,10 +146,13 @@ public class TestRemoteServiceRegistry {
}
}.getMockInstance();
- new MockUp<Version>() {
- @Mock
- boolean checkVersion(String version){
- return true;
+ new Expectations() {
+ {
+ definition.getConfiguration();
+ result = configuration;
+ configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY,
+ DEFAULT_MICROSERVICE_VERSION);
+ result = "1.0.0";
}
};
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersion.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersion.java
index 8b01375..63025de 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersion.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersion.java
@@ -199,28 +199,4 @@ public class TestVersion {
Assert.assertEquals(1, version.compareTo(new Version((short) 0,
Short.MAX_VALUE, Short.MAX_VALUE, Short.MAX_VALUE)));
}
-
- @Test
- public void testCheckVersion() {
- Assert.assertFalse(Version.checkVersion("-1"));
- Assert.assertFalse(Version.checkVersion("1."));
- Assert.assertFalse(Version.checkVersion("1.-1"));
- Assert.assertFalse(Version.checkVersion("1.1."));
- Assert.assertFalse(Version.checkVersion("1.1.-1"));
- Assert.assertFalse(Version.checkVersion("1.1.1."));
- Assert.assertFalse(Version.checkVersion("1.1.1.-1"));
- Assert.assertFalse(Version.checkVersion("1.1.1.1."));
- Assert.assertFalse(Version.checkVersion("1.1.1.1.1"));
- Assert.assertFalse(Version.checkVersion("a"));
- Assert.assertFalse(Version.checkVersion("a."));
- Assert.assertFalse(Version.checkVersion("1.a"));
- Assert.assertFalse(Version.checkVersion("1.1.a"));
- Assert.assertFalse(Version.checkVersion("1.1.1.a"));
- Assert.assertFalse(Version.checkVersion("1.1.1.1.a"));
-
- Assert.assertTrue(Version.checkVersion("1"));
- Assert.assertTrue(Version.checkVersion("1.1"));
- Assert.assertTrue(Version.checkVersion("1.1.1"));
- Assert.assertTrue(Version.checkVersion("1.1.1.1"));
- }
}