java.lang.Object
org.apache.maven.scm.util.AbstractConsumer
org.apache.maven.scm.provider.svn.svnexe.command.changelog.SvnChangeLogConsumer
All Implemented Interfaces:
org.codehaus.plexus.util.cli.StreamConsumer

public class SvnChangeLogConsumer extends AbstractConsumer
  • Field Details

    • SVN_TIMESTAMP_PATTERN

      private static final String SVN_TIMESTAMP_PATTERN
      Date formatter for svn timestamp (after a little massaging)
      See Also:
    • GET_HEADER

      private static final int GET_HEADER
      State machine constant: expecting header
      See Also:
    • GET_FILE

      private static final int GET_FILE
      State machine constant: expecting file information
      See Also:
    • GET_COMMENT

      private static final int GET_COMMENT
      State machine constant: expecting comments
      See Also:
    • FILE_PATTERN

      private static final Pattern FILE_PATTERN
      There is always action and affected path; when copying/moving, recognize also original path and revision
    • ORIG_FILE_PATTERN

      private static final Pattern ORIG_FILE_PATTERN
      This matches the 'original file info' part of the complete file line. Note the use of [:alpha:] instead of literal 'from' - this is meant to allow non-English localizations.
    • FILE_END_TOKEN

      private static final String FILE_END_TOKEN
      The file section ends with a blank line
      See Also:
    • COMMENT_END_TOKEN

      private static final String COMMENT_END_TOKEN
      The comment section ends with a dashed line
      See Also:
    • status

      private int status
      Current status of the parser
    • entries

      private List<ChangeSet> entries
      List of change log entries
    • currentChange

      private SvnChangeSet currentChange
      The current log entry being processed by the parser
    • currentRevision

      private String currentRevision
      The current revision of the entry being processed by the parser
    • currentComment

      private StringBuilder currentComment
      The current comment of the entry being processed by the parser
    • HEADER_REG_EXP

      private static final Pattern HEADER_REG_EXP
      The regular expression used to match header lines
    • REVISION_GROUP

      private static final int REVISION_GROUP
      See Also:
    • AUTHOR_GROUP

      private static final int AUTHOR_GROUP
      See Also:
    • DATE_GROUP

      private static final int DATE_GROUP
      See Also:
    • REVISION_REG_EXP1

      private static final Pattern REVISION_REG_EXP1
    • REVISION_REG_EXP2

      private static final Pattern REVISION_REG_EXP2
    • DATE_REG_EXP

      private static final Pattern DATE_REG_EXP
    • userDateFormat

      private final String userDateFormat
  • Constructor Details

    • SvnChangeLogConsumer

      public SvnChangeLogConsumer(ScmLogger logger, String userDateFormat)
      Default constructor.
  • Method Details

    • getModifications

      public List<ChangeSet> getModifications()
    • consumeLine

      public void consumeLine(String line)
    • processGetHeader

      private void processGetHeader(String line)
      Process the current input line in the GET_HEADER state. The author, date, and the revision of the entry are gathered. Note, Subversion does not have per-file revisions, instead, the entire repository is given a single revision number, which is used for the revision number of each file.
      Parameters:
      line - A line of text from the svn log output
    • getRevision

      private String getRevision(String revisionOutput)
      Gets the svn revision, from the svn log revision output.
      Parameters:
      revisionOutput -
      Returns:
      the svn revision
    • processGetFile

      private void processGetFile(String line)
      Process the current input line in the GET_FILE state. This state adds each file entry line to the current change log entry. Note, the revision number for the entire entry is used for the revision number of each file.
      Parameters:
      line - A line of text from the svn log output
    • processGetComment

      private void processGetComment(String line)
      Process the current input line in the GET_COMMENT state. This state gathers all of the comments that are part of a log entry.
      Parameters:
      line - a line of text from the svn log output
    • getDate

      private Date getDate(String dateOutput)
      Converts the date time stamp from the svn output into a date object.
      Parameters:
      dateOutput - The date output from an svn log command.
      Returns:
      A date representing the time stamp of the log entry.