IDEA-99915 Gradle: mismatched (yellow) dependencies multiply on changing dependencies list

Don't process old changes as new
This commit is contained in:
Denis.Zhdanov
2013-01-30 12:58:09 +04:00
parent 6bdb1996c1
commit a138692d89
2 changed files with 65 additions and 2 deletions
@@ -125,7 +125,7 @@ public class GradleProjectStructureTreeModel extends DefaultTreeModel {
@Override
public void run() {
Collection<GradleProjectStructureChange> obsoleteChangesToUse = ContainerUtil.subtract(oldChanges, currentChanges);
Collection<GradleProjectStructureChange> currentChangesToUse = currentChanges;
Collection<GradleProjectStructureChange> currentChangesToUse = ContainerUtil.subtract(currentChanges, oldChanges);
if (myChangesComparator != null) {
obsoleteChangesToUse = sort(obsoleteChangesToUse, myChangesComparator);
currentChangesToUse = sort(currentChangesToUse, myChangesComparator);
@@ -225,7 +225,7 @@ public class GradleProjectStructureTreeModel extends DefaultTreeModel {
GradleProject project = myChangesModel.getGradleProject();
if (project != null) {
GradleChangesCalculationContext context = myChangesModel.getCurrentChangesContext(project);
processChanges(context.getKnownChanges(), context.getCurrentChanges());
processChanges(Collections.<GradleProjectStructureChange>emptyList(), context.getCurrentChanges());
filterNodes(root);
}
}
@@ -133,4 +133,67 @@ class GradleOutdatedLibraryVersionTest extends AbstractGradleTest {
dependencies {
'lib (1 -> 2)' ('outdated') } } } }
}
@Test
void "gradle-local library after outdated library"() {
init(
gradle: {
project {
module {
dependencies {
library('lib1-1') } } } },
intellij: {
project {
module {
dependencies {
library('lib1-1') } } } } )
checkChanges {}
setState(gradle: {
project {
module {
dependencies {
library('lib1-2')} } } } )
checkChanges {
libraryVersion (
name: 'lib1',
gradleVersion: '2',
gradleLibraryId: findLibraryId('lib1-2', true),
ideVersion: '1',
ideLibraryId: findLibraryId('lib1-1', false)
)
}
checkTree {
project {
module {
dependencies {
'lib1 (1 -> 2)' ('outdated')} } } }
setState(gradle: {
project {
module {
dependencies {
library('lib1-2')
library('lib2-1') } } } } )
checkChanges {
libraryVersion (
name: 'lib1',
gradleVersion: '2',
gradleLibraryId: findLibraryId('lib1-2', true),
ideVersion: '1',
ideLibraryId: findLibraryId('lib1-1', false)
)
presence {
library(gradle: gradle.libraryDependencies.values().flatten().findAll { it.name == "lib2-1" })
}
}
checkTree {
project {
module {
dependencies {
'lib2-1' ('gradle')
'lib1 (1 -> 2)' ('outdated')
} } } }
}
}