com.atlassian.maven.plugin.clover.internal
Class AbstractCloverMojo

java.lang.Object
  extended by org.apache.maven.plugin.AbstractMojo
      extended by com.atlassian.maven.plugin.clover.internal.AbstractCloverMojo
All Implemented Interfaces:
CloverConfiguration, org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
Direct Known Subclasses:
CloverAggregateMojo, CloverCheckMojo, CloverCleanMojo, CloverInstrumentInternalMojo, CloverInstrumentMojo, CloverLogMojo, CloverMergeMojo, CloverOptimizerMojo, CloverSaveHistoryMojo, CloverSnapshotMojo

public abstract class AbstractCloverMojo
extends org.apache.maven.plugin.AbstractMojo
implements CloverConfiguration

Common code for all Clover plugin build Mojos.

Author:
Vincent Massol, Nick Pellow

Field Summary
protected  java.lang.String cloverOutputDirectory
          The directory where the Clover plugin will put all the files it generates during the build process.
protected  boolean debug
          If you wish to enable debug level logging in just the Clover plugin, set this to true.
protected  java.lang.String license
          The full Clover license String to use.
protected  java.lang.String licenseLocation
          A Clover license file to be used by the plugin.
protected  boolean skip
          A flag to indicate not to run clover for this execution.
protected  java.io.File snapshot
          The location to store the clover snapshot file.
 
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
 
Constructor Summary
AbstractCloverMojo()
           
 
Method Summary
protected  boolean areCloverDatabasesAvailable()
          Check if a Clover database exists (either a single module Clover database or an aggregated one).
 void execute()
          
 java.lang.String getCloverDatabase()
           
protected  java.lang.String getCloverMergeDatabase()
           
 int getFlushInterval()
           
 java.lang.String getFlushPolicy()
           
 java.lang.String getJdk()
           
 org.apache.maven.project.MavenProject getProject()
           
 java.util.List getReactorProjects()
           
static java.io.File getResourceAsFile(org.apache.maven.project.MavenProject project, org.codehaus.plexus.resource.ResourceManager resourceManager, java.lang.String resourceLocation, org.apache.maven.plugin.logging.Log logger, java.lang.ClassLoader classloader)
           
 org.codehaus.plexus.resource.ResourceManager getResourceManager()
           
 boolean getWaitForFlush()
           
 boolean isSingleCloverDatabase()
           
static void registerCloverAntTasks(org.apache.tools.ant.Project antProject, org.apache.maven.plugin.logging.Log log)
          Register the Clover Ant tasks against a fake Ant {Project} object so that we can the tasks later on.
protected  void registerLicenseFile()
           
static void registerLicenseFile(org.apache.maven.project.MavenProject project, org.codehaus.plexus.resource.ResourceManager resourceManager, java.lang.String licenseLocation, org.apache.maven.plugin.logging.Log logger, java.lang.ClassLoader classloader, java.lang.String licenseCert)
          Registers the license file for Clover runtime by setting the clover.license.path system property.
 java.lang.String resolveCloverDatabase()
           
 void setLicense(java.lang.String license)
           
 void setLicenseLocation(java.lang.String licenseLocation)
           
 void setProject(org.apache.maven.project.MavenProject project)
           
 void setResourceManager(org.codehaus.plexus.resource.ResourceManager resourceManager)
           
static void waitForFlush(boolean waitForFlush, int flushInterval)
          Wait 2*'flush interval' milliseconds to ensure that the coverage data have been flushed to the Clover database.
 
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

cloverOutputDirectory

protected java.lang.String cloverOutputDirectory
The directory where the Clover plugin will put all the files it generates during the build process. For example the Clover plugin will put instrumented sources somewhere inside this directory.


snapshot

protected java.io.File snapshot
The location to store the clover snapshot file. This file needs to persist between builds to enable Clover's build optimization feature. If not specified, the snapshot will be stored next to the cloverDatabase.


licenseLocation

protected java.lang.String licenseLocation
A Clover license file to be used by the plugin. The plugin tries to resolve this parameter first as a resource, then as a URL, and then as a file location on the filesystem. A trial Clover license can be generated here.

See Also:
license

license

protected java.lang.String license
The full Clover license String to use. If supplied, this certificate will be used over licenseLocation. NB. newline chars must be preserved. A trial Clover license can be generated here.

See Also:
licenseLocation

skip

protected boolean skip
A flag to indicate not to run clover for this execution. If set to true, Clover will not be run.


debug

