org.apache.tools.ant.taskdefs.optional.pvcs

Class Pvcs


public class Pvcs
extends Task

Extracts the latest edition of the source code from a PVCS repository. PVCS is a version control system developed by Merant.
Before using this tag, the user running ant must have access to the commands of PVCS (get and pcli) and must have access to the repository. Note that the way to specify the repository is platform dependent so use property to specify location of repository.
This version has been tested agains PVCS version 6.5 and 6.6 under Windows and Solaris. 19-04-2001

The task now has a more robust parser. It allows for platform independant file paths and supports file names with (). Thanks to Erik Husby for bringing the bug to my attention. 27-04-2001

UNC paths are now handled properly. Fix provided by Don Jeffery. He also added an UpdateOnly flag that, when true, conditions the PVCS get using the -U option to only update those files that have a modification time (in PVCS) that is newer than the existing workfile. 25-10-2002

Added a revision attribute that currently is a synonym for label, but in a future release the behavior of the label attribute will change to use the -v option of GET. See bug #13847 for discussion.

Field Summary

Fields inherited from class org.apache.tools.ant.Task

description, location, target, taskName, taskType, wrapper

Fields inherited from class org.apache.tools.ant.ProjectComponent

project

Constructor Summary

Pvcs()
Creates a Pvcs object

Method Summary

void
addPvcsproject(PvcsProject p)
Specify a project within the PVCS repository to extract files from.
void
execute()
String
getConfig()
returns the path of the configuration file to be used
String
getFilenameFormat()
The filenameFormat attribute defines a MessageFormat string used to parse the output of the pcli command.
String
getForce()
Get value of force
boolean
getIgnoreReturnCode()
Get value of ignorereturncode
String
getLabel()
Get value of label
String
getLineStart()
The lineStart attribute is used to parse the output of the pcli command.
String
getPromotiongroup()
Get value of promotiongroup
String
getPvcsbin()
Get name of the PVCS bin directory
String
getPvcsproject()
Get name of the project in the PVCS repository
Vector
getPvcsprojects()
Get name of the project in the PVCS repository
String
getRepository()
Get network name of the PVCS repository
String
getRevision()
Get value of revision
boolean
getUpdateOnly()
String
getUserId()
String
getWorkspace()
Get name of the workspace to store the retrieved files
protected int
runCmd(Commandline cmd, ExecuteStreamHandler out)
void
setConfig(File f)
Sets a configuration file other than the default to be used.
void
setFilenameFormat(String f)
The format of the folder names; optional.
void
setForce(String f)
Specifies the value of the force argument; optional.
void
setIgnoreReturnCode(boolean b)
If set to true the return value from executing the pvcs commands are ignored; optional, default false.
void
setLabel(String l)
Only files marked with this label are extracted; optional.
void
setLineStart(String l)
What a valid return value from PVCS looks like when it describes a file.
void
setPromotiongroup(String w)
Specifies the name of the promotiongroup argument
void
setPvcsbin(String bin)
Specifies the location of the PVCS bin directory; optional if on the PATH.
void
setPvcsproject(String prj)
The project within the PVCS repository to extract files from; optional, default "/"
void
setRepository(String repo)
The network name of the PVCS repository; required.
void
setRevision(String r)
Only files with this revision are extract; optional.
void
setUpdateOnly(boolean l)
If set to true files are fetched only if newer than existing local files; optional, default false.
void
setUserId(String u)
User ID; unused.
void
setWorkspace(String ws)
Workspace to use; optional.

Methods inherited from class org.apache.tools.ant.Task

execute, getDescription, getLocation, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, maybeConfigure, perform, reconfigure, setDescription, setLocation, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType

Methods inherited from class org.apache.tools.ant.ProjectComponent

getProject, log, log, setProject

Constructor Details

Pvcs

public Pvcs()
Creates a Pvcs object

Method Details

addPvcsproject

public void addPvcsproject(PvcsProject p)
Specify a project within the PVCS repository to extract files from.
Parameters:
p -

execute

public void execute()
            throws BuildException
Overrides:
execute in interface Task
Throws:
BuildException - Something is stopping the build...

getConfig

public String getConfig()
returns the path of the configuration file to be used
Returns:
the path of the config file

getFilenameFormat

