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]

Reply via email to