Skip to content

Commit 387e8b1

Browse files
committed
Adjust Boot version validations to include Spring Runtime support
1 parent 2f52905 commit 387e8b1

File tree

4 files changed

+40
-9
lines changed

4 files changed

+40
-9
lines changed

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/GenerationsValidator.java

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,12 @@
1313
import java.util.Collection;
1414
import java.util.List;
1515

16+
import org.eclipse.lsp4j.CodeAction;
17+
import org.eclipse.lsp4j.CodeActionKind;
18+
import org.eclipse.lsp4j.Command;
1619
import org.eclipse.lsp4j.Diagnostic;
20+
import org.eclipse.lsp4j.Range;
21+
import org.eclipse.lsp4j.ShowDocumentParams;
1722
import org.springframework.ide.vscode.boot.validation.generations.json.Generation;
1823
import org.springframework.ide.vscode.boot.validation.generations.json.ResolvedSpringProject;
1924
import org.springframework.ide.vscode.boot.validation.generations.preferences.VersionValidationProblemType;
@@ -26,6 +31,8 @@
2631

2732
public class GenerationsValidator extends AbstractDiagnosticValidator {
2833

34+
private static String SPRING_COMMERCIAL_URL = "https://tanzu.vmware.com/spring-runtime";
35+
2936
private SpringProjectsProvider provider;
3037

3138
public GenerationsValidator(DiagnosticSeverityProvider diagnosticSeverityProvider, SpringProjectsProvider provider) {
@@ -55,6 +62,9 @@ public Collection<Diagnostic> validate(IJavaProject javaProject, Version javaPro
5562
Generation javaProjectGen = getGenerationForJavaProject(javaProject, springProject);
5663
ImmutableList.Builder<Diagnostic> b = ImmutableList.builder();
5764

65+
boolean validCommercialSupport = VersionValidationUtils.isCommercialValid(javaProjectGen);
66+
67+
5868
if (VersionValidationUtils.isOssValid(javaProjectGen)) {
5969
StringBuilder message = new StringBuilder();
6070
message.append("OSS support for Spring Boot ");
@@ -75,14 +85,22 @@ public Collection<Diagnostic> validate(IJavaProject javaProject, Version javaPro
7585
message.append(javaProjectGen.getName());
7686
message.append(" no longer available, ended on: ");
7787
message.append(javaProjectGen.getOssSupportEndDate());
88+
if (validCommercialSupport) {
89+
message.append(", get commercial support until ");
90+
message.append(javaProjectGen.getCommercialSupportEndDate());
91+
message.append(" via Tanzu Spring Runtime at https://tanzu.vmware.com/spring-runtime");
92+
}
7893
}
7994
Diagnostic d = createDiagnostic(VersionValidationProblemType.UNSUPPORTED_OSS_VERSION, message.toString());
95+
if (validCommercialSupport) {
96+
d.setData(List.of(getCommercialSupportCodeAction()));
97+
}
8098
if (d != null) {
8199
b.add(d);
82100
}
83101
}
84102

85-
if (VersionValidationUtils.isCommercialValid(javaProjectGen)) {
103+
if (validCommercialSupport) {
86104
StringBuilder message = new StringBuilder();
87105
message.append("Commercial support for Spring Boot ");
88106
message.append(javaProjectGen.getName());
@@ -121,5 +139,19 @@ public boolean isEnabled() {
121139
VersionValidationProblemType.UNSUPPORTED_COMMERCIAL_VERSION
122140
);
123141
}
142+
143+
private static CodeAction getCommercialSupportCodeAction() {
144+
CodeAction commercialSupportLink = new CodeAction();
145+
commercialSupportLink.setKind(CodeActionKind.QuickFix);
146+
commercialSupportLink.setTitle("Get commercial Spring Boot support via Tanzu Spring Runtime");
147+
ShowDocumentParams showDocumentParams = new ShowDocumentParams(SPRING_COMMERCIAL_URL);
148+
showDocumentParams.setExternal(true);
149+
showDocumentParams.setTakeFocus(true);
150+
showDocumentParams.setSelection(new Range());
151+
commercialSupportLink.setCommand(new Command("Get commercial Spring Boot support via Tanzu Spring Runtime", "sts/show/document",
152+
ImmutableList.of(showDocumentParams)));
153+
return commercialSupportLink;
154+
}
155+
124156

125157
}

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/preferences/VersionValidationProblemType.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
*******************************************************************************/
1111
package org.springframework.ide.vscode.boot.validation.generations.preferences;
1212

13-
import static org.springframework.ide.vscode.commons.languageserver.reconcile.ProblemSeverity.HINT;
1413
import static org.springframework.ide.vscode.commons.languageserver.reconcile.ProblemSeverity.IGNORE;
1514
import static org.springframework.ide.vscode.commons.languageserver.reconcile.ProblemSeverity.INFO;
1615
import static org.springframework.ide.vscode.commons.languageserver.reconcile.ProblemSeverity.WARNING;
@@ -24,9 +23,9 @@ public enum VersionValidationProblemType implements ProblemType {
2423

2524
SUPPORTED_OSS_VERSION(IGNORE, "Supported OSS Boot Version", "Supported OSS Boot Version"),
2625

27-
UNSUPPORTED_OSS_VERSION(HINT, "Unsupported OSS Version", "Unsupported OSS Version"),
26+
UNSUPPORTED_OSS_VERSION(WARNING, "Unsupported OSS Version", "Unsupported OSS Version"),
2827

29-
UNSUPPORTED_COMMERCIAL_VERSION(HINT, "Unsupported Commercial Version", "Unsupported Commercial Version"),
28+
UNSUPPORTED_COMMERCIAL_VERSION(WARNING, "Unsupported Commercial Version", "Unsupported Commercial Version"),
3029

3130
SUPPORTED_COMMERCIAL_VERSION(IGNORE, "Supported Commercial Version", "Supported Commercial Version"),
3231

headless-services/spring-boot-language-server/src/main/resources/problem-types.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,13 +355,13 @@
355355
"code": "UNSUPPORTED_OSS_VERSION",
356356
"label": "Unsupported OSS Version",
357357
"description": "Unsupported OSS Version",
358-
"defaultSeverity": "HINT"
358+
"defaultSeverity": "WARNING"
359359
},
360360
{
361361
"code": "UNSUPPORTED_COMMERCIAL_VERSION",
362362
"label": "Unsupported Commercial Version",
363363
"description": "Unsupported Commercial Version",
364-
"defaultSeverity": "HINT"
364+
"defaultSeverity": "WARNING"
365365
},
366366
{
367367
"code": "SUPPORTED_COMMERCIAL_VERSION",

vscode-extensions/vscode-spring-boot/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@
924924
},
925925
"spring-boot.ls.problem.version-validation.UNSUPPORTED_OSS_VERSION": {
926926
"type": "string",
927-
"default": "HINT",
927+
"default": "WARNING",
928928
"description": "Unsupported OSS Version",
929929
"enum": [
930930
"IGNORE",
@@ -936,7 +936,7 @@
936936
},
937937
"spring-boot.ls.problem.version-validation.UNSUPPORTED_COMMERCIAL_VERSION": {
938938
"type": "string",
939-
"default": "HINT",
939+
"default": "WARNING",
940940
"description": "Unsupported Commercial Version",
941941
"enum": [
942942
"IGNORE",
@@ -1038,4 +1038,4 @@
10381038
"extensionDependencies": [
10391039
"redhat.java"
10401040
]
1041-
}
1041+
}

0 commit comments

Comments
 (0)