com.atlassian.maven.plugin.clover
Class CloverReportMojo

java.lang.Object
  extended by org.apache.maven.plugin.AbstractMojo
      extended by org.apache.maven.reporting.AbstractMavenReport
          extended by com.atlassian.maven.plugin.clover.CloverReportMojo
All Implemented Interfaces:
CloverConfiguration, org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.apache.maven.reporting.MavenReport

public class CloverReportMojo
extends org.apache.maven.reporting.AbstractMavenReport
implements CloverConfiguration

Generate a Clover report from existing Clover databases. The generated report is an external report generated by Clover itself. If the project generating the report is a top level project and if the aggregate configuration element is set to true then an aggregated report will also be created.

Note: This report mojo should be an @aggregator and the clover:aggregate mojo shouldn't exist. This is a limitation of the site plugin which doesn't support @aggregator reports...


Field Summary
protected  org.apache.maven.artifact.factory.ArtifactFactory artifactFactory
          The component used for creating artifact instances.
protected  org.apache.maven.artifact.resolver.ArtifactResolver artifactResolver
          The component that is used to resolve additional artifacts required.
protected  org.apache.maven.artifact.repository.ArtifactRepository localRepository
          The local repository.
protected  List repositories
          Remote repositories used for the project.
protected  boolean singleCloverDatabase
          If true, then a single database will be saved for the entire project, in the target directory of the execution root.
 
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
CloverReportMojo()
           
 
Method Summary
 boolean canGenerateReport()
          Generate reports if a Clover module database or a Clover merged database exist.
 void executeReport(Locale locale)
           
 String getCloverDatabase()
           
 String getDescription(Locale locale)
           
 String getName(Locale locale)
           
protected  String getOutputDirectory()
           
 String getOutputName()
           
 org.apache.maven.project.MavenProject getProject()
           
 List<org.apache.maven.project.MavenProject> getReactorProjects()
           
protected  org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer()
           
 boolean isExternalReport()
          Always return true as we're using the report generated by Clover rather than creating our own report.
 boolean isSingleCloverDatabase()
           
 String resolveCloverDatabase()
           
protected  File resolveCloverDescriptor()
          The logic here is taken from AbstractSiteRenderingMojo#resolveSiteDescriptor in the maven-site-plugin.
 void setReportOutputDirectory(File reportOutputDirectory)
           
 
Methods inherited from class org.apache.maven.reporting.AbstractMavenReport
closeReport, execute, generate, getCategoryName, getReportOutputDirectory, getSink
 
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
 
Methods inherited from interface com.atlassian.maven.plugin.clover.internal.CloverConfiguration
getLog
 

Field Detail

artifactResolver

protected org.apache.maven.artifact.resolver.ArtifactResolver artifactResolver
The component that is used to resolve additional artifacts required.


repositories

protected List repositories
Remote repositories used for the project.


artifactFactory

protected org.apache.maven.artifact.factory.ArtifactFactory artifactFactory
The component used for creating artifact instances.


localRepository

protected org.apache.maven.artifact.repository.ArtifactRepository localRepository
The local repository.


singleCloverDatabase

protected boolean singleCloverDatabase
If true, then a single database will be saved for the entire project, in the target directory of the execution root. If a custom location for the cloverDatabase is specified, this flag is ignored.

Constructor Detail

CloverReportMojo

public CloverReportMojo()
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
See Also:
AbstractMavenReport.executeReport(java.util.Locale)

getOutputName

public String getOutputName()
Specified by:
getOutputName in interface org.apache.maven.reporting.MavenReport
See Also:
MavenReport.getOutputName()

getDescription

public String getDescription(Locale locale)
Specified by:
getDescription in interface org.apache.maven.reporting.MavenReport
See Also:
MavenReport.getDescription(java.util.Locale)

getOutputDirectory

protected String getOutputDirectory()
Specified by:
getOutputDirectory in class org.apache.maven.reporting.AbstractMavenReport
See Also:
AbstractMavenReport.getOutputDirectory()

getSiteRenderer

protected org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer()
Specified by:
getSiteRenderer in class org.apache.maven.reporting.AbstractMavenReport
See Also:
AbstractMavenReport.getSiteRenderer()

getProject

public org.apache.maven.project.MavenProject getProject()
Specified by:
getProject in interface CloverConfiguration
Specified by:
getProject in class org.apache.maven.reporting.AbstractMavenReport
See Also:
AbstractMavenReport.getProject()

getName

public String getName(Locale locale)
Specified by:
getName in interface org.apache.maven.reporting.MavenReport
See Also:
MavenReport.getName(java.util.Locale)

isExternalReport

public boolean isExternalReport()
Always return true as we're using the report generated by Clover rather than creating our own report.

Specified by:
isExternalReport in interface org.apache.maven.reporting.MavenReport
Overrides:
isExternalReport in class org.apache.maven.reporting.AbstractMavenReport
Returns:
true

canGenerateReport

public boolean canGenerateReport()
Generate reports if a Clover module database or a Clover merged database exist.

Specified by:
canGenerateReport in interface org.apache.maven.reporting.MavenReport
Overrides:
canGenerateReport in class org.apache.maven.reporting.AbstractMavenReport
Returns:
true if a project should be generated
See Also:
AbstractMavenReport.canGenerateReport()

setReportOutputDirectory

public void setReportOutputDirectory(File reportOutputDirectory)
Specified by:
setReportOutputDirectory in interface org.apache.maven.reporting.MavenReport
Overrides:
setReportOutputDirectory in class org.apache.maven.reporting.AbstractMavenReport
See Also:
AbstractMavenReport.setReportOutputDirectory(java.io.File)

resolveCloverDescriptor

protected File resolveCloverDescriptor()
                                throws org.apache.maven.reporting.MavenReportException
The logic here is taken from AbstractSiteRenderingMojo#resolveSiteDescriptor in the maven-site-plugin. See also: http://docs.codehaus.org/display/MAVENUSER/Mojo+Developer+Cookbook

Returns:
the clover report configuration file to use
Throws:
org.apache.maven.reporting.MavenReportException - if at least the default file can't be resolved

getCloverDatabase

public String getCloverDatabase()
Specified by:
getCloverDatabase in interface CloverConfiguration

resolveCloverDatabase

public String resolveCloverDatabase()
Specified by:
resolveCloverDatabase in interface CloverConfiguration

getReactorProjects

public List<org.apache.maven.project.MavenProject> getReactorProjects()
Specified by:
getReactorProjects in interface CloverConfiguration

isSingleCloverDatabase

public boolean isSingleCloverDatabase()
Specified by:
isSingleCloverDatabase in interface CloverConfiguration


Copyright © 2015 Atlassian Pty Ltd. All Rights Reserved.