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:
Cloneable, Iterable<Resource>, ResourceCollection, SelectorContainer
- Direct Known Subclasses:
TarFileSet, ZipFileSet
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
FieldsModifier and TypeFieldDescriptionstatic final intDefault value for the dirmode attribute.static final intDefault value for the filemode attribute.Fields inherited from class ProjectComponent
description, location, project -
Constructor Summary
ConstructorsModifierConstructorDescriptionConstructor for ArchiveFileSetprotectedArchiveFileSet(ArchiveFileSet fileset) Constructor using a archive fileset argument.protectedArchiveFileSet(FileSet fileset) Constructor using a fileset argument. -
Method Summary
Modifier and TypeMethodDescriptionvoidSet the source Archive file for the archivefileset.clone()Return a ArchiveFileSet that has the same properties as this one.protected voidA ArchiveFileset accepts another ArchiveFileSet or a FileSet as reference FileSets are often used by the war task for the lib attributeprotected voiddieOnCircularReference(Stack<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).Return the DirectoryScanner associated with this FileSet.intDeprecated.since 1.7.intGet the dir mode of the archive filesetGet the encoding used for this ZipFileSet.intDeprecated.since 1.7.intGet the mode of the archive filesetDeprecated.since 1.7.Return the full pathname of the single entry in this fileset.Deprecated.since 1.7.Return the prefix prepended to entries in the archive file.protected AbstractFileSetgetRef()Performs the check for circular references and returns the referenced object.getSrc()Get the archive file from which entries will be extracted.Get the archive from which entries will be extracted.booleanWhether the user has specified the mode explicitly.booleanWhether the user has specified the mode explicitly.voidintegerSetDirMode(int mode) specify the user, group and other modes in the standard Unix fashion; optional, default=0755voidintegerSetFileMode(int mode) specify the user, group and other modes in the standard Unix fashion; optional, default=0644booleanIndicate whether this ResourceCollection is composed entirely of Resources accessible via local filesystem conventions.iterator()Fulfill the ResourceCollection contract.protected abstract ArchiveScannerCreates a scanner for this type of archive.voidSet the directory for the fileset.voidsetDirMode(String octalString) A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0755voidsetEncoding(String enc) Set the encoding used for this ZipFileSet.voidsetErrorOnMissingArchive(boolean errorOnMissingArchive) Sets whether an error is thrown if an archive does not exist.voidsetFileMode(String octalString) A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0644voidsetFullpath(String fullpath) Set the full pathname of the single entry in this fileset.voidPrepend this prefix to the path for each archive entry.voidSet the source Archive file for the archivefileset.voidsetSrcResource(Resource src) Set the source Archive file for the archivefileset.intsize()Fulfill the ResourceCollection contract.toString()For file-based archivefilesets, return the same as for normal filesets; else just return the path of the zip.Methods inherited from class FileSet
getRefModifier and TypeMethodDescriptionprotected AbstractFileSetPerforms the check for circular references and returns the referenced FileSet.Methods inherited from class 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, addWindowsJunction, 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, setupDirectoryScannerModifier and TypeMethodDescriptionvoidadd(FileSelector selector) Add an arbitrary selector.voidaddAnd(AndSelector selector) Add an "And" selector entry on the selector list.voidaddContains(ContainsSelector selector) Add a contains selector entry on the selector list.voidaddContainsRegexp(ContainsRegexpSelector selector) Add a regular expression selector entry on the selector list.voidaddCustom(ExtendSelector selector) Add an extended selector entry on the selector list.voidaddDate(DateSelector selector) Add a selector date entry on the selector list.voidaddDepend(DependSelector selector) Add a depends selector entry on the selector list.voidaddDepth(DepthSelector selector) Add a depth selector entry on the selector list.voidaddDifferent(DifferentSelector selector) Add a DifferentSelector entry on the selector list.voidvoidaddFilename(FilenameSelector selector) Add a selector filename entry on the selector list.voidaddMajority(MajoritySelector selector) Add a majority selector entry on the selector list.voidaddModified(ModifiedSelector selector) Add the modified selector.voidaddNone(NoneSelector selector) Add a "None" selector entry on the selector list.voidaddNot(NotSelector selector) Add a "Not" selector entry on the selector list.voidaddOr(OrSelector selector) Add an "Or" selector entry on the selector list.voidvoidvoidvoidaddPresent(PresentSelector selector) Add a present selector entry on the selector list.voidvoidaddSelector(SelectSelector selector) Add a "Select" selector entry on the selector list.voidaddSize(SizeSelector selector) Add a selector size entry on the selector list.voidvoidaddType(TypeSelector selector) Add a selector type entry on the selector list.voidvoidvoidappendExcludes(String[] excludes) Appendsexcludesto the current list of exclude patterns.voidappendIncludes(String[] includes) Appendsincludesto the current list of include patterns.voidappendSelector(FileSelector selector) Add a new selector into this container.Add a name entry to the exclude list.Add a name entry to the excludes files list.Add a name entry to the include list.Add a name entry to the include files list.Creates a nested patternset.booleanWhether default exclusions should be used or not.getDir()Retrieves the base-directory for this instance.Retrieves the base-directory for this instance.Returns the directory scanner needed to access the files to process.booleanGets whether an error is/should be thrown if the base directory does not exist.intThe maximum number of times a symbolic link or Windows junctions may be followed during a scan.Returns the set of selectors as an array.booleanIndicates whether there are any patterns here.booleanIndicates whether there are any selectors here.booleanFind out if the fileset is case sensitive.booleanFind out if the fileset wants to follow symbolic links or Windows junctions.String[]Get the merged exclude patterns for this AbstractFileSet.String[]Get the merged include patterns for this AbstractFileSet.Get the merged patterns for this AbstractFileSet.intGives the count of the number of selectors in this container.Returns an enumerator for accessing the set of selectors.voidsetCaseSensitive(boolean caseSensitive) Sets case sensitivity of the file system.voidsetDefaultexcludes(boolean useDefaultExcludes) Sets whether default exclusions should be used or not.voidsetErrorOnMissingDir(boolean errorOnMissingDir) Sets whether an error is thrown if a directory does not exist.voidsetExcludes(String excludes) Appendsexcludesto the current list of exclude patterns.voidsetExcludesfile(File excl) Sets theFilecontaining the excludes patterns.voidCreates a single file fileset.voidsetFollowSymlinks(boolean followSymlinks) Sets whether or not symbolic links or Windows junctions should be followed.voidsetIncludes(String includes) Appendsincludesto the current list of include patterns.voidsetIncludesfile(File incl) Sets theFilecontaining the includes patterns.voidsetMaxLevelsOfSymlinks(int max) The maximum number of times a symbolic link or Windows junctions may be followed during a scan.voidMakes this instance in effect a reference to another instance.voidSet up the specified directory scanner against this AbstractFileSet's Project.voidSet up the specified directory scanner against the specified project.Methods inherited from class DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributesModifier and TypeMethodDescriptionprotected voidcheck that it is ok to set attributes, i.e that no reference is definedprotected voidcheck that it is ok to add children, i.e that no reference is definedprotected BuildExceptionCreates an exception that indicates the user has generated a loop of data types referencing each other.protected voidConvenience method.protected voidConvenience method.protected <T> TDeprecated.use getCheckedRef(Class)protected <T> TgetCheckedRef(Class<T> requiredClass) Performs the check for circular references and returns the referenced object.protected <T> TgetCheckedRef(Class<T> requiredClass, String dataTypeName) Performs the check for circular references and returns the referenced object.protected <T> TgetCheckedRef(Class<T> requiredClass, String dataTypeName, Project project) Performs the check for circular references and returns the referenced object.protected <T> TDeprecated.use getCheckedRef(Class)protected StringGets as descriptive as possible a name used for this datatype instance.getRefid()get the reference set on this objectstatic voidinvokeCircularReferenceCheck(DataType dt, Stack<Object> stk, Project p) Allow DataTypes outside org.apache.tools.ant.types to indirectly call dieOnCircularReference on nested DataTypes.protected booleanThe flag that is used to indicate that circular references have been checked.booleanHas the refid attribute of this element been set?protected BuildExceptionCreates an exception that indicates that this XML element must not have child elements if the refid attribute is set.static voidpushAndInvokeCircularReferenceCheck(DataType dt, Stack<Object> stk, Project p) Allow DataTypes outside org.apache.tools.ant.types to indirectly call dieOnCircularReference on nested DataTypes.protected voidsetChecked(boolean checked) Set the flag that is used to indicate that circular references have been checked.protected BuildExceptionCreates an exception that indicates that refid has to be the only attribute if it is set.Methods inherited from class ProjectComponent
getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProjectModifier and TypeMethodDescriptionReturns the description of the current action.Returns the file/location where this task was defined.Returns the project to which this component belongs.voidLogs a message with the default (INFO) priority.voidLogs a message with the given priority.voidsetDescription(String desc) Sets a description of the current action.voidsetLocation(Location location) Sets the file/location where this task was defined.voidsetProject(Project project) Sets the project object of this component.Methods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Iterable
forEach, spliteratorMethods inherited from interface ResourceCollection
isEmpty, streamModifier and TypeMethodDescriptiondefault booleanisEmpty()Learn whether thisResourceCollectionis empty.stream()Return aStreamover thisResourceCollection.
-
Field Details
-
DEFAULT_DIR_MODE
public static final int DEFAULT_DIR_MODEDefault value for the dirmode attribute.- Since:
- Ant 1.5.2
- See Also:
-
DEFAULT_FILE_MODE
public static final int DEFAULT_FILE_MODEDefault value for the filemode attribute.- Since:
- Ant 1.5.2
- See Also:
-
-
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:
setDirin 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
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
-
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
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
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
-
setFullpath
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
-
setEncoding
Set the encoding used for this ZipFileSet.- Parameters:
enc- encoding as String.- Since:
- Ant 1.9.5
-
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:
getDirectoryScannerin classAbstractFileSet- Parameters:
p- the project to use- Returns:
- a directory scanner
-
iterator
-
size
public int size()Fulfill the ResourceCollection contract.- Specified by:
sizein interfaceResourceCollection- Overrides:
sizein 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:
isFilesystemOnlyin interfaceResourceCollection- Overrides:
isFilesystemOnlyin classFileSet- Returns:
- whether this is a filesystem-only resource collection.
- Since:
- Ant 1.7
-
setFileMode
A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0644- Parameters:
octalString- aStringvalue
-
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- aintvalue- 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
A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0755- Parameters:
octalString- aStringvalue
-
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- aintvalue- 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
-
toString
For file-based archivefilesets, return the same as for normal filesets; else just return the path of the zip.- Overrides:
toStringin classAbstractFileSet- Returns:
- for file based archivefilesets, included files as a list of semicolon-separated filenames. else just the name of the zip.
-
getPrefix
Deprecated.since 1.7.Return the prefix prepended to entries in the archive file.- Returns:
- the prefix.
-
getFullpath
Deprecated.since 1.7.Return the full pathname of the single entryZ in this fileset.- Returns:
- the full pathname.
-
getFileMode
-
getDirMode
-
dieOnCircularReference
Description copied from class:DataTypeCheck 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.checkedis true and set it to true on exit.- Overrides:
dieOnCircularReferencein classAbstractFileSet- Parameters:
stk- the stack of references to check.p- the project to use to dereference the references.- Throws:
BuildException- on error.
-