You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by di...@apache.org on 2017/02/28 19:55:54 UTC
ambari git commit: AMBARI-20221 Ambari db schema update should be
able to compare Ambari versions with build text (dili)
Repository: ambari
Updated Branches:
refs/heads/trunk eebca68f7 -> aeb5076ad
AMBARI-20221 Ambari db schema update should be able to compare Ambari versions with build text (dili)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/aeb5076a
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/aeb5076a
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/aeb5076a
Branch: refs/heads/trunk
Commit: aeb5076ad66692a43af531c7c5377bdb72dc0f37
Parents: eebca68
Author: Di Li <di...@apache.org>
Authored: Tue Feb 28 14:55:26 2017 -0500
Committer: Di Li <di...@apache.org>
Committed: Tue Feb 28 14:55:26 2017 -0500
----------------------------------------------------------------------
.../ambari/server/utils/VersionUtils.java | 6 ++-
.../ambari/server/utils/TestVersionUtils.java | 46 ++++++++++++++++++++
2 files changed, 50 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/aeb5076a/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java b/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java
index d3d8592..af0e030 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java
@@ -80,8 +80,10 @@ public class VersionUtils {
return 0;
}
- String[] version1Parts = version1.split("\\.");
- String[] version2Parts = version2.split("\\.");
+ //String pattern = "^([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+).*";
+ String pattern = "([0-9]+).([0-9]+).([0-9]+).([0-9]+)?.*";
+ String[] version1Parts = version1.replaceAll(pattern, "$1.$2.$3.$4").split("\\.");
+ String[] version2Parts = version2.replaceAll(pattern, "$1.$2.$3.$4").split("\\.");
int length = Math.max(version1Parts.length, version2Parts.length);
length = maxLengthToCompare == 0 || maxLengthToCompare > length ? length : maxLengthToCompare;
http://git-wip-us.apache.org/repos/asf/ambari/blob/aeb5076a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java
index 821565e..ab55518 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java
@@ -97,6 +97,52 @@ public class TestVersionUtils {
}
@Test
+ public void testVersionCompareSuccessCustomVersion() {
+ Assert.assertTrue(VersionUtils.areVersionsEqual("1.2.3_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", false));
+ Assert.assertTrue(VersionUtils.areVersionsEqual("1.2.3_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", true));
+ Assert.assertTrue(VersionUtils.areVersionsEqual("", "", true));
+ Assert.assertTrue(VersionUtils.areVersionsEqual(null, null, true));
+ Assert.assertTrue(VersionUtils.areVersionsEqual(BootStrapImpl.DEV_VERSION, "1.2.3_MYAMBARI_000000", false));
+ Assert.assertTrue(VersionUtils.areVersionsEqual(BootStrapImpl.DEV_VERSION, "", true));
+ Assert.assertTrue(VersionUtils.areVersionsEqual(BootStrapImpl.DEV_VERSION, null, true));
+
+ Assert.assertFalse(VersionUtils.areVersionsEqual("1.2.3.1_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", false));
+ Assert.assertFalse(VersionUtils.areVersionsEqual("2.1.3_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", false));
+ Assert.assertFalse(VersionUtils.areVersionsEqual("1.2.3.1_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", true));
+ Assert.assertFalse(VersionUtils.areVersionsEqual("2.1.3_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", true));
+ Assert.assertFalse(VersionUtils.areVersionsEqual("", "1.2.3_MYAMBARI_000000", true));
+ Assert.assertFalse(VersionUtils.areVersionsEqual("", null, true));
+ Assert.assertFalse(VersionUtils.areVersionsEqual(null, "", true));
+ Assert.assertFalse(VersionUtils.areVersionsEqual(null, "1.2.3_MYAMBARI_000000", true));
+
+ //Assert.assertEquals(-1, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.4_MYAMBARI_000000"));
+ Assert.assertEquals(1, VersionUtils.compareVersions("1.2.4_MYAMBARI_000000", "1.2.3_MYAMBARI_000000"));
+ Assert.assertEquals(0, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.3_MYAMBARI_000000"));
+
+ Assert.assertEquals(-1, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.4_MYAMBARI_000000", 3));
+ Assert.assertEquals(1, VersionUtils.compareVersions("1.2.4_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", 3));
+ Assert.assertEquals(0, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", 3));
+
+ Assert.assertEquals(-1, VersionUtils.compareVersions("1.2.3.9_MYAMBARI_000000", "1.2.4.6_MYAMBARI_000000", 3));
+ Assert.assertEquals(-1, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.4.6_MYAMBARI_000000", 3));
+ Assert.assertEquals(-1, VersionUtils.compareVersions("1.2_MYAMBARI_000000", "1.2.4.6_MYAMBARI_000000", 3));
+ Assert.assertEquals(1, VersionUtils.compareVersions("1.2.4.8_MYAMBARI_000000", "1.2.3.6.7_MYAMBARI_000000", 3));
+ Assert.assertEquals(0, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.3.4_MYAMBARI_000000", 3));
+ Assert.assertEquals(0, VersionUtils.compareVersions("1.2.3.6.7_MYAMBARI_000000", "1.2.3.4_MYAMBARI_000000", 3));
+ Assert.assertEquals(1, VersionUtils.compareVersions("1.2.3.6.7_MYAMBARI_000000", "1.2.3.4_MYAMBARI_000000", 4));
+ Assert.assertEquals(0, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.3.0_MYAMBARI_000000", 4));
+ Assert.assertEquals(-1, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.3.1_MYAMBARI_000000", 4));
+ Assert.assertEquals(1, VersionUtils.compareVersions("1.2.3.6.7_MYAMBARI_000000\n", "1.2.3.4_MYAMBARI_000000\n", 4)); //test version trimming
+
+ Assert.assertEquals(1, VersionUtils.compareVersions("1.2.3.1_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", true));
+ Assert.assertEquals(1, VersionUtils.compareVersions("2.1.3_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", true));
+ Assert.assertEquals(-1, VersionUtils.compareVersions("", "1.2.3_MYAMBARI_000000", true));
+ Assert.assertEquals(1, VersionUtils.compareVersions("", null, true));
+ Assert.assertEquals(-1, VersionUtils.compareVersions(null, "", true));
+ Assert.assertEquals(-1, VersionUtils.compareVersions(null, "1.2.3_MYAMBARI_000000", true));
+ }
+
+ @Test
public void testVersionCompareError() {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("version2 cannot be empty");