mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 06:05:01 +07:00
external build: follow IDEA's behavior and add 'module-source' dependency if it's missing in iml file generated by third-party tool (IDEA-152998)
This commit is contained in:
+5
@@ -91,10 +91,12 @@ public class JpsModuleRootModelSerializer {
|
||||
dependenciesList.clear();
|
||||
final JpsElementFactory elementFactory = JpsElementFactory.getInstance();
|
||||
UniqueNameGenerator nameGenerator = new UniqueNameGenerator();
|
||||
boolean moduleSourceAdded = false;
|
||||
for (Element orderEntry : getChildren(rootModelComponent, ORDER_ENTRY_TAG)) {
|
||||
String type = orderEntry.getAttributeValue(TYPE_ATTRIBUTE);
|
||||
if (SOURCE_FOLDER_TYPE.equals(type)) {
|
||||
dependenciesList.addModuleSourceDependency();
|
||||
moduleSourceAdded = true;
|
||||
}
|
||||
else if (JDK_TYPE.equals(type)) {
|
||||
String sdkName = orderEntry.getAttributeValue(JDK_NAME_ATTRIBUTE);
|
||||
@@ -140,6 +142,9 @@ public class JpsModuleRootModelSerializer {
|
||||
loadModuleDependencyProperties(dependency, orderEntry);
|
||||
}
|
||||
}
|
||||
if (!moduleSourceAdded) {
|
||||
dependenciesList.addModuleSourceDependency();
|
||||
}
|
||||
|
||||
for (JpsModelSerializerExtension extension : JpsModelSerializerExtension.getExtensions()) {
|
||||
extension.loadRootModel(module, rootModelComponent);
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
</component>
|
||||
</module>
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/missingModuleSourcesOrderEntry.iml" filepath="$PROJECT_DIR$/missingModuleSourcesOrderEntry.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.4" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
|
||||
+9
@@ -179,6 +179,15 @@ public class JpsProjectSerializationTest extends JpsSerializationTestCase {
|
||||
doTestSaveModule(module, projectPath + "resourceRoots.iml");
|
||||
}
|
||||
|
||||
public void testMissingModuleSourcesOrderEntry() {
|
||||
loadProject("/jps/model-serialization/testData/missingModuleSourcesOrderEntry/missingModuleSourcesOrderEntry.ipr");
|
||||
JpsModule module = assertOneElement(myProject.getModules());
|
||||
List<JpsDependencyElement> dependencies = module.getDependenciesList().getDependencies();
|
||||
assertEquals(2, dependencies.size());
|
||||
assertInstanceOf(dependencies.get(0), JpsSdkDependency.class);
|
||||
assertInstanceOf(dependencies.get(1), JpsModuleSourceDependency.class);
|
||||
}
|
||||
|
||||
private static void checkResourceRoot(JpsModuleSourceRoot root, boolean forGenerated, String relativeOutput) {
|
||||
assertSame(JavaResourceRootType.RESOURCE, root.getRootType());
|
||||
JavaResourceRootProperties properties = root.getProperties(JavaResourceRootType.RESOURCE);
|
||||
|
||||
Reference in New Issue
Block a user