diff options
Diffstat (limited to 'plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java')
-rw-r--r-- | plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java index 63a227e23aad..9e8bede06fbe 100644 --- a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java +++ b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java @@ -1346,6 +1346,7 @@ public abstract class Maven3XServerEmbedder extends Maven3ServerEmbedder { return doResolve(info, remoteRepositories); } + @Deprecated @NotNull @Override public List<MavenArtifact> resolveTransitively(@NotNull final List<MavenArtifactInfo> artifacts, @@ -1372,6 +1373,46 @@ public abstract class Maven3XServerEmbedder extends Maven3ServerEmbedder { } @NotNull + @Override + public MavenArtifactResolveResult resolveArtifactTransitively( + @NotNull final List<MavenArtifactInfo> artifacts, + @NotNull final List<MavenRemoteRepository> remoteRepositories, + MavenToken token) throws RemoteException { + MavenServerUtil.checkToken(token); + + try { + final MavenExecutionRequest request = createRequest(null, null, null, null); + + final List<MavenArtifact>[] mavenArtifacts = new List[]{null}; + executeWithMavenSession(request, new Runnable() { + @Override + public void run() { + try { + mavenArtifacts[0] = Maven3XServerEmbedder.this.doResolveTransitivelyWithError(artifacts, remoteRepositories); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + }); + return new MavenArtifactResolveResult(mavenArtifacts[0], null); + } + catch (Exception e) { + Maven3ServerGlobals.getLogger().warn(e); + Artifact transferArtifact = getProblemTransferArtifact(e); + String message = getRootMessage(e); + MavenProjectProblem problem; + if (transferArtifact != null) { + MavenArtifact mavenArtifact = MavenModelConverter.convertArtifact(transferArtifact, getLocalRepositoryFile()); + problem = MavenProjectProblem.createArtifactTransferProblem("", message, true, mavenArtifact); + } else { + problem = MavenProjectProblem.createStructureProblem("", message); + } + return new MavenArtifactResolveResult(Collections.<MavenArtifact>emptyList(), problem); + } + } + + @NotNull private List<MavenArtifact> doResolveTransitively(@NotNull List<MavenArtifactInfo> artifacts, @NotNull List<MavenRemoteRepository> remoteRepositories) throws RemoteException { @@ -1395,6 +1436,24 @@ public abstract class Maven3XServerEmbedder extends Maven3ServerEmbedder { } } + @NotNull + private List<MavenArtifact> doResolveTransitivelyWithError(@NotNull List<MavenArtifactInfo> artifacts, + @NotNull List<MavenRemoteRepository> remoteRepositories) + throws RemoteException, ArtifactResolutionException, ArtifactNotFoundException { + Set<Artifact> toResolve = new LinkedHashSet<Artifact>(); + for (MavenArtifactInfo each : artifacts) { + toResolve.add(createArtifact(each)); + } + + Artifact project = getComponent(ArtifactFactory.class).createBuildArtifact("temp", "temp", "666", "pom"); + + Set<Artifact> res = getComponent(ArtifactResolver.class) + .resolveTransitively(toResolve, project, Collections.EMPTY_MAP, myLocalRepository, convertRepositories(remoteRepositories), + getComponent(ArtifactMetadataSource.class)).getArtifacts(); + + return MavenModelConverter.convertArtifacts(res, new HashMap<Artifact, MavenArtifact>(), getLocalRepositoryFile()); + } + @Override public Collection<MavenArtifact> resolvePlugin(@NotNull final MavenPlugin plugin, @NotNull final List<MavenRemoteRepository> repositories, |