mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
jps: fix loading project when project directory is named '.idea' (ZD-62)
This commit is contained in:
+6
-5
@@ -83,15 +83,16 @@ public class JpsProjectLoader extends JpsLoaderBase {
|
||||
new JpsProjectLoader(project, pathVariables, file.getParentFile()).loadFromIpr(file);
|
||||
}
|
||||
else {
|
||||
File dotIdea = new File(file, PathMacroUtil.DIRECTORY_STORE_NAME);
|
||||
File directory;
|
||||
if (file.isDirectory() && file.getName().equals(PathMacroUtil.DIRECTORY_STORE_NAME)) {
|
||||
if (dotIdea.isDirectory()) {
|
||||
directory = dotIdea;
|
||||
}
|
||||
else if (file.isDirectory() && file.getName().equals(PathMacroUtil.DIRECTORY_STORE_NAME)) {
|
||||
directory = file;
|
||||
}
|
||||
else {
|
||||
directory = new File(file, PathMacroUtil.DIRECTORY_STORE_NAME);
|
||||
if (!directory.isDirectory()) {
|
||||
throw new IOException("Cannot find IntelliJ IDEA project files at " + projectPath);
|
||||
}
|
||||
throw new IOException("Cannot find IntelliJ IDEA project files at " + projectPath);
|
||||
}
|
||||
new JpsProjectLoader(project, pathVariables, directory.getParentFile()).loadFromDirectory(directory);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
|
||||
+8
-4
@@ -23,10 +23,7 @@ import org.jetbrains.jps.model.JpsDummyElement;
|
||||
import org.jetbrains.jps.model.JpsEncodingConfigurationService;
|
||||
import org.jetbrains.jps.model.JpsEncodingProjectConfiguration;
|
||||
import org.jetbrains.jps.model.artifact.JpsArtifactService;
|
||||
import org.jetbrains.jps.model.java.JpsJavaDependencyExtension;
|
||||
import org.jetbrains.jps.model.java.JpsJavaDependencyScope;
|
||||
import org.jetbrains.jps.model.java.JpsJavaExtensionService;
|
||||
import org.jetbrains.jps.model.java.JpsJavaSdkType;
|
||||
import org.jetbrains.jps.model.java.*;
|
||||
import org.jetbrains.jps.model.library.JpsLibrary;
|
||||
import org.jetbrains.jps.model.library.JpsOrderRootType;
|
||||
import org.jetbrains.jps.model.library.sdk.JpsSdkReference;
|
||||
@@ -135,6 +132,13 @@ public class JpsProjectSerializationTest extends JpsSerializationTestCase {
|
||||
assertSameElements(lib2.getRootUrls(JpsOrderRootType.COMPILED), getUrl("data/lib2"));
|
||||
}
|
||||
|
||||
public void testDotIdeaUnderDotIdea() {
|
||||
loadProject("/jps/model-serialization/testData/matryoshka/.idea");
|
||||
JpsJavaProjectExtension extension = JpsJavaExtensionService.getInstance().getProjectExtension(myProject);
|
||||
assertNotNull(extension);
|
||||
assertEquals(getUrl("out"), extension.getOutputUrl());
|
||||
}
|
||||
|
||||
public void testLoadEncoding() {
|
||||
loadProject(SAMPLE_PROJECT_PATH);
|
||||
JpsEncodingConfigurationService service = JpsEncodingConfigurationService.getInstance();
|
||||
|
||||
Reference in New Issue
Block a user