diff --git a/plugins/maven/maven3-server-common/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedder.java b/plugins/maven/maven3-server-common/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedder.java index 509645c73703..933007c92461 100644 --- a/plugins/maven/maven3-server-common/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedder.java +++ b/plugins/maven/maven3-server-common/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedder.java @@ -136,21 +136,23 @@ public abstract class Maven3ServerEmbedder extends MavenRemoteObject implements final ProjectBuildingRequest projectBuildingRequest = request.getProjectBuildingRequest(); projectBuildingRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); projectBuildingRequest.setResolveDependencies(false); + try { - buildingResults = builder.build(new ArrayList(files), false, projectBuildingRequest); - } - catch (ProjectBuildingException e) { - for (ProjectBuildingResult result : e.getResults()) { - if (result.getProject() != null) { - buildingResults.add(result); + if (files.size() == 1) { + buildSinglePom(builder, buildingResults, projectBuildingRequest, files.iterator().next()); + } + else { + try { + buildingResults = builder.build(new ArrayList(files), false, projectBuildingRequest); } - else { - try { - ProjectBuildingResult build = builder.build(result.getPomFile(), projectBuildingRequest); - buildingResults.add(build); - } - catch (ProjectBuildingException e2) { - buildingResults.addAll(e2.getResults()); + catch (ProjectBuildingException e) { + for (ProjectBuildingResult result : e.getResults()) { + if (result.getProject() != null) { + buildingResults.add(result); + } + else { + buildSinglePom(builder, buildingResults, projectBuildingRequest, result.getPomFile()); + } } } } @@ -161,6 +163,19 @@ public abstract class Maven3ServerEmbedder extends MavenRemoteObject implements return buildingResults; } + private static void buildSinglePom(ProjectBuilder builder, + List buildingResults, + ProjectBuildingRequest projectBuildingRequest, + File pomFile) { + try { + ProjectBuildingResult build = builder.build(pomFile, projectBuildingRequest); + buildingResults.add(build); + } + catch (ProjectBuildingException e) { + buildingResults.addAll(e.getResults()); + } + } + protected void addMvn2CompatResults(MavenProject project, List exceptions, List listeners, diff --git a/plugins/maven/maven30-server-impl/src/org/jetbrains/idea/maven/server/Maven30ServerEmbedderImpl.java b/plugins/maven/maven30-server-impl/src/org/jetbrains/idea/maven/server/Maven30ServerEmbedderImpl.java index 854196f9aa2e..1686f07ea5fa 100644 --- a/plugins/maven/maven30-server-impl/src/org/jetbrains/idea/maven/server/Maven30ServerEmbedderImpl.java +++ b/plugins/maven/maven30-server-impl/src/org/jetbrains/idea/maven/server/Maven30ServerEmbedderImpl.java @@ -603,6 +603,16 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder { @Override public void run() { try { + RepositorySystemSession repositorySession = getComponent(LegacySupport.class).getRepositorySession(); + if (repositorySession instanceof DefaultRepositorySystemSession) { + ((DefaultRepositorySystemSession)repositorySession) + .setTransferListener(new Maven30TransferListenerAdapter(myCurrentIndicator)); + + if (myWorkspaceMap != null) { + ((DefaultRepositorySystemSession)repositorySession).setWorkspaceReader(new Maven30WorkspaceReader(myWorkspaceMap)); + } + } + List buildingResults = getProjectBuildingResults(request, files); for (ProjectBuildingResult buildingResult : buildingResults) { @@ -618,16 +628,6 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder { continue; } - RepositorySystemSession repositorySession = getComponent(LegacySupport.class).getRepositorySession(); - if (repositorySession instanceof DefaultRepositorySystemSession) { - ((DefaultRepositorySystemSession)repositorySession) - .setTransferListener(new Maven30TransferListenerAdapter(myCurrentIndicator)); - - if (myWorkspaceMap != null) { - ((DefaultRepositorySystemSession)repositorySession).setWorkspaceReader(new Maven30WorkspaceReader(myWorkspaceMap)); - } - } - List exceptions = new ArrayList(); loadExtensions(project, exceptions); diff --git a/plugins/maven/maven32-server-impl/src/org/jetbrains/idea/maven/server/Maven32ServerEmbedderImpl.java b/plugins/maven/maven32-server-impl/src/org/jetbrains/idea/maven/server/Maven32ServerEmbedderImpl.java index 9725efde505b..962c3e363e12 100644 --- a/plugins/maven/maven32-server-impl/src/org/jetbrains/idea/maven/server/Maven32ServerEmbedderImpl.java +++ b/plugins/maven/maven32-server-impl/src/org/jetbrains/idea/maven/server/Maven32ServerEmbedderImpl.java @@ -18,7 +18,10 @@ package org.jetbrains.idea.maven.server; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.util.*; +import com.intellij.util.ExceptionUtil; +import com.intellij.util.Function; +import com.intellij.util.ReflectionUtil; +import com.intellij.util.SystemProperties; import com.intellij.util.containers.ContainerUtil; import gnu.trove.THashMap; import gnu.trove.THashSet; @@ -30,7 +33,10 @@ import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; -import org.apache.maven.artifact.resolver.*; +import org.apache.maven.artifact.resolver.ArtifactNotFoundException; +import org.apache.maven.artifact.resolver.ArtifactResolutionException; +import org.apache.maven.artifact.resolver.ArtifactResolver; +import org.apache.maven.artifact.resolver.ResolutionListener; import org.apache.maven.cli.MavenCli; import org.apache.maven.execution.*; import org.apache.maven.model.Activation; @@ -619,6 +625,19 @@ public class Maven32ServerEmbedderImpl extends Maven3ServerEmbedder { @Override public void run() { try { + RepositorySystemSession repositorySession = getComponent(LegacySupport.class).getRepositorySession(); + if (repositorySession instanceof DefaultRepositorySystemSession) { + DefaultRepositorySystemSession session = (DefaultRepositorySystemSession)repositorySession; + session.setTransferListener(new TransferListenerAdapter(myCurrentIndicator)); + + if (myWorkspaceMap != null) { + session.setWorkspaceReader(new Maven32WorkspaceReader(myWorkspaceMap)); + } + + session.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, true); + session.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true); + } + List buildingResults = getProjectBuildingResults(request, files); for (ProjectBuildingResult buildingResult : buildingResults) { @@ -634,19 +653,6 @@ public class Maven32ServerEmbedderImpl extends Maven3ServerEmbedder { continue; } - RepositorySystemSession repositorySession = getComponent(LegacySupport.class).getRepositorySession(); - if (repositorySession instanceof DefaultRepositorySystemSession) { - DefaultRepositorySystemSession session = (DefaultRepositorySystemSession)repositorySession; - session.setTransferListener(new TransferListenerAdapter(myCurrentIndicator)); - - if (myWorkspaceMap != null) { - session.setWorkspaceReader(new Maven32WorkspaceReader(myWorkspaceMap)); - } - - session.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, true); - session.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true); - } - List exceptions = new ArrayList(); loadExtensions(project, exceptions);