diff --git a/jps/antLayout/src/jetbrains/antlayout/tasks/LayoutTask.java b/jps/antLayout/src/jetbrains/antlayout/tasks/LayoutTask.java index d2308112a4d4..ac2419a528f7 100755 --- a/jps/antLayout/src/jetbrains/antlayout/tasks/LayoutTask.java +++ b/jps/antLayout/src/jetbrains/antlayout/tasks/LayoutTask.java @@ -33,6 +33,10 @@ public class LayoutTask extends Task { containers.add(container); } + public void addModule(IdeaModule module) { + containers.add(new FileSetContainer(module)); + } + public void addFileset(FileSet fileSet) { containers.add(new FileSetContainer(fileSet)); } diff --git a/jps/src/org/jetbrains/jps/idea/IdeaProjectLoader.groovy b/jps/src/org/jetbrains/jps/idea/IdeaProjectLoader.groovy index 4536c49a435d..cceaca667b54 100644 --- a/jps/src/org/jetbrains/jps/idea/IdeaProjectLoader.groovy +++ b/jps/src/org/jetbrains/jps/idea/IdeaProjectLoader.groovy @@ -138,7 +138,7 @@ public class IdeaProjectLoader { } private NodeList loadProjectLibraries(Node librariesComponent, Project project, String projectBasePath) { - return librariesComponent?.library.each {Node libTag -> + return librariesComponent?.library?.each {Node libTag -> project.createLibrary(libTag."@name", libraryInitializer(libTag, projectBasePath, null)) } } diff --git a/jps/testData/overwriteTest/data/d1/x.txt b/jps/testData/overwriteTest/data/d1/x.txt new file mode 100644 index 000000000000..562890baa53a --- /dev/null +++ b/jps/testData/overwriteTest/data/d1/x.txt @@ -0,0 +1 @@ +d1 \ No newline at end of file diff --git a/jps/testData/overwriteTest/data/d2/x.txt b/jps/testData/overwriteTest/data/d2/x.txt new file mode 100644 index 000000000000..624c89d7c4d3 --- /dev/null +++ b/jps/testData/overwriteTest/data/d2/x.txt @@ -0,0 +1 @@ +d2 \ No newline at end of file diff --git a/jps/testData/overwriteTest/dep/dep.iml b/jps/testData/overwriteTest/dep/dep.iml new file mode 100644 index 000000000000..d5c074327501 --- /dev/null +++ b/jps/testData/overwriteTest/dep/dep.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/jps/testData/overwriteTest/dep/src/a.xml b/jps/testData/overwriteTest/dep/src/a.xml new file mode 100644 index 000000000000..a185e52cec98 --- /dev/null +++ b/jps/testData/overwriteTest/dep/src/a.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jps/testData/overwriteTest/overwriteTest.iml b/jps/testData/overwriteTest/overwriteTest.iml new file mode 100644 index 000000000000..d5c074327501 --- /dev/null +++ b/jps/testData/overwriteTest/overwriteTest.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/jps/testData/overwriteTest/overwriteTest.ipr b/jps/testData/overwriteTest/overwriteTest.ipr new file mode 100644 index 000000000000..96384495dfed --- /dev/null +++ b/jps/testData/overwriteTest/overwriteTest.ipr @@ -0,0 +1,49 @@ + + + + + $PROJECT_DIR$/out/artifacts/dirs + + + + + + + $PROJECT_DIR$/out/artifacts/classes + + + + + + + + + + + + + + + + + + + diff --git a/jps/testData/overwriteTest/src/a.xml b/jps/testData/overwriteTest/src/a.xml new file mode 100644 index 000000000000..8d3d60bcf499 --- /dev/null +++ b/jps/testData/overwriteTest/src/a.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/jps/testSrc/org/jetbrains/jps/JpsBuildTestCase.groovy b/jps/testSrc/org/jetbrains/jps/JpsBuildTestCase.groovy index 1695195745eb..17540cb57cbe 100644 --- a/jps/testSrc/org/jetbrains/jps/JpsBuildTestCase.groovy +++ b/jps/testSrc/org/jetbrains/jps/JpsBuildTestCase.groovy @@ -2,7 +2,9 @@ package org.jetbrains.jps import junit.framework.TestCase import org.codehaus.gant.GantBinding -import org.jetbrains.jps.idea.IdeaProjectLoader; +import org.jetbrains.jps.idea.IdeaProjectLoader +import org.jetbrains.jps.util.FileSystemItem +import org.jetbrains.jps.util.FileUtil; /** * @author nik diff --git a/jps/testSrc/org/jetbrains/jps/OverwriteTest.groovy b/jps/testSrc/org/jetbrains/jps/OverwriteTest.groovy new file mode 100644 index 000000000000..3f6dedefab9a --- /dev/null +++ b/jps/testSrc/org/jetbrains/jps/OverwriteTest.groovy @@ -0,0 +1,27 @@ +package org.jetbrains.jps + +/** + * @author nik + */ +class OverwriteTest extends JpsBuildTestCase { + public void testOverwriteArtifacts() throws Exception { + doTest("testData/overwriteTest/overwriteTest.ipr", {}, { + dir("artifacts") { + dir("classes") { + file("a.xml", "") + } + dir("dirs") { + file("x.txt", "d2") + } + } + dir("production") { + dir("dep") { + file("a.xml", "") + } + dir("overwriteTest") { + file("a.xml", "") + } + } + }) + } +} diff --git a/jps/testSrc/org/jetbrains/jps/FileSystemItem.groovy b/jps/testSrc/org/jetbrains/jps/util/FileSystemItem.groovy similarity index 98% rename from jps/testSrc/org/jetbrains/jps/FileSystemItem.groovy rename to jps/testSrc/org/jetbrains/jps/util/FileSystemItem.groovy index 77e814f25164..f04a45049785 100644 --- a/jps/testSrc/org/jetbrains/jps/FileSystemItem.groovy +++ b/jps/testSrc/org/jetbrains/jps/util/FileSystemItem.groovy @@ -1,4 +1,4 @@ -package org.jetbrains.jps +package org.jetbrains.jps.util import junit.framework.Assert diff --git a/jps/testSrc/org/jetbrains/jps/FileUtil.groovy b/jps/testSrc/org/jetbrains/jps/util/FileUtil.groovy similarity index 99% rename from jps/testSrc/org/jetbrains/jps/FileUtil.groovy rename to jps/testSrc/org/jetbrains/jps/util/FileUtil.groovy index 5240dd97bd56..9af86d7a25c1 100644 --- a/jps/testSrc/org/jetbrains/jps/FileUtil.groovy +++ b/jps/testSrc/org/jetbrains/jps/util/FileUtil.groovy @@ -1,4 +1,4 @@ -package org.jetbrains.jps +package org.jetbrains.jps.util /** * @author nik diff --git a/jps/testSrc/org/jetbrains/jps/ZipUtil.groovy b/jps/testSrc/org/jetbrains/jps/util/ZipUtil.groovy similarity index 98% rename from jps/testSrc/org/jetbrains/jps/ZipUtil.groovy rename to jps/testSrc/org/jetbrains/jps/util/ZipUtil.groovy index ddbf5c10b22e..4f1227b840ad 100644 --- a/jps/testSrc/org/jetbrains/jps/ZipUtil.groovy +++ b/jps/testSrc/org/jetbrains/jps/util/ZipUtil.groovy @@ -1,4 +1,4 @@ -package org.jetbrains.jps +package org.jetbrains.jps.util import java.util.zip.ZipEntry import java.util.zip.ZipFile