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]