org.apache.maven.plugin.changelog
Class ChangeLogReport

java.lang.Object
  extended by org.apache.maven.plugin.AbstractMojo
      extended by org.apache.maven.reporting.AbstractMavenReport
          extended by org.apache.maven.plugin.changelog.ChangeLogReport
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.apache.maven.reporting.MavenReport
Direct Known Subclasses:
DeveloperActivityReport, FileActivityReport

public class ChangeLogReport
extends org.apache.maven.reporting.AbstractMavenReport

Generate a changelog report.

Version:
$Id: ChangeLogReport.java 942456 2010-05-08 20:04:17Z dennisl $
Is defined by the goal name:
changelog

Field Summary
protected  List developers
          List of developers to be shown on the report.
protected  String displayChangeSetDetailUrl
          A template string that is used to create the changeset URL.
protected  String displayFileDetailUrl
          A template string that is used to create the URL to the file details.
protected  String displayFileRevDetailUrl
          A template string that is used to create the revision aware URL to the file details in a similar fashion to the displayFileDetailUrl.
protected  String scmUrl
          The URL to view the scm.
 
Fields inherited from interface org.apache.maven.reporting.MavenReport
CATEGORY_PROJECT_INFORMATION, CATEGORY_PROJECT_REPORTS, ROLE
 
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
 
Constructor Summary
ChangeLogReport()
           
 
Method Summary
 boolean canGenerateReport()
          
 void checkResult(org.apache.maven.scm.ScmResult result)
           
protected  long countFilesChanged(Collection entries)
          counts the number of files that were changed in the specified SCM
protected  void doChangeSetTitle(org.apache.maven.scm.command.changelog.ChangeLogSet set, ResourceBundle bundle, org.apache.maven.doxia.sink.Sink sink)
          Generate the title for the report.
protected  void doGenerateEmptyReport(ResourceBundle bundle, org.apache.maven.doxia.sink.Sink sink)
          generates an empty report in case there are no sources to generate a report with
protected  void doGenerateReport(List changeLogSets, ResourceBundle bundle, org.apache.maven.doxia.sink.Sink sink)
          method that generates the report for this mojo.
protected  void doSummary(org.apache.maven.scm.command.changelog.ChangeLogSet set, ResourceBundle bundle, org.apache.maven.doxia.sink.Sink sink)
          Generate the summary section of the report.
 void executeReport(Locale locale)
          
protected  List generateChangeSetsFromSCM()
          creates a ChangeLog object and then connects to the SCM to generate the changed sets
protected  void generateLinks(String connection, String name, org.apache.maven.doxia.sink.Sink sink)
          attaches the http links from the changed files
protected  void generateLinks(String connection, String name, String revision, org.apache.maven.doxia.sink.Sink sink)
          attaches the http links from the changed files
protected  ResourceBundle getBundle(Locale locale)
           
protected  List getChangedSets()
          populates the changedSets field by either connecting to the SCM or using an existing XML generated in a previous run of the report
protected  String getConnection()
          used to retrieve the SCM connection string
 String getDescription(Locale locale)
          
 String getName(Locale locale)
          
protected  String getOutputDirectory()
          
 String getOutputName()
          
protected  org.apache.maven.project.MavenProject getProject()
          
 org.apache.maven.scm.repository.ScmRepository getScmRepository()
           
protected  org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer()
          
protected  void initReportUrls()
          populates the report url used to create links from certain elements of the report
protected  void sinkAuthorDetails(org.apache.maven.doxia.sink.Sink sink, String author)
          If the supplied author is a known developer this method outputs a link to the team members report, or alternatively, if the supplied author is unknown, outputs the author's name as plain text.
 
Methods inherited from class org.apache.maven.reporting.AbstractMavenReport
closeReport, execute, generate, getCategoryName, getReportOutputDirectory, getSink, isExternalReport, setReportOutputDirectory
 
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

scmUrl

protected String scmUrl
The URL to view the scm. Basis for external links from the generated report.

Is defined by:
expression:
${project.scm.url}

displayFileDetailUrl

protected String displayFileDetailUrl
A template string that is used to create the URL to the file details. There is a special token that you can use in your template:

Example: http://checkstyle.cvs.sourceforge.net/checkstyle%FILE%?view=markup

Note: If you don't supply the token in your template, the path of the file will simply be appended to your template URL.

Is defined by:
expression:
${displayFileDetailUrl}
default-value:
${project.scm.url}

displayChangeSetDetailUrl

protected String displayChangeSetDetailUrl
A template string that is used to create the changeset URL. If not defined no change set link will be created. There is one special token that you can use in your template:

Example: http://fisheye.sourceforge.net/changelog/a-project/?cs=%REV%

Note: If you don't supply the %REV% token in your template, the revision will simply be appended to your template URL.

Since:
2.2
Is defined by:
expression:
${displayChangeSetDetailUrl}

displayFileRevDetailUrl

protected String displayFileRevDetailUrl
A template string that is used to create the revision aware URL to the file details in a similar fashion to the displayFileDetailUrl. When a report contains both file and file revision information, as in the Change Log report, this template string can be used to create a revision aware URL to the file details. If not defined this template string defaults to the same value as the displayFileDetailUrl and thus revision number aware links will not be used. There are two special tokens that you can use in your template:

Example: http://fisheye.sourceforge.net/browse/a-project/%FILE%?r=%REV%

Note: If you don't supply the %FILE% token in your template, the path of the file will simply be appended to your template URL.

