From 0152c21c2b2ce6af5c4d77cb06221c6ee6de1d8c Mon Sep 17 00:00:00 2001 From: Dmitry Kichinsky Date: Thu, 17 Oct 2024 21:55:44 +0200 Subject: [PATCH] [maven] IDEA-360863 WSL: transform Maven plugins paths (cherry picked from commit 4fe12fa7b707a0c40fb890c700e021a00320d5dd) IJ-CR-147131 GitOrigin-RevId: 94f5a3f80be1f8f43e153c31a1fdea3c33de3d65 --- .../idea/maven/server/MavenEmbedderWrapper.kt | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.kt index ae19ad186d10..c8a566797868 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.kt @@ -147,17 +147,34 @@ abstract class MavenEmbedderWrapper internal constructor(private val project: Pr return getOrCreateWrappee().resolveArtifactsTransitively(ArrayList(artifacts), ArrayList(remoteRepositories), ourToken) } + private fun MavenArtifact.transformPaths(transformer: RemotePathTransformerFactory.Transformer) = this.replaceFile( + File(transformer.toIdePath(file.path)!!), + null + ) + + private fun PluginResolutionResponse.transformPaths(transformer: RemotePathTransformerFactory.Transformer): PluginResolutionResponse { + return PluginResolutionResponse( + this.mavenPluginId, + this.pluginArtifact?.transformPaths(transformer), + this.pluginDependencyArtifacts.map { it.transformPaths(transformer) } + ) + } + suspend fun resolvePlugins( resolutionRequests: List, progressReporter: RawProgressReporter?, eventHandler: MavenEventHandler, forceUpdateSnapshots: Boolean, ): List { - return runLongRunningTask( + val responseList = runLongRunningTask( LongRunningEmbedderTask { embedder, taskInput -> embedder.resolvePlugins(taskInput, ArrayList(resolutionRequests), forceUpdateSnapshots, ourToken) }, progressReporter, eventHandler) + + val transformer = RemotePathTransformerFactory.createForProject(project) + if (transformer == RemotePathTransformerFactory.Transformer.ID) return responseList + return responseList.map { it.transformPaths(transformer) } } fun resolvePlugin(plugin: MavenPlugin,