This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
The following commit(s) were added to refs/heads/7.0.x by this push:
new 2613e646c0 fix: rework sorting order of GrailsVersion to ensure the
highest version comes first
2613e646c0 is described below
commit 2613e646c00c73dfb4b447f65671e8f07f917299
Author: James Daugherty <[email protected]>
AuthorDate: Mon Aug 4 10:14:18 2025 -0400
fix: rework sorting order of GrailsVersion to ensure the highest version
comes first
---
.../src/main/java/grails/init/GrailsVersion.java | 16 ++---
.../groovy/grails/init/GrailsVersionSpec.groovy | 73 +++++++++++++++++-----
2 files changed, 64 insertions(+), 25 deletions(-)
diff --git a/grails-wrapper/src/main/java/grails/init/GrailsVersion.java
b/grails-wrapper/src/main/java/grails/init/GrailsVersion.java
index 2c21e9616d..fdea23c46b 100644
--- a/grails-wrapper/src/main/java/grails/init/GrailsVersion.java
+++ b/grails-wrapper/src/main/java/grails/init/GrailsVersion.java
@@ -107,30 +107,30 @@ public class GrailsVersion implements
Comparable<GrailsVersion> {
return 0;
}
- if (releaseType != o.releaseType) {
- return o.releaseType.ordinal() - releaseType.ordinal();
- }
-
- int majorCompare = Integer.compare(this.major, o.major);
+ int majorCompare = Integer.compare(o.major, this.major);
if (majorCompare != 0) {
return majorCompare;
}
- int minorCompare = Integer.compare(this.minor, o.minor);
+ int minorCompare = Integer.compare(o.minor, this.minor);
if (minorCompare != 0) {
return minorCompare;
}
- int patchCompare = Integer.compare(this.patch, o.patch);
+ int patchCompare = Integer.compare(o.patch, this.patch);
if (patchCompare != 0) {
return patchCompare;
}
+ if (releaseType != o.releaseType) {
+ return releaseType.ordinal() - o.releaseType.ordinal();
+ }
+
if (candidate == null) {
return 0;
}
- return Integer.compare(this.candidate, o.candidate);
+ return Integer.compare(o.candidate, this.candidate);
}
@Override
diff --git
a/grails-wrapper/src/test/groovy/grails/init/GrailsVersionSpec.groovy
b/grails-wrapper/src/test/groovy/grails/init/GrailsVersionSpec.groovy
index 8a8991e225..8ca237656b 100644
--- a/grails-wrapper/src/test/groovy/grails/init/GrailsVersionSpec.groovy
+++ b/grails-wrapper/src/test/groovy/grails/init/GrailsVersionSpec.groovy
@@ -49,27 +49,66 @@ class GrailsVersionSpec extends Specification {
def "comparison checks"() {
expect:
- new GrailsVersion('7.0.0') < new GrailsVersion('7.0.1')
- new GrailsVersion('7.0.1') > new GrailsVersion('7.0.0')
- new GrailsVersion('7.0.0') < new GrailsVersion('7.1.0')
- new GrailsVersion('8.0.0') > new GrailsVersion('7.0.0')
- new GrailsVersion('7.0.0') > new GrailsVersion('7.0.0-SNAPSHOT')
- new GrailsVersion('7.0.0') > new GrailsVersion('7.0.0-RC1')
- new GrailsVersion('7.0.0') > new GrailsVersion('7.0.0-M1')
- new GrailsVersion('7.0.0-RC1') > new GrailsVersion('7.0.0-M1')
- new GrailsVersion('7.0.0-RC2') > new GrailsVersion('7.0.0-RC1')
- new GrailsVersion('7.0.0-RC1') > new GrailsVersion('7.0.0-SNAPSHOT')
- new GrailsVersion('7.0.0-M2') > new GrailsVersion('7.0.0-M1')
- new GrailsVersion('7.0.0-M1') > new GrailsVersion('7.0.0-SNAPSHOT')
+ new GrailsVersion('7.0.0') > new GrailsVersion('7.0.1')
+ new GrailsVersion('7.0.1') < new GrailsVersion('7.0.0')
+ new GrailsVersion('7.0.0') > new GrailsVersion('7.1.0')
+ new GrailsVersion('8.0.0') < new GrailsVersion('7.0.0')
+ new GrailsVersion('7.0.0') < new GrailsVersion('7.0.0-SNAPSHOT')
+ new GrailsVersion('7.0.0') < new GrailsVersion('7.0.0-RC1')
+ new GrailsVersion('7.0.0') < new GrailsVersion('7.0.0-M1')
+ new GrailsVersion('7.0.0-RC1') < new GrailsVersion('7.0.0-M1')
+ new GrailsVersion('7.0.0-RC2') < new GrailsVersion('7.0.0-RC1')
+ new GrailsVersion('7.0.0-RC1') < new GrailsVersion('7.0.0-SNAPSHOT')
+ new GrailsVersion('7.0.0-M2') < new GrailsVersion('7.0.0-M1')
+ new GrailsVersion('7.0.0-M1') < new GrailsVersion('7.0.0-SNAPSHOT')
}
def "sorted"() {
expect:
- [new GrailsVersion('7.0.0'), new GrailsVersion('7.0.0-RC1'), new
GrailsVersion('7.0.0-M1'), new GrailsVersion('7.0.0-SNAPSHOT')].sort() == [
- new GrailsVersion('7.0.0-SNAPSHOT'),
- new GrailsVersion('7.0.0-M1'),
- new GrailsVersion('7.0.0-RC1'),
- new GrailsVersion('7.0.0')
+ [
+ new GrailsVersion('8.0.0'),
+ new GrailsVersion('8.0.0-RC1'),
+ new GrailsVersion('8.0.0-M1'),
+ new GrailsVersion('8.0.0-SNAPSHOT'),
+ new GrailsVersion('7.1.1'),
+ new GrailsVersion('7.1.1-RC1'),
+ new GrailsVersion('7.1.1-M1'),
+ new GrailsVersion('7.1.1-SNAPSHOT'),
+ new GrailsVersion('7.1.0'),
+ new GrailsVersion('7.1.0-RC1'),
+ new GrailsVersion('7.1.0-M1'),
+ new GrailsVersion('7.1.0-SNAPSHOT'),
+ new GrailsVersion('7.0.1'),
+ new GrailsVersion('7.0.1-RC1'),
+ new GrailsVersion('7.0.1-M1'),
+ new GrailsVersion('7.0.1-SNAPSHOT'),
+ new GrailsVersion('7.0.0'),
+ new GrailsVersion('7.0.0-RC1'),
+ new GrailsVersion('7.0.0-M1'),
+ new GrailsVersion('7.0.0-SNAPSHOT'),
]
+ ==
+ [
+ new GrailsVersion('7.0.0'),
+ new GrailsVersion('7.0.0-RC1'),
+ new GrailsVersion('7.0.0-M1'),
+ new GrailsVersion('7.0.0-SNAPSHOT'),
+ new GrailsVersion('7.1.1'),
+ new GrailsVersion('7.1.1-RC1'),
+ new GrailsVersion('7.1.1-M1'),
+ new GrailsVersion('7.1.1-SNAPSHOT'),
+ new GrailsVersion('8.0.0'),
+ new GrailsVersion('8.0.0-RC1'),
+ new GrailsVersion('7.1.0'),
+ new GrailsVersion('7.1.0-RC1'),
+ new GrailsVersion('7.1.0-M1'),
+ new GrailsVersion('7.1.0-SNAPSHOT'),
+ new GrailsVersion('8.0.0-M1'),
+ new GrailsVersion('8.0.0-SNAPSHOT'),
+ new GrailsVersion('7.0.1'),
+ new GrailsVersion('7.0.1-RC1'),
+ new GrailsVersion('7.0.1-M1'),
+ new GrailsVersion('7.0.1-SNAPSHOT'),
+ ].sort()
}
}