diff --git a/J2EE/openapi/com/intellij/javaee/module/ModuleLink.java b/J2EE/openapi/com/intellij/javaee/module/ModuleLink.java index 624d62463cd2..bf87aa71cdc3 100644 --- a/J2EE/openapi/com/intellij/javaee/module/ModuleLink.java +++ b/J2EE/openapi/com/intellij/javaee/module/ModuleLink.java @@ -17,11 +17,10 @@ package com.intellij.javaee.module; import com.intellij.openapi.module.Module; import com.sun.org.apache.xml.internal.utils.XMLChar; +import org.jetbrains.annotations.Nullable; import java.io.File; -import org.jetbrains.annotations.Nullable; - /** * @author Alexey Kudravtsev @@ -36,10 +35,13 @@ public abstract class ModuleLink extends ContainerElement { public abstract String getId(); + public abstract boolean hasId(String id); + public abstract String getName(); public static String getId(Module module) { - final String baseName = module == null ? "" : new File(module.getModuleFilePath()).getName(); + String baseName = module == null ? "" : new File(module.getModuleFilePath()).getName(); + if (baseName.endsWith(".iml")) baseName = baseName.substring(0, baseName.length() - ".iml".length()); return convertNameToXmlName(baseName); } @@ -54,4 +56,9 @@ public abstract class ModuleLink extends ContainerElement { } return builder.toString(); } + + public static boolean hasId(final Module module, final String id) { + final String id1 = getId(module); + return id1.equals(id) || (id1 + ".iml").equals(id); + } } diff --git a/J2EE/source/com/intellij/javaee/module/ModuleLinkImpl.java b/J2EE/source/com/intellij/javaee/module/ModuleLinkImpl.java index 4da423b32881..99a64957dab1 100644 --- a/J2EE/source/com/intellij/javaee/module/ModuleLinkImpl.java +++ b/J2EE/source/com/intellij/javaee/module/ModuleLinkImpl.java @@ -112,6 +112,10 @@ public class ModuleLinkImpl extends ModuleLink { return getId(getModule()); } + public boolean hasId(String id) { + return hasId(getModule(), id); + } + public String getPresentableName() { return getName(); } diff --git a/compiler/impl/com/intellij/compiler/ModuleCompilerUtil.java b/compiler/impl/com/intellij/compiler/ModuleCompilerUtil.java index 18576b4a3311..1241ae22c4fb 100644 --- a/compiler/impl/com/intellij/compiler/ModuleCompilerUtil.java +++ b/compiler/impl/com/intellij/compiler/ModuleCompilerUtil.java @@ -1,8 +1,8 @@ package com.intellij.compiler; import com.intellij.javaee.JavaeeModuleProperties; -import com.intellij.javaee.module.ModuleLink; import com.intellij.javaee.model.JavaeeApplicationModel; +import com.intellij.javaee.module.ModuleLink; import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; @@ -11,9 +11,7 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.ModuleType; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Computable; -import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.graph.CachingSemiGraph; import com.intellij.util.graph.DFSTBuilder; import com.intellij.util.graph.Graph; @@ -35,12 +33,12 @@ public final class ModuleCompilerUtil { return ModuleRootManager.getInstance(module).getDependencies(); } List result = new ArrayList(); - final com.intellij.javaee.model.xml.application.Application root = ((JavaeeApplicationModel)JavaeeModuleProperties.getInstance(module)).getRoot(); + final com.intellij.javaee.model.xml.application.JavaeeApplication root = ((JavaeeApplicationModel)JavaeeModuleProperties.getInstance(module)).getRoot(); if (root == null) { return Module.EMPTY_ARRAY; } - final List modules = root.getModules(); - for (final com.intellij.javaee.model.xml.application.Module moduleInApplication : modules) { + final List modules = root.getModules(); + for (final com.intellij.javaee.model.xml.application.JavaeeModule moduleInApplication : modules) { final Module depModule = getReferenceModule(moduleInApplication); if (depModule != null && !dependsOn(depModule, module)) { result.add(depModule); @@ -49,7 +47,7 @@ public final class ModuleCompilerUtil { return result.toArray(new Module[result.size()]); } - public static Module getReferenceModule(final com.intellij.javaee.model.xml.application.Module moduleLink) { + public static Module getReferenceModule(final com.intellij.javaee.model.xml.application.JavaeeModule moduleLink) { String id = moduleLink.getId().getValue(); Module[] modules = ApplicationManager.getApplication().runReadAction(new Computable(){ public Module[] compute() { @@ -58,7 +56,7 @@ public final class ModuleCompilerUtil { }); for (Module module : modules) { - if (Comparing.equal(ModuleLink.getId(module), id)) return module; + if (ModuleLink.hasId(module, id)) return module; } return null; }