You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:58:29 UTC

[sling-org-apache-sling-provisioning-model] 02/06: SLING-5185 : Version comparision is wrong in case of qualifiers

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 <cz...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.