This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.provisioning.model-1.4.2 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-provisioning-model.git
commit 6bb2a5eeabfd0f396cea8c6f8de916544667c23c Author: Carsten Ziegeler <[email protected]> AuthorDate: Thu Oct 22 12:02:38 2015 +0000 SLING-5185 : Version comparision is wrong in case of qualifiers git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/tooling/support/provisioning-model@1709998 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/sling/provisioning/model/Version.java | 9 ++++++- .../sling/provisioning/model/VersionTest.java | 29 +++++++++++++++++----- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/apache/sling/provisioning/model/Version.java b/src/main/java/org/apache/sling/provisioning/model/Version.java index 8d5e990..028057d 100644 --- a/src/main/java/org/apache/sling/provisioning/model/Version.java +++ b/src/main/java/org/apache/sling/provisioning/model/Version.java @@ -119,7 +119,14 @@ public class Version implements Comparable<Version> { if (result == 0) { result = microVersion - other.microVersion; if (result == 0) { - result = other.qualifier.compareTo(qualifier); + result = qualifier.compareTo(other.qualifier); + if ( result != 0 ) { + if ( "SNAPSHOT".equals(qualifier) ) { + result = -1; + } else if ( "SNAPSHOT".equals(other.qualifier) ) { + result = 1; + } + } } } diff --git a/src/test/java/org/apache/sling/provisioning/model/VersionTest.java b/src/test/java/org/apache/sling/provisioning/model/VersionTest.java index d242c8c..f478df9 100644 --- a/src/test/java/org/apache/sling/provisioning/model/VersionTest.java +++ b/src/test/java/org/apache/sling/provisioning/model/VersionTest.java @@ -60,13 +60,30 @@ public class VersionTest { } @Test - public void testQualifier() { - final String v1 = "1"; - final String v1snapshot = "1-SNAPSHOT"; + public void testSnapshotQualifier() { + final Version v1 = new Version("1"); + final Version v1snapshot = new Version("1-SNAPSHOT"); + final Version v1a = new Version("1-A"); - final Version ve1 = new Version(v1); - final Version ve1snapshot = new Version(v1snapshot); + // snapshot is lower than the corresponding version + assertTrue(v1.compareTo(v1snapshot) > 0); + assertTrue(v1snapshot.compareTo(v1) < 0); + + // qualifier is higher than the version + assertTrue(v1a.compareTo(v1) > 0); + assertTrue(v1.compareTo(v1a) < 0); + + // qualifier is higher than snapshot + assertTrue(v1a.compareTo(v1snapshot) > 0); + assertTrue(v1snapshot.compareTo(v1a) < 0); + } + + @Test + public void testQualifiers() { + final Version va = new Version("1-A"); + final Version vb = new Version("1-B"); - assertTrue(ve1.compareTo(ve1snapshot) > 0); + assertTrue(va.compareTo(vb) < 0); + assertTrue(vb.compareTo(va) > 0); } } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
