Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java')
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java26
1 files changed, 18 insertions, 8 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 68070024..70ef883d 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
@@ -317,12 +317,12 @@ public class ProjectRegistryManager {
// TODO remove=false?
Set<IFile> refresh = new LinkedHashSet<IFile>();
if(installedArtifacts.add(artifact)) {
- refresh.addAll(newState.getDependents(MavenCapability.createMavenParent(artifact), true));
- refresh.addAll(newState.getDependents(MavenCapability.createMavenArtifact(artifact), true));
+ refresh.addAll(newState.getVersionedDependents(MavenCapability.createMavenParent(artifact), true));
+ refresh.addAll(newState.getVersionedDependents(MavenCapability.createMavenArtifact(artifact), true));
}
if(installedArtifacts.add(baseArtifact)) {
- refresh.addAll(newState.getDependents(MavenCapability.createMavenParent(baseArtifact), true));
- refresh.addAll(newState.getDependents(MavenCapability.createMavenArtifact(baseArtifact), true));
+ refresh.addAll(newState.getVersionedDependents(MavenCapability.createMavenParent(baseArtifact), true));
+ refresh.addAll(newState.getVersionedDependents(MavenCapability.createMavenArtifact(baseArtifact), true));
}
if(!refresh.isEmpty()) {
log.debug("Automatic refresh. artifact={}/{}. projects={}", new Object[] {baseArtifact, artifact, refresh});
@@ -371,7 +371,7 @@ public class ProjectRegistryManager {
if(oldFacade != null) {
// refresh old child modules
MavenCapability mavenParentCapability = MavenCapability.createMavenParent(oldFacade.getArtifactKey());
- context.forcePomFiles(newState.getDependents(mavenParentCapability, true));
+ context.forcePomFiles(newState.getVersionedDependents(mavenParentCapability, true));
}
newFacade = readMavenProjectFacade(pom, context, newState, monitor);
@@ -388,7 +388,7 @@ public class ProjectRegistryManager {
if(newFacade != null) {
// refresh new child modules
MavenCapability mavenParentCapability = MavenCapability.createMavenParent(newFacade.getArtifactKey());
- context.forcePomFiles(newState.getDependents(mavenParentCapability, true));
+ context.forcePomFiles(newState.getVersionedDependents(mavenParentCapability, true));
Set<Capability> capabilities = new LinkedHashSet<Capability>();
capabilities.add(mavenParentCapability);
@@ -531,8 +531,18 @@ public class ProjectRegistryManager {
}
// if our capabilities changed, recalculate everyone who depends on new/changed/removed capabilities
Set<Capability> changedCapabilities = diff(oldCapabilities, capabilities);
+
+ // refresh versioned dependents if only parent capability has changed
+ boolean versionedCapabilitiesOnly = true;
+ for(Capability capability : changedCapabilities) {
+ if(MavenCapability.NS_MAVEN_ARTIFACT.equals(capability.getVersionlessKey().getNamespace())) {
+ versionedCapabilitiesOnly = false;
+ break;
+ }
+ }
for(Capability capability : changedCapabilities) {
- context.forcePomFiles(newState.getDependents(capability, true));
+ context.forcePomFiles(versionedCapabilitiesOnly ? newState.getVersionedDependents(capability, true) : newState
+ .getDependents(capability, true));
}
Set<RequiredCapability> oldRequirements = newState.setRequirements(pom, requirements);
@@ -543,7 +553,7 @@ public class ProjectRegistryManager {
// this is needed to deal with transitive dependency resolution in maven
if(oldCapabilities != null && hasDiff(oldRequirements, requirements)) {
for(Capability capability : oldCapabilities) {
- context.forcePomFiles(newState.getDependents(capability.getVersionlessKey(), true));
+ context.forcePomFiles(newState.getVersionedDependents(capability, true));
}
}

Back to the top