mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
preserving module order
This commit is contained in:
+8
-5
@@ -49,7 +49,10 @@ import org.jetbrains.jps.service.SharedThreadPool;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
@@ -219,12 +222,12 @@ public class JpsProjectLoader extends JpsLoaderBase {
|
||||
Element componentRoot = JDomSerializationUtil.findComponent(root, "ProjectModuleManager");
|
||||
if (componentRoot == null) return;
|
||||
|
||||
final Set<File> moduleFiles = new THashSet<File>(FileUtil.FILE_HASHING_STRATEGY);
|
||||
//final List<File> moduleFiles = new ArrayList<File>();
|
||||
final Set<File> foundFiles = new THashSet<File>(FileUtil.FILE_HASHING_STRATEGY);
|
||||
final List<File> moduleFiles = new ArrayList<File>();
|
||||
for (Element moduleElement : JDOMUtil.getChildren(componentRoot.getChild("modules"), "module")) {
|
||||
final String path = moduleElement.getAttributeValue("filepath");
|
||||
final File file = new File(path);
|
||||
if (file.exists()) {
|
||||
if (foundFiles.add(file) && file.exists()) {
|
||||
moduleFiles.add(file);
|
||||
}
|
||||
else {
|
||||
@@ -240,7 +243,7 @@ public class JpsProjectLoader extends JpsLoaderBase {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static List<JpsModule> loadModules(@NotNull Collection<File> moduleFiles, @Nullable final JpsSdkType<?> projectSdkType,
|
||||
public static List<JpsModule> loadModules(@NotNull List<File> moduleFiles, @Nullable final JpsSdkType<?> projectSdkType,
|
||||
@NotNull final Map<String, String> pathVariables) {
|
||||
List<JpsModule> modules = new ArrayList<JpsModule>();
|
||||
List<Future<Pair<File, Element>>> futureModuleFilesContents = new ArrayList<Future<Pair<File, Element>>>();
|
||||
|
||||
+8
-39
@@ -49,28 +49,12 @@ public class JpsProjectSerializationTest extends JpsSerializationTestCase {
|
||||
assertEquals("sampleProjectName", myProject.getName());
|
||||
List<JpsModule> modules = myProject.getModules();
|
||||
assertEquals(3, modules.size());
|
||||
|
||||
JpsModule main = null;
|
||||
JpsModule xxx = null;
|
||||
JpsModule util = null;
|
||||
for (JpsModule module : modules) {
|
||||
final String name = module.getName();
|
||||
if ("main".equals(name)) {
|
||||
main = module;
|
||||
}
|
||||
else if ("util".equals(name)) {
|
||||
util = module;
|
||||
}
|
||||
else if ("xxx".equals(name)) {
|
||||
xxx = module;
|
||||
}
|
||||
else {
|
||||
fail("Unexpected module name " + name);
|
||||
}
|
||||
}
|
||||
assertNotNull("module 'main' was not loaded", main);
|
||||
assertNotNull("module 'util' was not loaded", util);
|
||||
assertNotNull("module 'xxx' was not loaded", xxx);
|
||||
JpsModule main = modules.get(0);
|
||||
assertEquals("main", main.getName());
|
||||
JpsModule util = modules.get(1);
|
||||
assertEquals("util", util.getName());
|
||||
JpsModule xxx = modules.get(2);
|
||||
assertEquals("xxx", xxx.getName());
|
||||
|
||||
assertTrue(FileUtil.filesEqual(new File(baseDirPath, "util"), JpsModelSerializationDataService.getBaseDirectory(util)));
|
||||
|
||||
@@ -190,23 +174,8 @@ public class JpsProjectSerializationTest extends JpsSerializationTestCase {
|
||||
public void testSaveProject() {
|
||||
loadProject(SAMPLE_PROJECT_PATH);
|
||||
List<JpsModule> modules = myProject.getModules();
|
||||
|
||||
JpsModule main = null, util = null;
|
||||
for (JpsModule module : modules) {
|
||||
final String name = module.getName();
|
||||
if ("main".equals(name)) {
|
||||
main = module;
|
||||
}
|
||||
else if ("util".equals(name)) {
|
||||
util = module;
|
||||
}
|
||||
}
|
||||
|
||||
assertNotNull(main);
|
||||
assertNotNull(util);
|
||||
|
||||
doTestSaveModule(main, SAMPLE_PROJECT_PATH + "/main.iml");
|
||||
doTestSaveModule(util, SAMPLE_PROJECT_PATH + "/util/util.iml");
|
||||
doTestSaveModule(modules.get(0), SAMPLE_PROJECT_PATH + "/main.iml");
|
||||
doTestSaveModule(modules.get(1), SAMPLE_PROJECT_PATH + "/util/util.iml");
|
||||
//tod[nik] remember that test output root wasn't specified and doesn't save it to avoid unnecessary modifications of iml files
|
||||
//doTestSaveModule(modules.get(2), "xxx/xxx.iml");
|
||||
|
||||
|
||||
+6
-23
@@ -14,29 +14,12 @@ public class JpsMavenModuleSerializationTest extends JpsSerializationTestCase {
|
||||
loadProject("plugins/maven/jps-plugin/testData/compiler/classpathTest");
|
||||
List<JpsModule> modules = myProject.getModules();
|
||||
assertEquals(3, modules.size());
|
||||
|
||||
JpsModule main = null;
|
||||
JpsModule dep = null;
|
||||
JpsModule depTest = null;
|
||||
for (JpsModule module : modules) {
|
||||
final String name = module.getName();
|
||||
if ("main".equals(name)) {
|
||||
main = module;
|
||||
}
|
||||
else if ("dep-test".equals(name)) {
|
||||
depTest = module;
|
||||
}
|
||||
else if ("dep".equals(name)) {
|
||||
dep = module;
|
||||
}
|
||||
else {
|
||||
fail("Unexpected module name " + name);
|
||||
}
|
||||
}
|
||||
assertNotNull("module 'main' was not loaded", main);
|
||||
assertNotNull("module 'depTest' was not loaded", depTest);
|
||||
assertNotNull("module 'dep' was not loaded", dep);
|
||||
|
||||
JpsModule main = modules.get(0);
|
||||
assertEquals("main", main.getName());
|
||||
JpsModule dep = modules.get(1);
|
||||
assertEquals("dep", dep.getName());
|
||||
JpsModule depTest = modules.get(2);
|
||||
assertEquals("dep-test", depTest.getName());
|
||||
|
||||
for (JpsModule module : modules) {
|
||||
assertNotNull(getService().getExtension(module));
|
||||
|
||||
Reference in New Issue
Block a user