net.sourceforge.cruisecontrol
Class CVSElement

java.lang.Object
  |
  +--net.sourceforge.cruisecontrol.CVSElement
All Implemented Interfaces:
SourceControlElement

public class CVSElement
extends java.lang.Object
implements SourceControlElement

This class implements the SourceControlElement methods for a CVS repository. The call to CVS is assumed to work without any setup. This implies that if the authentication type is pserver the call to cvs login should be done prior to calling this class.

Version:
March 18, 2001
Author:
Paul Julius ThoughtWorks Inc., robertdw, Frederic Lavigne, jchyip

Constructor Summary
CVSElement()
           
 
Method Summary
static java.lang.String formatCVSDate(java.lang.Object o)
          (PENDING) Only used for testing...
 java.util.Set getEmails()
          Returns a Set of email addresses.
 java.util.ArrayList getHistory(java.util.Date lastBuild, java.util.Date now, long quietPeriod)
          Returns an ArrayList of Modifications detailing all the changes between now and the last build.
 long getLastModified()
          Gets the last modified time for this set of files queried in the getHistory() method.
 void setCvsroot(java.lang.String cvsroot)
          Sets the CVSROOT for all calls to CVS.
 void setLocalWorkingCopy(java.lang.String local)
          Sets the local working copy to use when making calls to CVS.
 void setTag(java.lang.String tag)
          Set the tag to use when running CVS log.
 void setTask(org.apache.tools.ant.Task task)
          Allows the caller to set the task, which will be used for logging purposes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CVSElement

public CVSElement()
Method Detail

formatCVSDate

public static java.lang.String formatCVSDate(java.lang.Object o)
(PENDING) Only used for testing...

setCvsroot

public void setCvsroot(java.lang.String cvsroot)
Sets the CVSROOT for all calls to CVS.
Parameters:
cvsroot - CVSROOT to use.

setLocalWorkingCopy

public void setLocalWorkingCopy(java.lang.String local)
Sets the local working copy to use when making calls to CVS.
Parameters:
local - String indicating the relative or absolute path to the local working copy of the module of which to find the log history.

setTag

public void setTag(java.lang.String tag)
Set the tag to use when running CVS log. See CVS documentation for more information on the -r option of the log command
Parameters:
tag - a tag, a branch

setTask

public void setTask(org.apache.tools.ant.Task task)
Allows the caller to set the task, which will be used for logging purposes.
Specified by:
setTask in interface SourceControlElement
Parameters:
task - Task to use.

getEmails

public java.util.Set getEmails()
Returns a Set of email addresses. CVS doesn't track actual email addresses, so we'll just return the usernames here, which may correspond to email ids. We'll tack on the suffix, i.e. @apache.org, in MasterBuild.java before mailing results of the build.
Specified by:
getEmails in interface SourceControlElement
Returns:
Set of author names; maybe empty, never null.

getLastModified

public long getLastModified()
Gets the last modified time for this set of files queried in the getHistory() method.
Specified by:
getLastModified in interface SourceControlElement
Returns:
Latest revision time.

getHistory

public java.util.ArrayList getHistory(java.util.Date lastBuild,
                                      java.util.Date now,
                                      long quietPeriod)
Returns an ArrayList of Modifications detailing all the changes between now and the last build.
Specified by:
getHistory in interface SourceControlElement
Parameters:
lastBuild - Last build time.
now - Time now, or time to check.
quietPeriod - NOT USED.
Returns:
maybe empty, never null.