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>.