Author: brett
Date: Thu Jul 21 05:18:35 2005
New Revision: 220042

URL: http://svn.apache.org/viewcvs?rev=220042&view=rev
Log:
PR: MNG-530
don't attempt to configure non-report mojos during reporting


Modified:
    maven/components/trunk/maven-core/pom.xml
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-plugins/maven-clover-plugin/pom.xml
    
maven/components/trunk/maven-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
   (contents, props changed)
    
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java

Modified: maven/components/trunk/maven-core/pom.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/pom.xml?rev=220042&r1=220041&r2=220042&view=diff
==============================================================================
--- maven/components/trunk/maven-core/pom.xml (original)
+++ maven/components/trunk/maven-core/pom.xml Thu Jul 21 05:18:35 2005
@@ -19,7 +19,6 @@
       <groupId>org.apache.maven.reporting</groupId>
       <artifactId>maven-reporting-api</artifactId>
       <version>2.0-beta-1-SNAPSHOT</version>
-      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -122,7 +121,7 @@
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
+        <artifactId>maven-clover-plugin</artifactId>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=220042&r1=220041&r2=220042&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
 Thu Jul 21 05:18:35 2005
@@ -52,6 +52,7 @@
 import org.apache.maven.project.artifact.MavenMetadataSource;
 import org.apache.maven.project.path.PathTranslator;
 import org.apache.maven.settings.Settings;
+import org.apache.maven.reporting.MavenReport;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.PlexusContainerException;
@@ -286,7 +287,7 @@
                 dom = Xpp3Dom.mergeXpp3Dom( dom, 
mojoExecution.getConfiguration() );
             }
 
-            plugin = getConfiguredMojo( mojoDescriptor, session, dom, project 
);
+            plugin = getConfiguredMojo( mojoDescriptor, session, dom, project, 
false );
         }
         catch ( PluginConfigurationException e )
         {
@@ -375,7 +376,11 @@
                     Xpp3Dom dom = project.getReportConfiguration( 
reportPlugin.getGroupId(),
                                                                   
reportPlugin.getArtifactId(), executionId );
 
-                    reports.add( getConfiguredMojo( mojoDescriptor, session, 
dom, project ) );
+                    Mojo reportMojo = getConfiguredMojo( mojoDescriptor, 
session, dom, project, true );
+                    if ( reportMojo != null )
+                    {
+                        reports.add( reportMojo );
+                    }
                 }
                 catch ( ComponentLookupException e )
                 {
@@ -401,19 +406,24 @@
     }
 
     private Mojo getConfiguredMojo( MojoDescriptor mojoDescriptor, 
MavenSession session, Xpp3Dom dom,
-                                    MavenProject project )
+                                    MavenProject project, boolean report )
         throws ComponentLookupException, PluginConfigurationException, 
