Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java
index dbb593bc..1aeb1fd8 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java
@@ -69,17 +69,20 @@ import org.eclipse.m2e.core.internal.Messages;
import org.eclipse.m2e.core.internal.embedder.MavenImpl;
import org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory;
import org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingResult;
+import org.eclipse.m2e.core.internal.lifecyclemapping.model.PluginExecutionMetadata;
import org.eclipse.m2e.core.internal.markers.IMavenMarkerManager;
import org.eclipse.m2e.core.internal.markers.MarkerUtils;
import org.eclipse.m2e.core.internal.project.DependencyResolutionContext;
import org.eclipse.m2e.core.internal.project.IManagedCache;
import org.eclipse.m2e.core.internal.project.ResolverConfigurationIO;
+import org.eclipse.m2e.core.lifecyclemapping.model.IPluginExecutionMetadata;
import org.eclipse.m2e.core.project.IMavenProjectChangedListener;
import org.eclipse.m2e.core.project.IMavenProjectFacade;
import org.eclipse.m2e.core.project.MavenProjectChangedEvent;
import org.eclipse.m2e.core.project.MavenUpdateRequest;
import org.eclipse.m2e.core.project.ResolverConfiguration;
import org.eclipse.m2e.core.project.configurator.ILifecycleMapping;
+import org.eclipse.m2e.core.project.configurator.MojoExecutionKey;
/**
* This class keeps track of all maven projects present in the workspace and
@@ -524,7 +527,12 @@ public class ProjectRegistryManager {
monitor);
newFacade.setLifecycleMappingId(mappingResult.getLifecycleMappingId());
- newFacade.setMojoExecutionMapping(mappingResult.getMojoExecutionMapping());
+ Map<MojoExecutionKey, List<IPluginExecutionMetadata>> mojoExecutionMapping = mappingResult
+ .getMojoExecutionMapping();
+ if(mojoExecutionMapping != null) {
+ detachMappingSources(mojoExecutionMapping);
+ }
+ newFacade.setMojoExecutionMapping(mojoExecutionMapping);
// XXX reconcile with corresponding LifecycleMappingFactory methods
newFacade.setSessionProperty(MavenProjectFacade.PROP_LIFECYCLE_MAPPING, mappingResult.getLifecycleMapping());
@@ -537,6 +545,16 @@ public class ProjectRegistryManager {
}
}
+ private void detachMappingSources(Map<MojoExecutionKey, List<IPluginExecutionMetadata>> mapping) {
+ for(List<IPluginExecutionMetadata> executions : mapping.values()) {
+ if(executions != null) {
+ for(IPluginExecutionMetadata execution : executions) {
+ ((PluginExecutionMetadata) execution).setSource(null);
+ }
+ }
+ }
+ }
+
static <T> Set<T> diff(Set<T> a, Set<T> b) {
if(a == null || a.isEmpty()) {
if(b == null || b.isEmpty()) {

Back to the top