Package org.apache.tools.ant.types
Class ArchiveFileSet
java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.types.DataType
org.apache.tools.ant.types.AbstractFileSet
org.apache.tools.ant.types.FileSet
org.apache.tools.ant.types.ArchiveFileSet
- All Implemented Interfaces:
java.lang.Cloneable
,java.lang.Iterable<Resource>
,ResourceCollection
,SelectorContainer
- Direct Known Subclasses:
TarFileSet
,ZipFileSet
public abstract class ArchiveFileSet extends FileSet
A ArchiveFileSet is a FileSet with extra attributes useful in the
context of archiving tasks.
It includes a prefix attribute which is prepended to each entry in
the output archive file as well as a fullpath attribute. It also
supports Unix file permissions for files and directories.
- Since:
- Ant 1.7
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_DIR_MODE
Default value for the dirmode attribute.static int
DEFAULT_FILE_MODE
Default value for the filemode attribute. -
Constructor Summary
Constructors Modifier Constructor Description ArchiveFileSet()
Constructor for ArchiveFileSetprotected
ArchiveFileSet(ArchiveFileSet fileset)
Constructor using a archive fileset argument.protected
ArchiveFileSet(FileSet fileset)
Constructor using a fileset argument. -
Method Summary
Modifier and Type Method Description void
addConfigured(ResourceCollection a)
Set the source Archive file for the archivefileset.java.lang.Object
clone()
Return a ArchiveFileSet that has the same properties as this one.protected void
configureFileSet(ArchiveFileSet zfs)
A ArchiveFileset accepts another ArchiveFileSet or a FileSet as reference FileSets are often used by the war task for the lib attributeprotected void
dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)
Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).DirectoryScanner
getDirectoryScanner(Project p)
Return the DirectoryScanner associated with this FileSet.int
getDirMode()
Deprecated.since 1.7.int
getDirMode(Project p)
Get the dir mode of the archive filesetjava.lang.String
getEncoding()
Get the encoding used for this ZipFileSet.int
getFileMode()
Deprecated.since 1.7.int
getFileMode(Project p)
Get the mode of the archive filesetjava.lang.String
getFullpath()
Deprecated.since 1.7.java.lang.String
getFullpath(Project p)
Return the full pathname of the single entry in this fileset.java.lang.String
getPrefix()
Deprecated.since 1.7.java.lang.String
getPrefix(Project p)
Return the prefix prepended to entries in the archive file.protected AbstractFileSet
getRef()
Performs the check for circular references and returns the referenced object.java.io.File
getSrc()
Get the archive file from which entries will be extracted.java.io.File
getSrc(Project p)
Get the archive from which entries will be extracted.boolean
hasDirModeBeenSet()
Whether the user has specified the mode explicitly.boolean
hasFileModeBeenSet()
Whether the user has specified the mode explicitly.void
integerSetDirMode(int mode)
specify the user, group and other modes in the standard Unix fashion; optional, default=0755void
integerSetFileMode(int mode)
specify the user, group and other modes in the standard Unix fashion; optional, default=0644boolean
isFilesystemOnly()
Indicate whether this ResourceCollection is composed entirely of Resources accessible via local filesystem conventions.java.util.Iterator<Resource>
iterator()
Fulfill the ResourceCollection contract.protected abstract ArchiveScanner
newArchiveScanner()
Creates a scanner for this type of archive.void
setDir(java.io.File dir)
Set the directory for the fileset.void
setDirMode(java.lang.String octalString)
A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0755void
setEncoding(java.lang.String enc)
Set the encoding used for this ZipFileSet.void
setErrorOnMissingArchive(boolean errorOnMissingArchive)
Sets whether an error is thrown if an archive does not exist.void
setFileMode(java.lang.String octalString)
A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0644void
setFullpath(java.lang.String fullpath)
Set the full pathname of the single entry in this fileset.void
setPrefix(java.lang.String prefix)
Prepend this prefix to the path for each archive entry.void
setSrc(java.io.File srcFile)
Set the source Archive file for the archivefileset.void
setSrcResource(Resource src)
Set the source Archive file for the archivefileset.int
size()
Fulfill the ResourceCollection contract.java.lang.String
toString()
For file-based archivefilesets, return the same as for normal filesets; else just return the path of the zip.Methods inherited from class org.apache.tools.ant.types.AbstractFileSet
add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addExecutable, addFilename, addMajority, addModified, addNone, addNot, addOr, addOwnedBy, addPosixGroup, addPosixPermissions, addPresent, addReadable, addSelector, addSize, addSymlink, addType, addWritable, appendExcludes, appendIncludes, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDefaultexcludes, getDir, getDir, getDirectoryScanner, getErrorOnMissingDir, getMaxLevelsOfSymlinks, getSelectors, hasPatterns, hasSelectors, isCaseSensitive, isFollowSymlinks, mergeExcludes, mergeIncludes, mergePatterns, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setErrorOnMissingDir, setExcludes, setExcludesfile, setFile, setFollowSymlinks, setIncludes, setIncludesfile, setMaxLevelsOfSymlinks, setRefid, setupDirectoryScanner, setupDirectoryScanner
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes
Methods inherited from class org.apache.tools.ant.ProjectComponent
getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject
-
Field Details
-
DEFAULT_DIR_MODE
public static final int DEFAULT_DIR_MODEDefault value for the dirmode attribute.- Since:
- Ant 1.5.2
- See Also:
- Constant Field Values
-
DEFAULT_FILE_MODE
public static final int DEFAULT_FILE_MODEDefault value for the filemode attribute.- Since:
- Ant 1.5.2
- See Also:
- Constant Field Values
-
-
Constructor Details
-
ArchiveFileSet
public ArchiveFileSet()Constructor for ArchiveFileSet -
ArchiveFileSet
Constructor using a fileset argument.- Parameters:
fileset
- the fileset to use
-
ArchiveFileSet
Constructor using a archive fileset argument.- Parameters:
fileset
- the archivefileset to use
-
-
Method Details
-
setDir
Set the directory for the fileset.- Overrides:
setDir
in classAbstractFileSet
- Parameters:
dir
- the directory for the fileset- Throws:
BuildException
- on error
-
addConfigured
Set the source Archive file for the archivefileset. Prevents both "dir" and "src" from being specified.- Parameters:
a
- the archive as a single element Resource collection.
-
setSrc
public void setSrc(java.io.File srcFile)Set the source Archive file for the archivefileset. Prevents both "dir" and "src" from being specified.- Parameters:
srcFile
- The archive from which to extract entries.
-
setSrcResource
Set the source Archive file for the archivefileset. Prevents both "dir" and "src" from being specified.- Parameters:
src
- The archive from which to extract entries.
-
getSrc
Get the archive from which entries will be extracted.- Parameters:
p
- the project to use- Returns:
- the source file
-
setErrorOnMissingArchive
public void setErrorOnMissingArchive(boolean errorOnMissingArchive)Sets whether an error is thrown if an archive does not exist.- Parameters:
errorOnMissingArchive
- true if missing archives cause errors, false if not.- Since:
- Ant 1.8.0
-
getSrc
public java.io.File getSrc()Get the archive file from which entries will be extracted.- Returns:
- the archive in case the archive is a file, null otherwise.
-
getRef
Performs the check for circular references and returns the referenced object. This method must be overridden together withgetRef(Project)
providing implementations containing the special support for FileSet references, which can be handled by all ArchiveFileSets. NB! This method cannot be implemented in AbstractFileSet in order to allow FileSet and DirSet to implement it as a private method.- Returns:
- the dereferenced object.
- Throws:
BuildException
- if the reference is invalid (circular ref, wrong class, etc).
-
setPrefix
public void setPrefix(java.lang.String prefix)Prepend this prefix to the path for each archive entry. Prevents both prefix and fullpath from being specified- Parameters:
prefix
- The prefix to prepend to entries in the archive file.
-
getPrefix
Return the prefix prepended to entries in the archive file.- Parameters:
p
- the project to use- Returns:
- the prefix
-
setFullpath
public void setFullpath(java.lang.String fullpath)Set the full pathname of the single entry in this fileset. Prevents both prefix and fullpath from being specified- Parameters:
fullpath
- the full pathname of the single entry in this fileset.
-
getFullpath
Return the full pathname of the single entry in this fileset.- Parameters:
p
- the project to use- Returns:
- the full path
-
setEncoding
public void setEncoding(java.lang.String enc)Set the encoding used for this ZipFileSet.- Parameters:
enc
- encoding as String.- Since:
- Ant 1.9.5
-
getEncoding
public java.lang.String getEncoding()Get the encoding used for this ZipFileSet.- Returns:
- String encoding.
- Since:
- Ant 1.9.5
-
newArchiveScanner
Creates a scanner for this type of archive.- Returns:
- the scanner.
-
getDirectoryScanner
Return the DirectoryScanner associated with this FileSet. If the ArchiveFileSet defines a source Archive file, then an ArchiveScanner is returned instead.- Overrides:
getDirectoryScanner
in classAbstractFileSet
- Parameters:
p
- the project to use- Returns:
- a directory scanner
-
iterator
Fulfill the ResourceCollection contract. -
size
public int size()Fulfill the ResourceCollection contract.- Specified by:
size
in interfaceResourceCollection
- Overrides:
size
in classFileSet
- Returns:
- size of the collection as int.
- Since:
- Ant 1.7
-
isFilesystemOnly
public boolean isFilesystemOnly()Indicate whether this ResourceCollection is composed entirely of Resources accessible via local filesystem conventions. If true, all Resources returned from this ResourceCollection should be instances of FileResource.- Specified by:
isFilesystemOnly
in interfaceResourceCollection
- Overrides:
isFilesystemOnly
in classFileSet
- Returns:
- whether this is a filesystem-only resource collection.
- Since:
- Ant 1.7
-
setFileMode
public void setFileMode(java.lang.String octalString)A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0644- Parameters:
octalString
- aString
value
-
integerSetFileMode
public void integerSetFileMode(int mode)specify the user, group and other modes in the standard Unix fashion; optional, default=0644We use the strange name so this method doesn't appear in IntrospectionHelpers list of attribute setters.
- Parameters:
mode
- aint
value- Since:
- Ant 1.7
-
getFileMode
Get the mode of the archive fileset- Parameters:
p
- the project to use- Returns:
- the mode
-
hasFileModeBeenSet
public boolean hasFileModeBeenSet()Whether the user has specified the mode explicitly.- Returns:
- true if it has been set
-
setDirMode
public void setDirMode(java.lang.String octalString)A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0755- Parameters:
octalString
- aString
value
-
integerSetDirMode
public void integerSetDirMode(int mode)specify the user, group and other modes in the standard Unix fashion; optional, default=0755We use the strange name so this method doesn't appear in IntrospectionHelpers list of attribute setters.
- Parameters:
mode
- aint
value- Since:
- Ant 1.7
-
getDirMode
Get the dir mode of the archive fileset- Parameters:
p
- the project to use- Returns:
- the mode
-
hasDirModeBeenSet
public boolean hasDirModeBeenSet()Whether the user has specified the mode explicitly.- Returns:
- true if it has been set
-
configureFileSet
A ArchiveFileset accepts another ArchiveFileSet or a FileSet as reference FileSets are often used by the war task for the lib attribute- Parameters:
zfs
- the project to use
-
clone
public java.lang.Object clone()Return a ArchiveFileSet that has the same properties as this one. -
toString
public java.lang.String toString()For file-based archivefilesets, return the same as for normal filesets; else just return the path of the zip.- Overrides:
toString
in classAbstractFileSet
- Returns:
- for file based archivefilesets, included files as a list of semicolon-separated filenames. else just the name of the zip.
-
getPrefix
@Deprecated public java.lang.String getPrefix()Deprecated.since 1.7.Return the prefix prepended to entries in the archive file.- Returns:
- the prefix.
-
getFullpath
@Deprecated public java.lang.String getFullpath()Deprecated.since 1.7.Return the full pathname of the single entryZ in this fileset.- Returns:
- the full pathname.
-
getFileMode
@Deprecated public int getFileMode()Deprecated.since 1.7.- Returns:
- the file mode.
-
getDirMode
@Deprecated public int getDirMode()Deprecated.since 1.7.- Returns:
- the dir mode.
-
dieOnCircularReference
protected void dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p) throws BuildExceptionDescription copied from class:DataType
Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).If one is included, throw a BuildException created by
circularReference
.This implementation is appropriate only for a DataType that cannot hold other DataTypes as children.
The general contract of this method is that it shouldn't do anything if
DataType.checked
is true and set it to true on exit.- Overrides:
dieOnCircularReference
in classAbstractFileSet
- Parameters:
stk
- the stack of references to check.p
- the project to use to dereference the references.- Throws:
BuildException
- on error.
-