From c9c5a844e668dbbed9b5b8c7fa22335e14cc9b65 Mon Sep 17 00:00:00 2001 From: Maksim Zuev Date: Mon, 12 May 2025 16:04:49 +0200 Subject: [PATCH] [debugger] HotSwap: use postStartupActivity instead of `preload=true` GitOrigin-RevId: 89fd3c8a8ac3fb73b8e9dc348e9df418f81bb362 --- .../debugger/impl/resources/META-INF/java-debugger.xml | 2 +- .../impl/hotswap/HotSwapDebugSessionListener.kt | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/java/debugger/impl/resources/META-INF/java-debugger.xml b/java/debugger/impl/resources/META-INF/java-debugger.xml index 7213d8b0789e..964237540aa5 100644 --- a/java/debugger/impl/resources/META-INF/java-debugger.xml +++ b/java/debugger/impl/resources/META-INF/java-debugger.xml @@ -93,7 +93,7 @@ - + diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/hotswap/HotSwapDebugSessionListener.kt b/java/debugger/impl/src/com/intellij/debugger/impl/hotswap/HotSwapDebugSessionListener.kt index e8e8a3c45ea8..f62c0ae9d1b1 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/hotswap/HotSwapDebugSessionListener.kt +++ b/java/debugger/impl/src/com/intellij/debugger/impl/hotswap/HotSwapDebugSessionListener.kt @@ -5,8 +5,11 @@ import com.intellij.debugger.engine.JavaDebugProcess import com.intellij.debugger.impl.DebuggerSession import com.intellij.debugger.ui.HotSwapStatusListener import com.intellij.openapi.Disposable +import com.intellij.openapi.components.Service import com.intellij.openapi.components.service +import com.intellij.openapi.components.serviceAsync import com.intellij.openapi.project.Project +import com.intellij.openapi.startup.ProjectActivity import com.intellij.openapi.util.Disposer import com.intellij.openapi.util.registry.Registry import com.intellij.util.asDisposable @@ -23,6 +26,13 @@ import java.util.concurrent.ConcurrentHashMap private data class JavaHotSwapSessionEntry(val hotSwapSession: HotSwapSession<*>, val disposable: Disposable) +private class HotSwapManagerInitActivity : ProjectActivity { + override suspend fun execute(project: Project) { + project.serviceAsync() + } +} + +@Service(Service.Level.PROJECT) internal class HotSwapDebugSessionManager(project: Project, cs: CoroutineScope) : XDebuggerManagerListener { private val sessions = ConcurrentHashMap()