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

# Class Sync

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.Sync

All Implemented Interfaces:
  `Cloneable`

public class Sync extends Task
Synchronize a local target directory from the files defined in one or more filesets.

Uses a <copy> task internally, but forbidding the use of mappers and filter chains. Files of the destination directory not present in any of the source fileset are removed.

Since:
  Ant 1.6 revised by Dan Armbrust to remove orphaned directories.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `Sync.MyCopy`
  Subclass Copy in order to access it's file/dir maps.
  `static class`
  `Sync.SyncTarget`
  Inner class used to hold exclude patterns and selectors to save stuff that happens to live in the target directory but should not get removed.

- ## Field Summary

  ### 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
  `Sync()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(ResourceCollection rc)`
  Adds a collection of filesystem resources to copy.
  `void`
  `addFileset(FileSet set)`
  Adds a set of files to copy.
  `void`
  `addPreserveInTarget(Sync.SyncTarget s)`
  A container for patterns and selectors that can be used to specify files that should be kept in the target even if they are not present in any source directory.
  `void`
  `execute()`
  Execute the sync task.
  `void`
  `init()`
  Initialize the sync task.
  `void`
  `setFailOnError(boolean failonerror)`
  If false, note errors to the output but keep going.
  `void`
  `setGranularity(long granularity)`
  The number of milliseconds leeway to give before deciding a target is out of date.
  `void`
  `setIncludeEmptyDirs(boolean includeEmpty)`
  Used to copy empty directories.
  `void`
  `setOverwrite(boolean overwrite)`
  Overwrite any existing destination file(s).
  `void`
  `setTodir(File destDir)`
  Sets the destination directory.
  `void`
  `setVerbose(boolean verbose)`
  Used to force listing of all names of copied files.

  ### Methods inherited from class Task

  `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, 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.
  `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, setProject`
  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.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### Sync

    public Sync()

- ## Method Details

  - ### init

    public void init() throws BuildException
    Initialize the sync task.
    Overrides:
      `init` in class `Task`
    Throws:
      `BuildException` - if there is a problem.
    See Also:
      - `Task.init()`

  - ### execute

    public void execute() throws BuildException
    Execute the sync task.
    Overrides:
      `execute` in class `Task`
    Throws:
      `BuildException` - if there is an error.
    See Also:
      - `Task.execute()`

  - ### setTodir

    public void setTodir(File destDir)
    Sets the destination directory.
    Parameters:
      `destDir` - the destination directory

  - ### setVerbose

    public void setVerbose(boolean verbose)
    Used to force listing of all names of copied files.
    Parameters:
      `verbose` - if true force listing of all names of copied files.

  - ### setOverwrite

    public void setOverwrite(boolean overwrite)
    Overwrite any existing destination file(s).
    Parameters:
      `overwrite` - if true overwrite any existing destination file(s).

  - ### setIncludeEmptyDirs

    public void setIncludeEmptyDirs(boolean includeEmpty)
    Used to copy empty directories.
    Parameters:
      `includeEmpty` - If true copy empty directories.

  - ### setFailOnError

    public void setFailOnError(boolean failonerror)
    If false, note errors to the output but keep going.
    Parameters:
      `failonerror` - true or false

  - ### addFileset

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

  - ### add

    public void add(ResourceCollection rc)
    Adds a collection of filesystem resources to copy.
    Parameters:
      `rc` - a resource collection
    Since:
      Ant 1.7

  - ### setGranularity

    public void setGranularity(long granularity)
    The number of milliseconds leeway to give before deciding a target is out of date.

    Default is 0 milliseconds, or 2 seconds on DOS systems.

    Parameters:
      `granularity` - a `long` value
    Since:
      Ant 1.6.2

  - ### addPreserveInTarget

    public void addPreserveInTarget(Sync.SyncTarget s)
    A container for patterns and selectors that can be used to specify files that should be kept in the target even if they are not present in any source directory.

    You must not invoke this method more than once.

    Parameters:
      `s` - a preserveintarget nested element
    Since:
      Ant 1.7