Skip to content

Commit 3e6e57f

Browse files
authored
Merge pull request #424 from ricardoapaes/fully-support-semver
✨ feat: Updating regex to fully support "semver"
2 parents 20009ae + dd669e5 commit 3e6e57f

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

src/main/java/com/akathist/maven/plugins/launch4j/generators/Launch4jFileVersionGenerator.java

+8-6
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
import java.util.Arrays;
44
import java.util.List;
5+
import java.util.regex.Matcher;
56
import java.util.regex.Pattern;
67

78
public class Launch4jFileVersionGenerator {
89
private static final int REQUIRED_NESTED_VERSION_LEVELS = 4;
9-
private static final String SIMPLE_PROJECT_VERSION_REGEX = "^((\\d(\\.)?)*\\d+)(-\\w+)?$";
10+
private static final String SIMPLE_PROJECT_VERSION_REGEX = "^((\\d(\\.)?)*\\d+)(-\\w+)?(?:-(?<prerelease>[\\w.-]+))?(?:\\+(?<build>[\\w.-]+))?$";
1011
private static final Pattern simpleProjectVersionPattern = Pattern.compile(
1112
SIMPLE_PROJECT_VERSION_REGEX, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE
1213
);
@@ -40,12 +41,13 @@ public static String generate(String projectVersion) {
4041
}
4142

4243
private static String removeTextFlags(String version) {
43-
if(version.contains("-")) {
44-
String[] parts = version.split("-");
45-
return parts[0];
44+
Pattern pattern = Pattern.compile("[-+]");
45+
Matcher matcher = pattern.matcher(version);
46+
if (matcher.find()) {
47+
return version.substring(0, matcher.start());
48+
} else {
49+
return version;
4650
}
47-
48-
return version;
4951
}
5052

5153
private static String cutOffTooManyNestedLevels(String versionLevels) {

src/test/java/com/akathist/maven/plugins/launch4j/generators/Launch4jFileVersionGeneratorTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,13 @@ public void shouldFillMissingPlacesByZeros(String projectVersion, String expecte
5959
"1.2.1-alpha, 1.2.1.0",
6060
"1.2.3.4-beta, 1.2.3.4",
6161
"0.0.1-snapshot, 0.0.1.0",
62+
"1.2.3.4-alpha+001, 1.2.3.4",
63+
"1.2.3-alpha+001, 1.2.3.0",
64+
"1.2.3.4-alpha+001, 1.2.3.4",
65+
"1.2.3+20130313144700, 1.2.3.0",
66+
"1.2.3.4+20130313144700, 1.2.3.4",
67+
"1.2.3-beta+exp.sha.5114f85, 1.2.3.0",
68+
"1.2.3.4-beta+exp.sha.5114f85, 1.2.3.4",
6269
})
6370
public void shouldCutOffTextFlags(String projectVersion, String expected) {
6471
// when

0 commit comments

Comments
 (0)