Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Fedorenko2011-07-31 07:58:16 +0000
committerIgor Fedorenko2011-07-31 07:58:16 +0000
commitc47e215285d7c562d2e8c98c52a80349abe070b6 (patch)
tree7960aca2bfe35fdf5b1745332a7bb24c1b407dfd /org.eclipse.m2e.core
parente288b8a47e935b50a091b259cb96beebbe5c3ee7 (diff)
parent74e41f5cadf4d515ccb47e38a8656a7b111ef457 (diff)
downloadm2e-core-c47e215285d7c562d2e8c98c52a80349abe070b6.tar.gz
m2e-core-c47e215285d7c562d2e8c98c52a80349abe070b6.tar.xz
m2e-core-c47e215285d7c562d2e8c98c52a80349abe070b6.zip
Merge remote-tracking branch 'origin/master' into m2e-self-hosting
Diffstat (limited to 'org.eclipse.m2e.core')
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilder.java4
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java28
2 files changed, 32 insertions, 0 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilder.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilder.java
index 169fa3b8..b08ac264 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilder.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilder.java
@@ -174,6 +174,7 @@ public class MavenBuilder extends IncrementalProjectBuilder {
participant.setGetDeltaCallback(getDeltaCallback);
participant.setSession(session);
participant.setBuildContext(buildContext);
+ long executionStartTime = System.currentTimeMillis();
try {
if(FULL_BUILD == kind || delta != null || participant.callOnEmptyDelta()) {
Set<IProject> sub = participant.build(kind, monitor);
@@ -185,6 +186,9 @@ public class MavenBuilder extends IncrementalProjectBuilder {
log.debug("Exception in build participant {}", participant.getClass().getName(), e);
buildErrors.put(e, mojoExecutionKey);
} finally {
+ log.debug("Finished executing build participant {} for plugin execution {} in {} ms", new Object[] {
+ participant.getClass().getName(), mojoExecutionKey.toString(),
+ System.currentTimeMillis() - executionStartTime});
participant.setMavenProjectFacade(null);
participant.setGetDeltaCallback(null);
participant.setSession(null);
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java
index 5d35bdb0..056a9d93 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java
@@ -20,12 +20,17 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
+import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,7 +79,9 @@ import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.lifecycle.LifecycleExecutor;
import org.apache.maven.lifecycle.MavenExecutionPlan;
+import org.apache.maven.lifecycle.internal.DependencyContext;
import org.apache.maven.lifecycle.internal.LifecycleExecutionPlanCalculator;
+import org.apache.maven.lifecycle.internal.MojoExecutor;
import org.apache.maven.model.ConfigurationContainer;
import org.apache.maven.model.InputLocation;
import org.apache.maven.model.Model;
@@ -286,10 +293,31 @@ public class MavenImpl implements IMaven, IMavenConfigurationChangeListener {
}
public void execute(MavenSession session, MojoExecution execution, IProgressMonitor monitor) {
+ Map<MavenProject, Set<Artifact>> artifacts = new HashMap<MavenProject, Set<Artifact>>();
+ for(MavenProject project : session.getProjects()) {
+ artifacts.put(project, new LinkedHashSet<Artifact>(project.getArtifacts()));
+ }
try {
+ MojoExecutor mojoExecutor = lookup(MojoExecutor.class);
+ DependencyContext dependencyContext = mojoExecutor.newDependencyContext(session,
+ Collections.singletonList(execution));
+
+ // workaround for http://jira.codehaus.org/browse/MNG-5141
+ // use reflection until we can get maven 3.0.4+, which has MNG-5141 fixed
+ Method ensureDependenciesAreResolved = mojoExecutor.getClass().getDeclaredMethod("ensureDependenciesAreResolved",
+ MojoDescriptor.class, MavenSession.class, DependencyContext.class);
+ ensureDependenciesAreResolved.setAccessible(true);
+ ensureDependenciesAreResolved.invoke(mojoExecutor, execution.getMojoDescriptor(), session, dependencyContext);
+
lookup(BuildPluginManager.class).executeMojo(session, execution);
} catch(Exception ex) {
session.getResult().addException(ex);
+ } finally {
+ for(MavenProject project : session.getProjects()) {
+ project.setArtifactFilter(null);
+ project.setResolvedArtifacts(null);
+ project.setArtifacts(artifacts.get(project));
+ }
}
}

Back to the top