org.apache.tools.ant.taskdefs
Class AbstractCvsTask

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by 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
static class AbstractCvsTask.Module
           
 
Field Summary
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
AbstractCvsTask()
          empty no-arg constructor
 
Method Summary
 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()
empty no-arg constructor

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.

Since:
Ant 1.8.0

getModules

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