diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesService.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesService.kt index 80239696d14..d8b1f8486a5 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesService.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesService.kt @@ -11,7 +11,7 @@ import com.intellij.openapi.roots.ModuleRootListener import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService import software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.ModuleDependencyProvider.Companion.EP_NAME import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams -import java.util.concurrent.CompletableFuture +import software.aws.toolkits.jetbrains.utils.pluginAwareExecuteOnPooledThread class DefaultModuleDependenciesService( private val project: Project, @@ -34,10 +34,13 @@ class DefaultModuleDependenciesService( syncAllModules() } - override fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams): CompletableFuture = + override fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams) { AmazonQLspService.executeIfRunning(project) { languageServer -> - languageServer.didChangeDependencyPaths(params) - }?.toCompletableFuture() ?: CompletableFuture.failedFuture(IllegalStateException("LSP Server not running")) + pluginAwareExecuteOnPooledThread { + languageServer.didChangeDependencyPaths(params) + } + } + } private fun syncAllModules() { ModuleManager.getInstance(project).modules.forEach { module -> diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependenciesService.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependenciesService.kt index 82370dad895..6cc41eab289 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependenciesService.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependenciesService.kt @@ -4,8 +4,7 @@ package software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams -import java.util.concurrent.CompletableFuture interface ModuleDependenciesService { - fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams): CompletableFuture + fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams) } diff --git a/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesServiceTest.kt b/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesServiceTest.kt index 618b768a69a..23759aec863 100644 --- a/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesServiceTest.kt +++ b/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesServiceTest.kt @@ -3,14 +3,13 @@ package software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies import com.intellij.openapi.Disposable -import com.intellij.openapi.application.Application -import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.components.serviceIfCreated import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.module.Module import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ModuleRootEvent +import com.intellij.testFramework.ApplicationExtension import com.intellij.util.messages.MessageBus import com.intellij.util.messages.MessageBusConnection import io.mockk.every @@ -23,6 +22,7 @@ import io.mockk.verify import org.eclipse.lsp4j.jsonrpc.messages.ResponseMessage import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test +import org.junit.jupiter.api.extension.ExtendWith import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLanguageServer import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService import software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.ModuleDependencyProvider.Companion.EP_NAME @@ -30,12 +30,12 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependenci import java.util.concurrent.CompletableFuture import java.util.function.Consumer +@ExtendWith(ApplicationExtension::class) class DefaultModuleDependenciesServiceTest { private lateinit var project: Project private lateinit var mockLanguageServer: AmazonQLanguageServer private lateinit var mockModuleManager: ModuleManager private lateinit var sut: DefaultModuleDependenciesService - private lateinit var mockApplication: Application private lateinit var mockDependencyProvider: ModuleDependencyProvider @BeforeEach @@ -47,11 +47,6 @@ class DefaultModuleDependenciesServiceTest { every { mockLanguageServer.didChangeDependencyPaths(any()) } returns CompletableFuture() - // Mock Application - mockApplication = mockk() - mockkStatic(ApplicationManager::class) - every { ApplicationManager.getApplication() } returns mockApplication - // Mock message bus val messageBus = mockk() every { project.messageBus } returns messageBus