@@ -65,6 +65,7 @@ public abstract class AbstractFileSet extends DataType
private boolean useDefaultExcludes = true;
private boolean useDefaultExcludes = true;
private boolean caseSensitive = true;
private boolean caseSensitive = true;
private boolean followSymlinks = true;
private boolean followSymlinks = true;
private boolean errorOnMissingDir = true;
/* cached DirectoryScanner instance for our own Project only */
/* cached DirectoryScanner instance for our own Project only */
private DirectoryScanner directoryScanner = null;
private DirectoryScanner directoryScanner = null;
@@ -89,6 +90,7 @@ public abstract class AbstractFileSet extends DataType
this.useDefaultExcludes = fileset.useDefaultExcludes;
this.useDefaultExcludes = fileset.useDefaultExcludes;
this.caseSensitive = fileset.caseSensitive;
this.caseSensitive = fileset.caseSensitive;
this.followSymlinks = fileset.followSymlinks;
this.followSymlinks = fileset.followSymlinks;
this.errorOnMissingDir = fileset.errorOnMissingDir;
setProject(fileset.getProject());
setProject(fileset.getProject());
}
}
@@ -392,6 +394,16 @@ public abstract class AbstractFileSet extends DataType
? getRef(getProject()).isFollowSymlinks() : followSymlinks;
? getRef(getProject()).isFollowSymlinks() : followSymlinks;
}
}
/**
* Sets whether an error is thrown if a directory does not exist.
*
* @param errorOnMissingDir true if missing directories cause errors,
* false if not.
*/
public void setErrorOnMissingDir(boolean errorOnMissingDir) {
this.errorOnMissingDir = errorOnMissingDir;
}
/**
/**
* Returns the directory scanner needed to access the files to process.
* Returns the directory scanner needed to access the files to process.
* @return a <code>DirectoryScanner</code> instance.
* @return a <code>DirectoryScanner</code> instance.
@@ -418,17 +430,18 @@ public abstract class AbstractFileSet extends DataType
throw new BuildException("No directory specified for "
throw new BuildException("No directory specified for "
+ getDataTypeName() + ".");
+ getDataTypeName() + ".");
}
}
if (!dir.exists()) {
if (!dir.exists() && errorOnMissingDir ) {
throw new BuildException(dir.getAbsolutePath()
throw new BuildException(dir.getAbsolutePath()
+ " not found.");
+ " not found.");
}
}
if (!dir.isDirectory()) {
if (!dir.isDirectory() && dir.exists() ) {
throw new BuildException(dir.getAbsolutePath()
throw new BuildException(dir.getAbsolutePath()
+ " is not a directory.");
+ " is not a directory.");
}
}
ds = new DirectoryScanner();
ds = new DirectoryScanner();
setupDirectoryScanner(ds, p);
setupDirectoryScanner(ds, p);
ds.setFollowSymlinks(followSymlinks);
ds.setFollowSymlinks(followSymlinks);
ds.setErrorOnMissingDir(errorOnMissingDir);
directoryScanner = (p == getProject()) ? ds : directoryScanner;
directoryScanner = (p == getProject()) ? ds : directoryScanner;
}
}
}
}