From d40521434f883157d110f6bfde0184827d93f625 Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 15 Jun 2011 15:06:27 +0400 Subject: [PATCH] IDEA-71000: Building plugin zip should not include dependencies with scope 'provided' into the zip file --- plugins/devkit/src/build/PluginBuildUtil.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/plugins/devkit/src/build/PluginBuildUtil.java b/plugins/devkit/src/build/PluginBuildUtil.java index 8f2d9542934d..c173fdc50fcc 100644 --- a/plugins/devkit/src/build/PluginBuildUtil.java +++ b/plugins/devkit/src/build/PluginBuildUtil.java @@ -59,14 +59,17 @@ public class PluginBuildUtil { return sandboxHome + File.separator + "plugins" + File.separator + module.getName(); } - public static void getDependencies(Module module, Set modules) { - for (Module dependency : ModuleRootManager.getInstance(module).getDependencies()) { - if (dependency.getModuleType() == StdModuleTypes.JAVA) { - if (modules.add(dependency)) { - getDependencies(dependency, modules); + public static void getDependencies(Module module, final Set modules) { + productionRuntimeDependencies(module).forEachModule(new Processor() { + @Override + public boolean process(Module dep) { + if (dep.getModuleType() == StdModuleTypes.JAVA && !modules.contains(dep)) { + modules.add(dep); + getDependencies(dep, modules); } + return true; } - } + }); } public static Module[] getWrongSetDependencies(final Module module) { @@ -85,7 +88,7 @@ public class PluginBuildUtil { } public static void getLibraries(Module module, final Set libs) { - ModuleRootManager.getInstance(module).orderEntries().productionOnly().runtimeOnly().forEachLibrary(new Processor() { + productionRuntimeDependencies(module).forEachLibrary(new Processor() { @Override public boolean process(Library library) { libs.add(library); @@ -93,4 +96,8 @@ public class PluginBuildUtil { } }); } + + private static OrderEnumerator productionRuntimeDependencies(Module module) { + return OrderEnumerator.orderEntries(module).productionOnly().runtimeOnly(); + } }