diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-11-19 08:56:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-19 08:56:33 +0100 |
commit | 66d8f6ca659288176a7624c2b46c4ae0c064b779 (patch) | |
tree | 19ab185ed7210b23de9ddda824f8d9d3bf07467d | |
parent | 8fa46426437279c065999f5ca6994d88c1f61804 (diff) | |
parent | b4395086594d5f8824a19aade3f13488c63cb9e6 (diff) |
Merge pull request #11343 from vespa-engine/mpolden/consider-qualifier
Include qualifier in isAfter/isBefore comparison
-rw-r--r-- | component/src/main/java/com/yahoo/component/Version.java | 18 | ||||
-rw-r--r-- | component/src/test/java/com/yahoo/component/VersionTestCase.java | 8 |
2 files changed, 17 insertions, 9 deletions
diff --git a/component/src/main/java/com/yahoo/component/Version.java b/component/src/main/java/com/yahoo/component/Version.java index 7c98af55be3..51ff6ad5dbd 100644 --- a/component/src/main/java/com/yahoo/component/Version.java +++ b/component/src/main/java/com/yahoo/component/Version.java @@ -347,17 +347,21 @@ public final class Version implements Comparable<Version> { return getQualifier().compareTo(other.getQualifier()); } - - /** Returns whether this version number (ignoring qualifier) is strictly lower than the given version */ + + /** + * Returns whether this version number is strictly lower than the given version. This has the same semantics as + * {@link Version#compareTo}. + */ public boolean isBefore(Version other) { - if (this.major == other.major && this.minor == other.minor) return this.micro < other.micro; - if (this.major == other.major) return this.minor < other.minor; - return this.major < other.major; + return compareTo(other) < 0; } - /** Returns whether this version number (ignoring qualifier) is strictly higher than the given version */ + /** + * Returns whether this version number is strictly higher than the given version. This has the same semantics as + * {@link Version#compareTo}. + */ public boolean isAfter(Version other) { - return ! this.isBefore(other) && ! this.equals(other); + return compareTo(other) > 0; } /** Creates a version specification that only matches this version */ diff --git a/component/src/test/java/com/yahoo/component/VersionTestCase.java b/component/src/test/java/com/yahoo/component/VersionTestCase.java index 10862046dcb..9e4e8a5c702 100644 --- a/component/src/test/java/com/yahoo/component/VersionTestCase.java +++ b/component/src/test/java/com/yahoo/component/VersionTestCase.java @@ -93,11 +93,11 @@ public class VersionTestCase { public void testOrder() { assertTrue(new Version("1.2.3").compareTo(new Version("1.2.3"))==0); assertTrue(new Version("1.2.3").compareTo(new Version("1.2.4"))<0); + assertTrue(new Version("1.2.3").compareTo(new Version("1.2.3.foo"))<0); assertTrue(new Version("1.2.3").compareTo(new Version("1.2.2"))>0); - + assertTrue(new Version("1.2.3.foo").compareTo(new Version("1.2.3"))>0); assertTrue(new Version("1.2.3").compareTo(new Version("2"))<0); assertTrue(new Version("1.2.3").compareTo(new Version("1.3"))<0); - assertTrue(new Version("1.0.0").compareTo(new Version("1"))==0); } @@ -107,9 +107,11 @@ public class VersionTestCase { assertFalse(new Version("1.2.3").isBefore(new Version("1.1.3"))); assertFalse(new Version("1.2.3").isBefore(new Version("1.2.2"))); assertFalse(new Version("1.2.3").isBefore(new Version("1.2.3"))); + assertFalse(new Version("1.2.3.foo").isBefore(new Version("1.2.3"))); assertTrue( new Version("1.2.3").isBefore(new Version("1.2.4"))); assertTrue( new Version("1.2.3").isBefore(new Version("1.3.3"))); assertTrue( new Version("1.2.3").isBefore(new Version("2.2.3"))); + assertTrue( new Version("1.2.3").isBefore(new Version("1.2.3.foo"))); } @Test @@ -117,10 +119,12 @@ public class VersionTestCase { assertTrue( new Version("1.2.3").isAfter(new Version("0.2.3"))); assertTrue( new Version("1.2.3").isAfter(new Version("1.1.3"))); assertTrue( new Version("1.2.3").isAfter(new Version("1.2.2"))); + assertTrue( new Version("1.2.3.foo").isAfter(new Version("1.2.3"))); assertFalse(new Version("1.2.3").isAfter(new Version("1.2.3"))); assertFalse(new Version("1.2.3").isAfter(new Version("1.2.4"))); assertFalse(new Version("1.2.3").isAfter(new Version("1.3.3"))); assertFalse(new Version("1.2.3").isAfter(new Version("2.2.3"))); + assertFalse(new Version("1.2.3").isAfter(new Version("1.2.3.foo"))); } } |