From 7e434c81fdbef7460655fa0c878e01c70d8af1f0 Mon Sep 17 00:00:00 2001 From: aboyko Date: Mon, 8 Aug 2022 19:01:18 -0400 Subject: [PATCH] Correct regex matching boot project versions --- .../vscode/commons/java/SpringProjectUtil.java | 7 +++++-- .../ide/vscode/commons/java/Version.java | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/SpringProjectUtil.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/SpringProjectUtil.java index 7e2e76a8a..fb3f451a4 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/SpringProjectUtil.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/SpringProjectUtil.java @@ -24,7 +24,7 @@ public class SpringProjectUtil { public static final String SPRING_BOOT = "spring-boot"; - private static final String VERION_PATTERN_STR = "(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?"; + private static final String VERION_PATTERN_STR = "(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)((\\.|-).+)?"; public static final Logger log = LoggerFactory.getLogger(SpringProjectUtil.class); @@ -131,7 +131,10 @@ public class SpringProjectUtil { String major = matcher.group(1); String minor = matcher.group(2); String patch = matcher.group(3); - String qualifier = matcher.group(4); + String qualifier = null; + if (matcher.group(4) != null && matcher.group(4).length() > 1) { + qualifier = matcher.group(4).substring(1); + } return new Version( Integer.parseInt(major), Integer.parseInt(minor), diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/Version.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/Version.java index 810892bd2..484416bdc 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/Version.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/Version.java @@ -18,7 +18,6 @@ public final class Version { private String qualifier; public Version(int major, int minor, int patch, String qualifier) { - super(); this.major = major; this.minor = minor; this.patch = patch; @@ -41,4 +40,19 @@ public final class Version { return qualifier; } + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(major); + sb.append('.'); + sb.append(minor); + sb.append('.'); + sb.append(patch); + if (qualifier != null) { + sb.append('.'); + sb.append(qualifier); + } + return sb.toString(); + } + }