Author: vmassol Date: Sat Mar 24 02:09:15 2007 New Revision: 521998 URL: http://svn.apache.org/viewvc?view=rev&rev=521998 Log: * MCLOVER-66: The report goal doesn't support a user-provided Clover license * MCLOVER-67: Remove deprecated licenseFile configuration parameter * Update Clover license used in intergation tests
Modified: maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverReportMojo.java maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/internal/AbstractCloverMojo.java Modified: maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverReportMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverReportMojo.java?view=diff&rev=521998&r1=521997&r2=521998 ============================================================================== --- maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverReportMojo.java (original) +++ maven/plugins/trunk/maven-clover-plugin/src/main/java/org/apache/maven/plugin/clover/CloverReportMojo.java Sat Mar 24 02:09:15 2007 @@ -23,7 +23,9 @@ import org.apache.maven.reporting.AbstractMavenReport; import org.apache.maven.doxia.siterenderer.Renderer; import org.apache.maven.plugin.clover.internal.AbstractCloverMojo; +import org.apache.maven.plugin.MojoExecutionException; import org.apache.tools.ant.Project; +import org.codehaus.plexus.resource.ResourceManager; import java.io.File; import java.util.*; @@ -162,10 +164,34 @@ private List reactorProjects; /** + * 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. + * + * @parameter + */ + private String licenseLocation; + + /** + * Resource manager used to locate any Clover license file provided by the user. + * @component + */ + private ResourceManager resourceManager; + + /** * @see org.apache.maven.reporting.AbstractMavenReport#executeReport(java.util.Locale) */ public void executeReport( Locale locale ) throws MavenReportException { + // Register the Clover license + try + { + AbstractCloverMojo.registerLicenseFile(this.resourceManager, this.licenseLocation, getLog()); + } + catch (MojoExecutionException e) + { + throw new MavenReportException("Failed to locate Clover license", e); + } + // Ensure the output directory exists this.outputDirectory.mkdirs(); 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?view=diff&rev=521998&r1=521997&r2=521998 ============================================================================== --- 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 Sat Mar 24 02:09:15 2007 @@ -17,6 +17,7 @@ import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.Taskdef; @@ -49,15 +50,6 @@ private String cloverMergeDatabase; /** - * A Clover license file to be used by the plugin. If not specified, the Clover plugin uses a default evaluation - * license. - * - * @parameter - * @deprecated As of Clover plugin v2.1, use licenseLocation instead - */ - private String licenseFile; - - /** * 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. * @@ -137,42 +129,46 @@ return this.resourceManager; } + protected void registerLicenseFile() throws MojoExecutionException + { + AbstractCloverMojo.registerLicenseFile(getResourceManager(), this.licenseLocation, getLog()); + } + /** * Registers the license file for Clover runtime by setting the <code>clover.license.path</code> system property. * If the user has configured the <code>licenseLocation</code> 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 <code>licenseLocation</code> * parameter has not been defined by the user we look up a default Clover license in the classpath in * <code>/clover.license</code>. + * </p> + * 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 MojoExecutionException when the license file cannot be found */ - protected void registerLicenseFile() throws MojoExecutionException + public static void registerLicenseFile(ResourceManager resourceManager, String licenseLocation, Log logger) + throws MojoExecutionException { String license; - if (this.licenseLocation != null) + if (licenseLocation != null) { try { - license = getResourceManager().getResourceAsFile(this.licenseLocation).getPath(); - getLog().debug("Loading license from classpath [" + license + "]"); + license = resourceManager.getResourceAsFile(licenseLocation).getPath(); + logger.debug("Loading license from classpath [" + license + "]"); } catch (Exception e) { - throw new MojoExecutionException("Failed to load license file [" + this.licenseLocation + "]", e); + throw new MojoExecutionException("Failed to load license file [" + licenseLocation + "]", e); } } - else if (this.licenseFile != null) - { - getLog().warn("Deprecation warning: please use licenseLocation instead of LicenseFile"); - license = this.licenseFile; - } else { - license = getClass().getResource("/clover.license").getFile(); + license = Log.class.getResource("/clover.license").getFile(); } - getLog().debug("Using license file [" + license + "]"); + logger.debug("Using license file [" + license + "]"); System.setProperty("clover.license.path", license); }