antoine 2003/04/18 15:02:59
Modified: docs/manual conceptstypeslist.html
docs/manual/CoreTasks zip.html
src/main/org/apache/tools/ant/taskdefs Zip.java
src/main/org/apache/tools/ant/types ZipFileSet.java
defaults.properties
Added: src/testcases/org/apache/tools/ant/types ZipFileSetTest.java
docs/manual/CoreTypes zipfileset.html
Log:
allow to define ZipFileSet(s) outside of Zip task bugrep 17007
Revision Changes Path
1.1
ant/src/testcases/org/apache/tools/ant/types/ZipFileSetTest.java
Index: ZipFileSetTest.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "Ant" and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.tools.ant.types;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import junit.framework.TestCase;
import junit.framework.AssertionFailedError;
import java.io.File;
/**
* JUnit 3 testcases for org.apache.tools.ant.types.ZipFileSet.
*
* <p>This doesn't actually test much, mainly reference handling.
*
* @author Antoine Levy-Lambert
*/
public class ZipFileSetTest extends AbstractFileSetTest {
public ZipFileSetTest(String name) {
super(name);
}
protected AbstractFileSet getInstance() {
return new ZipFileSet();
}
public final void testAttributes() {
ZipFileSet f = (ZipFileSet)getInstance();
//check that dir and src are incompatible
f.setSrc(new File("example.zip"));
try {
f.setDir(new File("examples"));
fail("can add dir to "
+ f.getDataTypeName()
+ " when a src is already present");
} catch (BuildException be) {
assertEquals("Cannot set both dir and src
attributes",be.getMessage());
}
f = (ZipFileSet)getInstance();
//check that dir and src are incompatible
f.setDir(new File("examples"));
try {
f.setSrc(new File("example.zip"));
fail("can add src to "
+ f.getDataTypeName()
+ " when a dir is already present");
} catch (BuildException be) {
assertEquals("Cannot set both dir and src
attributes",be.getMessage());
}
//check that fullpath and prefix are incompatible
f = (ZipFileSet)getInstance();
f.setSrc(new File("example.zip"));
f.setPrefix("/examples");
try {
f.setFullpath("/doc/manual/index.html");
fail("Can add fullpath to "
+ f.getDataTypeName()
+ " when a prefix is already present");
} catch (BuildException be) {
assertEquals("Cannot set both fullpath and prefix attributes",
be.getMessage());
}
f = (ZipFileSet)getInstance();
f.setSrc(new File("example.zip"));
f.setFullpath("/doc/manual/index.html");
try {
f.setPrefix("/examples");
fail("Can add prefix to "
+ f.getDataTypeName()
+ " when a fullpath is already present");
} catch (BuildException be) {
assertEquals("Cannot set both fullpath and prefix attributes",
be.getMessage());
}
// check that reference zipfilesets cannot have specific attributes
f = (ZipFileSet)getInstance();
f.setRefid(new Reference("test"));
try {
f.setSrc(new File("example.zip"));
fail("Can add src to "
+ f.getDataTypeName()
+ " when a refid is already present");
} catch (BuildException be) {
assertEquals("You must not specify more than one "
+ "attribute when using refid", be.getMessage());
}
// check that a reference zipfileset gets the same attributes as the
original
f = (ZipFileSet)getInstance();
f.setSrc(new File("example.zip"));
f.setPrefix("/examples");
f.setFileMode("600");
f.setDirMode("530");
getProject().addReference("test",f);
ZipFileSet zid=(ZipFileSet)getInstance();
zid.setRefid(new Reference("test"));
assertTrue("src attribute copied by copy
constructor",zid.getSrc(getProject()).equals(f.getSrc(getProject())));
assertTrue("prefix attribute copied by copy
constructor",f.getPrefix(getProject()).equals(zid.getPrefix(getProject())));
assertTrue("file mode attribute copied by copy
constructor",f.getFileMode(getProject())==zid.getFileMode(getProject()));
assertTrue("dir mode attribute copied by copy
constructor",f.getDirMode(getProject())==zid.getDirMode(getProject()));
}
}
1.1 ant/docs/manual/CoreTypes/zipfileset.html
Index: zipfileset.html
===================================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<title>ZipFileSet Type</title>
</head>
<body>
<h2><a name="fileset">ZipFileSet</a></h2>
<p>A <code><zipfileset></code> is a special form of a <code><<a
href="fileset.html">fileset</a>></code> which can behave in 2
different ways : <br>
</p>
<ul>
<li>When the <span style="font-style: italic;">src</span> attribute
is used, the zipfileset is populated with zip entries found in the file <span
style="font-style: italic;">src</span>.<br>
</li>
<li>When the <span style="font-style: italic;">dir</span> attribute
is used, the zipfileset is populated with filesystem files found under <span
style="font-style: italic;">dir</span>.<br>
</li>
</ul>
<p><code><zipfileset></code> supports all attributes of <code><<a
href="file:///C:/dev/gnu/ant/docs/manual/CoreTypes/fileset.html">fileset</a>></code>
in addition to those listed below.<br>
</p>
<p>Since Ant 1.6, a zipfileset can be defined with the <span
style="font-style: italic;">id </span>attribute and referred to with
the <span style="font-style: italic;">refid</span> attribute.<br>
</p>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td valign="top"><b>Attribute</b></td>
<td valign="top"><b>Description</b></td>
<td valign="top" align="center"><b>Required</b></td>
</tr>
<tr>
<td valign="top">prefix</td>
<td valign="top">all files in the fileset are prefixed with that
path in the archive.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">fullpath</td>
<td valign="top">the file described by the fileset is placed at
that exact location in the archive.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">src</td>
<td valign="top">may be used in place of the <i>dir</i> attribute
to specify a zip file whose contents will be extracted and included
in the archive.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">filemode</td>
<td valign="top">A 3 digit octal string, specify the user, group
and other modes in the standard Unix fashion. Only applies to
plain files. Default is 644. <em>since Ant 1.5.2</em>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">dirmode</td>
<td valign="top">A 3 digit octal string, specify the user, group
and other modes in the standard Unix fashion. Only applies to
directories. Default is 755. <em>since Ant 1.5.2</em>.</td>
<td align="center" valign="top">No</td>
</tr>
</tbody>
</table>
<p>The <i>fullpath</i> attribute can only be set for filesets that
represent a single file. The <i>prefix</i> and <i>fullpath</i>
attributes cannot both be set on the same fileset.</p>
<p>When using the <i>src</i> attribute, include and exclude patterns
may be used to specify a subset of the zip file for inclusion in the
archive as with the <i>dir</i> attribute.</p>
<h4>Examples</h4>
<blockquote>
<pre> <zip destfile="${dist}/manual.zip"><br> <zipfileset
dir="htdocs/manual" prefix="docs/user-guide"/><br> <zipfileset dir="."
includes="ChangeLog27.txt" fullpath="docs/ChangeLog.txt"/><br>
<zipfileset src="examples.zip" includes="**/*.html"
prefix="docs/examples"/><br> </zip><br></pre>
<p>zips all files in the <code>htdocs/manual</code> directory into
the <code>docs/user-guide</code> directory in the archive, adds the
file <code>ChangeLog27.txt</code> in the current directory as
<code>docs/ChangeLog.txt</code>,
and includes all the html files in <code>examples.zip</code> under
<code>docs/examples</code>.
The archive might end up containing the files:</p>
<code> docs/user-guide/html/index.html<br>
docs/ChangeLog.txt<br>
docs/examples/index.html<br>
</code></blockquote>
<hr>
<p align="center">Copyright © 2003 Apache Software Foundation. All
rights Reserved.</p>
</body>
</html>
1.9 +1 -0 ant/docs/manual/conceptstypeslist.html
Index: conceptstypeslist.html
===================================================================
RCS file: /home/cvs/ant/docs/manual/conceptstypeslist.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- conceptstypeslist.html 19 Mar 2003 08:20:13 -0000 1.8
+++ conceptstypeslist.html 18 Apr 2003 22:02:58 -0000 1.9
@@ -27,6 +27,7 @@
<a href="using.html#path">Path-like Structures</a><br>
<a href="CoreTypes/selectors.html">Selectors</a><br>
<a href="CoreTypes/xmlcatalog.html">XMLCatalog</a><br>
+<a href="CoreTypes/zipfileset.html">ZipFileSet</a><br>
<h3>Optional Types</h3>
<a href="OptionalTypes/classfileset.html">Class Fileset</a><br>
1.20 +5 -56 ant/docs/manual/CoreTasks/zip.html
Index: zip.html
===================================================================
RCS file: /home/cvs/ant/docs/manual/CoreTasks/zip.html,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- zip.html 17 Apr 2003 13:09:18 -0000 1.19
+++ zip.html 18 Apr 2003 22:02:58 -0000 1.20
@@ -60,7 +60,7 @@
<p>Starting with Ant 1.5.2, <zip> can store Unix permissions
inside the archive (see description of the filemode and dirmode
-attributes for <a href="#zipfileset"><zipfileset></a>).
+attributes for <a
href="../CoreTypes/zipfileset.html"><zipfileset></a>).
Unfortunately there is no portable way to store these permissions.
Ant uses the algorithm used by <a
href="http://www.info-zip.org">Info-Zip's</a>
implementation of the zip and unzip commands - these are the default
@@ -158,62 +158,11 @@
href="../CoreTypes/fileset.html"><code><fileset></code></a> elements
to specify
the files to be included in the archive.</p>
-<h4><a name="zipfileset">zipfileset</a></h4>
+<h4>zipfileset</h4>
-<p>A <code><zipfileset></code> is a special form of a
-<code><fileset></code> that adds some extra functionality. It
-supports all attributes of <code><fileset></code> in addition to
-those listed below.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td valign="top" align="center"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">prefix</td>
- <td valign="top">all files in the fileset are prefixed with that
- path in the archive.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">fullpath</td>
- <td valign="top">the file described by the fileset is placed at
- that exact location in the archive.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">src</td>
- <td valign="top">may be used in place of the <i>dir</i> attribute
- to specify a zip file whose contents will be extracted and
- included in the archive.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">filemode</td>
- <td valign="top">A 3 digit octal string, specify the user, group
- and other modes in the standard Unix fashion. Only applies to
- plain files. Default is 644. <em>since Ant 1.5.2</em>.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">dirmode</td>
- <td valign="top">A 3 digit octal string, specify the user, group
- and other modes in the standard Unix fashion. Only applies to
- directories. Default is 755. <em>since Ant 1.5.2</em>.</td>
- <td align="center" valign="top">No</td>
- </tr>
-</table>
-
-<p>The <i>fullpath</i> attribute can only be set for filesets that
-represent a single file. The <i>prefix</i> and <i>fullpath</i>
-attributes cannot both be set on the same fileset.</p>
-
-<p>When using the <i>src</i> attribute, include and exclude patterns
-may be used to specify a subset of the zip file for inclusion in the
-archive as with the <i>dir</i> attribute.</p>
+<p>The zip task supports any number of nested <a
+href="../CoreTypes/zipfileset.html"><code><zipfileset></code></a>
elements to specify
+the files to be included in the archive.</p>
<h4>zipgroupfileset</h4>
<p>A <code><zipgroupfileset></code> allows for multiple zip files to
be
1.104 +14 -15 ant/src/main/org/apache/tools/ant/taskdefs/Zip.java
Index: Zip.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Zip.java,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -r1.103 -r1.104
--- Zip.java 27 Mar 2003 10:02:04 -0000 1.103
+++ Zip.java 18 Apr 2003 22:02:58 -0000 1.104
@@ -67,7 +67,6 @@
import java.util.Vector;
import java.util.zip.CRC32;
import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
@@ -541,10 +540,10 @@
ZipFileSet zfs = null;
if (fileset instanceof ZipFileSet) {
zfs = (ZipFileSet) fileset;
- prefix = zfs.getPrefix();
- fullpath = zfs.getFullpath();
- dirMode = zfs.getDirMode();
- fileMode = zfs.getFileMode();
+ prefix = zfs.getPrefix(getProject());
+ fullpath = zfs.getFullpath(getProject());
+ dirMode = zfs.getDirMode(getProject());
+ fileMode = zfs.getFileMode(getProject());
}
if (prefix.length() > 0 && fullpath.length() > 0) {
@@ -570,11 +569,11 @@
boolean dealingWithFiles = false;
File base = null;
- if (zfs == null || zfs.getSrc() == null) {
+ if (zfs == null || zfs.getSrc(getProject()) == null) {
dealingWithFiles = true;
base = fileset.getDir(getProject());
} else {
- zf = new ZipFile(zfs.getSrc());
+ zf = new ZipFile(zfs.getSrc(getProject()));
}
for (int i = 0; i < resources.length; i++) {
@@ -604,7 +603,7 @@
zf.getEntry(resources[i].getName());
if (ze != null) {
zipFile(zf.getInputStream(ze), zOut, prefix + name,
- ze.getTime(), zfs.getSrc(), fileMode);
+ ze.getTime(), zfs.getSrc(getProject()),
fileMode);
}
}
}
@@ -763,7 +762,7 @@
for (int i = 0; i < filesets.length; i++) {
if (!(fileset instanceof ZipFileSet)
- || ((ZipFileSet) fileset).getSrc() == null) {
+ || ((ZipFileSet) fileset).getSrc(getProject()) == null) {
File base = filesets[i].getDir(getProject());
for (int j = 0; j < initialResources[i].length; j++) {
@@ -787,20 +786,20 @@
FileNameMapper myMapper = new IdentityMapper();
if (filesets[i] instanceof ZipFileSet) {
ZipFileSet zfs = (ZipFileSet) filesets[i];
- if (zfs.getFullpath() != null
- && !zfs.getFullpath().equals("") ) {
+ if (zfs.getFullpath(getProject()) != null
+ && !zfs.getFullpath(getProject()).equals("") ) {
// in this case all files from origin map to
// the fullPath attribute of the zipfileset at
// destination
MergingMapper fm = new MergingMapper();
- fm.setTo(zfs.getFullpath());
+ fm.setTo(zfs.getFullpath(getProject()));
myMapper = fm;
- } else if (zfs.getPrefix() != null
- && !zfs.getPrefix().equals("")) {
+ } else if (zfs.getPrefix(getProject()) != null
+ && !zfs.getPrefix(getProject()).equals("")) {
GlobPatternMapper gm=new GlobPatternMapper();
gm.setFrom("*");
- String prefix = zfs.getPrefix();
+ String prefix = zfs.getPrefix(getProject());
if (!prefix.endsWith("/") && !prefix.endsWith("\\")) {
prefix += "/";
}
1.16 +65 -20 ant/src/main/org/apache/tools/ant/types/ZipFileSet.java
Index: ZipFileSet.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/ZipFileSet.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- ZipFileSet.java 19 Feb 2003 07:57:29 -0000 1.15
+++ ZipFileSet.java 18 Apr 2003 22:02:59 -0000 1.16
@@ -68,15 +68,10 @@
* entries of a Zip file for inclusion in another Zip file. It also includes
* a prefix attribute which is prepended to each entry in the output Zip
file.
*
- * At present, ZipFileSets are not surfaced in the public API. FileSets
- * nested in a Zip task are instantiated as ZipFileSets, and their attributes
- * are only recognized in the context of the the Zip task.
- * It is not possible to define a ZipFileSet outside of the Zip task and
- * refer to it via a refid. However a standard FileSet may be included by
- * reference in the Zip task, and attributes in the refering ZipFileSet
- * can augment FileSet definition.
+ * Since ant 1.6 ZipFileSet can be defined with an id and referenced in
packaging tasks
*
* @author Don Ferguson <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Antoine Levy-Lambert</a>
*/
public class ZipFileSet extends FileSet {
@@ -126,6 +121,9 @@
* from being specified.
*/
public void setDir(File dir) throws BuildException {
+ if (isReference()) {
+ throw tooManyAttributes();
+ }
if (srcFile != null) {
throw new BuildException("Cannot set both dir and src
attributes");
} else {
@@ -141,6 +139,9 @@
* @param srcFile The zip file from which to extract entries.
*/
public void setSrc(File srcFile) {
+ if (isReference()) {
+ throw tooManyAttributes();
+ }
if (hasDir) {
throw new BuildException("Cannot set both dir and src
attributes");
}
@@ -152,41 +153,62 @@
* References are not followed, since it is not possible
* to have a reference to a ZipFileSet, only to a FileSet.
*/
- public File getSrc() {
+ public File getSrc(Project p) {
+ if (isReference()) {
+ return ((ZipFileSet)getRef(p)).getSrc(p);
+ }
return srcFile;
}
/**
* Prepend this prefix to the path for each zip entry.
- * Does not perform reference test; the referenced file set
- * can be augmented with a prefix.
+ * Prevents both prefix and fullpath from being specified
*
* @param prefix The prefix to prepend to entries in the zip file.
*/
public void setPrefix(String prefix) {
+ if (isReference()) {
+ throw tooManyAttributes();
+ }
+ if (!fullpath.equals("")) {
+ throw new BuildException("Cannot set both fullpath and prefix
attributes");
+ }
this.prefix = prefix;
}
/**
* Return the prefix prepended to entries in the zip file.
*/
- public String getPrefix() {
+ public String getPrefix(Project p) {
+ if (isReference()) {
+ return ((ZipFileSet)getRef(p)).getPrefix(p);
+ }
return prefix;
}
/**
* Set the full pathname of the single entry in this fileset.
+ * Prevents both prefix and fullpath from being specified
*
* @param fullpath the full pathname of the single entry in this fileset.
*/
public void setFullpath(String fullpath) {
+ if (isReference()) {
+ throw tooManyAttributes();
+ }
+ if (!prefix.equals("")) {
+ throw new BuildException("Cannot set both fullpath and prefix
attributes");
+ }
this.fullpath = fullpath;
}
/**
* Return the full pathname of the single entry in this fileset.
*/
- public String getFullpath() {
+ public String getFullpath(Project p) {
+ if (isReference()) {
+ return ((ZipFileSet)getRef(p)).getFullpath(p);
+ }
return fullpath;
}
@@ -219,14 +241,20 @@
* @since Ant 1.5.2
*/
public void setFileMode(String octalString) {
- this.fileMode =
+ if (isReference()) {
+ throw tooManyAttributes();
+ }
+ this.fileMode =
UnixStat.FILE_FLAG | Integer.parseInt(octalString, 8);
}
/**
* @since Ant 1.5.2
*/
- public int getFileMode() {
+ public int getFileMode(Project p) {
+ if (isReference()) {
+ return ((ZipFileSet)getRef(p)).getFileMode(p);
+ }
return fileMode;
}
@@ -238,20 +266,25 @@
* @since Ant 1.6
*/
public void setDirMode(String octalString) {
- this.dirMode =
+ if (isReference()) {
+ throw tooManyAttributes();
+ }
+ this.dirMode =
UnixStat.DIR_FLAG | Integer.parseInt(octalString, 8);
}
/**
* @since Ant 1.6
*/
- public int getDirMode() {
+ public int getDirMode(Project p) {
+ if (isReference()) {
+ return ((ZipFileSet)getRef(p)).getDirMode(p);
+ }
return dirMode;
}
/**
- * A ZipFileset can accept any fileset as a reference as it just uses the
- * standard directory scanner.
+ * A ZipFileset accepts only another ZipFileSet as reference
*/
protected AbstractFileSet getRef(Project p) {
if (!isChecked()) {
@@ -261,11 +294,23 @@
}
Object o = getRefid().getReferencedObject(p);
- if (!(o instanceof FileSet)) {
- String msg = getRefid().getRefId() + " doesn\'t denote a
fileset";
+ if (!(o instanceof ZipFileSet)) {
+ String msg = getRefid().getRefId() + " doesn\'t denote a
zipfileset";
throw new BuildException(msg);
} else {
return (AbstractFileSet) o;
+ }
+ }
+ /**
+ * Return a ZipFileSet that has the same properties
+ * as this one.
+ * @since Ant 1.6
+ */
+ public Object clone() {
+ if (isReference()) {
+ return new ZipFileSet((ZipFileSet) getRef(getProject()));
+ } else {
+ return new ZipFileSet(this);
}
}
}
1.17 +1 -1
ant/src/main/org/apache/tools/ant/types/defaults.properties
Index: defaults.properties
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/types/defaults.properties,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- defaults.properties 14 Apr 2003 18:02:24 -0000 1.16
+++ defaults.properties 18 Apr 2003 22:02:59 -0000 1.17
@@ -16,5 +16,5 @@
extension=org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter
libfileset=org.apache.tools.ant.taskdefs.optional.extension.LibFileSet
selector=org.apache.tools.ant.types.selectors.SelectSelector
+zipfileset=org.apache.tools.ant.types.ZipFileSet
scriptfilter=org.apache.tools.ant.types.optional.ScriptFilter
-