mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 06:50:54 +07:00
IDEADEV-7373 "id" attributes in application.xml should contain only module file names, without the ending ".iml"
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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<Module> result = new ArrayList<Module>();
|
||||
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<com.intellij.javaee.model.xml.application.Module> modules = root.getModules();
|
||||
for (final com.intellij.javaee.model.xml.application.Module moduleInApplication : modules) {
|
||||
final List<com.intellij.javaee.model.xml.application.JavaeeModule> 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<Module[]>(){
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user