From b59b6123dd61900d5a62a1099776b40aeb15c791 Mon Sep 17 00:00:00 2001 From: aboyko Date: Mon, 5 Jun 2023 12:14:58 -0400 Subject: [PATCH] Boot upgrade closest minor version can't be below current version --- .../tooling/boot/ls/prefs/PrefsInitializer.java | 1 + .../ide/vscode/boot/java/rewrite/SpringBootUpgrade.java | 3 ++- .../boot/validation/generations/UpdateBootVersion.java | 5 +++++ vscode-extensions/vscode-spring-boot/package.json | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java index ea12ded58..41139918a 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java @@ -58,6 +58,7 @@ public class PrefsInitializer extends AbstractPreferenceInitializer { "org.openrewrite.java.spring.boot2.UpgradeSpringBoot_2_6", "org.openrewrite.java.spring.boot2.UpgradeSpringBoot_2_7", "org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_0", + "org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_1", "org.rewrite.java.security.*", "org.springframework.rewrite.test.*", "rewrite.test.*" diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/SpringBootUpgrade.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/SpringBootUpgrade.java index a3531bd6a..1b5c7af7c 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/SpringBootUpgrade.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/SpringBootUpgrade.java @@ -46,7 +46,8 @@ public class SpringBootUpgrade { "2.5", "org.openrewrite.java.spring.boot2.UpgradeSpringBoot_2_5", "2.6", "org.openrewrite.java.spring.boot2.UpgradeSpringBoot_2_6", "2.7", "org.openrewrite.java.spring.boot2.UpgradeSpringBoot_2_7", - "3.0", "org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_0" + "3.0", "org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_0"/*, + "3.1", "org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_1"*/ ); private RewriteRecipeRepository recipeRepo; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/UpdateBootVersion.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/UpdateBootVersion.java index 0393bd060..96fab5cbb 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/UpdateBootVersion.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/UpdateBootVersion.java @@ -24,6 +24,7 @@ import org.eclipse.lsp4j.ShowDocumentParams; import org.springframework.ide.vscode.boot.java.rewrite.SpringBootUpgrade; import org.springframework.ide.vscode.boot.validation.generations.preferences.VersionValidationProblemType; import org.springframework.ide.vscode.commons.java.IJavaProject; +import org.springframework.ide.vscode.commons.java.SpringProjectUtil; import org.springframework.ide.vscode.commons.java.Version; import org.springframework.ide.vscode.commons.languageserver.reconcile.DiagnosticSeverityProvider; @@ -92,6 +93,10 @@ public class UpdateBootVersion extends AbstractDiagnosticValidator { List actions = new ArrayList<>(2); bootUpgradeOpt.flatMap(bu -> bu.getNearestAvailableMinorVersion(latest)).map(targetVersion -> { + Version upgradeVersion = SpringProjectUtil.getVersion(targetVersion); + if (javaProjectVersion.compareTo(upgradeVersion) >= 0) { + return null; + } CodeAction c = new CodeAction(); c.setKind(CodeActionKind.QuickFix); c.setTitle("Upgrade to Spring Boot " + targetVersion + " (executes the full project conversion recipe from OpenRewrite)"); diff --git a/vscode-extensions/vscode-spring-boot/package.json b/vscode-extensions/vscode-spring-boot/package.json index 995c3216f..06a613db8 100644 --- a/vscode-extensions/vscode-spring-boot/package.json +++ b/vscode-extensions/vscode-spring-boot/package.json @@ -249,6 +249,7 @@ "org.openrewrite.java.spring.boot2.UpgradeSpringBoot_2_6", "org.openrewrite.java.spring.boot2.UpgradeSpringBoot_2_7", "org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_0", + "org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_1", "org.rewrite.java.security.*", "org.springframework.rewrite.test.*", "rewrite.test.*"