org.apache.tools.ant.taskdefs

## Class AbstractCvsTask

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.AbstractCvsTask

- All Implemented Interfaces:
    java.lang.Cloneable
  Direct Known Subclasses:
    ChangeLogTask, Cvs, CvsTagDiff, CvsVersion

      public abstract class AbstractCvsTask
      extends Task

  original Cvs.java 1.20

  NOTE: This implementation has been moved here from Cvs.java with the addition of some accessors for extensibility. Another task can extend this with some customized output processing.

  Since:
    Ant 1.5

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `AbstractCvsTask.Module`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_COMPRESSION_LEVEL` Default compression level to use, if compression is enabled via setCompression(true).

    - ### 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 and Description
    `AbstractCvsTask()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCommandArgument(Commandline c, java.lang.String arg)` This method adds a command line argument to an external command.
    `void` | `addCommandArgument(java.lang.String arg)` This needs to be public to allow configuration of commands externally.
    `void` | `addConfiguredCommandline(Commandline c)` Adds direct command-line to execute.
    `void` | `addConfiguredCommandline(Commandline c, boolean insertAtStart)` Configures and adds the given Commandline.
    `void` | `addModule(AbstractCvsTask.Module m)` add a named module/package.
    `protected void` | `configureCommandline(Commandline c)` Configure a commandline element for things like cvsRoot, quiet, etc.
    `void` | `execute()` do the work
    `java.lang.String` | `getCommand()` accessor to a command line as string This should be deprecated AntoineLL July 23d 2003
    `java.lang.String` | `getCvsRoot()` access the CVSROOT variable
    `java.lang.String` | `getCvsRsh()` access the CVS_RSH variable
    `java.io.File` | `getDest()` get the file where the checked out files should be placed
    `protected java.io.OutputStream` | `getErrorStream()` access the stream to which the stderr from cvs should go if this stream has already been set, it will be returned if the stream has not yet been set, if the attribute error has been set, the output stream will go to the file denoted by the error attribute otherwise the stderr output will go to ant's logging system
    `protected ExecuteStreamHandler` | `getExecuteStreamHandler()` find the handler and instantiate it if it does not exist yet
    `protected java.util.List<AbstractCvsTask.Module>` | `getModules()`
    `protected java.io.OutputStream` | `getOutputStream()` access the stream to which the stdout from cvs should go if this stream has already been set, it will be returned if the stream has not yet been set, if the attribute output has been set, the output stream will go to the output file otherwise the output will go to ant's logging system
    `java.lang.String` | `getPackage()` access the package or module to operate upon
    `java.io.File` | `getPassFile()` find the password file
    `int` | `getPort()` access the port of CVS
    `java.lang.String` | `getTag()` tag or branch
    `protected void` | `removeCommandline(Commandline c)` remove a particular command from a vector of command lines
    `protected void` | `runCommand(Commandline toExecute)` Sets up the environment for toExecute and then runs it.
    `void` | `setAppend(boolean value)` Whether to append output/error when redirecting to a file.
    `void` | `setCommand(java.lang.String c)` The CVS command to execute.
    `void` | `setCompression(boolean usecomp)` If true, this is the same as compressionlevel="3".
    `void` | `setCompressionLevel(int level)` If set to a value 1-9 it adds -zN to the cvs command line, else it disables compression.
    `void` | `setCvsRoot(java.lang.String root)` The CVSROOT variable.
    `void` | `setCvsRsh(java.lang.String rsh)` The CVS_RSH variable.
    `void` | `setDate(java.lang.String p)` Use the most recent revision no later than the given date.
    `void` | `setDest(java.io.File dest)` The directory where the checked out files should be placed.
    `void` | `setError(java.io.File error)` The file to direct standard error from the command.
    `protected void` | `setErrorStream(java.io.OutputStream errorStream)` sets a stream to which the stderr from the cvs exe should go
    `void` | `setExecuteStreamHandler(ExecuteStreamHandler handler)` sets the handler
    `void` | `setFailOnError(boolean failOnError)` Stop the build process if the command exits with a return code other than 0.
    `void` | `setNoexec(boolean ne)` If true, report only and don't change any files.
    `void` | `setOutput(java.io.File output)` The file to direct standard output from the command.
    `protected void` | `setOutputStream(java.io.OutputStream outputStream)` sets a stream to which the output from the cvs executable should be sent
    `void` | `setPackage(java.lang.String p)` The package/module to operate upon.
    `void` | `setPassfile(java.io.File passFile)` Password file to read passwords from.
    `void` | `setPort(int port)` Port used by CVS to communicate with the server.
    `void` | `setQuiet(boolean q)` If true, suppress informational messages.
    `void` | `setReallyquiet(boolean q)` If true, suppress all messages.
    `void` | `setTag(java.lang.String p)` The tag of the package/module to operate upon.

    - ### 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`

