org.apache.maven.vsslib
Class VssChangeLogGenerator

java.lang.Object
  extended byorg.apache.maven.changelog.AbstractChangeLogGenerator
      extended byorg.apache.maven.vsslib.VssChangeLogGenerator
All Implemented Interfaces:
ChangeLogGenerator, org.apache.tools.ant.taskdefs.ExecuteStreamHandler

public class VssChangeLogGenerator
extends AbstractChangeLogGenerator

A Visual Source Safe implementation of the ChangeLogGeneratorinterface realized extending the AbstractChangeLogGenerator. The command line build by this class uses the ss History VSS command and formats the output in a way the VssChangeLogParser can understand. Due to this fact this implementations works only if used within a vss view. The command looks like this:

set ssdir=vssRepositoryPath ss History vssProject -YvssUserId,vssUserPassword -R -Vd01/12/04~23/11/04 -I-Y

Author:
Freddy Mallet

Field Summary
 
Fields inherited from class org.apache.maven.changelog.AbstractChangeLogGenerator
base, changeLogExecutor, clParser, commentFormat, dateRange, entries, errorReader, in, logEnd, logStart, tag, type
 
Constructor Summary
VssChangeLogGenerator()
           
 
Method Summary
 Collection getEntries(ChangeLogParser parser)
          Execute vss client driving the given parser.
protected  String getScmDateArgument(Date before, Date to)
          Construct the command-line argument that is passed to the scm client to specify the appropriate date range.
protected  org.apache.tools.ant.types.Commandline getScmLogCommand()
          Constructs the appropriate command line to execute the scm's log command.
protected  String getScmTagArgument(String tagStart, String tagEnd)
          Construct the command-line argument that is passed to the scm client to specify the appropriate tag.
 void setDateRange(String numDaysString)
          Convert date range from 'number of days' format to 'date to date' format
 
Methods inherited from class org.apache.maven.changelog.AbstractChangeLogGenerator
cleanup, getCommentFormat, getConnection, getLogEnd, getLogStart, handleParserException, init, logExecute, setCommentFormat, setConnection, setDateRangeFromAbsoluteDate, setLogEnd, setLogStart, setProcessErrorStream, setProcessInputStream, setProcessOutputStream, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VssChangeLogGenerator

public VssChangeLogGenerator()
Method Detail

getScmLogCommand

protected org.apache.tools.ant.types.Commandline getScmLogCommand()
Constructs the appropriate command line to execute the scm's log command. For Clearcase it's lshistory.

Specified by:
getScmLogCommand in class AbstractChangeLogGenerator
Returns:
The command line to be executed.
See Also:
AbstractChangeLogGenerator.getScmLogCommand()

getScmDateArgument

protected String getScmDateArgument(Date before,
                                    Date to)
Construct the command-line argument that is passed to the scm client to specify the appropriate date range.

Specified by:
getScmDateArgument in class AbstractChangeLogGenerator
Parameters:
before - The starting point.
to - The ending point.
Returns:
A string that can be used to specify a date to a scm system.
See Also:
AbstractChangeLogGenerator.getScmDateArgument(java.util.Date, java.util.Date)

getScmTagArgument

protected String getScmTagArgument(String tagStart,
                                   String tagEnd)
Description copied from class: AbstractChangeLogGenerator
Construct the command-line argument that is passed to the scm client to specify the appropriate tag.

Specified by:
getScmTagArgument in class AbstractChangeLogGenerator
Parameters:
tagStart - The tag name for the start of the log (log shouldn't actually contain the tag).
tagEnd - The tag name for the end of the log (the log can contain this tag), or null to log all changes since tagStart.
Returns:
A string that can be used to specify the tag range to a scm system.

setDateRange

public void setDateRange(String numDaysString)
Convert date range from 'number of days' format to 'date to date' format

Overrides:
setDateRange in class AbstractChangeLogGenerator
Parameters:
numDaysString - String

getEntries

public Collection getEntries(ChangeLogParser parser)
                      throws IOException
Execute vss client driving the given parser. This method has been overwritten to be able to set 'SSDIR' environment variable. This variable set the vss repository

Specified by:
getEntries in interface ChangeLogGenerator
Overrides:
getEntries in class AbstractChangeLogGenerator
Parameters:
parser - A parserto process the vss output.
Returns:
A collection of entriesparsed from the vss output.
Throws:
IOException - When there are issues executing vss.
See Also:
ChangeLogGenerator#getEntries(ChangeLogParser)


Copyright © 2001-2007 Apache Software Foundation. All Rights Reserved.