mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[maven] IDEA-359760 get rid of NativeMavenProjectHolder usage
GitOrigin-RevId: 6ebb36554664d812dd0a0e087d59598a46861263
This commit is contained in:
committed by
intellij-monorepo-bot
parent
79e7db2e77
commit
21164d9381
@@ -58,20 +58,17 @@ public class MavenServerExecutionResult implements Serializable {
|
||||
public final String dependencyHash;
|
||||
public final boolean dependencyResolutionSkipped;
|
||||
public final Map<String, String> mavenModelMap;
|
||||
public final NativeMavenProjectHolder nativeMavenProject;
|
||||
public final Collection<String> activatedProfiles;
|
||||
|
||||
public ProjectData(@NotNull MavenModel mavenModel,
|
||||
@Nullable String dependencyHash,
|
||||
boolean dependencyResolutionSkipped,
|
||||
Map<String, String> mavenModelMap,
|
||||
NativeMavenProjectHolder nativeMavenProject,
|
||||
Collection<String> activatedProfiles) {
|
||||
this.mavenModel = mavenModel;
|
||||
this.dependencyHash = dependencyHash;
|
||||
this.dependencyResolutionSkipped = dependencyResolutionSkipped;
|
||||
this.mavenModelMap = mavenModelMap;
|
||||
this.nativeMavenProject = nativeMavenProject;
|
||||
this.activatedProfiles = activatedProfiles;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
package org.jetbrains.idea.maven.server;
|
||||
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.lang.ref.Reference;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class RemoteNativeMaven3ProjectHolder implements NativeMavenProjectHolder {
|
||||
private static final Map<Integer, Reference<RemoteNativeMaven3ProjectHolder>> myMap = new HashMap<Integer, Reference<RemoteNativeMaven3ProjectHolder>>();
|
||||
|
||||
private final MavenProject myMavenProject;
|
||||
|
||||
public RemoteNativeMaven3ProjectHolder(@NotNull MavenProject mavenProject) {
|
||||
myMavenProject = mavenProject;
|
||||
myMap.put(getId(), new WeakReference<RemoteNativeMaven3ProjectHolder>(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return System.identityHashCode(this);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static MavenProject findProjectById(int id) {
|
||||
Reference<RemoteNativeMaven3ProjectHolder> reference = myMap.get(id);
|
||||
RemoteNativeMaven3ProjectHolder result = reference == null ? null : reference.get();
|
||||
if (result == null) {
|
||||
throw new RuntimeException("NativeMavenProjectHolder not found for id: " + id);
|
||||
}
|
||||
return result.myMavenProject;
|
||||
}
|
||||
}
|
||||
@@ -331,20 +331,11 @@ public class Maven3XProjectResolver {
|
||||
problems.addAll(myEmbedder.collectProblems(mavenProject.getFile(), Collections.singleton(e), modelProblems));
|
||||
}
|
||||
|
||||
RemoteNativeMaven3ProjectHolder holder = new RemoteNativeMaven3ProjectHolder(mavenProject);
|
||||
try {
|
||||
UnicastRemoteObject.exportObject(holder, 0);
|
||||
}
|
||||
catch (RemoteException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
Collection<String> activatedProfiles = Maven3XProfileUtil.collectActivatedProfiles(mavenProject);
|
||||
|
||||
Map<String, String> mavenModelMap = Maven3ModelConverter.convertToMap(mavenProject.getModel());
|
||||
MavenServerExecutionResult.ProjectData data =
|
||||
new MavenServerExecutionResult.ProjectData(model, dependencyHash, dependencyResolutionSkipped, mavenModelMap,
|
||||
holder, activatedProfiles);
|
||||
new MavenServerExecutionResult.ProjectData(model, dependencyHash, dependencyResolutionSkipped, mavenModelMap, activatedProfiles);
|
||||
Collection<MavenProjectProblem> unresolvedProblems = new HashSet<>();
|
||||
collectUnresolvedArtifactProblems(file, dependencyResolutionResult, unresolvedProblems);
|
||||
return new MavenServerExecutionResult(data, problems, Collections.emptySet(), unresolvedProblems);
|
||||
|
||||
@@ -349,20 +349,11 @@ public class Maven40ProjectResolver {
|
||||
problems.addAll(myEmbedder.collectProblems(mavenProject.getFile(), Collections.singleton(e), modelProblems));
|
||||
}
|
||||
|
||||
RemoteNativeMaven40ProjectHolder holder = new RemoteNativeMaven40ProjectHolder(mavenProject);
|
||||
try {
|
||||
UnicastRemoteObject.exportObject(holder, 0);
|
||||
}
|
||||
catch (RemoteException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
Collection<String> activatedProfiles = Maven40ProfileUtil.collectActivatedProfiles(mavenProject);
|
||||
|
||||
Map<String, String> mavenModelMap = Maven40ModelConverter.convertToMap(mavenProject.getModel());
|
||||
MavenServerExecutionResult.ProjectData data =
|
||||
new MavenServerExecutionResult.ProjectData(model, dependencyHash, dependencyResolutionSkipped, mavenModelMap,
|
||||
holder, activatedProfiles);
|
||||
new MavenServerExecutionResult.ProjectData(model, dependencyHash, dependencyResolutionSkipped, mavenModelMap, activatedProfiles);
|
||||
if (null == model.getBuild() || null == model.getBuild().getDirectory()) {
|
||||
data = null;
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.maven.server.m40.utils;
|
||||
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.server.NativeMavenProjectHolder;
|
||||
|
||||
import java.lang.ref.Reference;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class RemoteNativeMaven40ProjectHolder implements NativeMavenProjectHolder {
|
||||
private static final Map<Integer, Reference<RemoteNativeMaven40ProjectHolder>> myMap = new HashMap<>();
|
||||
|
||||
private final MavenProject myMavenProject;
|
||||
|
||||
public RemoteNativeMaven40ProjectHolder(@NotNull MavenProject mavenProject) {
|
||||
myMavenProject = mavenProject;
|
||||
myMap.put(getId(), new WeakReference<>(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return System.identityHashCode(this);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static MavenProject findProjectById(int id) {
|
||||
Reference<RemoteNativeMaven40ProjectHolder> reference = myMap.get(id);
|
||||
RemoteNativeMaven40ProjectHolder result = reference == null ? null : reference.get();
|
||||
if (result == null) {
|
||||
throw new RuntimeException("NativeMavenProjectHolder not found for id: " + id);
|
||||
}
|
||||
return result.myMavenProject;
|
||||
}
|
||||
}
|
||||
@@ -16,19 +16,15 @@ import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import com.intellij.pom.java.LanguageLevel
|
||||
import com.intellij.util.Consumer
|
||||
import com.intellij.util.ExceptionUtil
|
||||
import com.intellij.util.containers.ContainerUtil
|
||||
import org.jdom.Element
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.idea.maven.execution.SyncBundle
|
||||
import org.jetbrains.idea.maven.importing.MavenAnnotationProcessorConfiguratorUtil.getProcessorArtifactInfos
|
||||
import org.jetbrains.idea.maven.importing.MavenWorkspaceConfigurator.*
|
||||
import org.jetbrains.idea.maven.model.MavenArtifactInfo
|
||||
import org.jetbrains.idea.maven.model.MavenId
|
||||
import org.jetbrains.idea.maven.project.*
|
||||
import org.jetbrains.idea.maven.server.MavenEmbedderWrapper
|
||||
import org.jetbrains.idea.maven.server.NativeMavenProjectHolder
|
||||
import org.jetbrains.idea.maven.utils.MavenProcessCanceledException
|
||||
import org.jetbrains.idea.maven.project.MavenProject
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsTree
|
||||
import org.jetbrains.jps.model.java.compiler.ProcessorConfigProfile
|
||||
import org.jetbrains.jps.model.java.impl.compiler.ProcessorConfigProfileImpl
|
||||
import org.jetbrains.jps.util.JpsPathUtil
|
||||
@@ -120,45 +116,6 @@ class MavenAnnotationProcessorConfigurator : MavenApplicableConfigurator("org.ap
|
||||
val mavenProjectModules: List<ModuleWithType<Module>>,
|
||||
val processorModuleNames: List<String>)
|
||||
|
||||
@Throws(MavenProcessCanceledException::class)
|
||||
fun resolve(project: Project,
|
||||
mavenProject: MavenProject,
|
||||
nativeMavenProject: NativeMavenProjectHolder,
|
||||
embedder: MavenEmbedderWrapper) {
|
||||
val config = getConfig(mavenProject, "annotationProcessorPaths")
|
||||
if (config == null) return
|
||||
|
||||
val artifactsInfo = getProcessorArtifactInfos(config)
|
||||
if (artifactsInfo.isEmpty()) {
|
||||
return
|
||||
}
|
||||
|
||||
val externalArtifacts: MutableList<MavenArtifactInfo> = ArrayList()
|
||||
val mavenProjectsManager = MavenProjectsManager.getInstance(project)
|
||||
val tree = mavenProjectsManager.projectsTree
|
||||
for (info in artifactsInfo) {
|
||||
val mavenArtifact = tree.findProject(MavenId(info.groupId, info.artifactId, info.version))
|
||||
if (mavenArtifact == null) {
|
||||
externalArtifacts.add(info)
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
val annotationProcessors = embedder
|
||||
.resolveArtifactTransitively(ArrayList(externalArtifacts), ArrayList(mavenProject.remoteRepositories))
|
||||
if (annotationProcessors.problem != null) {
|
||||
MavenResolveResultProblemProcessor.notifySyncForProblem(project, annotationProcessors.problem!!)
|
||||
}
|
||||
else {
|
||||
mavenProject.addAnnotationProcessors(annotationProcessors.mavenResolvedArtifacts)
|
||||
}
|
||||
}
|
||||
catch (e: Exception) {
|
||||
val message = if (e.message != null) e.message else ExceptionUtil.getThrowableText(e)
|
||||
MavenProjectsManager.getInstance(project).syncConsole.addWarning(SyncBundle.message("maven.sync.annotation.processor.problem"), message!!)
|
||||
}
|
||||
}
|
||||
|
||||
private fun configureProfiles(project: Project,
|
||||
tree: MavenProjectsTree,
|
||||
projectsWithModules: Iterable<MavenProjectWithProcessorModules>,
|
||||
|
||||
@@ -18,8 +18,6 @@ import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.idea.maven.MavenDisposable
|
||||
import org.jetbrains.idea.maven.project.MavenProject
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import org.jetbrains.idea.maven.server.MavenEmbedderWrapper
|
||||
import org.jetbrains.idea.maven.server.NativeMavenProjectHolder
|
||||
import org.jetbrains.idea.maven.utils.MavenLog
|
||||
import org.jetbrains.jps.model.java.compiler.JpsJavaCompilerOptions
|
||||
|
||||
@@ -37,21 +35,6 @@ private val LOG = Logger.getInstance(MavenCompilerConfigurator::class.java)
|
||||
@ApiStatus.Internal
|
||||
class MavenCompilerConfigurator : MavenApplicableConfigurator("org.apache.maven.plugins", "maven-compiler-plugin"),
|
||||
MavenWorkspaceConfigurator {
|
||||
fun resolve(project: Project,
|
||||
mavenProject: MavenProject,
|
||||
nativeMavenProject: NativeMavenProjectHolder,
|
||||
embedder: MavenEmbedderWrapper) {
|
||||
if (!super.isApplicable(mavenProject)) return
|
||||
if (!Registry.`is`("maven.import.compiler.arguments", true) || !MavenProjectsManager.getInstance(project).importingSettings.isAutoDetectCompiler) return
|
||||
|
||||
val defaultCompilerExtension = MavenCompilerExtension.EP_NAME.extensions.find {
|
||||
it.resolveDefaultCompiler(project, mavenProject, embedder)
|
||||
}
|
||||
if (project.getUserData(DEFAULT_COMPILER_EXTENSION) == null) {
|
||||
project.putUserData(DEFAULT_COMPILER_EXTENSION, defaultCompilerExtension)
|
||||
}
|
||||
}
|
||||
|
||||
override fun beforeModelApplied(context: MavenWorkspaceConfigurator.MutableModelContext) {
|
||||
var defaultCompilerExtension = context.project.getUserData(DEFAULT_COMPILER_EXTENSION)
|
||||
context.putUserData(DEFAULT_COMPILER_EXTENSION, null)
|
||||
|
||||
@@ -42,7 +42,6 @@ class MavenProjectResolverResult(@JvmField val mavenModel: MavenModel,
|
||||
@JvmField val dependencyResolutionSkipped: Boolean,
|
||||
@JvmField val nativeModelMap: Map<String, String>,
|
||||
@JvmField val activatedProfiles: MavenExplicitProfiles,
|
||||
val nativeMavenProject: NativeMavenProjectHolder?,
|
||||
@JvmField val readingProblems: MutableCollection<MavenProjectProblem>,
|
||||
@JvmField val unresolvedArtifactIds: MutableSet<MavenId>,
|
||||
val unresolvedProblems: Collection<MavenProjectProblem>)
|
||||
@@ -348,7 +347,6 @@ class MavenProjectResolver(private val myProject: Project) {
|
||||
projectData.dependencyResolutionSkipped,
|
||||
projectData.mavenModelMap,
|
||||
MavenExplicitProfiles(projectData.activatedProfiles, explicitProfiles.disabledProfiles),
|
||||
projectData.nativeMavenProject,
|
||||
result.problems,
|
||||
result.unresolvedArtifacts,
|
||||
result.unresolvedProblems))
|
||||
|
||||
Reference in New Issue
Block a user