org.apache.tools.ant.taskdefs
Class Tar

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.tools.ant.taskdefs.MatchingTask
              extended by org.apache.tools.ant.taskdefs.Tar
All Implemented Interfaces:
java.lang.Cloneable, SelectorContainer

public class Tar
extends MatchingTask

Creates a tar archive.

Since:
Ant 1.1

Nested Class Summary
static class Tar.TarCompressionMethod
          Valid Modes for Compression attribute to Tar Task
static class Tar.TarFileSet
          This is a FileSet with the option to specify permissions and other attributes.
static class Tar.TarLongFileMode
          Set of options for long file handling in the task.
 
Field Summary
static java.lang.String FAIL
          Deprecated. since 1.5.x. Tar.FAIL is deprecated and is replaced with Tar.TarLongFileMode.FAIL
static java.lang.String GNU
          Deprecated. since 1.5.x. Tar.GNU is deprecated and is replaced with Tar.TarLongFileMode.GNU
static java.lang.String OMIT
          Deprecated. since 1.5.x. Tar.OMIT is deprecated and is replaced with Tar.TarLongFileMode.OMIT
static java.lang.String TRUNCATE
          Deprecated. since 1.5.x. Tar.TRUNCATE is deprecated and is replaced with Tar.TarLongFileMode.TRUNCATE
static java.lang.String WARN
          Deprecated. since 1.5.x. Tar.WARN is deprecated and is replaced with Tar.TarLongFileMode.WARN
 
Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask
fileset
 
Fields inherited from class org.apache.tools.ant.Task
target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
 
Constructor Summary
Tar()
           
 
Method Summary
 void add(ResourceCollection res)
          Add a collection of resources to archive.
protected  boolean archiveIsUpToDate(Resource r)
          Is the archive up to date in relationship to a list of files.
protected  boolean archiveIsUpToDate(java.lang.String[] files)
          Deprecated. since 1.5.x. use the two-arg version instead.
protected  boolean archiveIsUpToDate(java.lang.String[] files, java.io.File dir)
          Is the archive up to date in relationship to a list of files.
protected  Tar.TarFileSet asTarFileSet(ArchiveFileSet archiveFileSet)
          Copies fullpath, prefix and permission attributes from the ArchiveFileSet to a new TarFileSet (or returns it unchanged if it already is a TarFileSet).
protected  boolean check(java.io.File basedir, java.lang.String[] files)
          Checks whether the archive is out-of-date with respect to the given files, ensures that the archive won't contain itself.
protected  boolean check(ResourceCollection rc)
          Checks whether the archive is out-of-date with respect to the resources of the given collection.
 Tar.TarFileSet createTarFileSet()
          Add a new fileset with the option to specify permissions
 void execute()
          do the business
protected static java.lang.String[] getFileNames(FileSet fs)
          Grabs all included files and directors from the FileSet and returns them as an array of (relative) file names.
protected static boolean isFileFileSet(ResourceCollection rc)
          whether the given resource collection is a (subclass of) FileSet that only contains file system resources.
 void setBasedir(java.io.File baseDir)
          This is the base directory to look in for things to tar.
 void setCompression(Tar.TarCompressionMethod mode)
          Set compression method.
 void setDestFile(java.io.File destFile)
          Set is the name/location of where to create the tar file.
 void setLongfile(java.lang.String mode)
          Deprecated. since 1.5.x. setLongFile(String) is deprecated and is replaced with setLongFile(Tar.TarLongFileMode) to make Ant's Introspection mechanism do the work and also to encapsulate operations on the mode in its own class.
 void setLongfile(Tar.TarLongFileMode mode)
          Set how to handle long files, those with a path>100 chars.
 void setTarfile(java.io.File tarFile)
          Deprecated. since 1.5.x. For consistency with other tasks, please use setDestFile().
protected  boolean supportsNonFileResources()
          Whether this task can deal with non-file resources.
protected  void tar(ResourceCollection rc, TarOutputStream tOut)
          Adds the resources contained in this collection to the archive.
protected  void tarFile(java.io.File file, TarOutputStream tOut, java.lang.String vPath, Tar.TarFileSet tarFileSet)
          tar a file
protected  void tarResource(Resource r, TarOutputStream tOut, java.lang.String vPath, Tar.TarFileSet tarFileSet)
          tar a resource
 
Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask
add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems
 
Methods inherited from class org.apache.tools.ant.Task
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
clone, getDescription, getLocation, getProject, setDescription, setLocation
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WARN

public static final java.lang.String WARN
Deprecated. since 1.5.x. Tar.WARN is deprecated and is replaced with Tar.TarLongFileMode.WARN
See Also:
Constant Field Values

FAIL

public static final java.lang.String FAIL
Deprecated. since 1.5.x. Tar.FAIL is deprecated and is replaced with Tar.TarLongFileMode.FAIL
See Also:
Constant Field Values

TRUNCATE

public static final java.lang.String TRUNCATE
Deprecated. since 1.5.x. Tar.TRUNCATE is deprecated and is replaced with Tar.TarLongFileMode.TRUNCATE
See Also:
Constant Field Values

GNU

public static final java.lang.String GNU
Deprecated. since 1.5.x. Tar.GNU is deprecated and is replaced with Tar.TarLongFileMode.GNU
See Also:
Constant Field Values

OMIT

public static final java.lang.String OMIT
Deprecated. since 1.5.x. Tar.OMIT is deprecated and is replaced with Tar.TarLongFileMode.OMIT
See Also:
Constant Field Values
Constructor Detail

Tar

public Tar()
Method Detail

createTarFileSet

public Tar.TarFileSet createTarFileSet()
Add a new fileset with the option to specify permissions

