From 52c10f3acf4fc84b1cdc05bc61eeb41714dbd1aa Mon Sep 17 00:00:00 2001 From: Dmitry Kichinsky Date: Mon, 10 Nov 2025 22:01:48 +0100 Subject: [PATCH] [maven] IDEA-381950 MavenPluginResolver service GitOrigin-RevId: 0fdae7ea8d9dc0b7d47a7e1beb33feadd9cd97c9 --- .../idea/maven/project/MavenPluginResolver.kt | 11 ++++++++++- .../idea/maven/project/MavenProjectsManagerEx.kt | 2 +- plugins/maven/src/main/resources/META-INF/plugin.xml | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenPluginResolver.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenPluginResolver.kt index 20135b723647..ae8f3e9b4804 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenPluginResolver.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenPluginResolver.kt @@ -17,8 +17,17 @@ import java.nio.file.Path data class PluginResolutionResult(val unresolvedPluginIds: Set) @ApiStatus.Internal -class MavenPluginResolver() { +interface MavenPluginResolver { suspend fun resolvePlugins( + mavenProjects: Collection, + forceUpdateSnapshots: Boolean, + mavenEmbedderWrappers: MavenEmbedderWrappers, + process: RawProgressReporter, + eventHandler: MavenEventHandler): PluginResolutionResult +} + +private class MavenPluginResolverImpl : MavenPluginResolver { + override suspend fun resolvePlugins( mavenProjects: Collection, forceUpdateSnapshots: Boolean, mavenEmbedderWrappers: MavenEmbedderWrappers, diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerEx.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerEx.kt index cd0ea1891324..86e7739f854b 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerEx.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerEx.kt @@ -487,7 +487,7 @@ open class MavenProjectsManagerEx(project: Project, private val cs: CoroutineSco // plugins and artifacts can be resolved in parallel with import return coroutineScope { val pluginResolutionJob = launchTracked(CoroutineName("pluginResolutionJob")) { - val pluginResolver = MavenPluginResolver() + val pluginResolver = project.service() withBackgroundProgressTraced(myProject, "resolveMavenPlugins", MavenProjectBundle.message("maven.downloading.plugins"), true) { reportRawProgress { reporter -> project.messageBus.syncPublisher(MavenImportListener.TOPIC).pluginResolutionStarted() diff --git a/plugins/maven/src/main/resources/META-INF/plugin.xml b/plugins/maven/src/main/resources/META-INF/plugin.xml index 7cb5f3ea353a..fff2d0e65115 100644 --- a/plugins/maven/src/main/resources/META-INF/plugin.xml +++ b/plugins/maven/src/main/resources/META-INF/plugin.xml @@ -114,6 +114,9 @@ +