Cab (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.taskdefs.optional, class: Cab

# Class Cab

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.MatchingTask
org.apache.tools.ant.taskdefs.optional.Cab

All Implemented Interfaces:
  `Cloneable, SelectorContainer`

public class Cab extends MatchingTask
Create a CAB archive.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `archiveType`

  ### Fields inherited from class MatchingTask

  `fileset`
  Modifier and Type
  Field
  Description
  `protected FileSet`
  `fileset`

  ### Fields inherited from class Task

  `target, taskName, taskType, wrapper`
  Modifier and Type
  Field
  Description
  `protected Target`
  `target`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskName`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskType`
  Deprecated.
  since 1.6.x.
  `protected RuntimeConfigurable`
  `wrapper`
  Deprecated.
  since 1.6.x.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Cab()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addFileset(FileSet fileset)`
  Adds a set of files to archive.
  `protected void`
  `appendFiles(Vector<String> files, DirectoryScanner ds)`
  Append all files found by a directory scanner to a vector.
  `protected void`
  `checkConfiguration()`
  Check if the attributes and nested elements are correct.
  `protected ExecTask`
  `createExec()`
  Create a new exec delegate.
  `protected File`
  `createListFile(Vector<String> files)`
  Creates a list file.
  `void`
  `execute()`
  execute this task.
  `protected Vector<String>`
  `getFileList()`
  Get the complete list of files to be included in the cab.
  `protected boolean`
  `isUpToDate(Vector<String> files)`
  Check to see if the target is up to date with respect to input files.
  `void`
  `setBasedir(File baseDir)`
  Base directory to look in for files to CAB.
  `void`
  `setCabfile(File cabFile)`
  The name/location of where to create the .cab file.
  `void`
  `setCompress(boolean compress)`
  If true, compress the files otherwise only store them.
  `void`
  `setOptions(String options)`
  Sets additional cabarc options that are not supported directly.
  `void`
  `setVerbose(boolean verbose)`
  If true, display cabarc output.

  ### Methods inherited from class 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`
  Modifier and Type
  Method
  Description
  `void`
  `add(FileSelector selector)`
  add an arbitrary selector
  `void`
  `addAnd(AndSelector selector)`
  add an "And" selector entry on the selector list
  `void`
  `addContains(ContainsSelector selector)`
  add a contains selector entry on the selector list
  `void`
  `addContainsRegexp(ContainsRegexpSelector selector)`
  add a regular expression selector entry on the selector list
  `void`
  `addCustom(ExtendSelector selector)`
  add an extended selector entry on the selector list
  `void`
  `addDate(DateSelector selector)`
  add a selector date entry on the selector list
  `void`
  `addDepend(DependSelector selector)`
  add a depends selector entry on the selector list
  `void`
  `addDepth(DepthSelector selector)`
  add a depth selector entry on the selector list
  `void`
  `addDifferent(DifferentSelector selector)`
  add a type selector entry on the type list
  `void`
  `addFilename(FilenameSelector selector)`
  add a selector filename entry on the selector list
  `void`
  `addMajority(MajoritySelector selector)`
  add a majority selector entry on the selector list
  `void`
  `addModified(ModifiedSelector selector)`
  add the modified selector
  `void`
  `addNone(NoneSelector selector)`
  add a "None" selector entry on the selector list
  `void`
  `addNot(NotSelector selector)`
  add a "Not" selector entry on the selector list
  `void`
  `addOr(OrSelector selector)`
  add an "Or" selector entry on the selector list
  `void`
  `addPresent(PresentSelector selector)`
  add a present selector entry on the selector list
  `void`
  `addSelector(SelectSelector selector)`
  add a "Select" selector entry on the selector list
  `void`
  `addSize(SizeSelector selector)`
  add a selector size entry on the selector list
  `void`
  `addType(TypeSelector selector)`
  add a type selector entry on the type list
  `void`
  `appendSelector(FileSelector selector)`
  Add a new selector into this container.
  `PatternSet.NameEntry`
  `createExclude()`
  add a name entry on the exclude list
  `PatternSet.NameEntry`
  `createExcludesFile()`
  add a name entry on the include files list
  `PatternSet.NameEntry`
  `createInclude()`
  add a name entry on the include list
  `PatternSet.NameEntry`
  `createIncludesFile()`
  add a name entry on the include files list
  `PatternSet`
  `createPatternSet()`
  add a set of patterns
  `protected DirectoryScanner`
  `getDirectoryScanner(File baseDir)`
  Returns the directory scanner needed to access the files to process.
  `protected final FileSet`
  `getImplicitFileSet()`
  Accessor for the implicit fileset.
  `FileSelector[]`
  `getSelectors(Project p)`
  Returns the set of selectors as an array.
  `boolean`
  `hasSelectors()`
  Indicates whether there are any selectors here.
  `int`
  `selectorCount()`
  Gives the count of the number of selectors in this container
  `Enumeration<FileSelector>`
  `selectorElements()`
  Returns an enumerator for accessing the set of selectors.
  `void`
  `setCaseSensitive(boolean isCaseSensitive)`
  Sets case sensitivity of the file system
  `void`
  `setDefaultexcludes(boolean useDefaultExcludes)`
  Sets whether default exclusions should be used or not.
  `void`
  `setExcludes(String excludes)`
  Sets the set of exclude patterns.
  `void`
  `setExcludesfile(File excludesfile)`
  Sets the name of the file containing the includes patterns.
  `void`
  `setFollowSymlinks(boolean followSymlinks)`
  Sets whether or not symbolic links or Windows junctions should be followed.
  `void`
  `setIncludes(String includes)`
  Sets the set of include patterns.
  `void`
  `setIncludesfile(File includesfile)`
  Sets the name of the file containing the includes patterns.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.
  `void`
  `XsetIgnore(String ignoreString)`
  List of filenames and directory names to not include.
  `void`
  `XsetItems(String itemString)`
  Set this to be the items in the base directory that you want to be included.

  ### Methods inherited from class 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`
  Modifier and Type
  Method
  Description
  `final void`
  `bindToOwner(Task owner)`
  Bind a task to another; use this when configuring a newly created task to do work on behalf of another.
  `Target`
  `getOwningTarget()`
  Returns the container target of this task.
  `RuntimeConfigurable`
  `getRuntimeConfigurableWrapper()`
  Returns the wrapper used for runtime configuration.
  `String`
  `getTaskName()`
  Returns the name to use in logging messages.
  `String`
  `getTaskType()`
  Return the type of task.
  `protected RuntimeConfigurable`
  `getWrapper()`
  Return the runtime configurable structure for this task.
  `protected void`
  `handleErrorFlush(String output)`
  Handles an error line by logging it with the WARN priority.
  `protected void`
  `handleErrorOutput(String output)`
  Handles an error output by logging it with the WARN priority.
  `protected void`
  `handleFlush(String output)`
  Handles output by logging it with the INFO priority.
  `protected int`
  `handleInput(byte[] buffer, int offset, int length)`
  Handle an input request by this task.
  `protected void`
  `handleOutput(String output)`
  Handles output by logging it with the INFO priority.
  `void`
  `init()`
  Called by the project to let the task initialize properly.
  `protected final boolean`
  `isInvalid()`
  Has this task been marked invalid?
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(String msg, Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `maybeConfigure()`
  Configures this task - if it hasn't been done already.
  `final void`
  `perform()`
  Performs this task if it's still valid, or gets a replacement version and performs that otherwise.
  `void`
  `reconfigure()`
  Force the task to be reconfigured from its RuntimeConfigurable.
  `void`
  `setOwningTarget(Target target)`
  Sets the target container of this task.
  `void`
  `setRuntimeConfigurableWrapper(RuntimeConfigurable wrapper)`
  Sets the wrapper to be used for runtime configuration.
  `void`
  `setTaskName(String name)`
  Sets the name to use in logging messages.
  `void`
  `setTaskType(String type)`
  Sets the name with which the task has been invoked.

  ### Methods inherited from class ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.

  ### Methods inherited from class Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### archiveType

    protected String archiveType

- ## Constructor Details

  - ### Cab

    public Cab()

- ## Method Details

  - ### setCabfile

    public void setCabfile(File cabFile)
    The name/location of where to create the .cab file.
    Parameters:
      `cabFile` - the location of the cab file.

  - ### setBasedir

    public void setBasedir(File baseDir)
    Base directory to look in for files to CAB.
    Parameters:
      `baseDir` - base directory for files to cab.

  - ### setCompress

    public void setCompress(boolean compress)
    If true, compress the files otherwise only store them.
    Parameters:
      `compress` - a `boolean` value.

  - ### setVerbose

    public void setVerbose(boolean verbose)
    If true, display cabarc output.
    Parameters:
      `verbose` - a `boolean` value.

  - ### setOptions

    public void setOptions(String options)
    Sets additional cabarc options that are not supported directly.
    Parameters:
      `options` - cabarc command line options.

  - ### addFileset

    public void addFileset(FileSet fileset)
    Adds a set of files to archive.
    Parameters:
      `fileset` - a set of files to archive.

  - ### checkConfiguration

    protected void checkConfiguration() throws BuildException
    Check if the attributes and nested elements are correct.
    Throws:
      `BuildException` - on error.

  - ### createExec

    protected ExecTask createExec() throws BuildException
    Create a new exec delegate. The delegate task is populated so that it appears in the logs to be the same task as this one.
    Returns:
      the delegate.
    Throws:
      `BuildException` - on error.

  - ### isUpToDate

    protected boolean isUpToDate(Vector<String> files)
    Check to see if the target is up to date with respect to input files.
    Parameters:
      `files` - the list of files to check.
    Returns:
      true if the cab file is newer than its dependents.

  - ### createListFile

    protected File createListFile(Vector<String> files) throws IOException
    Creates a list file. This temporary file contains a list of all files to be included in the cab, one file per line.

    This method expects to only be called on Windows and thus quotes the file names.

    Parameters:
      `files` - the list of files to use.
    Returns:
      the list file created.
    Throws:
      `IOException` - if there is an error.

  - ### appendFiles

    protected void appendFiles(Vector<String> files, DirectoryScanner ds)
    Append all files found by a directory scanner to a vector.
    Parameters:
      `files` - the vector to append the files to.
      `ds` - the scanner to get the files from.

  - ### getFileList

    protected Vector<String> getFileList() throws BuildException
    Get the complete list of files to be included in the cab. Filenames are gathered from the fileset if it has been added, otherwise from the traditional include parameters.
    Returns:
      the list of files.
    Throws:
      `BuildException` - if there is an error.

  - ### execute

    public void execute() throws BuildException
    execute this task.
    Overrides:
      `execute` in class `Task`
    Throws:
      `BuildException` - on error.