public String getFilenameFormat()
The filenameFormat attribute defines a MessageFormat string used to parse the output of the pcli command. It defaults to {0}-arc({1}). Repositories where the archive extension is not -arc should set this.

getForce

public String getForce()
Get value of force
Returns:
String

getIgnoreReturnCode

public boolean getIgnoreReturnCode()
Get value of ignorereturncode
Returns:
String

getLabel

public String getLabel()
Get value of label
Returns:
String

getLineStart

public String getLineStart()
The lineStart attribute is used to parse the output of the pcli command. It defaults to "P:. The parser already knows about / and \\, this property is useful in cases where the repository is accessed on a Windows platform via a drive letter mapping.

getPromotiongroup

public String getPromotiongroup()
Get value of promotiongroup
Returns:
String

getPvcsbin

public String getPvcsbin()
Get name of the PVCS bin directory
Returns:
String

getPvcsproject

public String getPvcsproject()
Get name of the project in the PVCS repository
Returns:
String

getPvcsprojects

public Vector getPvcsprojects()
Get name of the project in the PVCS repository
Returns:
Vector

getRepository

public String getRepository()
Get network name of the PVCS repository
Returns:
String

getRevision

public String getRevision()
Get value of revision
Returns:
String

getUpdateOnly

public boolean getUpdateOnly()

getUserId

public String getUserId()

getWorkspace

public String getWorkspace()
Get name of the workspace to store the retrieved files
Returns:
String

runCmd

protected int runCmd(Commandline cmd,
                     ExecuteStreamHandler out)

setConfig

public void setConfig(File f)
Sets a configuration file other than the default to be used. These files have a .cfg extension and are often found in archive or pvcsprop folders.
Parameters:
f - config file - can be given absolute or relative to ant basedir

setFilenameFormat

public void setFilenameFormat(String f)
The format of the folder names; optional. This must be in a format suitable for java.text.MessageFormat. Index 1 of the format will be used as the file name. Defaults to {0}-arc({1})

setForce

public void setForce(String f)
Specifies the value of the force argument; optional. If set to yes all files that exists and are writable are overwritten. Default no causes the files that are writable to be ignored. This stops the PVCS command get to stop asking questions!
Parameters:
f - String (yes/no)
To do:
make a boolean setter

setIgnoreReturnCode

public void setIgnoreReturnCode(boolean b)
If set to true the return value from executing the pvcs commands are ignored; optional, default false.

setLabel

public void setLabel(String l)
Only files marked with this label are extracted; optional.
Parameters:
l - String

setLineStart

public void setLineStart(String l)
What a valid return value from PVCS looks like when it describes a file. Defaults to "P:. If you are not using an UNC name for your repository and the drive letter P is incorrect for your setup, you may need to change this value, UNC names will always be accepted.

setPromotiongroup

public void setPromotiongroup(String w)
Specifies the name of the promotiongroup argument
Parameters:
w - String

setPvcsbin

public void setPvcsbin(String bin)
Specifies the location of the PVCS bin directory; optional if on the PATH. On some systems the PVCS executables pcli and get are not found in the PATH. In such cases this attribute should be set to the bin directory of the PVCS installation containing the executables mentioned before. If this attribute isn't specified the tag expects the executables to be found using the PATH environment variable.
Parameters:
bin - PVCS bin directory
To do:
use a File setter and resolve paths.

setPvcsproject

public void setPvcsproject(String prj)
The project within the PVCS repository to extract files from; optional, default "/"
Parameters:
prj - String

setRepository

public void setRepository(String repo)
The network name of the PVCS repository; required.
Parameters:
repo - String

setRevision

public void setRevision(String r)
Only files with this revision are extract; optional.
Parameters:
r - String

setUpdateOnly

public void setUpdateOnly(boolean l)
If set to true files are fetched only if newer than existing local files; optional, default false.

setUserId

public void setUserId(String u)
User ID; unused.

setWorkspace

public void setWorkspace(String ws)
Workspace to use; optional. By specifying a workspace, the files are extracted to that location. A PVCS workspace is a name for a location of the workfiles and isn't as such the location itself. You define the location for a workspace using the PVCS GUI clients. If this isn't specified the default workspace for the current user is used.
Parameters:
ws - String

Copyright © 2000-2006 Apache Software Foundation. All Rights Reserved.