- - ### Field Detail

    - #### DEFAULT_COMPRESSION_LEVEL

          public static final int DEFAULT_COMPRESSION_LEVEL

      Default compression level to use, if compression is enabled via setCompression(true).
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### AbstractCvsTask

          public AbstractCvsTask()

  - ### Method Detail

    - #### setExecuteStreamHandler

          public void setExecuteStreamHandler(ExecuteStreamHandler handler)

      sets the handler
      Parameters:
        `handler` - a handler able of processing the output and error streams from the cvs exe

    - #### getExecuteStreamHandler

          protected ExecuteStreamHandler getExecuteStreamHandler()

      find the handler and instantiate it if it does not exist yet
      Returns:
        handler for output and error streams

    - #### setOutputStream

          protected void setOutputStream(java.io.OutputStream outputStream)

      sets a stream to which the output from the cvs executable should be sent
      Parameters:
        `outputStream` - stream to which the stdout from cvs should go

    - #### getOutputStream

          protected java.io.OutputStream getOutputStream()

      access the stream to which the stdout from cvs should go if this stream has already been set, it will be returned if the stream has not yet been set, if the attribute output has been set, the output stream will go to the output file otherwise the output will go to ant's logging system
      Returns:
        output stream to which cvs' stdout should go to

    - #### setErrorStream

          protected void setErrorStream(java.io.OutputStream errorStream)

      sets a stream to which the stderr from the cvs exe should go
      Parameters:
        `errorStream` - an output stream willing to process stderr

    - #### getErrorStream

          protected java.io.OutputStream getErrorStream()

      access the stream to which the stderr from cvs should go if this stream has already been set, it will be returned if the stream has not yet been set, if the attribute error has been set, the output stream will go to the file denoted by the error attribute otherwise the stderr output will go to ant's logging system
      Returns:
        output stream to which cvs' stderr should go to

    - #### runCommand

          protected void runCommand(Commandline toExecute)
                             throws BuildException

      Sets up the environment for toExecute and then runs it.
      Parameters:
        `toExecute` - the command line to execute
      Throws:
        `BuildException` - if failonError is set to true and the cvs command fails

    - #### execute

          public void execute()
                       throws BuildException

      do the work
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - if failonerror is set to true and the cvs command fails.

    - #### setCvsRoot

          public void setCvsRoot(java.lang.String root)

      The CVSROOT variable.
      Parameters:
        `root` - the CVSROOT variable

    - #### getCvsRoot

          public java.lang.String getCvsRoot()

      access the CVSROOT variable
      Returns:
        CVSROOT

    - #### setCvsRsh

          public void setCvsRsh(java.lang.String rsh)

      The CVS_RSH variable.
      Parameters:
        `rsh` - the CVS_RSH variable

    - #### getCvsRsh

          public java.lang.String getCvsRsh()

      access the CVS_RSH variable
      Returns:
        the CVS_RSH variable

    - #### setPort

          public void setPort(int port)

      Port used by CVS to communicate with the server.
      Parameters:
        `port` - port of CVS

    - #### getPort

          public int getPort()

      access the port of CVS
      Returns:
        the port of CVS

    - #### setPassfile

          public void setPassfile(java.io.File passFile)

      Password file to read passwords from.
      Parameters:
        `passFile` - password file to read passwords from

    - #### getPassFile

          public java.io.File getPassFile()

      find the password file
      Returns:
        password file

    - #### setDest

          public void setDest(java.io.File dest)

      The directory where the checked out files should be placed.

      Note that this is different from CVS's -d command line switch as Ant will never shorten pathnames to avoid empty directories.

      Parameters:
        `dest` - directory where the checked out files should be placed

    - #### getDest

          public java.io.File getDest()

      get the file where the checked out files should be placed
      Returns:
        directory where the checked out files should be placed

    - #### setPackage

          public void setPackage(java.lang.String p)

      The package/module to operate upon.
      Parameters:
        `p` - package or module to operate upon

    - #### getPackage

          public java.lang.String getPackage()

      access the package or module to operate upon
      Returns:
        package/module

    - #### getTag

          public java.lang.String getTag()

      tag or branch
      Returns:
        tag or branch
      Since:
        ant 1.6.1

    - #### setTag

          public void setTag(java.lang.String p)

      The tag of the package/module to operate upon.
      Parameters:
        `p` - tag

    - #### addCommandArgument

          public void addCommandArgument(java.lang.String arg)

      This needs to be public to allow configuration of commands externally.
      Parameters:
        `arg` - command argument

    - #### addCommandArgument

          public void addCommandArgument(Commandline c,
                                         java.lang.String arg)

      This method adds a command line argument to an external command. I do not understand what this method does in this class ??? particularly not why it is public ???? AntoineLL July 23d 2003
      Parameters:
        `c` - command line to which one argument should be added
        `arg` - argument to add

    - #### setDate

          public void setDate(java.lang.String p)

      Use the most recent revision no later than the given date.
      Parameters:
        `p` - a date as string in a format that the CVS executable can understand see man cvs

    - #### setCommand

          public void setCommand(java.lang.String c)

      The CVS command to execute. This should be deprecated, it is better to use the Commandline class ? AntoineLL July 23d 2003
      Parameters:
        `c` - a command as string

    - #### getCommand

          public java.lang.String getCommand()

      accessor to a command line as string This should be deprecated AntoineLL July 23d 2003
      Returns:
        command line as string

    - #### setQuiet

          public void setQuiet(boolean q)

      If true, suppress informational messages.
      Parameters:
        `q` - if true, suppress informational messages

    - #### setReallyquiet

          public void setReallyquiet(boolean q)

      If true, suppress all messages.
      Parameters:
        `q` - if true, suppress all messages
      Since:
        Ant 1.6

    - #### setNoexec

          public void setNoexec(boolean ne)

      If true, report only and don't change any files.
      Parameters:
        `ne` - if true, report only and do not change any files.

    - #### setOutput

          public void setOutput(java.io.File output)

      The file to direct standard output from the command.
      Parameters:
        `output` - a file to which stdout should go

    - #### setError

          public void setError(java.io.File error)

      The file to direct standard error from the command.
      Parameters:
        `error` - a file to which stderr should go

    - #### setAppend

          public void setAppend(boolean value)

      Whether to append output/error when redirecting to a file.
      Parameters:
        `value` - true indicated you want to append

    - #### setFailOnError

          public void setFailOnError(boolean failOnError)

      Stop the build process if the command exits with a return code other than 0. Defaults to false.
      Parameters:
        `failOnError` - stop the build process if the command exits with a return code other than 0

    - #### configureCommandline

          protected void configureCommandline(Commandline c)

      Configure a commandline element for things like cvsRoot, quiet, etc.
      Parameters:
        `c` - the command line which will be configured if the commandline is initially null, the function is a noop otherwise the function append to the commandline arguments concerning
        - cvs package
        - compression
        - quiet or reallyquiet
        - cvsroot
        - noexec

    - #### removeCommandline

          protected void removeCommandline(Commandline c)

      remove a particular command from a vector of command lines
      Parameters:
        `c` - command line which should be removed

    - #### addConfiguredCommandline

          public void addConfiguredCommandline(Commandline c)

      Adds direct command-line to execute.
      Parameters:
        `c` - command line to execute

    - #### addConfiguredCommandline

          public void addConfiguredCommandline(Commandline c,
                                               boolean insertAtStart)

      Configures and adds the given Commandline.
      Parameters:
        `c` - commandline to insert
        `insertAtStart` - If true, c is inserted at the beginning of the vector of command lines

    - #### setCompressionLevel

          public void setCompressionLevel(int level)

      If set to a value 1-9 it adds -zN to the cvs command line, else it disables compression.
      Parameters:
        `level` - compression level 1 to 9

    - #### setCompression

          public void setCompression(boolean usecomp)

      If true, this is the same as compressionlevel="3".
      Parameters:
        `usecomp` - If true, turns on compression using default level, AbstractCvsTask.DEFAULT_COMPRESSION_LEVEL.

    - #### addModule

          public void addModule(AbstractCvsTask.Module m)

      add a named module/package.
      Parameters:
        `m` - Module
      Since:
        Ant 1.8.0

    - #### getModules

          protected java.util.List<AbstractCvsTask.Module> getModules()