From 4cedb6bb4da26659573187f2e1f1abb8d0156b07 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 21 Oct 2016 11:52:39 +0200 Subject: [PATCH] [java] module path in app. run configuration; simplified --- .../application/ApplicationConfiguration.java | 33 +------------------ .../impl/analysis/JavaModuleGraphUtil.java | 28 +++------------- .../src/com/intellij/util/PathsList.java | 7 ---- 3 files changed, 5 insertions(+), 63 deletions(-) diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfiguration.java b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfiguration.java index a7c0218b8a6d..4b228138a5d4 100644 --- a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfiguration.java +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfiguration.java @@ -30,19 +30,14 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.options.SettingsEditorGroup; import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.OrderEnumerator; -import com.intellij.openapi.roots.ProjectFileIndex; import com.intellij.openapi.util.DefaultJDOMExternalizer; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.WriteExternalException; -import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiJavaModule; -import com.intellij.psi.impl.PsiImplUtil; import com.intellij.psi.util.PsiMethodUtil; import com.intellij.refactoring.listeners.RefactoringElementListener; -import com.intellij.util.PathsList; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -50,7 +45,6 @@ import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; -import java.util.stream.Stream; public class ApplicationConfiguration extends ModuleBasedConfiguration implements CommonJavaRunConfigurationParameters, SingleClassConfiguration, RefactoringListenerProvider { @@ -292,34 +286,9 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration classRoots(f, index)) - .forEach(f -> { - modulePath.add(f); - classPath.remove(f); - }); + params.getModulePath().addAll(params.getClassPath().getPathList()); } } } - - private static Stream classRoots(VirtualFile file, ProjectFileIndex index) { - if (index.isInSourceContent(file)) { - Module module = index.getModuleForFile(file); - if (module != null) { - return Stream.of(OrderEnumerator.orderEntries(module).runtimeOnly().withoutSdk().withoutLibraries().withoutDepModules().getClassesRoots()); - } - } - else { - VirtualFile root = index.getClassRootForFile(file); - if (root != null) { - return Stream.of(root); - } - } - return Stream.empty(); - } } } \ No newline at end of file diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaModuleGraphUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaModuleGraphUtil.java index 65bec99cd7ff..c8ad3f474c68 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaModuleGraphUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaModuleGraphUtil.java @@ -63,14 +63,10 @@ public class JavaModuleGraphUtil { } public static boolean reads(@NotNull PsiJavaModule source, @NotNull PsiJavaModule destination) { - return getRequiresGraph(source).reads(source, destination); - } - - @NotNull - public static Collection moduleDependencies(@NotNull PsiJavaModule start) { - Set result = ContainerUtil.newHashSet(); - visit(getRequiresGraph(start), start, result); - return result; + Project project = source.getProject(); + RequiresGraph graph = CachedValuesManager.getManager(project).getCachedValue(project, () -> + Result.create(buildRequiresGraph(project), OUT_OF_CODE_BLOCK_MODIFICATION_COUNT)); + return graph.reads(source, destination); } // Looks for cycles between Java modules in the project sources. @@ -121,12 +117,6 @@ public class JavaModuleGraphUtil { return map; } - private static RequiresGraph getRequiresGraph(@NotNull PsiJavaModule source) { - Project project = source.getProject(); - return CachedValuesManager.getManager(project).getCachedValue(project, () -> - Result.create(buildRequiresGraph(project), OUT_OF_CODE_BLOCK_MODIFICATION_COUNT)); - } - // Starting from source modules, collects all module dependencies in the project. // The resulting graph is used for tracing readability. private static RequiresGraph buildRequiresGraph(Project project) { @@ -158,12 +148,6 @@ public class JavaModuleGraphUtil { } } - private static void visit(RequiresGraph graph, PsiJavaModule module, Set result) { - if (result.add(module)) { - graph.dependencies(module).forEach(dependency -> visit(graph, dependency, result)); - } - } - private static class RequiresGraph { private final Graph myGraph; private final Set myPublicEdges; @@ -187,10 +171,6 @@ public class JavaModuleGraphUtil { return false; } - public Iterable dependencies(PsiJavaModule node) { - return myGraph.getNodes().contains(node) ? () -> myGraph.getIn(node) : Collections.emptyList(); - } - public static String key(PsiJavaModule module, PsiJavaModule exporter) { return module.getModuleName() + '/' + exporter.getModuleName(); } diff --git a/platform/core-api/src/com/intellij/util/PathsList.java b/platform/core-api/src/com/intellij/util/PathsList.java index af0385de832e..2e5ef730428c 100644 --- a/platform/core-api/src/com/intellij/util/PathsList.java +++ b/platform/core-api/src/com/intellij/util/PathsList.java @@ -81,13 +81,6 @@ public class PathsList { add(LOCAL_PATH.fun(file)); } - public void remove(VirtualFile file) { - String path = LOCAL_PATH.fun(file); - if (path != null) { - remove(path); - } - } - public void addFirst(String path) { int index = 0; for (String element : chooseFirstTimeItems(path)) {