Returns:
the tar fileset to be used as the nested element.

add

public void add(ResourceCollection res)
Add a collection of resources to archive.

Parameters:
res - a resource collection to archive.
Since:
Ant 1.7

setTarfile

public void setTarfile(java.io.File tarFile)
Deprecated. since 1.5.x. For consistency with other tasks, please use setDestFile().

Set is the name/location of where to create the tar file.

Parameters:
tarFile - the location of the tar file.

setDestFile

public void setDestFile(java.io.File destFile)
Set is the name/location of where to create the tar file.

Parameters:
destFile - The output of the tar
Since:
Ant 1.5

setBasedir

public void setBasedir(java.io.File baseDir)
This is the base directory to look in for things to tar.

Parameters:
baseDir - the base directory.

setLongfile

public void setLongfile(java.lang.String mode)
Deprecated. since 1.5.x. setLongFile(String) is deprecated and is replaced with setLongFile(Tar.TarLongFileMode) to make Ant's Introspection mechanism do the work and also to encapsulate operations on the mode in its own class.

Set how to handle long files, those with a path>100 chars. Optional, default=warn.

Allowable values are

Parameters:
mode - the mode string to handle long files.

setLongfile

public void setLongfile(Tar.TarLongFileMode mode)
Set how to handle long files, those with a path>100 chars. Optional, default=warn.

Allowable values are

Parameters:
mode - the mode to handle long file names.

setCompression

public void setCompression(Tar.TarCompressionMethod mode)
Set compression method. Allowable values are

Parameters:
mode - the compression method.

execute

public void execute()
             throws BuildException
do the business

Overrides:
execute in class Task
Throws:
BuildException - on error

tarFile

protected void tarFile(java.io.File file,
                       TarOutputStream tOut,
                       java.lang.String vPath,
                       Tar.TarFileSet tarFileSet)
                throws java.io.IOException
tar a file

Parameters:
file - the file to tar
tOut - the output stream
vPath - the path name of the file to tar
tarFileSet - the fileset that the file came from.
Throws:
java.io.IOException - on error

tarResource

protected void tarResource(Resource r,
                           TarOutputStream tOut,
                           java.lang.String vPath,
                           Tar.TarFileSet tarFileSet)
                    throws java.io.IOException
tar a resource

Parameters:
r - the resource to tar
tOut - the output stream
vPath - the path name of the file to tar
tarFileSet - the fileset that the file came from, may be null.
Throws:
java.io.IOException - on error
Since:
Ant 1.7

archiveIsUpToDate

protected boolean archiveIsUpToDate(java.lang.String[] files)
Deprecated. since 1.5.x. use the two-arg version instead.

Is the archive up to date in relationship to a list of files.

Parameters:
files - the files to check
Returns:
true if the archive is up to date.

archiveIsUpToDate

protected boolean archiveIsUpToDate(java.lang.String[] files,
                                    java.io.File dir)
Is the archive up to date in relationship to a list of files.

Parameters:
files - the files to check
dir - the base directory for the files.
Returns:
true if the archive is up to date.
Since:
Ant 1.5.2

archiveIsUpToDate

protected boolean archiveIsUpToDate(Resource r)
Is the archive up to date in relationship to a list of files.

Parameters:
r - the files to check
Returns:
true if the archive is up to date.
Since:
Ant 1.7

supportsNonFileResources

protected boolean supportsNonFileResources()
Whether this task can deal with non-file resources.

This implementation returns true only if this task is <tar>. Any subclass of this class that also wants to support non-file resources needs to override this method. We need to do so for backwards compatibility reasons since we can't expect subclasses to support resources.

Returns:
true for this task.
Since:
Ant 1.7

check

protected boolean check(ResourceCollection rc)
Checks whether the archive is out-of-date with respect to the resources of the given collection.

Also checks that either all collections only contain file resources or this class supports non-file collections.

And - in case of file-collections - ensures that the archive won't contain itself.

Parameters:
rc - the resource collection to check
Returns:
whether the archive is up-to-date
Since:
Ant 1.7

check

protected boolean check(java.io.File basedir,
                        java.lang.String[] files)
Checks whether the archive is out-of-date with respect to the given files, ensures that the archive won't contain itself.

Parameters:
basedir - base directory for file names
files - array of relative file names
Returns:
whether the archive is up-to-date
Since:
Ant 1.7

tar

protected void tar(ResourceCollection rc,
                   TarOutputStream tOut)
            throws java.io.IOException
Adds the resources contained in this collection to the archive.

Uses the file based methods for file resources for backwards compatibility.

Parameters:
rc - the collection containing resources to add
tOut - stream writing to the archive.
Throws:
java.io.IOException - on error.
Since:
Ant 1.7

isFileFileSet

protected static final boolean isFileFileSet(ResourceCollection rc)
whether the given resource collection is a (subclass of) FileSet that only contains file system resources.

Parameters:
rc - the resource collection to check.
Returns:
true if the collection is a fileset.
Since:
Ant 1.7

getFileNames

protected static final java.lang.String[] getFileNames(FileSet fs)
Grabs all included files and directors from the FileSet and returns them as an array of (relative) file names.

Parameters:
fs - the fileset to operate on.
Returns:
a list of the filenames.
Since:
Ant 1.7

asTarFileSet

protected Tar.TarFileSet asTarFileSet(ArchiveFileSet archiveFileSet)
Copies fullpath, prefix and permission attributes from the ArchiveFileSet to a new TarFileSet (or returns it unchanged if it already is a TarFileSet).

Parameters:
archiveFileSet - fileset to copy attributes from, may be null
Returns:
a new TarFileSet.
Since:
Ant 1.7