mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[maven] IDEA-368469 get rid of MavenEmbeddersManager.FOR_POST_PROCESSING usages
GitOrigin-RevId: e6721eb3b77da7dfd9020a6e121559ea71dc01a7
This commit is contained in:
committed by
intellij-monorepo-bot
parent
da3332a58b
commit
8b08093bda
+16
-15
@@ -20,10 +20,7 @@ import org.jetbrains.idea.maven.buildtool.MavenEventHandler
|
||||
import org.jetbrains.idea.maven.importing.workspaceModel.WorkspaceModuleImporter
|
||||
import org.jetbrains.idea.maven.model.MavenExplicitProfiles
|
||||
import org.jetbrains.idea.maven.model.MavenId
|
||||
import org.jetbrains.idea.maven.project.MavenEmbeddersManager
|
||||
import org.jetbrains.idea.maven.project.MavenProject
|
||||
import org.jetbrains.idea.maven.project.MavenProjectBundle
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import org.jetbrains.idea.maven.project.*
|
||||
import org.jetbrains.idea.maven.server.MavenGoalExecutionRequest
|
||||
import org.jetbrains.idea.maven.utils.MavenLog
|
||||
import org.jetbrains.idea.maven.utils.MavenUtil
|
||||
@@ -40,7 +37,12 @@ import java.util.*
|
||||
import java.util.jar.JarEntry
|
||||
import java.util.jar.JarFile
|
||||
import java.util.jar.JarOutputStream
|
||||
import kotlin.io.copyTo
|
||||
import kotlin.io.extension
|
||||
import kotlin.io.path.pathString
|
||||
import kotlin.io.relativeTo
|
||||
import kotlin.io.walkTopDown
|
||||
import kotlin.use
|
||||
|
||||
internal class MavenShadePluginConfigurator : MavenWorkspaceConfigurator {
|
||||
private val externalSource = ExternalProjectSystemRegistry.getInstance().getSourceById(WorkspaceModuleImporter.EXTERNAL_SOURCE_ID)
|
||||
@@ -251,9 +253,7 @@ internal class MavenShadeFacetGeneratePostTaskConfigurator : MavenAfterImportCon
|
||||
val projectsTree = projectsManager.projectsTree
|
||||
val projectRoot = projectsTree.findRootProject(shadedMavenProjects.keys.first()) // assume there's only one root project
|
||||
val baseDir = MavenUtil.getBaseDir(projectRoot.directoryFile).toString()
|
||||
val embeddersManager = projectsManager.embeddersManager
|
||||
val syncConsole = projectsManager.syncConsole
|
||||
val embedder = embeddersManager.getEmbedder(MavenEmbeddersManager.FOR_POST_PROCESSING, baseDir)
|
||||
|
||||
val userProperties = Properties()
|
||||
userProperties["skipTests"] = "true"
|
||||
@@ -270,7 +270,11 @@ internal class MavenShadeFacetGeneratePostTaskConfigurator : MavenAfterImportCon
|
||||
runBlockingMaybeCancellable {
|
||||
withBackgroundProgress(project, MavenProjectBundle.message("maven.generating.uber.jars", text), true) {
|
||||
reportRawProgress { reporter ->
|
||||
embedder.executeGoal(listOf(request), "package", reporter, syncConsole)
|
||||
val mavenEmbedderWrappers = MavenEmbedderWrappersImpl(project)
|
||||
mavenEmbedderWrappers.use {
|
||||
val embedder = mavenEmbedderWrappers.getEmbedder(baseDir)
|
||||
embedder.executeGoal(listOf(request), "package", reporter, syncConsole)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -319,23 +323,23 @@ internal class MavenShadeFacetRemapPostTaskConfigurator : MavenAfterImportConfig
|
||||
}
|
||||
val projectsManager = MavenProjectsManager.getInstance(project)
|
||||
val projectsTree = projectsManager.projectsTree
|
||||
val embeddersManager = projectsManager.embeddersManager
|
||||
|
||||
val projectRoots = shadedMavenProjectsAndDependencies.map { projectsTree.findRootProject(it) }.toSet()
|
||||
|
||||
val baseDirsToMavenProjects = MavenUtil.groupByBasedir(projectRoots, projectsTree)
|
||||
|
||||
for (baseDir in baseDirsToMavenProjects.keySet()) {
|
||||
doCompile(project, embeddersManager, baseDirsToMavenProjects[baseDir], baseDir, projectsManager.syncConsole)
|
||||
doCompile(project, baseDirsToMavenProjects[baseDir], baseDir, projectsManager.syncConsole)
|
||||
}
|
||||
}
|
||||
|
||||
private fun doCompile(project: Project,
|
||||
embeddersManager: MavenEmbeddersManager,
|
||||
mavenProjects: Collection<MavenProject>,
|
||||
baseDir: String, mavenEventHandler: MavenEventHandler) {
|
||||
val embedder = embeddersManager.getEmbedder(MavenEmbeddersManager.FOR_POST_PROCESSING, baseDir)
|
||||
try {
|
||||
val mavenEmbedderWrappers = MavenEmbedderWrappersImpl(project)
|
||||
mavenEmbedderWrappers.use {
|
||||
val embedder = mavenEmbedderWrappers.getEmbedder(baseDir)
|
||||
|
||||
val requests = mavenProjects.map { MavenGoalExecutionRequest(File(it.path), MavenExplicitProfiles.NONE) }.toList()
|
||||
val names = mavenProjects.map { it.displayName }
|
||||
val text = StringUtil.shortenPathWithEllipsis(StringUtil.join(names, ", "), 200)
|
||||
@@ -347,9 +351,6 @@ internal class MavenShadeFacetRemapPostTaskConfigurator : MavenAfterImportConfig
|
||||
}
|
||||
}
|
||||
}
|
||||
finally {
|
||||
embeddersManager.release(embedder)
|
||||
}
|
||||
}
|
||||
|
||||
private fun remapUberJar(mavenProject: MavenProject, shadingData: MavenProjectShadingData) {
|
||||
|
||||
+7
-23
@@ -11,7 +11,7 @@ import org.jetbrains.idea.maven.indices.archetype.MavenCatalog
|
||||
import org.jetbrains.idea.maven.indices.archetype.MavenCatalog.System.DefaultLocal
|
||||
import org.jetbrains.idea.maven.model.MavenArchetype
|
||||
import org.jetbrains.idea.maven.model.MavenId
|
||||
import org.jetbrains.idea.maven.project.MavenEmbeddersManager
|
||||
import org.jetbrains.idea.maven.project.MavenEmbedderWrappersImpl
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import org.jetbrains.idea.maven.server.MavenEmbedderWrapper
|
||||
import org.jetbrains.idea.maven.utils.MavenLog
|
||||
@@ -21,7 +21,6 @@ import java.io.IOException
|
||||
import java.net.URL
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.util.function.Function
|
||||
|
||||
@Service(Service.Level.PROJECT)
|
||||
class MavenArchetypeManager(private val myProject: Project) {
|
||||
@@ -143,10 +142,9 @@ class MavenArchetypeManager(private val myProject: Project) {
|
||||
groupId: String, artifactId: String,
|
||||
version: String, url: String?,
|
||||
): Map<String, String>? {
|
||||
val map: Map<String, String>? =
|
||||
executeWithMavenEmbedderWrapperNullable<Map<String, String>?> {
|
||||
it.resolveAndGetArchetypeDescriptor(groupId, artifactId, version, mutableListOf(), url)
|
||||
}
|
||||
val map: Map<String, String>? = executeWithMavenEmbedderWrapper {
|
||||
it.resolveAndGetArchetypeDescriptor(groupId, artifactId, version, mutableListOf(), url)
|
||||
}
|
||||
if (map != null) addToLocalIndex(groupId, artifactId, version)
|
||||
return map
|
||||
}
|
||||
@@ -163,30 +161,16 @@ class MavenArchetypeManager(private val myProject: Project) {
|
||||
|
||||
private fun <R> executeWithMavenEmbedderWrapper(function: (MavenEmbedderWrapper) -> R): R {
|
||||
val projectsManager = MavenProjectsManager.getInstance(myProject)
|
||||
val manager = projectsManager.embeddersManager
|
||||
var baseDir = ""
|
||||
val projects = projectsManager.rootProjects
|
||||
if (!projects.isEmpty()) {
|
||||
baseDir = getBaseDir(projects[0]!!.directoryFile).toString()
|
||||
}
|
||||
val mavenEmbedderWrapper = manager.getEmbedder(MavenEmbeddersManager.Companion.FOR_POST_PROCESSING, baseDir)
|
||||
try {
|
||||
val mavenEmbedderWrappers = MavenEmbedderWrappersImpl(myProject)
|
||||
mavenEmbedderWrappers.use {
|
||||
val mavenEmbedderWrapper = mavenEmbedderWrappers.getEmbedder(baseDir)
|
||||
return function(mavenEmbedderWrapper)
|
||||
}
|
||||
finally {
|
||||
manager.release(mavenEmbedderWrapper)
|
||||
}
|
||||
}
|
||||
|
||||
private fun <R> executeWithMavenEmbedderWrapperNullable(function: Function<MavenEmbedderWrapper, R?>): R? {
|
||||
val manager = MavenProjectsManager.getInstance(myProject).embeddersManager
|
||||
val mavenEmbedderWrapper = manager.getEmbedder(MavenEmbeddersManager.Companion.FOR_POST_PROCESSING, "")
|
||||
try {
|
||||
return function.apply(mavenEmbedderWrapper)
|
||||
}
|
||||
finally {
|
||||
manager.release(mavenEmbedderWrapper)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -80,7 +80,6 @@ import org.jetbrains.idea.maven.model.MavenConstants
|
||||
import org.jetbrains.idea.maven.model.MavenConstants.MODEL_VERSION_4_0_0
|
||||
import org.jetbrains.idea.maven.model.MavenId
|
||||
import org.jetbrains.idea.maven.model.MavenProjectProblem
|
||||
import org.jetbrains.idea.maven.model.MavenRemoteRepository
|
||||
import org.jetbrains.idea.maven.project.*
|
||||
import org.jetbrains.idea.maven.server.MavenDistributionsCache
|
||||
import org.jetbrains.idea.maven.server.MavenServerConnector
|
||||
@@ -1925,34 +1924,6 @@ object MavenUtil {
|
||||
return JdkUtil.checkForJdk(sdkRoot.toNioPath(), isWindowsProjectRoot)
|
||||
}
|
||||
|
||||
fun getRemoteResolvedRepositories(project: Project): Set<MavenRemoteRepository> {
|
||||
val projectsManager = MavenProjectsManager.getInstance(project)
|
||||
val repositories = projectsManager.getRemoteRepositories()
|
||||
val embeddersManager = projectsManager.getEmbeddersManager()
|
||||
|
||||
var baseDir = project.getBasePath()
|
||||
val projects = projectsManager.getRootProjects()
|
||||
if (!projects.isEmpty()) {
|
||||
baseDir = getBaseDir(projects.get(0)!!.directoryFile).toString()
|
||||
}
|
||||
if (null == baseDir) {
|
||||
baseDir = ""
|
||||
}
|
||||
|
||||
val embedderWrapper = embeddersManager.getEmbedder(MavenEmbeddersManager.FOR_POST_PROCESSING, baseDir)
|
||||
try {
|
||||
val resolvedRepositories = embedderWrapper.resolveRepositories(repositories)
|
||||
return if (resolvedRepositories.isEmpty()) repositories else resolvedRepositories
|
||||
}
|
||||
catch (e: Exception) {
|
||||
MavenLog.LOG.warn("resolve remote repo error", e)
|
||||
}
|
||||
finally {
|
||||
embeddersManager.release(embedderWrapper)
|
||||
}
|
||||
return repositories
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun isMavenizedModule(m: Module): Boolean {
|
||||
try {
|
||||
|
||||
+6
-8
@@ -8,7 +8,7 @@ import com.intellij.pom.java.LanguageLevel
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.jetbrains.idea.maven.model.MavenArtifactNode
|
||||
import org.jetbrains.idea.maven.model.MavenPlugin
|
||||
import org.jetbrains.idea.maven.project.MavenEmbeddersManager
|
||||
import org.jetbrains.idea.maven.project.MavenEmbedderWrappersTestImpl
|
||||
import org.jetbrains.idea.maven.project.MavenProject
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import org.jetbrains.idea.maven.utils.MavenJDOMUtil
|
||||
@@ -682,13 +682,11 @@ class MavenProjectTest : MavenMultiVersionImportingTestCase() {
|
||||
importProjectAsync()
|
||||
|
||||
val repositories = projectsManager.getRemoteRepositories()
|
||||
val embeddersManager = projectsManager.embeddersManager
|
||||
val mavenEmbedderWrapper = embeddersManager.getEmbedder(
|
||||
MavenEmbeddersManager.FOR_POST_PROCESSING,
|
||||
MavenUtil.getBaseDir(projectPom).toString())
|
||||
|
||||
val repoIds = mavenEmbedderWrapper.resolveRepositories(repositories).map { it.id }.toSet()
|
||||
embeddersManager.release(mavenEmbedderWrapper)
|
||||
val mavenEmbedderWrappers = MavenEmbedderWrappersTestImpl(project)
|
||||
val repoIds = mavenEmbedderWrappers.use {
|
||||
val mavenEmbedderWrapper = mavenEmbedderWrappers.getEmbedder(MavenUtil.getBaseDir(projectPom).toString())
|
||||
mavenEmbedderWrapper.resolveRepositories(repositories).map { it.id }.toSet()
|
||||
}
|
||||
|
||||
val project = MavenProjectsManager.getInstance(project).findProject(projectPom)
|
||||
assertNotNull(project)
|
||||
|
||||
Reference in New Issue
Block a user