diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java index b9f71ba5ccff..002892f156bc 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java @@ -98,7 +98,7 @@ public final class PluginInstaller { @ApiStatus.Internal public static boolean unloadDynamicPlugin( @Nullable JComponent parentComponent, - @NotNull IdeaPluginDescriptorImpl pluginDescriptor, + @NotNull PluginMainDescriptor pluginDescriptor, boolean isUpdate ) { var options = new DynamicPlugins.UnloadPluginOptions().withDisable(false).withWaitForClassloaderUnload(true).withUpdate(isUpdate); @@ -110,7 +110,7 @@ public final class PluginInstaller { @ApiStatus.Internal public static boolean uninstallDynamicPlugin( @Nullable JComponent parentComponent, - @NotNull IdeaPluginDescriptorImpl pluginDescriptor, + @NotNull PluginMainDescriptor pluginDescriptor, boolean isUpdate ) { if (pluginDescriptor.isBundled()) { diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/DefaultUiPluginManagerController.kt b/platform/platform-impl/src/com/intellij/ide/plugins/newui/DefaultUiPluginManagerController.kt index f8c79ec2576f..2ecac647d68d 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/DefaultUiPluginManagerController.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/DefaultUiPluginManagerController.kt @@ -16,12 +16,7 @@ import com.intellij.ide.plugins.PluginUtils.toPluginDescriptors import com.intellij.ide.plugins.api.PluginDto import com.intellij.ide.plugins.marketplace.* import com.intellij.ide.plugins.newui.PluginInstallationCustomization.Companion.findPluginInstallationCustomization -import com.intellij.openapi.application.ApplicationInfo -import com.intellij.openapi.application.ApplicationManager -import com.intellij.openapi.application.EDT -import com.intellij.openapi.application.ModalityState -import com.intellij.openapi.application.PathManager -import com.intellij.openapi.application.asContextElement +import com.intellij.openapi.application.* import com.intellij.openapi.application.ex.ApplicationInfoEx import com.intellij.openapi.components.service import com.intellij.openapi.diagnostic.Logger @@ -394,7 +389,7 @@ object DefaultUiPluginManagerController : UiPluginManagerController { session.statesDiff.clear(); session.pluginsToRemoveOnCancel.forEach { - PluginInstaller.uninstallDynamicPlugin(parentComponent, it, false) + PluginInstaller.uninstallDynamicPlugin(parentComponent, it.getMainDescriptor(), false) } session.pluginsToRemoveOnCancel.clear() if (removeSession) { @@ -530,8 +525,8 @@ object DefaultUiPluginManagerController : UiPluginManagerController { private fun uninstallDynamicPlugin(parentComponent: JComponent?, sessionId: String, pluginId: PluginId, isUpdate: Boolean): Boolean { val session = findSession(sessionId) ?: return true - val descriptorImpl = PluginManagerCore.findPlugin(pluginId) ?: return false - val uninstalledWithoutRestart = PluginInstaller.uninstallDynamicPlugin(parentComponent, descriptorImpl, isUpdate) + val plugin = PluginManagerCore.findPlugin(pluginId)?.getMainDescriptor() ?: return false + val uninstalledWithoutRestart = PluginInstaller.uninstallDynamicPlugin(parentComponent, plugin, isUpdate) session.needRestart = session.needRestart || !uninstalledWithoutRestart return uninstalledWithoutRestart } diff --git a/platform/pluginManager/backend/src/com/intellij/platform/pluginManager/backend/rpc/BackendPluginInstallerApi.kt b/platform/pluginManager/backend/src/com/intellij/platform/pluginManager/backend/rpc/BackendPluginInstallerApi.kt index 6b26167ca96d..6125c2a26b85 100644 --- a/platform/pluginManager/backend/src/com/intellij/platform/pluginManager/backend/rpc/BackendPluginInstallerApi.kt +++ b/platform/pluginManager/backend/src/com/intellij/platform/pluginManager/backend/rpc/BackendPluginInstallerApi.kt @@ -1,26 +1,15 @@ // Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.platform.pluginManager.backend.rpc -import com.intellij.ide.plugins.DynamicPlugins -import com.intellij.ide.plugins.InstallFromDiskAction -import com.intellij.ide.plugins.InstallPluginRequest -import com.intellij.ide.plugins.InstalledPluginsTableModel -import com.intellij.ide.plugins.PluginEnabler -import com.intellij.ide.plugins.PluginInstaller -import com.intellij.ide.plugins.PluginManagerCore -import com.intellij.ide.plugins.api.PluginDto import com.intellij.ide.plugins.* +import com.intellij.ide.plugins.api.PluginDto import com.intellij.ide.plugins.marketplace.* -import com.intellij.ide.plugins.newui.BgProgressIndicator import com.intellij.ide.plugins.newui.DefaultUiPluginManagerController import com.intellij.ide.plugins.newui.PluginManagerSessionService -import com.intellij.ide.plugins.newui.PluginUiModel import com.intellij.ide.plugins.newui.SessionStatePluginEnabler import com.intellij.openapi.application.EDT import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.extensions.PluginId -import com.intellij.openapi.util.IntellijInternalApi -import com.intellij.openapi.project.Project import com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.FUSEventSource import com.intellij.openapi.util.io.FileUtil import com.intellij.platform.pluginManager.shared.rpc.PluginInstallerApi @@ -35,7 +24,7 @@ import java.io.IOException internal class BackendPluginInstallerApi : PluginInstallerApi { override suspend fun unloadDynamicPlugin(pluginId: PluginId, isUpdate: Boolean): Boolean { - val pluginDescriptor = PluginManagerCore.findPlugin(pluginId) ?: return false + val pluginDescriptor = PluginManagerCore.findPlugin(pluginId)?.getMainDescriptor() ?: return false return PluginInstaller.unloadDynamicPlugin(null, pluginDescriptor, isUpdate) }