summaryrefslogtreecommitdiff
path: root/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/LibraryDependencyDataService.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/LibraryDependencyDataService.java')
-rw-r--r--platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/LibraryDependencyDataService.java27
1 files changed, 12 insertions, 15 deletions
diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/LibraryDependencyDataService.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/LibraryDependencyDataService.java
index e5be5273838e..b24cb1cdd1be 100644
--- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/LibraryDependencyDataService.java
+++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/LibraryDependencyDataService.java
@@ -141,10 +141,7 @@ public class LibraryDependencyDataService extends AbstractDependencyDataService<
LibraryTable moduleLibraryTable = moduleRootModel.getModuleLibraryTable();
LibraryTable libraryTable = myPlatformFacade.getProjectLibraryTable(module.getProject());
try {
- if (!hasUnresolved) { // There is a possible case that a project has been successfully imported from external model and after
- // that network/repo goes down. We don't want to drop existing binary mappings then.
- removeObsolete(moduleLibrariesToImport, projectLibrariesToImport, toImport, moduleRootModel);
- }
+ filterUpToDateAndRemoveObsolete(moduleLibrariesToImport, projectLibrariesToImport, toImport, moduleRootModel, hasUnresolved);
// Import missing library dependencies.
if (!toImport.isEmpty()) {
@@ -166,9 +163,6 @@ public class LibraryDependencyDataService extends AbstractDependencyDataService<
{
for (LibraryDependencyData dependencyData : toImport) {
LibraryData libraryData = dependencyData.getTarget();
- if (libraryData.isUnresolved()) {
- continue;
- }
switch (dependencyData.getLevel()) {
case MODULE:
@SuppressWarnings("ConstantConditions") Library moduleLib = moduleLibraryTable.createLibrary(dependencyData.getName());
@@ -199,10 +193,11 @@ public class LibraryDependencyDataService extends AbstractDependencyDataService<
}
}
- private static void removeObsolete(@NotNull Map<Set<String>, LibraryDependencyData> moduleLibrariesToImport,
- @NotNull Map<String, LibraryDependencyData> projectLibrariesToImport,
- @NotNull Set<LibraryDependencyData> toImport,
- @NotNull ModifiableRootModel moduleRootModel)
+ private static void filterUpToDateAndRemoveObsolete(@NotNull Map<Set<String>, LibraryDependencyData> moduleLibrariesToImport,
+ @NotNull Map<String, LibraryDependencyData> projectLibrariesToImport,
+ @NotNull Set<LibraryDependencyData> toImport,
+ @NotNull ModifiableRootModel moduleRootModel,
+ boolean hasUnresolvedLibraries)
{
Set<String> moduleLibraryKey = ContainerUtilRt.newHashSet();
for (OrderEntry entry : moduleRootModel.getOrderEntries()) {
@@ -227,12 +222,14 @@ public class LibraryDependencyDataService extends AbstractDependencyDataService<
else if (entry instanceof LibraryOrderEntry) {
String libraryName = ((LibraryOrderEntry)entry).getLibraryName();
LibraryDependencyData existing = projectLibrariesToImport.remove(libraryName);
- if (existing == null) {
- moduleRootModel.removeOrderEntry(entry);
- }
- else {
+ if (existing != null) {
toImport.remove(existing);
}
+ else if (!hasUnresolvedLibraries) {
+ // There is a possible case that a project has been successfully imported from external model and after
+ // that network/repo goes down. We don't want to drop existing binary mappings then.
+ moduleRootModel.removeOrderEntry(entry);
+ }
}
}
}