You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vm...@apache.org on 2006/05/18 00:41:53 UTC
svn commit: r407392 - in /maven/plugins/trunk/maven-clover-plugin/src:
it/multiproject/ it/multiproject/ear1/ it/multiproject/jar1/
it/multiproject/jar2/ it/multiproject/war1/ it/simple/
main/java/org/apache/maven/plugin/clover/ main/java/org/apache/ma...
Author: vmassol
Date: Wed May 17 15:41:52 2006
New Revision: 407392
URL: http://svn.apache.org/viewvc?rev=407392&view=rev
Log:
MCLOVER-39: clover:check and clover:log should ignore projects with no Clover database rather than error out
Modified:
maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/ (props changed)
maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/ear1/ (props changed)
maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/jar1/ (props changed)
maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/jar2/ (props changed)
maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/pom.xml
maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/war1/ (props changed)
maven/plugins/trunk/maven-clover-plugin/src/it/simple/ (props changed)
maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverAggregateMojo.java
maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverCheckMojo.java
maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/internal/AbstractCloverMojo.java
Propchange: maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 17 15:41:52 2006
@@ -0,0 +1 @@
+target
Propchange: maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/ear1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 17 15:41:52 2006
@@ -0,0 +1 @@
+target
Propchange: maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/jar1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 17 15:41:52 2006
@@ -0,0 +1 @@
+target
Propchange: maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/jar2/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 17 15:41:52 2006
@@ -0,0 +1 @@
+target
Modified: maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/pom.xml?rev=407392&r1=407391&r2=407392&view=diff
==============================================================================
--- maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/pom.xml (original)
+++ maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/pom.xml Wed May 17 15:41:52 2006
@@ -29,9 +29,19 @@
<configuration>
<flushPolicy>threaded</flushPolicy>
<flushInterval>100</flushInterval>
+ <targetPercentage>1%</targetPercentage>
</configuration>
<executions>
<execution>
+ <id>main</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>instrument</goal>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>site</id>
<phase>pre-site</phase>
<goals>
<goal>instrument</goal>
Propchange: maven/plugins/trunk/maven-clover-plugin/src/it/multiproject/war1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 17 15:41:52 2006
@@ -0,0 +1 @@
+target
Propchange: maven/plugins/trunk/maven-clover-plugin/src/it/simple/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 17 15:41:52 2006
@@ -0,0 +1 @@
+target
Modified: maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverAggregateMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverAggregateMojo.java?rev=407392&r1=407391&r2=407392&view=diff
==============================================================================
--- maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverAggregateMojo.java (original)
+++ maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverAggregateMojo.java Wed May 17 15:41:52 2006
@@ -22,14 +22,6 @@
public class CloverAggregateMojo extends AbstractCloverMojo
{
/**
- * The location of the merged clover database to create when running a report in a multimodule build.
- *
- * @parameter expression="${project.build.directory}/clover/cloverMerge.db"
- * @required
- */
- private String cloverMergeDatabase;
-
- /**
* The projects in the reactor for aggregation report.
*
* @parameter expression="${reactorProjects}"
@@ -55,7 +47,7 @@
if ( getChildrenCloverDatabases().size() > 0 )
{
// Ensure the merged database output directory exists
- new File( this.cloverMergeDatabase ).getParentFile().mkdirs();
+ new File( getCloverMergeDatabase() ).getParentFile().mkdirs();
// Merge the databases
mergeCloverDatabases();
@@ -104,7 +96,7 @@
List parameters = new ArrayList();
parameters.add( "-i" );
- parameters.add( this.cloverMergeDatabase );
+ parameters.add( getCloverMergeDatabase() );
if ( getLog().isDebugEnabled() )
{
Modified: maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverCheckMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverCheckMojo.java?rev=407392&r1=407391&r2=407392&view=diff
==============================================================================
--- maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverCheckMojo.java (original)
+++ maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverCheckMojo.java Wed May 17 15:41:52 2006
@@ -49,28 +49,41 @@
{
if ( !isInCloverForkedLifecycle() )
{
- super.execute();
-
- AbstractCloverMojo.waitForFlush( getWaitForFlush(), getFlushInterval() );
-
- Project antProject = registerCloverAntTasks();
+ if ( areCloverDatabasesAvailable() )
+ {
+ super.execute();
- getLog().info( "Checking for coverage of " + targetPercentage);
+ AbstractCloverMojo.waitForFlush( getWaitForFlush(), getFlushInterval() );
- CloverPassTask cloverPassTask = (CloverPassTask) antProject.createTask( "clover-check" );
- cloverPassTask.setInitString( getCloverDatabase() );
- cloverPassTask.setHaltOnFailure( true );
- cloverPassTask.setTarget( new Percentage( this.targetPercentage ) );
- cloverPassTask.setFailureProperty( "clovercheckproperty" );
- try
- {
- cloverPassTask.execute();
+ check();
}
- catch ( BuildException e )
+ else
{
- getLog().error( antProject.getProperty( "clovercheckproperty" ) );
- throw new MojoExecutionException( e.getMessage(), e );
+ getLog().info("No Clover database found, skipping test coverage verification");
}
+ }
+ }
+
+ private void check() throws MojoExecutionException
+ {
+ Project antProject = registerCloverAntTasks();
+
+ getLog().info( "Checking for coverage of " + targetPercentage);
+
+ CloverPassTask cloverPassTask = (CloverPassTask) antProject.createTask( "clover-check" );
+ cloverPassTask.setInitString( getCloverDatabase() );
+ cloverPassTask.setHaltOnFailure( true );
+ cloverPassTask.setTarget( new Percentage( this.targetPercentage ) );
+ cloverPassTask.setFailureProperty( "clovercheckproperty" );
+
+ try
+ {
+ cloverPassTask.execute();
+ }
+ catch ( BuildException e )
+ {
+ getLog().error( antProject.getProperty( "clovercheckproperty" ) );
+ throw new MojoExecutionException( e.getMessage(), e );
}
}
Modified: maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/internal/AbstractCloverMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/internal/AbstractCloverMojo.java?rev=407392&r1=407391&r2=407392&view=diff
==============================================================================
--- maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/internal/AbstractCloverMojo.java (original)
+++ maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/internal/AbstractCloverMojo.java Wed May 17 15:41:52 2006
@@ -17,8 +17,6 @@
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.clover.internal.DefaultLocator;
-import org.apache.maven.plugin.clover.internal.Locator;
import org.apache.maven.project.MavenProject;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Taskdef;
@@ -35,6 +33,14 @@
private String cloverDatabase;
/**
+ * The location of the merged clover database to create when running a report in a multimodule build.
+ *
+ * @parameter expression="${project.build.directory}/clover/cloverMerge.db"
+ * @required
+ */
+ private String cloverMergeDatabase;
+
+ /**
* A Clover license file to be used by the plugin. If not specified, the Clover plugin uses a default evaluation
* license.
*
@@ -200,6 +206,25 @@
}
}
+ /**
+ * Check if a Clover database exists (either a single module Clover database or an aggregated one).
+ * @return true if a Clover database exists.
+ */
+ protected boolean areCloverDatabasesAvailable()
+ {
+ boolean shouldRun = false;
+
+ File singleModuleCloverDatabase = new File( this.cloverDatabase );
+ File mergedCloverDatabase = new File ( this.cloverMergeDatabase );
+
+ if (singleModuleCloverDatabase.exists() || mergedCloverDatabase.exists() )
+ {
+ shouldRun = true;
+ }
+
+ return shouldRun;
+ }
+
protected void setLicenseLocation(String licenseLocation)
{
this.licenseLocation = licenseLocation;
@@ -223,6 +248,11 @@
protected String getCloverDatabase()
{
return this.cloverDatabase;
+ }
+
+ protected String getCloverMergeDatabase()
+ {
+ return this.cloverMergeDatabase;
}
protected int getFlushInterval()