2008/2/10, Dennis Lundberg <[EMAIL PROTECTED]>: > Vincent Siveton wrote: > > Hi Dennis, > > > > 2008/2/10, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > >> Author: dennisl > >> Date: Sun Feb 10 05:28:36 2008 > >> New Revision: 620284 > >> > >> URL: http://svn.apache.org/viewvc?rev=620284&view=rev > >> Log: > >> [MCHANGES-88] NoSuchMethodError with maven 2.0.8 when generating > >> changes-report > >> Submitted by: Niall Pemberton > >> Reviewed by: Dennis Lundberg > >> > >> Added: > >> > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/AbstractChangesReport.java > >> (with props) > >> Modified: > >> > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java > >> > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java > >> > >> Added: > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/AbstractChangesReport.java > >> URL: > >> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/AbstractChangesReport.java?rev=620284&view=auto > >> ============================================================================== > >> --- > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/AbstractChangesReport.java > >> (added) > >> +++ > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/AbstractChangesReport.java > >> Sun Feb 10 05:28:36 2008 > >> @@ -0,0 +1,221 @@ > >> +package org.apache.maven.plugin.changes; > >> + > >> +/* > >> + * Licensed to the Apache Software Foundation (ASF) under one > >> + * or more contributor license agreements. See the NOTICE file > >> + * distributed with this work for additional information > >> + * regarding copyright ownership. The ASF licenses this file > >> + * to you under the Apache License, Version 2.0 (the > >> + * "License"); you may not use this file except in compliance > >> + * with the License. You may obtain a copy of the License at > >> + * > >> + * http://www.apache.org/licenses/LICENSE-2.0 > >> + * > >> + * Unless required by applicable law or agreed to in writing, > >> + * software distributed under the License is distributed on an > >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > >> + * KIND, either express or implied. See the License for the > >> + * specific language governing permissions and limitations > >> + * under the License. > >> + */ > >> + > >> +import org.apache.maven.artifact.Artifact; > >> +import org.apache.maven.artifact.factory.ArtifactFactory; > >> +import org.apache.maven.artifact.repository.ArtifactRepository; > >> +import org.apache.maven.artifact.resolver.ArtifactNotFoundException; > >> +import org.apache.maven.artifact.resolver.ArtifactResolutionException; > >> +import org.apache.maven.artifact.resolver.ArtifactResolver; > >> +import > >> org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; > >> +import org.apache.maven.artifact.versioning.VersionRange; > >> +import > >> org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext; > >> +import org.apache.maven.doxia.site.decoration.Body; > >> +import org.apache.maven.doxia.site.decoration.DecorationModel; > >> +import org.apache.maven.doxia.site.decoration.Skin; > >> +import org.apache.maven.doxia.siterenderer.Renderer; > >> +import org.apache.maven.doxia.siterenderer.RendererException; > >> +import org.apache.maven.doxia.siterenderer.SiteRenderingContext; > >> +import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink; > >> +import org.apache.maven.plugin.MojoExecutionException; > >> +import org.apache.maven.project.MavenProject; > >> +import org.apache.maven.reporting.AbstractMavenReport; > >> +import org.apache.maven.reporting.MavenReportException; > >> +import org.codehaus.plexus.i18n.I18N; > >> + > >> +import java.io.File; > >> +import java.io.FileWriter; > >> +import java.io.IOException; > >> +import java.io.Writer; > >> +import java.util.HashMap; > >> +import java.util.Locale; > >> +import java.util.Map; > >> + > >> +/** > >> + * Base class with the things that should be in AbstractMavenReport > >> anyway. > >> + * > >> + * Note: this file was copied from maven-project-info-reports. > >> + * > >> + * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a> > >> + * > >> + */ > >> +public abstract class AbstractChangesReport > >> + extends AbstractMavenReport > >> +{ > >> + /** > >> + * Report output directory. > >> + * > >> + * @parameter expression="${project.reporting.outputDirectory}" > >> + * @required > >> + */ > >> + protected File outputDirectory; > >> + > >> + /** > >> + * Doxia Site Renderer. > >> + * > >> + * @component > >> + */ > >> + protected Renderer siteRenderer; > >> + > >> + /** > >> + * The Maven Project. > >> + * > >> + * @parameter expression="${project}" > >> + * @required > >> + * @readonly > >> + */ > >> + protected MavenProject project; > >> + > >> + /** > >> + * Local Repository. > >> + * > >> + * @parameter expression="${localRepository}" > >> + * @required > >> + * @readonly > >> + */ > >> + protected ArtifactRepository localRepository; > >> + > >> + /** > >> + * @component > >> + */ > >> + protected ArtifactResolver resolver; > >> + > >> + /** > >> + * @component > >> + */ > >> + protected ArtifactFactory factory; > >> + > >> + /** > >> + * Internationalization. > >> + * > >> + * @component > >> + */ > >> + protected I18N i18n; > >> + > >> + private File getSkinArtifactFile() > >> + throws MojoExecutionException > >> + { > >> + Skin skin = Skin.getDefaultSkin(); > >> + > > > > > > It seems better to use SiteTool#getDefaultSkinArtifact( > > ArtifactRepository localRepository, List remoteArtifactRepositories ) > > See maven-doxia-tools in shared. > > Well, AFAIK that's not released yet, so I can't use it...
No release yet but since we need it to release MPIR, the maven-doxia-tools release will be soon :) > > >> + String version = skin.getVersion(); > >> + Artifact artifact; > >> + try > >> + { > >> + if ( version == null ) > >> + { > >> + version = Artifact.RELEASE_VERSION; > >> + } > >> + VersionRange versionSpec = > >> VersionRange.createFromVersionSpec( version ); > >> + artifact = factory.createDependencyArtifact( > >> skin.getGroupId(), skin.getArtifactId(), versionSpec, "jar", > >> + null, null ); > >> + > >> + resolver.resolve( artifact, > >> project.getRemoteArtifactRepositories(), localRepository ); > >> + } > >> + catch ( InvalidVersionSpecificationException e ) > >> + { > >> + throw new MojoExecutionException( "The skin version '" + > >> version + "' is not valid: " + e.getMessage() ); > >> + } > >> + catch ( ArtifactResolutionException e ) > >> + { > >> + throw new MojoExecutionException( "Unable to find skin", e ); > >> + } > >> + catch ( ArtifactNotFoundException e ) > >> + { > >> + throw new MojoExecutionException( "The skin does not exist: " > >> + e.getMessage() ); > >> + } > >> + > >> + return artifact.getFile(); > >> + } > >> + > >> + public void execute() > >> + throws MojoExecutionException > >> + { > >> + if ( !canGenerateReport() ) > >> + { > >> + return; > >> + } > >> + > >> + // TODO: push to a helper? Could still be improved by taking more > >> of the site information from the site plugin > > > > Specify that it comes from maven-project-info-plugin > > AbstractProjectInfoReport class (MNG-3346) > > I'm not sure what you mean here. I have specified in the class javadoc Didn't notice it :) > that this class was copied from maven-project-info-reports-plugin, but I > didn't say which class I copied it from. IMHO you need to specify the reason for this fork. The revision could be useful since theses classes were not sync. Cheers, Vincent > > Cheers, > > > > Vincent > > > >> + try > >> + { > >> + DecorationModel model = new DecorationModel(); > >> + model.setBody( new Body() ); > >> + Map attributes = new HashMap(); > >> + attributes.put( "outputEncoding", "UTF-8" ); > >> + Locale locale = Locale.getDefault(); > >> + SiteRenderingContext siteContext = > >> siteRenderer.createContextForSkin( getSkinArtifactFile(), attributes, > >> + > >> model, getName( locale ), locale ); > >> + > >> + RenderingContext context = new RenderingContext( > >> outputDirectory, getOutputName() + ".html" ); > >> + > >> + SiteRendererSink sink = new SiteRendererSink( context ); > >> + generate( sink, locale ); > >> + > >> + outputDirectory.mkdirs(); > >> + > >> + Writer writer = new FileWriter( new File( outputDirectory, > >> getOutputName() + ".html" ) ); > >> + > >> + siteRenderer.generateDocument( writer, sink, siteContext ); > >> + > >> + siteRenderer.copyResources( siteContext, new File( > >> project.getBasedir(), "src/site/resources" ), > >> + outputDirectory ); > >> + } > >> + catch ( RendererException e ) > >> + { > >> + throw new MojoExecutionException( > >> + "An error has occurred in " + getName( Locale.ENGLISH ) + > >> " report generation.", e ); > >> + } > >> + catch ( IOException e ) > >> + { > >> + throw new MojoExecutionException( > >> + "An error has occurred in " + getName( Locale.ENGLISH ) + > >> " report generation.", e ); > >> + } > >> + catch ( MavenReportException e ) > >> + { > >> + throw new MojoExecutionException( > >> + "An error has occurred in " + getName( Locale.ENGLISH ) + > >> " report generation.", e ); > >> + } > >> + } > >> + > >> + /** > >> + * @see > >> org.apache.maven.reporting.AbstractMavenReport#getOutputDirectory() > >> + */ > >> + protected String getOutputDirectory() > >> + { > >> + return outputDirectory.getAbsolutePath(); > >> + } > >> + > >> + /** > >> + * @see org.apache.maven.reporting.AbstractMavenReport#getProject() > >> + */ > >> + protected MavenProject getProject() > >> + { > >> + return project; > >> + } > >> + > >> + /** > >> + * @see > >> org.apache.maven.reporting.AbstractMavenReport#getSiteRenderer() > >> + */ > >> + protected Renderer getSiteRenderer() > >> + { > >> + return siteRenderer; > >> + } > >> +} > >> > >> Propchange: > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/AbstractChangesReport.java > >> ------------------------------------------------------------------------------ > >> svn:eol-style = native > >> > >> Propchange: > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/AbstractChangesReport.java > >> ------------------------------------------------------------------------------ > >> svn:keywords = Date Id > >> > >> Modified: > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java > >> URL: > >> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java?rev=620284&r1=620283&r2=620284&view=diff > >> ============================================================================== > >> --- > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java > >> (original) > >> +++ > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java > >> Sun Feb 10 05:28:36 2008 > >> @@ -21,7 +21,6 @@ > >> > >> import org.apache.maven.doxia.siterenderer.Renderer; > >> import org.apache.maven.project.MavenProject; > >> -import org.apache.maven.reporting.AbstractMavenReport; > >> import org.apache.maven.reporting.MavenReportException; > >> import org.codehaus.plexus.util.FileUtils; > >> > >> @@ -39,32 +38,9 @@ > >> * @version $Id$ > >> */ > >> public class ChangesMojo > >> - extends AbstractMavenReport > >> + extends AbstractChangesReport > >> { > >> /** > >> - * Directory where reports will go. > >> - * > >> - * @parameter expression="${project.reporting.outputDirectory}" > >> - * @required > >> - * @readonly > >> - */ > >> - private File outputDirectory; > >> - > >> - /** > >> - * @parameter > >> expression="${component.org.apache.maven.doxia.siterenderer.Renderer}" > >> - * @required > >> - * @readonly > >> - */ > >> - private Renderer siteRenderer; > >> - > >> - /** > >> - * @parameter expression="${project}" > >> - * @required > >> - * @readonly > >> - */ > >> - private MavenProject project; > >> - > >> - /** > >> * The path of the changes.xml file that will be converted into an > >> html report. > >> * > >> * @parameter expression="${basedir}/src/changes/changes.xml" > >> @@ -153,24 +129,9 @@ > >> return getBundle( locale ).getString( > >> "report.changes.description" ); > >> } > >> > >> - protected Renderer getSiteRenderer() > >> - { > >> - return siteRenderer; > >> - } > >> - > >> - protected MavenProject getProject() > >> - { > >> - return project; > >> - } > >> - > >> public String getOutputName() > >> { > >> return "changes-report"; > >> - } > >> - > >> - protected String getOutputDirectory() > >> - { > >> - return outputDirectory.getAbsolutePath(); > >> } > >> > >> private ResourceBundle getBundle( Locale locale ) > >> > >> Modified: > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java > >> URL: > >> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java?rev=620284&r1=620283&r2=620284&view=diff > >> ============================================================================== > >> --- > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java > >> (original) > >> +++ > >> maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/jira/JiraMojo.java > >> Sun Feb 10 05:28:36 2008 > >> @@ -20,8 +20,8 @@ > >> */ > >> > >> import org.apache.maven.doxia.siterenderer.Renderer; > >> +import org.apache.maven.plugin.changes.AbstractChangesReport; > >> import org.apache.maven.project.MavenProject; > >> -import org.apache.maven.reporting.AbstractMavenReport; > >> import org.apache.maven.reporting.MavenReportException; > >> import org.apache.maven.settings.Settings; > >> > >> @@ -37,18 +37,9 @@ > >> * @version $Id$ > >> */ > >> public class JiraMojo > >> - extends AbstractMavenReport > >> + extends AbstractChangesReport > >> { > >> /** > >> - * Output directory where the report will be placed. > >> - * > >> - * @parameter expression="${project.reporting.outputDirectory}" > >> - * @required > >> - * @readonly > >> - */ > >> - private File outputDirectory; > >> - > >> - /** > >> * Path to the JIRA XML file, which will be parsed. > >> * > >> * @parameter expression="${project.build.directory}/jira-results.xml > >> " > >> @@ -58,24 +49,6 @@ > >> private File jiraXmlPath; > >> > >> /** > >> - * Doxia Site Renderer. > >> - * > >> - * @parameter > >> expression="${component.org.apache.maven.doxia.siterenderer.Renderer}" > >> - * @required > >> - * @readonly > >> - */ > >> - private Renderer siteRenderer; > >> - > >> - /** > >> - * The Maven Project. > >> - * > >> - * @parameter expression="${project}" > >> - * @required > >> - * @readonly > >> - */ > >> - private MavenProject project; > >> - > >> - /** > >> * Settings XML configuration. > >> * > >> * @parameter expression="${settings}" > >> @@ -307,24 +280,9 @@ > >> return getBundle( locale ).getString( "report.jira.description" ); > >> } > >> > >> - protected Renderer getSiteRenderer() > >> - { > >> - return siteRenderer; > >> - } > >> - > >> - protected MavenProject getProject() > >> - { > >> - return project; > >> - } > >> - > >> public String getOutputName() > >> { > >> return "jira-report"; > >> - } > >> - > >> - protected String getOutputDirectory() > >> - { > >> - return outputDirectory.getAbsolutePath(); > >> } > >> > >> private ResourceBundle getBundle( Locale locale ) > >> > >> > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > Dennis Lundberg > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]