[maven] IDEA-381950 MavenPluginResolver service

GitOrigin-RevId: 0fdae7ea8d9dc0b7d47a7e1beb33feadd9cd97c9
This commit is contained in:
Dmitry Kichinsky
2025-11-11 00:00:19 +00:00
committed by intellij-monorepo-bot
parent 44232dd830
commit 52c10f3acf
3 changed files with 14 additions and 2 deletions
@@ -17,8 +17,17 @@ import java.nio.file.Path
data class PluginResolutionResult(val unresolvedPluginIds: Set<MavenId>)
@ApiStatus.Internal
class MavenPluginResolver() {
interface MavenPluginResolver {
suspend fun resolvePlugins(
mavenProjects: Collection<MavenProject>,
forceUpdateSnapshots: Boolean,
mavenEmbedderWrappers: MavenEmbedderWrappers,
process: RawProgressReporter,
eventHandler: MavenEventHandler): PluginResolutionResult
}
private class MavenPluginResolverImpl : MavenPluginResolver {
override suspend fun resolvePlugins(
mavenProjects: Collection<MavenProject>,
forceUpdateSnapshots: Boolean,
mavenEmbedderWrappers: MavenEmbedderWrappers,
@@ -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<MavenPluginResolver>()
withBackgroundProgressTraced(myProject, "resolveMavenPlugins", MavenProjectBundle.message("maven.downloading.plugins"), true) {
reportRawProgress { reporter ->
project.messageBus.syncPublisher<MavenImportListener>(MavenImportListener.TOPIC).pluginResolutionStarted()
@@ -114,6 +114,9 @@
<projectService
serviceInterface="org.jetbrains.idea.maven.project.MavenProjectModelReadHelper"
serviceImplementation="org.jetbrains.idea.maven.project.MavenProjectModelServerModelReadHelper"/>
<projectService
serviceInterface="org.jetbrains.idea.maven.project.MavenPluginResolver"
serviceImplementation="org.jetbrains.idea.maven.project.MavenPluginResolverImpl"/>
<projectService
serviceInterface="org.jetbrains.idea.maven.server.MavenServerResultTransformer"
serviceImplementation="org.jetbrains.idea.maven.server.MavenServerResultTransformerImpl"/>