diff --git a/docs/manual/CoreTasks/unzip.html b/docs/manual/CoreTasks/unzip.html
index c4e55e33e..56beac1ee 100644
--- a/docs/manual/CoreTasks/unzip.html
+++ b/docs/manual/CoreTasks/unzip.html
@@ -14,9 +14,17 @@
PatternSets are used to select files to extract
from the archive. If no patternset is used, all files are extracted.
-FileSets may be used to select archived files
-to perform unarchival upon.
-
+
+Resource
+Collections may be used to select archived files to perform
+unarchival upon. Only file system based resource collections are
+supported by Unjar/Unwar/Unzip, this includes filesets, filelist and path. Untar supports arbitrary resource
+collections. Prior to Ant 1.7 only fileset has been supported as a
+nested element.
+
You can define filename transformations by using a nested mapper element. The default mapper is the
identity mapper.
diff --git a/src/etc/testcases/taskdefs/untar.xml b/src/etc/testcases/taskdefs/untar.xml
index e1a34cfa6..def2d8449 100644
--- a/src/etc/testcases/taskdefs/untar.xml
+++ b/src/etc/testcases/taskdefs/untar.xml
@@ -4,6 +4,7 @@
+
@@ -44,4 +45,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/etc/testcases/taskdefs/unzip.xml b/src/etc/testcases/taskdefs/unzip.xml
index 18d2345da..536fbecc4 100644
--- a/src/etc/testcases/taskdefs/unzip.xml
+++ b/src/etc/testcases/taskdefs/unzip.xml
@@ -122,4 +122,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/UntarTest.java b/src/testcases/org/apache/tools/ant/taskdefs/UntarTest.java
index bd9f52da7..cc366641c 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/UntarTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/UntarTest.java
@@ -39,39 +39,27 @@ public class UntarTest extends BuildFileTest {
}
public void testRealTest() throws java.io.IOException {
- executeTarget("realTest");
- assertTrue(FILE_UTILS.contentEquals(project.resolveFile("../asf-logo.gif"),
- project.resolveFile("asf-logo.gif")));
+ testLogoExtraction("realTest");
}
public void testRealGzipTest() throws java.io.IOException {
- executeTarget("realGzipTest");
- assertTrue(FILE_UTILS.contentEquals(project.resolveFile("../asf-logo.gif"),
- project.resolveFile("asf-logo.gif")));
+ testLogoExtraction("realGzipTest");
}
public void testRealBzip2Test() throws java.io.IOException {
- executeTarget("realBzip2Test");
- assertTrue(FILE_UTILS.contentEquals(project.resolveFile("../asf-logo.gif"),
- project.resolveFile("asf-logo.gif")));
+ testLogoExtraction("realBzip2Test");
}
public void testTestTarTask() throws java.io.IOException {
- executeTarget("testTarTask");
- assertTrue(FILE_UTILS.contentEquals(project.resolveFile("../asf-logo.gif"),
- project.resolveFile("asf-logo.gif")));
+ testLogoExtraction("testTarTask");
}
public void testTestGzipTarTask() throws java.io.IOException {
- executeTarget("testGzipTarTask");
- assertTrue(FILE_UTILS.contentEquals(project.resolveFile("../asf-logo.gif"),
- project.resolveFile("asf-logo.gif")));
+ testLogoExtraction("testGzipTarTask");
}
public void testTestBzip2TarTask() throws java.io.IOException {
- executeTarget("testBzip2TarTask");
- assertTrue(FILE_UTILS.contentEquals(project.resolveFile("../asf-logo.gif"),
- project.resolveFile("asf-logo.gif")));
+ testLogoExtraction("testBzip2TarTask");
}
public void testSrcDirTest() {
@@ -85,4 +73,13 @@ public class UntarTest extends BuildFileTest {
+ "encoding attribute");
}
+ public void testResourceCollection() throws java.io.IOException {
+ testLogoExtraction("resourceCollection");
+ }
+
+ private void testLogoExtraction(String target) throws java.io.IOException {
+ executeTarget(target);
+ assertTrue(FILE_UTILS.contentEquals(project.resolveFile("../asf-logo.gif"),
+ project.resolveFile("asf-logo.gif")));
+ }
}
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/UnzipTest.java b/src/testcases/org/apache/tools/ant/taskdefs/UnzipTest.java
index e09c2f768..93c76948d 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/UnzipTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/UnzipTest.java
@@ -173,4 +173,9 @@ public class UnzipTest extends BuildFileTest {
expectBuildException("testTwoMappers",Expand.ERROR_MULTIPLE_MAPPERS);
}
+ public void testResourceCollections() {
+ executeTarget("testResourceCollection");
+ assertFileExists("junit.jar has been extracted",
+ "unziptestout/junit/framework/Assert.class");
+ }
}