Skip to content

Commit eb4fc26

Browse files
Hardikrathod01Hardik Rathod
andauthored
fix: remove custom VersionComparator logic
* Update version comparator logic to consider cases where version before separator is important * Update for using only upstream comparator --------- Co-authored-by: Hardik Rathod <hardik.rathod@fruitcore.de>
1 parent aaf230d commit eb4fc26

File tree

2 files changed

+27
-40
lines changed

2 files changed

+27
-40
lines changed

src/main/java/hudson/plugins/jira/versionparameter/VersionComparator.java

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,32 +21,13 @@ public class VersionComparator implements Comparator<Version> {
2121

2222
@Override
2323
public int compare(Version rev1, Version rev2) {
24-
ComparableVersion comparableVersion1 = new ComparableVersion(getNumberVersion(rev1.getName()));
25-
ComparableVersion comparableVersion2 = new ComparableVersion(getNumberVersion(rev2.getName()));
24+
ComparableVersion comparableVersion1 = new ComparableVersion(rev1.getName());
25+
ComparableVersion comparableVersion2 = new ComparableVersion(rev2.getName());
2626
int comparisonResult = comparableVersion2.compareTo(comparableVersion1);
27-
if (comparisonResult == 0) {
28-
comparableVersion1 = new ComparableVersion(rev1.getName());
29-
comparableVersion2 = new ComparableVersion(rev2.getName());
30-
comparisonResult = comparableVersion1.compareTo(comparableVersion2);
31-
}
32-
return comparisonResult;
33-
}
34-
35-
/**
36-
* For the cases like this:
37-
* PDFREPORT-2.3.4
38-
* return this
39-
* 2.3.4
40-
*/
41-
protected String getNumberVersion(String firstV) {
42-
String res = firstV;
43-
if (firstV.contains("-")) {
44-
String[] splittedVersion = firstV.split("-");
45-
if (splittedVersion.length > 1) {
46-
res = splittedVersion[1];
47-
}
48-
}
49-
50-
return res;
27+
if (comparisonResult > 0) {
28+
return 1;
29+
} else if (comparisonResult < 0) {
30+
return -1;
31+
} else return 0;
5132
}
5233
}

src/test/java/hudson/plugins/jira/versionparameter/VersionComparatorTest.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,28 @@ void complexCompare() {
2424
"PDFREPORT-",
2525
"1.1.1.2",
2626
"VER 1.0",
27-
"1.1.1.1"
27+
"1.1.1.1",
28+
"FOO-1.1.1-RC1",
29+
"FOO-1.1.1-RC2",
30+
"1.1.1-RC1",
31+
"1.1.1-RC2"
2832
};
2933

3034
String[] expected = {
3135
"9.9.9.9.9",
32-
"V-5.2.3",
33-
"PDFREPORT-2.3.4",
34-
"PDFREPORT-2.3",
3536
"1.12.2.3.4",
3637
"1.3.4",
3738
"1.1.1.2",
3839
"1.1.1.1",
40+
"1.1.1-RC2",
41+
"1.1.1-RC1",
3942
"VER 1.0",
40-
"PDFREPORT-"
43+
"V-5.2.3",
44+
"PDFREPORT-2.3.4",
45+
"PDFREPORT-2.3",
46+
"PDFREPORT-",
47+
"FOO-1.1.1-RC2",
48+
"FOO-1.1.1-RC1",
4149
};
4250

4351
List<String> result = Arrays.asList(input).stream()
@@ -52,8 +60,8 @@ void complexCompare() {
5260
void singleComparisonsTests() {
5361

5462
assertEquals(0, compare("1.1.1.1", "1.1.1.1"));
55-
assertEquals(-1, compare("A-1.1.1.1", "1.1.1.1"));
56-
assertEquals(1, compare("1.1.1.1", "A-1.1.1.1"));
63+
assertEquals(1, compare("A-1.1.1.1", "1.1.1.1"));
64+
assertEquals(-1, compare("1.1.1.1", "A-1.1.1.1"));
5765
assertEquals(1, compare("1.1.1.1", "1.1.1.1.1"));
5866
assertEquals(-1, compare("1.1.1.1", "1.1.1"));
5967
assertEquals(1, compare("1.1.1.2", "1.1.1.3"));
@@ -63,21 +71,19 @@ void singleComparisonsTests() {
6371
assertEquals(1, compare("2.0.5.4", "4.0"));
6472
assertEquals(-1, compare("1.12.1.1", "1.1.1.2"));
6573
assertEquals(1, compare("1.1.1-RC1", "1.1.1-RC2"));
66-
assertEquals(-1, compare("PDFREPORT-2.3.4", "1.2.3"));
74+
assertEquals(1, compare("PDFREPORT-2.3.4", "1.2.3"));
6775
assertEquals(1, compare("PDFREPORT-2.3.4", "4.5.6"));
68-
assertEquals(-1, compare("PDFREPORT-2.3.4", "x"));
76+
assertEquals(1, compare("PDFREPORT-2.3.4", "x"));
6977
assertEquals(0, compare("PDFREPORT2-", "PDFREPORT2-"));
7078
assertEquals(1, compare("PDFREPORT-", "PDFREPORT2-"));
79+
assertEquals(-1, compare("1.1.2-RC1", "1.1.1-RC2"));
80+
assertEquals(-1, compare("2.2.2-RC1", "1.1.1-RC1"));
81+
assertEquals(1, compare("FOO-1.1.1-RC1", "FOO-1.1.1-RC2"));
7182
}
7283

7384
private int compare(String v1, String v2) {
7485
return VersionComparator.INSTANCE.compare(
7586
new Version(null, null, v1, null, false, false, null),
7687
new Version(null, null, v2, null, false, false, null));
7788
}
78-
79-
@Test
80-
void getNumberVersionTest() {
81-
assertEquals("2.3.4", VersionComparator.INSTANCE.getNumberVersion("PDFREPORT-2.3.4"));
82-
}
8389
}

0 commit comments

Comments
 (0)