Since:
2.2
Is defined by:
expression:
${displayFileRevDetailUrl}

developers

protected List developers
List of developers to be shown on the report.

Since:
2.2
Is defined by:
expression:
${project.developers}
Constructor Detail

ChangeLogReport

public ChangeLogReport()
Method Detail

executeReport

public void executeReport(Locale locale)
                   throws org.apache.maven.reporting.MavenReportException

Specified by:
executeReport in class org.apache.maven.reporting.AbstractMavenReport
Throws:
org.apache.maven.reporting.MavenReportException

getChangedSets

protected List getChangedSets()
                       throws org.apache.maven.reporting.MavenReportException
populates the changedSets field by either connecting to the SCM or using an existing XML generated in a previous run of the report

Throws:
org.apache.maven.reporting.MavenReportException

generateChangeSetsFromSCM

protected List generateChangeSetsFromSCM()
                                  throws org.apache.maven.reporting.MavenReportException
creates a ChangeLog object and then connects to the SCM to generate the changed sets

Returns:
changedlogsets generated from the SCM
Throws:
org.apache.maven.reporting.MavenReportException

getScmRepository

public org.apache.maven.scm.repository.ScmRepository getScmRepository()
                                                               throws org.apache.maven.scm.ScmException
Throws:
org.apache.maven.scm.ScmException

checkResult

public void checkResult(org.apache.maven.scm.ScmResult result)
                 throws org.apache.maven.plugin.MojoExecutionException
Throws:
org.apache.maven.plugin.MojoExecutionException

getConnection

protected String getConnection()
                        throws org.apache.maven.reporting.MavenReportException
used to retrieve the SCM connection string

Returns:
the url string used to connect to the SCM
Throws:
org.apache.maven.reporting.MavenReportException - when there is insufficient information to retrieve the SCM connection string

doGenerateEmptyReport

protected void doGenerateEmptyReport(ResourceBundle bundle,
                                     org.apache.maven.doxia.sink.Sink sink)
generates an empty report in case there are no sources to generate a report with

Parameters:
bundle - the resource bundle to retrieve report phrases from
sink - the report formatting tool

doGenerateReport

protected void doGenerateReport(List changeLogSets,
                                ResourceBundle bundle,
                                org.apache.maven.doxia.sink.Sink sink)
method that generates the report for this mojo. This method is overridden by dev-activity and file-activity mojo

Parameters:
changeLogSets - changed sets to generate the report from
bundle - the resource bundle to retrieve report phrases from
sink - the report formatting tool

doChangeSetTitle

protected void doChangeSetTitle(org.apache.maven.scm.command.changelog.ChangeLogSet set,
                                ResourceBundle bundle,
                                org.apache.maven.doxia.sink.Sink sink)
Generate the title for the report.

Parameters:
set - change set to generate the report from
bundle - the resource bundle to retrieve report phrases from
sink - the report formatting tool

doSummary

protected void doSummary(org.apache.maven.scm.command.changelog.ChangeLogSet set,
                         ResourceBundle bundle,
                         org.apache.maven.doxia.sink.Sink sink)
Generate the summary section of the report.

Parameters:
set - change set to generate the report from
bundle - the resource bundle to retrieve report phrases from
sink - the report formatting tool

countFilesChanged

protected long countFilesChanged(Collection entries)
counts the number of files that were changed in the specified SCM

Parameters:
entries - a collection of SCM changes
Returns:
number of files changed for the changedsets

sinkAuthorDetails

protected void sinkAuthorDetails(org.apache.maven.doxia.sink.Sink sink,
                                 String author)
If the supplied author is a known developer this method outputs a link to the team members report, or alternatively, if the supplied author is unknown, outputs the author's name as plain text.

Parameters:
sink - Sink to use for outputting
author - The author's name.

initReportUrls

protected void initReportUrls()
populates the report url used to create links from certain elements of the report


generateLinks

protected void generateLinks(String connection,
                             String name,
                             org.apache.maven.doxia.sink.Sink sink)
attaches the http links from the changed files

Parameters:
connection - the string used to connect to the SCM
name - filename of the file that was changed
sink - the report formatting tool

generateLinks

protected void generateLinks(String connection,
                             String name,
                             String revision,
                             org.apache.maven.doxia.sink.Sink sink)
attaches the http links from the changed files

Parameters:
connection - the string used to connect to the SCM
name - filename of the file that was changed
revision - the revision code
sink - the report formatting tool

getProject

protected org.apache.maven.project.MavenProject getProject()

Specified by:
getProject in class org.apache.maven.reporting.AbstractMavenReport

getOutputDirectory

protected String getOutputDirectory()

Specified by:
getOutputDirectory in class org.apache.maven.reporting.AbstractMavenReport

getSiteRenderer

protected org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer()

Specified by:
getSiteRenderer in class org.apache.maven.reporting.AbstractMavenReport

getDescription

public String getDescription(Locale locale)


getName

public String getName(Locale locale)


getOutputName

public String getOutputName()


getBundle

protected ResourceBundle getBundle(Locale locale)
Parameters:
locale -
Returns:
the current bundle

canGenerateReport

public boolean canGenerateReport()

Specified by:
canGenerateReport in interface org.apache.maven.reporting.MavenReport
Overrides:
canGenerateReport in class org.apache.maven.reporting.AbstractMavenReport


Copyright © 2002-2010 The Apache Software Foundation. All Rights Reserved.