PluginManagerException
     {
-        PlexusContainer pluginContainer = getPluginContainer( 
mojoDescriptor.getPluginDescriptor() );
-
         PluginDescriptor pluginDescriptor = 
mojoDescriptor.getPluginDescriptor();
 
+        PlexusContainer pluginContainer = getPluginContainer( pluginDescriptor 
);
+
         // if this is the first time this plugin has been used, the plugin's 
container will only
         // contain the plugin's artifact in isolation; we need to finish 
resolving the plugin's
         // dependencies, and add them to the container.
         ensurePluginContainerIsComplete( pluginDescriptor, pluginContainer, 
project, session );
 
         Mojo plugin = (Mojo) pluginContainer.lookup( Mojo.ROLE, 
mojoDescriptor.getRoleHint() );
+        if ( report && !( plugin instanceof MavenReport ) )
+        {
+            // TODO: the mojoDescriptor should actually capture this 
information so we don't get this far
+            return null;
+        }
 
         plugin.setLog( mojoLogger );
 

Modified: maven/components/trunk/maven-plugins/maven-clover-plugin/pom.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-clover-plugin/pom.xml?rev=220042&r1=220041&r2=220042&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-clover-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-clover-plugin/pom.xml Thu Jul 21 
05:18:35 2005
@@ -41,8 +41,8 @@
     </dependency>
     <dependency>
       <groupId>org.apache.maven.reporting</groupId>
-      <artifactId>maven-reporting-api</artifactId>
-      <version>2.0-alpha-3</version>
+      <artifactId>maven-reporting-impl</artifactId>
+      <version>2.0-beta-1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>clover</groupId>

Modified: 
maven/components/trunk/maven-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java?rev=220042&r1=220041&r2=220042&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
 (original)
+++ 
maven/components/trunk/maven-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
 Thu Jul 21 05:18:35 2005
@@ -1,234 +1,234 @@
-package org.apache.maven.plugin.pmd;

-

-/*

- * Copyright 2005 The Apache Software Foundation.

- * 

- * Licensed 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 net.sourceforge.pmd.PMD;

-import net.sourceforge.pmd.PMDException;

-import net.sourceforge.pmd.Report;

-import net.sourceforge.pmd.RuleContext;

-import net.sourceforge.pmd.RuleSet;

-import net.sourceforge.pmd.RuleSetFactory;

-

-import org.apache.maven.project.MavenProject;

-import org.apache.maven.reporting.AbstractMavenReport;

-import org.apache.maven.reporting.MavenReportException;

-import org.codehaus.doxia.sink.Sink;

-import org.codehaus.doxia.site.renderer.SiteRenderer;

-import org.codehaus.plexus.util.FileUtils;

-import org.codehaus.plexus.util.StringUtils;

-

-import java.io.File;

-import java.io.FileNotFoundException;

-import java.io.FileReader;

-import java.io.IOException;

-import java.io.InputStream;

-import java.util.Collections;

-import java.util.Iterator;

-import java.util.List;

-import java.util.Locale;

-import java.util.ResourceBundle;

-

-/**

- * Implement the PMD report.

- *

- * @goal pmd

- *

- * @todo needs to support the multiple source roots

- * @author Brett Porter

- * @version $Id: PmdReport.java,v 1.3 2005/02/23 00:08:53 brett Exp $

- */

-public class PmdReport

-    extends AbstractMavenReport

-{

-    /**

-     * @parameter expression="${project.build.directory}/site"

-     * @required

-     */

-    private String outputDirectory;

-

-    /**

-     * @parameter 
expression="${component.org.codehaus.doxia.site.renderer.SiteRenderer}"

-     * @required

-     * @readonly

-     */

-    private SiteRenderer siteRenderer;

-

-    /**

-     * @parameter expression="${project}"

-     * @required

-     * @readonly

-     */

-    private MavenProject project;

-

-    /**

-     * @see org.apache.maven.reporting.MavenReport#getName(java.util.Locale)

-     */

-    public String getName( Locale locale )

-    {

-        return getBundle( locale ).getString( "report.pmd.name" );

-    }

-

-    /**

-     * @see 
org.apache.maven.reporting.MavenReport#getDescription(java.util.Locale)

-     */

-    public String getDescription( Locale locale )

-    {

-        return getBundle( locale ).getString( "report.pmd.description" );

-    }

-

-    /**

-     * @see org.apache.maven.reporting.AbstractMavenReport#getOutputDirectory()

-     */

-    protected String getOutputDirectory()

-    {

-        return outputDirectory;

-    }

-

-    /**

-     * @see org.apache.maven.reporting.AbstractMavenReport#getProject()

-     */

-    protected MavenProject getProject()

-    {

-        return project;

-    }

-

-    /**

-     * @see org.apache.maven.reporting.AbstractMavenReport#getSiteRenderer()

-     */

-    protected SiteRenderer getSiteRenderer()

-    {

-        return siteRenderer;

-    }

-

-    /**

-     * @see 
org.apache.maven.reporting.AbstractMavenReport#executeReport(java.util.Locale)

-     */

-    public void executeReport( Locale locale )

-        throws MavenReportException

-    {

-        Sink sink = getSink();

-

-        PMD pmd = new PMD();

-        RuleContext ruleContext = new RuleContext();

-        Report report = new Report();

-        // TODO: use source roots instead

-        String sourceDirectory = getProject().getBuild().getSourceDirectory();

-        PmdReportListener reportSink = new PmdReportListener( sink, 
sourceDirectory, getBundle( locale ) );

-        report.addListener( reportSink );

-        ruleContext.setReport( report );

-

-        RuleSetFactory ruleSetFactory = new RuleSetFactory();

-        InputStream rulesInput = pmd.getClass().getResourceAsStream( 
"/rulesets/controversial.xml" );

-        RuleSet ruleSet = ruleSetFactory.createRuleSet( rulesInput );

-

-        reportSink.beginDocument();

-

-        List files;

-        try

-        {

-            files = getFilesToProcess( "**/*.java", null );

-        }

-        catch ( IOException e )

-        {

-            throw new MavenReportException( "Can't parse " + sourceDirectory, 
e );

-        }

-

-        for ( Iterator i = files.iterator(); i.hasNext(); )

-        {

-            File file = (File) i.next();

-            FileReader fileReader;

-            try

-            {

-                fileReader = new FileReader( file );

-            }

-            catch ( FileNotFoundException e )

-            {

-                throw new MavenReportException( "Error opening source file: " 
+ file, e );

-            }

-

-            try

-            {

-                // TODO: lazily call beginFile in case there are no rules

-

-                reportSink.beginFile( file );

-                ruleContext.setSourceCodeFilename( file.getAbsolutePath() );

-                pmd.processFile( fileReader, ruleSet, ruleContext );

-                reportSink.endFile( file );

-            }

-            catch ( PMDException e )

-            {

-                Exception ex = e;

-                if ( e.getReason() != null )

-                {

-                    ex = e.getReason();

-                }

-                throw new MavenReportException( "Failure executing PMD for: " 
+ file, ex );

-            }

-            finally

-            {

-                try

-                {

-                    fileReader.close();

-                }

-                catch ( IOException e )

-                {

-                    throw new MavenReportException( "Error closing source 
file: " + file, e );

-                }

-            }

-        }

-        reportSink.endDocument();

-    }

-

-    /**

-     * @see org.apache.maven.reporting.MavenReport#getOutputName()

-     */

-    public String getOutputName()

-    {

-        return "pmd";

-    }

-

-    private List getFilesToProcess( String includes, String excludes )

-        throws IOException

-    {

-        File dir = new File( getProject().getBuild().getSourceDirectory() );

-        if ( !dir.exists() )

-        {

-            return Collections.EMPTY_LIST;

-        }

-

-        StringBuffer excludesStr = new StringBuffer();

-        if ( StringUtils.isNotEmpty( excludes ) )

-        {

-            excludesStr.append( excludes );

-        }

-        for ( int i = 0; i < DEFAULT_EXCLUDES.length; i++ )

-        {

-            if ( excludesStr.length() > 0 )

-            {

-                excludesStr.append( "," );

-            }

-            excludesStr.append( DEFAULT_EXCLUDES[i] );

-        }

-

-        return FileUtils.getFiles( dir, includes, excludesStr.toString() );

-    }

-

-    private static ResourceBundle getBundle( Locale locale )

-    {

-        return ResourceBundle.getBundle("pmd-report", locale, 
PmdReport.class.getClassLoader() );

-    }

-}

+package org.apache.maven.plugin.pmd;
+
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ * 
+ * Licensed 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 net.sourceforge.pmd.PMD;
+import net.sourceforge.pmd.PMDException;
+import net.sourceforge.pmd.Report;
+import net.sourceforge.pmd.RuleContext;
+import net.sourceforge.pmd.RuleSet;
+import net.sourceforge.pmd.RuleSetFactory;
+
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.reporting.AbstractMavenReport;
+import org.apache.maven.reporting.MavenReportException;
+import org.codehaus.doxia.sink.Sink;
+import org.codehaus.doxia.site.renderer.SiteRenderer;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+/**
+ * Implement the PMD report.
+ *
+ * @goal pmd
+ *
+ * @todo needs to support the multiple source roots
+ * @author Brett Porter
+ * @version $Id: PmdReport.java,v 1.3 2005/02/23 00:08:53 brett Exp $
+ */
+public class PmdReport
+    extends AbstractMavenReport
+{
+    /**
+     * @parameter expression="${project.build.directory}/site"
+     * @required
+     */
+    private String outputDirectory;
+
+    /**
+     * @parameter 
expression="${component.org.codehaus.doxia.site.renderer.SiteRenderer}"
+     * @required
+     * @readonly
+     */
+    private SiteRenderer siteRenderer;
+
+    /**
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
+    private MavenProject project;
+
+    /**
+     * @see org.apache.maven.reporting.MavenReport#getName(java.util.Locale)
+     */
+    public String getName( Locale locale )
+    {
+        return getBundle( locale ).getString( "report.pmd.name" );
+    }
+
+    /**
+     * @see 
org.apache.maven.reporting.MavenReport#getDescription(java.util.Locale)
+     */
+    public String getDescription( Locale locale )
+    {
+        return getBundle( locale ).getString( "report.pmd.description" );
+    }
+
+    /**
+     * @see org.apache.maven.reporting.AbstractMavenReport#getOutputDirectory()
+     */
+    protected String getOutputDirectory()
+    {
+        return outputDirectory;
+    }
+
+    /**
+     * @see org.apache.maven.reporting.AbstractMavenReport#getProject()
+     */
+    protected MavenProject getProject()
+    {
+        return project;
+    }
+
+    /**
+     * @see org.apache.maven.reporting.AbstractMavenReport#getSiteRenderer()
+     */
+    protected SiteRenderer getSiteRenderer()
+    {
+        return siteRenderer;
+    }
+
+    /**
+     * @see 
org.apache.maven.reporting.AbstractMavenReport#executeReport(java.util.Locale)
+     */
+    public void executeReport( Locale locale )
+        throws MavenReportException
+    {
+        Sink sink = getSink();
+
+        PMD pmd = new PMD();
+        RuleContext ruleContext = new RuleContext();
+        Report report = new Report();
+        // TODO: use source roots instead
+        String sourceDirectory = getProject().getBuild().getSourceDirectory();
+        PmdReportListener reportSink = new PmdReportListener( sink, 
sourceDirectory, getBundle( locale ) );
+        report.addListener( reportSink );
+        ruleContext.setReport( report );
+
+        RuleSetFactory ruleSetFactory = new RuleSetFactory();
+        InputStream rulesInput = pmd.getClass().getResourceAsStream( 
"/rulesets/controversial.xml" );
+        RuleSet ruleSet = ruleSetFactory.createRuleSet( rulesInput );
+
+        reportSink.beginDocument();
+
+        List files;
+        try
+        {
+            files = getFilesToProcess( "**/*.java", null );
+        }
+        catch ( IOException e )
+        {
+            throw new MavenReportException( "Can't parse " + sourceDirectory, 
e );
+        }
+
+        for ( Iterator i = files.iterator(); i.hasNext(); )
+        {
+            File file = (File) i.next();
+            FileReader fileReader;
+            try
+            {
+                fileReader = new FileReader( file );
+            }
+            catch ( FileNotFoundException e )
+            {
+                throw new MavenReportException( "Error opening source file: " 
+ file, e );
+            }
+
+            try
+            {
+                // TODO: lazily call beginFile in case there are no rules
+
+                reportSink.beginFile( file );
+                ruleContext.setSourceCodeFilename( file.getAbsolutePath() );
+                pmd.processFile( fileReader, ruleSet, ruleContext );
+                reportSink.endFile( file );
+            }
+            catch ( PMDException e )
+            {
+                Exception ex = e;
+                if ( e.getReason() != null )
+                {
+                    ex = e.getReason();
+                }
+                throw new MavenReportException( "Failure executing PMD for: " 
+ file, ex );
+            }
+            finally
+            {
+                try
+                {
+                    fileReader.close();
+                }
+                catch ( IOException e )
+                {
+                    throw new MavenReportException( "Error closing source 
file: " + file, e );
+                }
+            }
+        }
+        reportSink.endDocument();
+    }
+
+    /**
+     * @see org.apache.maven.reporting.MavenReport#getOutputName()
+     */
+    public String getOutputName()
+    {
+        return "pmd";
+    }
+
+    private List getFilesToProcess( String includes, String excludes )
+        throws IOException
+    {
+        File dir = new File( getProject().getBuild().getSourceDirectory() );
+        if ( !dir.exists() )
+        {
+            return Collections.EMPTY_LIST;
+        }
+
+        StringBuffer excludesStr = new StringBuffer();
+        if ( StringUtils.isNotEmpty( excludes ) )
+        {
+            excludesStr.append( excludes );
+        }
+        for ( int i = 0; i < DEFAULT_EXCLUDES.length; i++ )
+        {
+            if ( excludesStr.length() > 0 )
+            {
+                excludesStr.append( "," );
+            }
+            excludesStr.append( DEFAULT_EXCLUDES[i] );
+        }
+
+        return FileUtils.getFiles( dir, includes, excludesStr.toString() );
+    }
+
+    private static ResourceBundle getBundle( Locale locale )
+    {
+        return ResourceBundle.getBundle("pmd-report", locale, 
PmdReport.class.getClassLoader() );
+    }
+}

Propchange: 
maven/components/trunk/maven-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java?rev=220042&r1=220041&r2=220042&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
 (original)
+++ 
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
 Thu Jul 21 05:18:35 2005
@@ -908,19 +908,6 @@
             {
                 ReportPlugin reportPlugin = (ReportPlugin) it.next();
 
-//                try
-//                {
-//                    pluginManager.verifyPlugin( reportPlugin, project, 
settings, localRepository );
-//                }
-//                catch ( PluginVersionResolutionException e )
-//                {
-//                    throw new MojoExecutionException( "Cannot resolve 
version for report plugin", e );
-//                }
-//                catch ( PluginManagerException e )
-//                {
-//                    throw new MojoExecutionException( "Cannot find report 
plugin", e );
-//                }
-
                 try
                 {
                     List reportSets = reportPlugin.getReportSets();
@@ -943,16 +930,7 @@
                         }
                     }
 
-                    for ( Iterator i = reportsList.iterator(); i.hasNext(); )
-                    {
-                        Object obj = i.next();
-
-                        //TODO: Remove this test when getReports will return 
only reports object
-                        if ( obj instanceof MavenReport )
-                        {
-                            reports.add( obj );
-                        }
-                    }
+                    reports.addAll( reportsList );
                 }
                 catch ( PluginManagerException e )
                 {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to