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()