mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 06:05:01 +07:00
IDEA-200272 extract executeWithMavenSession method to the common module
This commit is contained in:
@@ -76,33 +76,47 @@
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library" scope="PROVIDED">
|
||||
<library name="org.apache.maven:maven-compat:3.0.5" type="repository">
|
||||
<properties maven-id="org.apache.maven:maven-compat:3.0.5" />
|
||||
<properties maven-id="org.apache.maven:maven-compat:3.6.0" />
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-compat/3.0.5/maven-compat-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-model/3.0.5/maven-model-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-model-builder/3.0.5/maven-model-builder-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-settings/3.0.5/maven-settings-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-artifact/3.0.5/maven-artifact-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-core/3.0.5/maven-core-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-settings-builder/3.0.5/maven-settings-builder-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-repository-metadata/3.0.5/maven-repository-metadata-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-plugin-api/3.0.5/maven-plugin-api-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-aether-provider/3.0.5/maven-aether-provider-3.0.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/aether/aether-spi/1.13.1/aether-spi-1.13.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/aether/aether-impl/1.13.1/aether-impl-1.13.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/aether/aether-api/1.13.1/aether-api-1.13.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/aether/aether-util/1.13.1/aether-util-1.13.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-compat/3.6.0/maven-compat-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-model/3.6.0/maven-model-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-model-builder/3.6.0/maven-model-builder-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-builder-support/3.6.0/maven-builder-support-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-settings/3.6.0/maven-settings-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-settings-builder/3.6.0/maven-settings-builder-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/sisu/sisu-inject-plexus/2.3.0/sisu-inject-plexus-2.3.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/sisu/sisu-inject-bean/2.3.0/sisu-inject-bean-2.3.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/sonatype/sisu/sisu-guava/0.9.9/sisu-guava-0.9.9.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/wagon/wagon-provider-api/2.4/wagon-provider-api-2.4.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-artifact/3.6.0/maven-artifact-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-core/3.6.0/maven-core-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-plugin-api/3.6.0/maven-plugin-api-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/resolver/maven-resolver-spi/1.3.1/maven-resolver-spi-1.3.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/shared/maven-shared-utils/3.2.1/maven-shared-utils-3.2.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.5/commons-io-2.5.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/inject/guice/4.2.1/guice-4.2.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/25.1-android/guava-25.1-android.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.0.0/checker-compat-qual-2.0.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1.3.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-classworlds/2.5.2/plexus-classworlds-2.5.2.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-resolver-provider/3.6.0/maven-resolver-provider-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-repository-metadata/3.6.0/maven-repository-metadata-3.6.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/resolver/maven-resolver-api/1.3.1/maven-resolver-api-1.3.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/resolver/maven-resolver-util/1.3.1/maven-resolver-util-1.3.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/resolver/maven-resolver-impl/1.3.1/maven-resolver-impl-1.3.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-interpolation/1.25/plexus-interpolation-1.25.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/sisu/org.eclipse.sisu.plexus/0.3.3/org.eclipse.sisu.plexus-0.3.3.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/wagon/wagon-provider-api/3.2.0/wagon-provider-api-3.2.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
|
||||
+105
-10
@@ -22,6 +22,10 @@ import com.intellij.util.containers.ContainerUtilRt;
|
||||
import org.apache.log4j.BasicConfigurator;
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.maven.AbstractMavenLifecycleParticipant;
|
||||
import org.apache.maven.DefaultMaven;
|
||||
import org.apache.maven.Maven;
|
||||
import org.apache.maven.MavenExecutionException;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.DefaultArtifact;
|
||||
import org.apache.maven.artifact.handler.DefaultArtifactHandler;
|
||||
@@ -32,12 +36,19 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
||||
import org.apache.maven.artifact.resolver.ArtifactResolver;
|
||||
import org.apache.maven.artifact.resolver.ResolutionListener;
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
import org.apache.maven.execution.DefaultMavenExecutionResult;
|
||||
import org.apache.maven.execution.MavenExecutionRequest;
|
||||
import org.apache.maven.execution.MavenSession;
|
||||
import org.apache.maven.model.building.ModelBuildingException;
|
||||
import org.apache.maven.model.building.ModelBuildingRequest;
|
||||
import org.apache.maven.model.building.ModelProblem;
|
||||
import org.apache.maven.model.interpolation.ModelInterpolator;
|
||||
import org.apache.maven.plugin.LegacySupport;
|
||||
import org.apache.maven.project.*;
|
||||
import org.apache.maven.session.scope.internal.SessionScope;
|
||||
import org.codehaus.plexus.PlexusContainer;
|
||||
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.maven.model.MavenModel;
|
||||
@@ -117,11 +128,11 @@ public abstract class Maven3ServerEmbedder extends MavenRemoteObject implements
|
||||
getLocalRepository(),
|
||||
convertRepositories(remoteRepositories));
|
||||
return ContainerUtilRt.map2List(versions, new Function<ArtifactVersion, String>() {
|
||||
@Override
|
||||
public String fun(ArtifactVersion version) {
|
||||
return version.toString();
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public String fun(ArtifactVersion version) {
|
||||
return version.toString();
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (Exception e) {
|
||||
Maven3ServerGlobals.getLogger().info(e);
|
||||
@@ -206,10 +217,10 @@ public abstract class Maven3ServerEmbedder extends MavenRemoteObject implements
|
||||
private final DependencyResolutionResult myDependencyResolutionResult;
|
||||
|
||||
MyProjectBuildingResult(String projectId,
|
||||
File pomFile,
|
||||
MavenProject mavenProject,
|
||||
List<ModelProblem> problems,
|
||||
DependencyResolutionResult dependencyResolutionResult) {
|
||||
File pomFile,
|
||||
MavenProject mavenProject,
|
||||
List<ModelProblem> problems,
|
||||
DependencyResolutionResult dependencyResolutionResult) {
|
||||
myProjectId = projectId;
|
||||
myPomFile = pomFile;
|
||||
myMavenProject = mavenProject;
|
||||
@@ -321,11 +332,95 @@ public abstract class Maven3ServerEmbedder extends MavenRemoteObject implements
|
||||
|
||||
public abstract <T> T getComponent(Class<T> clazz);
|
||||
|
||||
public abstract void executeWithMavenSession(MavenExecutionRequest request, Runnable runnable);
|
||||
protected void executeWithMavenSession(MavenExecutionRequest request, Runnable runnable) {
|
||||
DefaultMaven maven = (DefaultMaven)getComponent(Maven.class);
|
||||
SessionScope sessionScope = getComponent(SessionScope.class);
|
||||
sessionScope.enter();
|
||||
|
||||
try {
|
||||
RepositorySystemSession repositorySession = maven.newRepositorySession(request);
|
||||
request.getProjectBuildingRequest().setRepositorySession(repositorySession);
|
||||
MavenSession mavenSession = new MavenSession(getContainer(), repositorySession, request, new DefaultMavenExecutionResult());
|
||||
sessionScope.seed(MavenSession.class, mavenSession);
|
||||
LegacySupport legacySupport = getComponent(LegacySupport.class);
|
||||
MavenSession oldSession = legacySupport.getSession();
|
||||
legacySupport.setSession(mavenSession);
|
||||
|
||||
// adapted from {@link DefaultMaven#doExecute(MavenExecutionRequest)}
|
||||
try {
|
||||
for (AbstractMavenLifecycleParticipant listener : getLifecycleParticipants(Collections.<MavenProject>emptyList())) {
|
||||
listener.afterSessionStart(mavenSession);
|
||||
}
|
||||
runnable.run();
|
||||
}
|
||||
catch (MavenExecutionException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
finally {
|
||||
legacySupport.setSession(oldSession);
|
||||
}
|
||||
}
|
||||
finally {
|
||||
sessionScope.exit();
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected abstract PlexusContainer getContainer();
|
||||
|
||||
public abstract MavenExecutionRequest createRequest(File file,
|
||||
List<String> activeProfiles,
|
||||
List<String> inactiveProfiles,
|
||||
List<String> goals)
|
||||
throws RemoteException;
|
||||
|
||||
protected static void warn(String message, Throwable e) {
|
||||
try {
|
||||
Maven3ServerGlobals.getLogger().warn(new RuntimeException(message, e));
|
||||
}
|
||||
catch (RemoteException e1) {
|
||||
throw new RuntimeException(e1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* adapted from {@link DefaultMaven#getLifecycleParticipants(Collection)}
|
||||
*/
|
||||
private Collection<AbstractMavenLifecycleParticipant> getLifecycleParticipants(Collection<MavenProject> projects) {
|
||||
Collection<AbstractMavenLifecycleParticipant> lifecycleListeners = new LinkedHashSet<AbstractMavenLifecycleParticipant>();
|
||||
|
||||
ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
|
||||
try {
|
||||
try {
|
||||
lifecycleListeners.addAll(getContainer().lookupList(AbstractMavenLifecycleParticipant.class));
|
||||
}
|
||||
catch (ComponentLookupException e) {
|
||||
// this is just silly, lookupList should return an empty list!
|
||||
warn("Failed to lookup lifecycle participants", e);
|
||||
}
|
||||
|
||||
Collection<ClassLoader> scannedRealms = new HashSet<ClassLoader>();
|
||||
|
||||
for (MavenProject project : projects) {
|
||||
ClassLoader projectRealm = project.getClassRealm();
|
||||
|
||||
if (projectRealm != null && scannedRealms.add(projectRealm)) {
|
||||
Thread.currentThread().setContextClassLoader(projectRealm);
|
||||
|
||||
try {
|
||||
lifecycleListeners.addAll(getContainer().lookupList(AbstractMavenLifecycleParticipant.class));
|
||||
}
|
||||
catch (ComponentLookupException e) {
|
||||
// this is just silly, lookupList should return an empty list!
|
||||
warn("Failed to lookup lifecycle participants", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally {
|
||||
Thread.currentThread().setContextClassLoader(originalClassLoader);
|
||||
}
|
||||
|
||||
return lifecycleListeners;
|
||||
}
|
||||
}
|
||||
|
||||
+19
-63
@@ -12,7 +12,10 @@ import com.intellij.util.text.VersionComparatorUtil;
|
||||
import gnu.trove.THashMap;
|
||||
import gnu.trove.THashSet;
|
||||
import org.apache.commons.cli.ParseException;
|
||||
import org.apache.maven.*;
|
||||
import org.apache.maven.AbstractMavenLifecycleParticipant;
|
||||
import org.apache.maven.DefaultMaven;
|
||||
import org.apache.maven.Maven;
|
||||
import org.apache.maven.RepositoryUtils;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.InvalidRepositoryException;
|
||||
import org.apache.maven.artifact.factory.ArtifactFactory;
|
||||
@@ -38,9 +41,11 @@ import org.apache.maven.model.validation.ModelValidator;
|
||||
import org.apache.maven.plugin.LegacySupport;
|
||||
import org.apache.maven.plugin.PluginDescriptorCache;
|
||||
import org.apache.maven.plugin.internal.PluginDependenciesResolver;
|
||||
import org.apache.maven.profiles.activation.*;
|
||||
import org.apache.maven.profiles.activation.JdkPrefixProfileActivator;
|
||||
import org.apache.maven.profiles.activation.OperatingSystemProfileActivator;
|
||||
import org.apache.maven.profiles.activation.ProfileActivator;
|
||||
import org.apache.maven.profiles.activation.SystemPropertyProfileActivator;
|
||||
import org.apache.maven.project.*;
|
||||
import org.apache.maven.project.ProjectDependenciesResolver;
|
||||
import org.apache.maven.project.inheritance.DefaultModelInheritanceAssembler;
|
||||
import org.apache.maven.project.interpolation.AbstractStringBasedModelInterpolator;
|
||||
import org.apache.maven.project.interpolation.ModelInterpolationException;
|
||||
@@ -48,7 +53,6 @@ import org.apache.maven.project.path.DefaultPathTranslator;
|
||||
import org.apache.maven.project.path.PathTranslator;
|
||||
import org.apache.maven.project.validation.ModelValidationResult;
|
||||
import org.apache.maven.repository.RepositorySystem;
|
||||
import org.apache.maven.session.scope.internal.SessionScope;
|
||||
import org.apache.maven.settings.Settings;
|
||||
import org.apache.maven.settings.building.*;
|
||||
import org.apache.maven.shared.dependency.tree.DependencyNode;
|
||||
@@ -56,7 +60,6 @@ import org.apache.maven.shared.dependency.tree.DependencyTreeResolutionListener;
|
||||
import org.codehaus.plexus.DefaultPlexusContainer;
|
||||
import org.codehaus.plexus.PlexusContainer;
|
||||
import org.codehaus.plexus.classworlds.ClassWorld;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||
import org.codehaus.plexus.context.ContextException;
|
||||
import org.codehaus.plexus.context.DefaultContext;
|
||||
@@ -80,8 +83,8 @@ import org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.maven.model.*;
|
||||
import org.jetbrains.idea.maven.server.embedder.*;
|
||||
import org.jetbrains.idea.maven.server.embedder.MavenExecutionResult;
|
||||
import org.jetbrains.idea.maven.server.embedder.*;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Constructor;
|
||||
@@ -257,6 +260,12 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
myRepositorySystem = getComponent(RepositorySystem.class);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected PlexusContainer getContainer() {
|
||||
return myContainer;
|
||||
}
|
||||
|
||||
private static Settings buildSettings(SettingsBuilder builder,
|
||||
MavenServerSettings settings,
|
||||
Properties systemProperties,
|
||||
@@ -288,15 +297,6 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void warn(String message, Throwable e) {
|
||||
try {
|
||||
Maven3ServerGlobals.getLogger().warn(new RuntimeException(message, e));
|
||||
}
|
||||
catch (RemoteException e1) {
|
||||
throw new RuntimeException(e1);
|
||||
}
|
||||
}
|
||||
|
||||
private static MavenExecutionResult handleException(Throwable e) {
|
||||
if (e instanceof Error) throw (Error)e;
|
||||
|
||||
@@ -611,50 +611,6 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
return MavenEffectivePomDumper.evaluateEffectivePom(this, file, activeProfiles, inactiveProfiles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeWithMavenSession(MavenExecutionRequest request, Runnable runnable) {
|
||||
DefaultMaven maven = (DefaultMaven)getComponent(Maven.class);
|
||||
SessionScope sessionScope = getComponent(SessionScope.class);
|
||||
sessionScope.enter();
|
||||
|
||||
try {
|
||||
RepositorySystemSession repositorySession = maven.newRepositorySession(request);
|
||||
|
||||
request.getProjectBuildingRequest().setRepositorySession(repositorySession);
|
||||
|
||||
MavenSession mavenSession = new MavenSession(myContainer, repositorySession, request, new DefaultMavenExecutionResult());
|
||||
|
||||
sessionScope.seed(MavenSession.class, mavenSession);
|
||||
|
||||
LegacySupport legacySupport = getComponent(LegacySupport.class);
|
||||
|
||||
MavenSession oldSession = legacySupport.getSession();
|
||||
|
||||
legacySupport.setSession(mavenSession);
|
||||
|
||||
|
||||
// adapted from {@link DefaultMaven#doExecute(MavenExecutionRequest)}
|
||||
try {
|
||||
for (AbstractMavenLifecycleParticipant listener : getLifecycleParticipants(Collections.<MavenProject>emptyList())) {
|
||||
listener.afterSessionStart(mavenSession);
|
||||
}
|
||||
}
|
||||
catch (MavenExecutionException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
try {
|
||||
runnable.run();
|
||||
}
|
||||
finally {
|
||||
legacySupport.setSession(oldSession);
|
||||
}
|
||||
}
|
||||
finally {
|
||||
sessionScope.exit();
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Collection<MavenExecutionResult> doResolveProject(@NotNull final Collection<File> files,
|
||||
@NotNull final List<String> activeProfiles,
|
||||
@@ -736,7 +692,7 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
}));
|
||||
for (Dependency dependency : dependencies) {
|
||||
final Artifact artifact = winnerDependencyMap.get(dependency);
|
||||
if(artifact != null) {
|
||||
if (artifact != null) {
|
||||
artifacts.add(artifact);
|
||||
resolveAsModule(artifact);
|
||||
}
|
||||
@@ -1022,7 +978,7 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
@NotNull Collection<MavenProjectProblem> problems,
|
||||
@Nullable Collection<MavenId> unresolvedArtifacts) throws RemoteException {
|
||||
for (Throwable each : exceptions) {
|
||||
if(each == null) continue;
|
||||
if (each == null) continue;
|
||||
|
||||
Maven3ServerGlobals.getLogger().info(each);
|
||||
|
||||
@@ -1370,11 +1326,11 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
((CustomMaven3ArtifactFactory)artifactFactory).reset();
|
||||
}
|
||||
final ArtifactResolver artifactResolver = getComponent(ArtifactResolver.class);
|
||||
if(artifactResolver instanceof CustomMaven3ArtifactResolver) {
|
||||
if (artifactResolver instanceof CustomMaven3ArtifactResolver) {
|
||||
((CustomMaven3ArtifactResolver)artifactResolver).reset();
|
||||
}
|
||||
final RepositoryMetadataManager repositoryMetadataManager = getComponent(RepositoryMetadataManager.class);
|
||||
if(repositoryMetadataManager instanceof CustomMaven3RepositoryMetadataManager) {
|
||||
if (repositoryMetadataManager instanceof CustomMaven3RepositoryMetadataManager) {
|
||||
((CustomMaven3RepositoryMetadataManager)repositoryMetadataManager).reset();
|
||||
}
|
||||
//((CustomWagonManager)getComponent(WagonManager.class)).reset();
|
||||
|
||||
+14
-15
@@ -2,7 +2,6 @@
|
||||
package org.jetbrains.idea.maven.server;
|
||||
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.SystemInfoRt;
|
||||
import com.intellij.openapi.util.text.StringUtilRt;
|
||||
import com.intellij.util.ExceptionUtilRt;
|
||||
import com.intellij.util.Function;
|
||||
@@ -40,7 +39,10 @@ import org.apache.maven.model.validation.ModelValidator;
|
||||
import org.apache.maven.plugin.LegacySupport;
|
||||
import org.apache.maven.plugin.PluginDescriptorCache;
|
||||
import org.apache.maven.plugin.internal.PluginDependenciesResolver;
|
||||
import org.apache.maven.profiles.activation.*;
|
||||
import org.apache.maven.profiles.activation.JdkPrefixProfileActivator;
|
||||
import org.apache.maven.profiles.activation.OperatingSystemProfileActivator;
|
||||
import org.apache.maven.profiles.activation.ProfileActivator;
|
||||
import org.apache.maven.profiles.activation.SystemPropertyProfileActivator;
|
||||
import org.apache.maven.project.ProjectDependenciesResolver;
|
||||
import org.apache.maven.project.*;
|
||||
import org.apache.maven.project.inheritance.DefaultModelInheritanceAssembler;
|
||||
@@ -68,7 +70,7 @@ import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea .maven.model.*;
|
||||
import org.jetbrains.idea.maven.model.*;
|
||||
import org.jetbrains.idea.maven.server.embedder.MavenExecutionResult;
|
||||
import org.jetbrains.idea.maven.server.embedder.*;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
@@ -228,6 +230,12 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
myRepositorySystem = getComponent(RepositorySystem.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
protected PlexusContainer getContainer() {
|
||||
return myContainer;
|
||||
}
|
||||
|
||||
private static Settings buildSettings(SettingsBuilder builder,
|
||||
MavenServerSettings settings,
|
||||
Properties systemProperties,
|
||||
@@ -259,15 +267,6 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void warn(String message, Throwable e) {
|
||||
try {
|
||||
Maven3ServerGlobals.getLogger().warn(new RuntimeException(message, e));
|
||||
}
|
||||
catch (RemoteException e1) {
|
||||
throw new RuntimeException(e1);
|
||||
}
|
||||
}
|
||||
|
||||
private static MavenExecutionResult handleException(Throwable e) {
|
||||
if (e instanceof Error) throw (Error)e;
|
||||
|
||||
@@ -929,7 +928,7 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
@NotNull Collection<MavenProjectProblem> problems,
|
||||
@Nullable Collection<MavenId> unresolvedArtifacts) throws RemoteException {
|
||||
for (Throwable each : exceptions) {
|
||||
if(each == null) continue;
|
||||
if (each == null) continue;
|
||||
|
||||
Maven3ServerGlobals.getLogger().info(each);
|
||||
|
||||
@@ -1185,11 +1184,11 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
((CustomMaven3ArtifactFactory)artifactFactory).reset();
|
||||
}
|
||||
final ArtifactResolver artifactResolver = getComponent(ArtifactResolver.class);
|
||||
if(artifactResolver instanceof CustomMaven30ArtifactResolver) {
|
||||
if (artifactResolver instanceof CustomMaven30ArtifactResolver) {
|
||||
((CustomMaven30ArtifactResolver)artifactResolver).reset();
|
||||
}
|
||||
final RepositoryMetadataManager repositoryMetadataManager = getComponent(RepositoryMetadataManager.class);
|
||||
if(repositoryMetadataManager instanceof CustomMaven3RepositoryMetadataManager) {
|
||||
if (repositoryMetadataManager instanceof CustomMaven3RepositoryMetadataManager) {
|
||||
((CustomMaven3RepositoryMetadataManager)repositoryMetadataManager).reset();
|
||||
}
|
||||
//((CustomWagonManager)getComponent(WagonManager.class)).reset();
|
||||
|
||||
+16
-48
@@ -12,7 +12,10 @@ import com.intellij.util.text.VersionComparatorUtil;
|
||||
import gnu.trove.THashMap;
|
||||
import gnu.trove.THashSet;
|
||||
import org.apache.commons.cli.ParseException;
|
||||
import org.apache.maven.*;
|
||||
import org.apache.maven.AbstractMavenLifecycleParticipant;
|
||||
import org.apache.maven.DefaultMaven;
|
||||
import org.apache.maven.Maven;
|
||||
import org.apache.maven.RepositoryUtils;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.InvalidRepositoryException;
|
||||
import org.apache.maven.artifact.factory.ArtifactFactory;
|
||||
@@ -39,7 +42,6 @@ import org.apache.maven.plugin.LegacySupport;
|
||||
import org.apache.maven.plugin.PluginDescriptorCache;
|
||||
import org.apache.maven.plugin.internal.PluginDependenciesResolver;
|
||||
import org.apache.maven.profiles.activation.*;
|
||||
import org.apache.maven.project.ProjectDependenciesResolver;
|
||||
import org.apache.maven.project.*;
|
||||
import org.apache.maven.project.inheritance.DefaultModelInheritanceAssembler;
|
||||
import org.apache.maven.project.interpolation.AbstractStringBasedModelInterpolator;
|
||||
@@ -253,6 +255,12 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
myRepositorySystem = getComponent(RepositorySystem.class);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected PlexusContainer getContainer() {
|
||||
return myContainer;
|
||||
}
|
||||
|
||||
private static Settings buildSettings(SettingsBuilder builder,
|
||||
MavenServerSettings settings,
|
||||
Properties systemProperties,
|
||||
@@ -284,15 +292,6 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void warn(String message, Throwable e) {
|
||||
try {
|
||||
Maven3ServerGlobals.getLogger().warn(new RuntimeException(message, e));
|
||||
}
|
||||
catch (RemoteException e1) {
|
||||
throw new RuntimeException(e1);
|
||||
}
|
||||
}
|
||||
|
||||
private static MavenExecutionResult handleException(Throwable e) {
|
||||
if (e instanceof Error) throw (Error)e;
|
||||
|
||||
@@ -607,38 +606,6 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
return MavenEffectivePomDumper.evaluateEffectivePom(this, file, activeProfiles, inactiveProfiles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeWithMavenSession(MavenExecutionRequest request, Runnable runnable) {
|
||||
DefaultMaven maven = (DefaultMaven)getComponent(Maven.class);
|
||||
RepositorySystemSession repositorySession = maven.newRepositorySession(request);
|
||||
|
||||
request.getProjectBuildingRequest().setRepositorySession(repositorySession);
|
||||
|
||||
MavenSession mavenSession = new MavenSession(myContainer, repositorySession, request, new DefaultMavenExecutionResult());
|
||||
LegacySupport legacySupport = getComponent(LegacySupport.class);
|
||||
|
||||
MavenSession oldSession = legacySupport.getSession();
|
||||
|
||||
legacySupport.setSession(mavenSession);
|
||||
|
||||
// adapted from {@link DefaultMaven#doExecute(MavenExecutionRequest)}
|
||||
try {
|
||||
for (AbstractMavenLifecycleParticipant listener : getLifecycleParticipants(Collections.<MavenProject>emptyList())) {
|
||||
listener.afterSessionStart(mavenSession);
|
||||
}
|
||||
}
|
||||
catch (MavenExecutionException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
try {
|
||||
runnable.run();
|
||||
}
|
||||
finally {
|
||||
legacySupport.setSession(oldSession);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Collection<MavenExecutionResult> doResolveProject(@NotNull final Collection<File> files,
|
||||
@NotNull final List<String> activeProfiles,
|
||||
@@ -720,7 +687,7 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
}));
|
||||
for (Dependency dependency : dependencies) {
|
||||
final Artifact artifact = winnerDependencyMap.get(dependency);
|
||||
if(artifact != null) {
|
||||
if (artifact != null) {
|
||||
artifacts.add(artifact);
|
||||
resolveAsModule(artifact);
|
||||
}
|
||||
@@ -1006,7 +973,7 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
@NotNull Collection<MavenProjectProblem> problems,
|
||||
@Nullable Collection<MavenId> unresolvedArtifacts) throws RemoteException {
|
||||
for (Throwable each : exceptions) {
|
||||
if(each == null) continue;
|
||||
if (each == null) continue;
|
||||
|
||||
Maven3ServerGlobals.getLogger().info(each);
|
||||
|
||||
@@ -1258,7 +1225,8 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
return RepositoryUtils.toArtifact(artifactResult.getArtifact());
|
||||
}
|
||||
}
|
||||
@Override
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
protected List<ArtifactRepository> convertRepositories(List<MavenRemoteRepository> repositories) throws RemoteException {
|
||||
List<ArtifactRepository> result = new ArrayList<ArtifactRepository>();
|
||||
@@ -1345,11 +1313,11 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
((CustomMaven3ArtifactFactory)artifactFactory).reset();
|
||||
}
|
||||
final ArtifactResolver artifactResolver = getComponent(ArtifactResolver.class);
|
||||
if(artifactResolver instanceof CustomMaven3ArtifactResolver) {
|
||||
if (artifactResolver instanceof CustomMaven3ArtifactResolver) {
|
||||
((CustomMaven3ArtifactResolver)artifactResolver).reset();
|
||||
}
|
||||
final RepositoryMetadataManager repositoryMetadataManager = getComponent(RepositoryMetadataManager.class);
|
||||
if(repositoryMetadataManager instanceof CustomMaven3RepositoryMetadataManager) {
|
||||
if (repositoryMetadataManager instanceof CustomMaven3RepositoryMetadataManager) {
|
||||
((CustomMaven3RepositoryMetadataManager)repositoryMetadataManager).reset();
|
||||
}
|
||||
//((CustomWagonManager)getComponent(WagonManager.class)).reset();
|
||||
|
||||
Reference in New Issue
Block a user