protected boolean debug
If you wish to enable debug level logging in just the Clover plugin, set this to true. This is useful for integrating Clover into the build

Constructor Detail

AbstractCloverMojo

public AbstractCloverMojo()
Method Detail

execute

public void execute()
             throws org.apache.maven.plugin.MojoExecutionException

Specified by:
execute in interface org.apache.maven.plugin.Mojo
Throws:
org.apache.maven.plugin.MojoExecutionException
See Also:
Mojo.execute()

setResourceManager

public void setResourceManager(org.codehaus.plexus.resource.ResourceManager resourceManager)

getResourceManager

public org.codehaus.plexus.resource.ResourceManager getResourceManager()

registerLicenseFile

protected void registerLicenseFile()
                            throws org.apache.maven.plugin.MojoExecutionException
Throws:
org.apache.maven.plugin.MojoExecutionException

registerLicenseFile

public static void registerLicenseFile(org.apache.maven.project.MavenProject project,
                                       org.codehaus.plexus.resource.ResourceManager resourceManager,
                                       java.lang.String licenseLocation,
                                       org.apache.maven.plugin.logging.Log logger,
                                       java.lang.ClassLoader classloader,
                                       java.lang.String licenseCert)
                                throws org.apache.maven.plugin.MojoExecutionException
Registers the license file for Clover runtime by setting the clover.license.path system property. If the user has configured the licenseLocation parameter the plugin tries to resolve it first as a resource, then as a URL, and then as a file location on the filesystem. If the licenseLocation parameter has not been defined by the user we look up a default Clover license in the classpath in /clover.license.

Note: We're defining this method as static because it is also required in the report mojo and reporting mojos and main mojos cannot share anything right now. See http://jira.codehaus.org/browse/MNG-1886.

Throws:
org.apache.maven.plugin.MojoExecutionException - when the license file cannot be found

getResourceAsFile

public static java.io.File getResourceAsFile(org.apache.maven.project.MavenProject project,
                                             org.codehaus.plexus.resource.ResourceManager resourceManager,
                                             java.lang.String resourceLocation,
                                             org.apache.maven.plugin.logging.Log logger,
                                             java.lang.ClassLoader classloader)
                                      throws org.apache.maven.plugin.MojoExecutionException
Throws:
org.apache.maven.plugin.MojoExecutionException

registerCloverAntTasks

public static void registerCloverAntTasks(org.apache.tools.ant.Project antProject,
                                          org.apache.maven.plugin.logging.Log log)
Register the Clover Ant tasks against a fake Ant {Project} object so that we can the tasks later on. This is the Java equivalent of the taskdef call that you would need in your Ant build.xml file if you wanted to use the Clover Ant tasks from Ant.

Note: We're defining this method as static because it is also required in the report mojo and reporting mojos and main mojos cannot share anything right now. See http://jira.codehaus.org/browse/MNG-1886.


waitForFlush

public static void waitForFlush(boolean waitForFlush,
                                int flushInterval)
Wait 2*'flush interval' milliseconds to ensure that the coverage data have been flushed to the Clover database. TODO: This method should not be static but we need it static here because we cannot share code between non report mojos and main build mojos. See http://jira.codehaus.org/browse/MNG-1886


areCloverDatabasesAvailable

protected boolean areCloverDatabasesAvailable()
Check if a Clover database exists (either a single module Clover database or an aggregated one).

Returns:
true if a Clover database exists.

getProject

public org.apache.maven.project.MavenProject getProject()
Specified by:
getProject in interface CloverConfiguration

getWaitForFlush

public boolean getWaitForFlush()

getJdk

public java.lang.String getJdk()

getCloverDatabase

public java.lang.String getCloverDatabase()
Specified by:
getCloverDatabase in interface CloverConfiguration

resolveCloverDatabase

public java.lang.String resolveCloverDatabase()
Specified by:
resolveCloverDatabase in interface CloverConfiguration

getCloverMergeDatabase

protected java.lang.String getCloverMergeDatabase()

getFlushInterval

public int getFlushInterval()

getFlushPolicy

public java.lang.String getFlushPolicy()

setProject

public void setProject(org.apache.maven.project.MavenProject project)

setLicenseLocation

public void setLicenseLocation(java.lang.String licenseLocation)

setLicense

public void setLicense(java.lang.String license)

getReactorProjects

public java.util.List getReactorProjects()
Specified by:
getReactorProjects in interface CloverConfiguration

isSingleCloverDatabase

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


Copyright © 2009 Atlassian Pty Ltd. All Rights Reserved.