From f78805f93d30b3b89449ac3e14bad095e0bf2cd2 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Mon, 18 Nov 2019 15:59:58 +0100 Subject: Include qualifier in isAfter/isBefore comparison --- .../src/main/java/com/yahoo/component/Version.java | 18 +++++++++++------- .../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..54a5dfed94a 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 { 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 this#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 this#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"))); } } -- cgit v1.2.3 From b4395086594d5f8824a19aade3f13488c63cb9e6 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Tue, 19 Nov 2019 08:20:28 +0100 Subject: Fix javadoc --- component/src/main/java/com/yahoo/component/Version.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/component/src/main/java/com/yahoo/component/Version.java b/component/src/main/java/com/yahoo/component/Version.java index 54a5dfed94a..51ff6ad5dbd 100644 --- a/component/src/main/java/com/yahoo/component/Version.java +++ b/component/src/main/java/com/yahoo/component/Version.java @@ -350,7 +350,7 @@ public final class Version implements Comparable { /** * Returns whether this version number is strictly lower than the given version. This has the same semantics as - * {@link this#compareTo}. + * {@link Version#compareTo}. */ public boolean isBefore(Version other) { return compareTo(other) < 0; @@ -358,7 +358,7 @@ public final class Version implements Comparable { /** * Returns whether this version number is strictly higher than the given version. This has the same semantics as - * {@link this#compareTo}. + * {@link Version#compareTo}. */ public boolean isAfter(Version other) { return compareTo(other) > 0; -- cgit v1.2.3