Skip to content

Commit 2613e64

Browse files
committed
fix: rework sorting order of GrailsVersion to ensure the highest version comes first
1 parent 7f4c725 commit 2613e64

File tree

2 files changed

+64
-25
lines changed

2 files changed

+64
-25
lines changed

grails-wrapper/src/main/java/grails/init/GrailsVersion.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,30 +107,30 @@ public int compareTo(GrailsVersion o) {
107107
return 0;
108108
}
109109

110-
if (releaseType != o.releaseType) {
111-
return o.releaseType.ordinal() - releaseType.ordinal();
112-
}
113-
114-
int majorCompare = Integer.compare(this.major, o.major);
110+
int majorCompare = Integer.compare(o.major, this.major);
115111
if (majorCompare != 0) {
116112
return majorCompare;
117113
}
118114

119-
int minorCompare = Integer.compare(this.minor, o.minor);
115+
int minorCompare = Integer.compare(o.minor, this.minor);
120116
if (minorCompare != 0) {
121117
return minorCompare;
122118
}
123119

124-
int patchCompare = Integer.compare(this.patch, o.patch);
120+
int patchCompare = Integer.compare(o.patch, this.patch);
125121
if (patchCompare != 0) {
126122
return patchCompare;
127123
}
128124

125+
if (releaseType != o.releaseType) {
126+
return releaseType.ordinal() - o.releaseType.ordinal();
127+
}
128+
129129
if (candidate == null) {
130130
return 0;
131131
}
132132

133-
return Integer.compare(this.candidate, o.candidate);
133+
return Integer.compare(o.candidate, this.candidate);
134134
}
135135

136136
@Override

grails-wrapper/src/test/groovy/grails/init/GrailsVersionSpec.groovy

Lines changed: 56 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,27 +49,66 @@ class GrailsVersionSpec extends Specification {
4949

5050
def "comparison checks"() {
5151
expect:
52-
new GrailsVersion('7.0.0') < new GrailsVersion('7.0.1')
53-
new GrailsVersion('7.0.1') > new GrailsVersion('7.0.0')
54-
new GrailsVersion('7.0.0') < new GrailsVersion('7.1.0')
55-
new GrailsVersion('8.0.0') > new GrailsVersion('7.0.0')
56-
new GrailsVersion('7.0.0') > new GrailsVersion('7.0.0-SNAPSHOT')
57-
new GrailsVersion('7.0.0') > new GrailsVersion('7.0.0-RC1')
58-
new GrailsVersion('7.0.0') > new GrailsVersion('7.0.0-M1')
59-
new GrailsVersion('7.0.0-RC1') > new GrailsVersion('7.0.0-M1')
60-
new GrailsVersion('7.0.0-RC2') > new GrailsVersion('7.0.0-RC1')
61-
new GrailsVersion('7.0.0-RC1') > new GrailsVersion('7.0.0-SNAPSHOT')
62-
new GrailsVersion('7.0.0-M2') > new GrailsVersion('7.0.0-M1')
63-
new GrailsVersion('7.0.0-M1') > new GrailsVersion('7.0.0-SNAPSHOT')
52+
new GrailsVersion('7.0.0') > new GrailsVersion('7.0.1')
53+
new GrailsVersion('7.0.1') < new GrailsVersion('7.0.0')
54+
new GrailsVersion('7.0.0') > new GrailsVersion('7.1.0')
55+
new GrailsVersion('8.0.0') < new GrailsVersion('7.0.0')
56+
new GrailsVersion('7.0.0') < new GrailsVersion('7.0.0-SNAPSHOT')
57+
new GrailsVersion('7.0.0') < new GrailsVersion('7.0.0-RC1')
58+
new GrailsVersion('7.0.0') < new GrailsVersion('7.0.0-M1')
59+
new GrailsVersion('7.0.0-RC1') < new GrailsVersion('7.0.0-M1')
60+
new GrailsVersion('7.0.0-RC2') < new GrailsVersion('7.0.0-RC1')
61+
new GrailsVersion('7.0.0-RC1') < new GrailsVersion('7.0.0-SNAPSHOT')
62+
new GrailsVersion('7.0.0-M2') < new GrailsVersion('7.0.0-M1')
63+
new GrailsVersion('7.0.0-M1') < new GrailsVersion('7.0.0-SNAPSHOT')
6464
}
6565

6666
def "sorted"() {
6767
expect:
68-
[new GrailsVersion('7.0.0'), new GrailsVersion('7.0.0-RC1'), new GrailsVersion('7.0.0-M1'), new GrailsVersion('7.0.0-SNAPSHOT')].sort() == [
69-
new GrailsVersion('7.0.0-SNAPSHOT'),
70-
new GrailsVersion('7.0.0-M1'),
71-
new GrailsVersion('7.0.0-RC1'),
72-
new GrailsVersion('7.0.0')
68+
[
69+
new GrailsVersion('8.0.0'),
70+
new GrailsVersion('8.0.0-RC1'),
71+
new GrailsVersion('8.0.0-M1'),
72+
new GrailsVersion('8.0.0-SNAPSHOT'),
73+
new GrailsVersion('7.1.1'),
74+
new GrailsVersion('7.1.1-RC1'),
75+
new GrailsVersion('7.1.1-M1'),
76+
new GrailsVersion('7.1.1-SNAPSHOT'),
77+
new GrailsVersion('7.1.0'),
78+
new GrailsVersion('7.1.0-RC1'),
79+
new GrailsVersion('7.1.0-M1'),
80+
new GrailsVersion('7.1.0-SNAPSHOT'),
81+
new GrailsVersion('7.0.1'),
82+
new GrailsVersion('7.0.1-RC1'),
83+
new GrailsVersion('7.0.1-M1'),
84+
new GrailsVersion('7.0.1-SNAPSHOT'),
85+
new GrailsVersion('7.0.0'),
86+
new GrailsVersion('7.0.0-RC1'),
87+
new GrailsVersion('7.0.0-M1'),
88+
new GrailsVersion('7.0.0-SNAPSHOT'),
7389
]
90+
==
91+
[
92+
new GrailsVersion('7.0.0'),
93+
new GrailsVersion('7.0.0-RC1'),
94+
new GrailsVersion('7.0.0-M1'),
95+
new GrailsVersion('7.0.0-SNAPSHOT'),
96+
new GrailsVersion('7.1.1'),
97+
new GrailsVersion('7.1.1-RC1'),
98+
new GrailsVersion('7.1.1-M1'),
99+
new GrailsVersion('7.1.1-SNAPSHOT'),
100+
new GrailsVersion('8.0.0'),
101+
new GrailsVersion('8.0.0-RC1'),
102+
new GrailsVersion('7.1.0'),
103+
new GrailsVersion('7.1.0-RC1'),
104+
new GrailsVersion('7.1.0-M1'),
105+
new GrailsVersion('7.1.0-SNAPSHOT'),
106+
new GrailsVersion('8.0.0-M1'),
107+
new GrailsVersion('8.0.0-SNAPSHOT'),
108+
new GrailsVersion('7.0.1'),
109+
new GrailsVersion('7.0.1-RC1'),
110+
new GrailsVersion('7.0.1-M1'),
111+
new GrailsVersion('7.0.1-SNAPSHOT'),
112+
].sort()
74113
}
75114
}

0 commit comments

Comments
 (0)