@@ -57,8 +57,10 @@ package org.apache.tools.ant.taskdefs;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.DestDir;
import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.PatternSet;
import org.apache.tools.ant.types.SrcFile;
import org.apache.tools.ant.util.FileUtils;
import java.io.File;
import java.io.FileInputStream;
@@ -76,7 +78,7 @@ import java.util.zip.ZipEntry;
*
* @author costin@dnt.ro
* @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a>
* @author <a href="mailto:umagesh@rediffmail.com ">Magesh Umasankar</a>
* @author <a href="mailto:umagesh@apache.org ">Magesh Umasankar</a>
*/
public class Expand extends MatchingTask {
private File dest; //req
@@ -104,19 +106,10 @@ public class Expand extends MatchingTask {
"Dest attribute must be specified");
}
if (dest.exists() && !dest.isDirectory()) {
throw new BuildException("Dest must be a directory.", location);
}
FileUtils fileUtils = FileUtils.newFileUtils();
if (source != null) {
if (source.isDirectory()) {
throw new BuildException("Src must not be a directory." +
" Use nested filesets instead.", location);
} else {
expandFile(fileUtils, source, dest);
}
expandFile(fileUtils, source, dest);
}
if (filesets.size() > 0) {
for (int j=0; j < filesets.size(); j++) {
@@ -253,18 +246,49 @@ public class Expand extends MatchingTask {
* destination directory.
*
* @param d Path to the directory.
* @deprecated setDest(File) is deprecated and is replaced with
* setDest(DestDir) to let Ant's core perform validation
*/
public void setDest(File d) {
this.dest=d;
log("DEPRECATED - The setDest(File) method has been deprecated."
+ " Use setDest(DestDir) instead.");
DestDir dd = new DestDir();
dd.setFile(d);
setDest(dd);
}
/**
* Set the destination directory. File will be unzipped into the
* destination directory.
*
* @param d Path to the directory.
*/
public void setDest(DestDir d) {
this.dest=d.getFile();
}
/**
* Set the path to zip-file.
*
* @param s Path to zip-file.
* @deprecated setSrc(File) is deprecated and is replaced with
* setSrc(SrcFile) to let Ant's core perform validation
*/
public void setSrc(File s) {
this.source = s;
log("DEPRECATED - The setSrc(File) method has been deprecated."
+ " Use setSrc(SrcFile) instead.");
SrcFile sf = new SrcFile();
sf.setFile(s);
setSrc(sf);
}
/**
* Set the path to zip-file.
*
* @param s Path to zip-file.
*/
public void setSrc(SrcFile s) {
this.source = s.getFile();
}
/**