Class AbstractSyncTask

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.commons.vfs2.tasks.VfsTask
org.apache.commons.vfs2.tasks.AbstractSyncTask
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
CopyTask

public abstract class AbstractSyncTask extends VfsTask
An abstract file synchronization task. Scans a set of source files and folders, and a destination folder, and performs actions on missing and out-of-date files. Specifically, performs actions on the following:
  • Missing destination file.
  • Missing source file.
  • Out-of-date destination file.
  • Up-to-date destination file.
  • TODO - Deal with case where dest file maps to a child of one of the source files.
  • TODO - Deal with case where dest file already exists and is incorrect type (not file, not a folder).
  • TODO - Use visitors.
  • TODO - Add default excludes.
  • TODO - Allow selector, mapper, filters, etc to be specified.
  • TODO - Handle source/dest directories as well.
  • TODO - Allow selector to be specified for choosing which dest files to sync.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Information about a source file.
  • Field Summary

    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

    Constructors
    Constructor
    Description
    Constructs a new instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Adds a nested <src> element.
    protected boolean
    Check if this task cares about destination files with a missing source file.
    void
    Executes this task.
    protected void
    Handles a destination for which there is no corresponding source file.
    protected void
    Handles an out-of-date file.
    protected void
    Handles an up-to-date file.
    boolean
    Sets whether we should fail if there was an error or not.
    protected void
    logOrDie(String message, int level)
    Logs a message or throws a BuildException depending on isFailonerror().
    void
    setDestDir(String destDirUrl)
    Sets the destination directory.
    void
    setDestFile(String destFileUrl)
    Sets the destination file.
    void
    setFailonerror(boolean failOnError)
    Sets whether we should fail if there was an error or not.
    void
    setIncludes(String filesList)
    Sets the files to includes.
    void
    setSrc(String srcFile)
    Sets the source file.
    void
    setSrcDir(String srcDirUrl)
    Sets the source directory.
    void
    setSrcDirIsBase(boolean srcDirIsBase)
    Sets whether the source directory should be considered as the base directory.

    Methods inherited from class org.apache.commons.vfs2.tasks.VfsTask

    closeManager, resolveFile

    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, setProject

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • addConfiguredSrc

      public void addConfiguredSrc(AbstractSyncTask.SourceInfo srcInfo) throws org.apache.tools.ant.BuildException
      Adds a nested <src> element.
      Parameters:
      srcInfo - A nested source element.
      Throws:
      org.apache.tools.ant.BuildException - if the SourceInfo doesn't reference a file.
    • detectMissingSourceFiles

      protected boolean detectMissingSourceFiles()
      Check if this task cares about destination files with a missing source file.

      This implementation returns false.

      Returns:
      True if missing file is detected.
    • execute

      public void execute() throws org.apache.tools.ant.BuildException
      Executes this task.
      Overrides:
      execute in class org.apache.tools.ant.Task
      Throws:
      org.apache.tools.ant.BuildException - if an error occurs.
    • handleMissingSourceFile

      protected void handleMissingSourceFile(FileObject destFile) throws Exception
      Handles a destination for which there is no corresponding source file.

      This implementation does nothing.

      Parameters:
      destFile - The existing destination file.
      Throws:
      Exception - Implementation can throw any Exception.
    • handleOutOfDateFile

      protected void handleOutOfDateFile(FileObject srcFile, FileObject destFile) throws Exception
      Handles an out-of-date file.

      This is a file where the destination file either doesn't exist, or is older than the source file.

      This implementation does nothing.

      Parameters:
      srcFile - The source file.
      destFile - The destination file.
      Throws:
      Exception - Implementation can throw any Exception.
    • handleUpToDateFile

      protected void handleUpToDateFile(FileObject srcFile, FileObject destFile) throws Exception
      Handles an up-to-date file.

      This is where the destination file exists and is newer than the source file.

      This implementation does nothing.

      Parameters:
      srcFile - The source file.
      destFile - The destination file.
      Throws:
      Exception - Implementation can throw any Exception.
    • isFailonerror

      public boolean isFailonerror()
      Sets whether we should fail if there was an error or not.
      Returns:
      true if the operation should fail if there was an error.
    • logOrDie

      protected void logOrDie(String message, int level)
      Logs a message or throws a BuildException depending on isFailonerror().
      Parameters:
      message - The message to using in logging or BuildException.
      level - The log level.
    • setDestDir

      public void setDestDir(String destDirUrl)
      Sets the destination directory.
      Parameters:
      destDirUrl - The destination directory.
    • setDestFile

      public void setDestFile(String destFileUrl)
      Sets the destination file.
      Parameters:
      destFileUrl - The destination file name.
    • setFailonerror

      public void setFailonerror(boolean failOnError)
      Sets whether we should fail if there was an error or not.
      Parameters:
      failOnError - true if the operation should fail if there is an error.
    • setIncludes

      public void setIncludes(String filesList)
      Sets the files to includes.
      Parameters:
      filesList - The list of files to include.
    • setSrc

      public void setSrc(String srcFile)
      Sets the source file.
      Parameters:
      srcFile - The source file name.
    • setSrcDir

      public void setSrcDir(String srcDirUrl)
      Sets the source directory.
      Parameters:
      srcDirUrl - The source directory.
    • setSrcDirIsBase

      public void setSrcDirIsBase(boolean srcDirIsBase)
      Sets whether the source directory should be considered as the base directory.
      Parameters:
      srcDirIsBase - true if the source directory is the base directory.