maven: fix index context duplication, do not force to download the index for remote...
[idea/community.git] / plugins / maven / src / main / java / org / jetbrains / idea / maven / indices / MavenIndices.java
index 68a45399804bdcc3f549d24d874c24e11aa2f704..3e1bf0e980d998b8ead6f8e13e89d50035aa019e 100644 (file)
@@ -20,7 +20,6 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.jetbrains.idea.maven.project.MavenGeneralSettings;
 import org.jetbrains.idea.maven.server.MavenIndexerWrapper;
-import org.jetbrains.idea.maven.server.MavenServerManager;
 import org.jetbrains.idea.maven.utils.MavenLog;
 import org.jetbrains.idea.maven.utils.MavenProcessCanceledException;
 import org.jetbrains.idea.maven.utils.MavenProgressIndicator;
@@ -57,7 +56,7 @@ public class MavenIndices {
 
       try {
         MavenIndex index = new MavenIndex(myIndexer, each, myListener);
-        if (find(index.getRepositoryId(), index.getRepositoryPathOrUrl(), index.getKind()) != null) {
+        if (find(index.getRepositoryPathOrUrl(), index.getKind()) != null) {
           index.close(true);
           FileUtil.delete(each);
           continue;
@@ -83,8 +82,11 @@ public class MavenIndices {
   }
 
   public synchronized MavenIndex add(String repositoryId, String repositoryPathOrUrl, MavenIndex.Kind kind) throws MavenIndexException {
-    MavenIndex index = find(repositoryId, repositoryPathOrUrl, kind);
-    if (index != null) return index;
+    MavenIndex index = find(repositoryPathOrUrl, kind);
+    if (index != null) {
+      index.registerId(repositoryId);
+      return index;
+    }
 
     File dir = createNewIndexDir();
     index = new MavenIndex(myIndexer, dir, repositoryId, repositoryPathOrUrl, kind, myListener);
@@ -92,10 +94,23 @@ public class MavenIndices {
     return index;
   }
 
+  @Deprecated
+  /**
+   * use {@link ##find(String, MavenIndex.Kind)} instead
+   * @deprecated to remove in IDEA 15
+   */
   @Nullable
   public MavenIndex find(String repositoryId, String repositoryPathOrUrl, MavenIndex.Kind kind) {
     for (MavenIndex each : myIndices) {
-      if (each.isFor(kind, repositoryId, repositoryPathOrUrl)) return each;
+      if (each.isFor(kind, repositoryPathOrUrl)) return each;
+    }
+    return null;
+  }
+
+  @Nullable
+  public MavenIndex find(String repositoryPathOrUrl, MavenIndex.Kind kind) {
+    for (MavenIndex each : myIndices) {
+      if (each.isFor(kind, repositoryPathOrUrl)) return each;
     }
     return null;
   }