diff --git a/gradle-jdks-enablement/src/main/java/com/palantir/gradle/jdks/enablement/GradleJdksEnablement.java b/gradle-jdks-enablement/src/main/java/com/palantir/gradle/jdks/enablement/GradleJdksEnablement.java index d86bcccb..5d9dbb50 100644 --- a/gradle-jdks-enablement/src/main/java/com/palantir/gradle/jdks/enablement/GradleJdksEnablement.java +++ b/gradle-jdks-enablement/src/main/java/com/palantir/gradle/jdks/enablement/GradleJdksEnablement.java @@ -25,7 +25,7 @@ import java.util.Optional; import java.util.Properties; -public class GradleJdksEnablement { +public final class GradleJdksEnablement { public static final String MINIMUM_SUPPORTED_GRADLE_VERSION = "7.6"; diff --git a/idea-plugin/src/main/java/com/palantir/gradle/jdks/GradleJdksProjectService.java b/idea-plugin/src/main/java/com/palantir/gradle/jdks/GradleJdksProjectService.java index cba27ccf..3fcc0017 100644 --- a/idea-plugin/src/main/java/com/palantir/gradle/jdks/GradleJdksProjectService.java +++ b/idea-plugin/src/main/java/com/palantir/gradle/jdks/GradleJdksProjectService.java @@ -29,13 +29,14 @@ import com.intellij.notification.Notification; import com.intellij.notification.NotificationGroupManager; import com.intellij.notification.NotificationType; +import com.intellij.openapi.Disposable; import com.intellij.openapi.components.Service; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Disposer; import com.intellij.openapi.wm.ToolWindow; import com.intellij.openapi.wm.ToolWindowAnchor; import com.intellij.openapi.wm.ToolWindowManager; +import com.intellij.platform.ide.progress.TaskCancellation; import com.intellij.platform.ide.progress.TasksKt; import com.intellij.platform.util.progress.StepsKt; import com.intellij.ui.content.Content; @@ -56,7 +57,7 @@ import org.jetbrains.plugins.gradle.settings.GradleSettings; @Service(Service.Level.PROJECT) -public final class GradleJdksProjectService { +public final class GradleJdksProjectService implements Disposable { private final Logger logger = Logger.getInstance(GradleJdksProjectService.class); private static final String TOOL_WINDOW_NAME = "Gradle JDK Setup"; @@ -81,7 +82,6 @@ private ConsoleView initConsoleView() { ContentFactory contentFactory = ContentFactory.getInstance(); Content content = contentFactory.createContent(newConsoleView.getComponent(), "", false); toolWindow.getContentManager().addContent(content); - Disposer.register(project, newConsoleView); }); return newConsoleView; @@ -111,6 +111,7 @@ public void maybeSetupGradleJdks() { TasksKt.withBackgroundProgress( project, "Gradle JDK Setup", + TaskCancellation.nonCancellable(), (_coroutineScope, continuation) -> { StepsKt.withProgressText( "`Gradle JDK Setup` is running. Logs in the `Gradle JDK Setup` window ...", @@ -191,4 +192,12 @@ private void updateGradleJvm() { } } } + + @Override + public void dispose() { + ConsoleView view = consoleView.get(); + if (view != null) { + view.dispose(); + } + } } diff --git a/idea-plugin/src/main/resources/META-INF/plugin.xml b/idea-plugin/src/main/resources/META-INF/plugin.xml index daddf16f..a739ce7d 100644 --- a/idea-plugin/src/main/resources/META-INF/plugin.xml +++ b/idea-plugin/src/main/resources/META-INF/plugin.xml @@ -1,4 +1,4 @@ - + palantir-gradle-jdks palantir-gradle-jdks