[maven] IDEA-359760 MavenProject.remotePluginRepositories

GitOrigin-RevId: bb0c38223becc11f2df83b513f37da23373efb3c
This commit is contained in:
Dmitry Kichinsky
2024-09-27 14:46:00 +00:00
committed by intellij-monorepo-bot
parent 4d030d2448
commit 79e7db2e77
12 changed files with 34 additions and 5 deletions
@@ -24,7 +24,8 @@ public class MavenModelBase implements Serializable {
private ArrayList<MavenArtifact> myExtensions = new ArrayList<>();
private ArrayList<MavenArtifact> myDependencies = new ArrayList<>();
private ArrayList<MavenArtifactNode> myDependencyTree = new ArrayList<>();
private ArrayList<MavenRemoteRepository> myRemoteRepositories =new ArrayList<>();
private ArrayList<MavenRemoteRepository> myRemoteRepositories = new ArrayList<>();
private ArrayList<MavenRemoteRepository> myRemotePluginRepositories = new ArrayList<>();
private ArrayList<String> myModules;
@@ -91,6 +92,14 @@ public class MavenModelBase implements Serializable {
myRemoteRepositories = new ArrayList<>(remoteRepositories);
}
public ArrayList<MavenRemoteRepository> getRemotePluginRepositories() {
return myRemotePluginRepositories;
}
public void setRemotePluginRepositories(List<MavenRemoteRepository> remotePluginRepositories) {
myRemotePluginRepositories = new ArrayList<>(remotePluginRepositories);
}
public List<String> getModules() {
return myModules;
}
@@ -3,8 +3,12 @@ package org.jetbrains.idea.maven.server;
import java.rmi.Remote;
import java.rmi.RemoteException;
/**
* @deprecated NativeMavenProjectHolder is not used anymore. Use MavenProject instead
*/
@Deprecated
public interface NativeMavenProjectHolder extends Remote {
public static NativeMavenProjectHolder NULL = new NativeMavenProjectHolder() {
NativeMavenProjectHolder NULL = new NativeMavenProjectHolder() {
@Override
public int getId() throws RemoteException {
return 0;
@@ -22,7 +22,7 @@ public class PluginResolutionRequest implements Serializable {
@NotNull List<@NotNull MavenId> pluginDependencies
) {
myMavenPluginId = mavenPluginId;
this.repositories = repositories;
this.repositories = new ArrayList<>(repositories);
this.resolvePluginDependencies = resolvePluginDependencies;
this.pluginDependencies = new ArrayList<>(pluginDependencies);
}
@@ -68,6 +68,7 @@ public class Maven3ModelConverter {
result.setDependencyTree(convertDependencyNodes(null, dependencyTree, convertedArtifacts, localRepository));
result.setRemoteRepositories(convertRepositories(model.getRepositories()));
result.setRemotePluginRepositories(convertRepositories(model.getPluginRepositories()));
result.setProfiles(convertProfiles(model.getProfiles()));
result.setModules(model.getModules());
@@ -50,6 +50,7 @@ public final class Maven3AetherModelConverter extends Maven3ModelConverter {
result.setDependencies(convertArtifacts(dependencies, convertedArtifacts, localRepository));
result.setRemoteRepositories(convertRepositories(model.getRepositories()));
result.setRemotePluginRepositories(convertRepositories(model.getPluginRepositories()));
result.setProfiles(convertProfiles(model.getProfiles()));
result.setModules(model.getModules());
@@ -47,6 +47,7 @@ public final class Maven40AetherModelConverter extends Maven40ModelConverter {
result.setDependencies(convertArtifacts(mavenProject.getArtifacts(), convertedArtifacts, localRepository));
result.setRemoteRepositories(convertAetherRepositories(mavenProject.getRemoteProjectRepositories()));
result.setRemotePluginRepositories(convertAetherRepositories(mavenProject.getRemotePluginRepositories()));
result.setProfiles(convertProfiles(mavenProject.getModel().getProfiles()));
result.setModules(mavenProject.getModules());
@@ -46,6 +46,7 @@ public final class Maven40ApiModelConverter {
result.setPlugins(convertPlugins(model));
result.setRemoteRepositories(convertRepositories(model.getRepositories()));
result.setRemotePluginRepositories(convertRepositories(model.getPluginRepositories()));
result.setProfiles(convertProfiles(model.getProfiles()));
result.setModules(model.getModules());
@@ -49,6 +49,7 @@ public class Maven40ModelConverter {
result.setPlugins(convertPlugins(model));
result.setRemoteRepositories(convertRepositories(model.getRepositories()));
result.setRemotePluginRepositories(convertRepositories(model.getPluginRepositories()));
result.setProfiles(convertProfiles(model.getProfiles()));
result.setModules(model.getModules());
@@ -39,7 +39,7 @@ class MavenPluginResolver(private val myTree: MavenProjectsTree) {
val mavenPluginIds = mavenPluginIdsToResolve.map { it.first }
MavenLog.LOG.info("maven plugin resolution started: $mavenPluginIds")
val forceUpdate = MavenProjectsManager.getInstance(myProject).forceUpdateSnapshots
val resolutionRequests = mavenPluginIdsToResolve.map { PluginResolutionRequest(it.first, it.second.remoteRepositories, false, emptyList()) }
val resolutionRequests = mavenPluginIdsToResolve.map { PluginResolutionRequest(it.first, it.second.remotePluginRepositories, false, emptyList()) }
val resolutionResults = embedder.resolvePlugins(resolutionRequests, process, eventHandler, forceUpdate)
val unresolvedPluginIds = resolutionResults.filter { !it.isResolved }.map { it.mavenPluginId }.toSet()
MavenLog.LOG.info("maven plugin resolution finished, unresolved: $unresolvedPluginIds")
@@ -921,6 +921,11 @@ class MavenProject(val file: VirtualFile) {
return myState.remoteRepositories
}
val remotePluginRepositories: List<MavenRemoteRepository>
get() {
return myState.remotePluginRepositories
}
fun getClassifierAndExtension(artifact: MavenArtifact, type: MavenExtraArtifactType): Pair<String, String> {
for (each: MavenImporter in MavenImporter.getSuitableImporters(this)) {
val result: Pair<String, String>? = each.getExtraArtifactClassifierAndExtension(artifact, type)
@@ -1115,6 +1120,7 @@ class MavenProject(val file: VirtualFile) {
val newUnresolvedArtifacts: MutableSet<MavenId> = HashSet()
val newRepositories = LinkedHashSet<MavenRemoteRepository>()
val newPluginRepositories = LinkedHashSet<MavenRemoteRepository>()
val newDependencies = LinkedHashSet<MavenArtifact>()
val newDependencyTree = LinkedHashSet<MavenArtifactNode>()
val newPluginInfos = LinkedHashSet<MavenPluginInfo>()
@@ -1124,6 +1130,7 @@ class MavenProject(val file: VirtualFile) {
if (keepPreviousArtifacts) {
newUnresolvedArtifacts.addAll(state.unresolvedArtifactIds)
newRepositories.addAll(state.remoteRepositories)
newPluginRepositories.addAll(state.remotePluginRepositories)
newDependencies.addAll(state.dependencies)
newDependencyTree.addAll(state.dependencyTree)
newExtensions.addAll(state.extensions)
@@ -1143,11 +1150,13 @@ class MavenProject(val file: VirtualFile) {
newUnresolvedArtifacts.addAll(unresolvedArtifactIds)
newRepositories.addAll(model.remoteRepositories)
newPluginRepositories.addAll(model.remotePluginRepositories)
newDependencyTree.addAll(model.dependencyTree)
newDependencies.addAll(model.dependencies)
newExtensions.addAll(model.extensions)
val remoteRepositories = ArrayList(newRepositories)
val remotePluginRepositories = ArrayList(newPluginRepositories)
val dependencies = ArrayList(newDependencies)
val dependencyTree = ArrayList(newDependencyTree)
val pluginInfos = ArrayList(newPluginInfos)
@@ -1184,6 +1193,7 @@ class MavenProject(val file: VirtualFile) {
testResources = build.testResources,
unresolvedArtifactIds = newUnresolvedArtifacts,
remoteRepositories = remoteRepositories,
remotePluginRepositories = remotePluginRepositories,
dependencies = dependencies,
dependencyTree = dependencyTree,
pluginInfos = pluginInfos,
@@ -32,6 +32,7 @@ internal data class MavenProjectState(
val dependencies: List<MavenArtifact> = emptyList(),
val dependencyTree: List<MavenArtifactNode> = emptyList(),
val remoteRepositories: List<MavenRemoteRepository> = emptyList(),
val remotePluginRepositories: List<MavenRemoteRepository> = emptyList(),
val annotationProcessors: List<MavenArtifact> = emptyList(),
val modulesPathsAndNames: Map<String, String> = emptyMap(),
val modelMap: Map<String, String> = emptyMap(),
@@ -156,7 +156,7 @@ abstract class MavenEmbedderWrapper internal constructor(private val project: Pr
forceUpdateSnapshots: Boolean): Collection<MavenArtifact> {
val mavenId = plugin.mavenId
val dependencies = plugin.dependencies.map { MavenId(it.groupId, it.artifactId, it.version) }
val resolutionRequests = listOf(PluginResolutionRequest(mavenId, mavenProject.remoteRepositories, true, dependencies))
val resolutionRequests = listOf(PluginResolutionRequest(mavenId, mavenProject.remotePluginRepositories, true, dependencies))
return runBlockingMaybeCancellable {
resolvePlugins(resolutionRequests, null, MavenLogEventHandler, forceUpdateSnapshots)
.flatMap { resolutionResult: PluginResolutionResponse -> resolutionResult.pluginDependencyArtifacts }.toSet()