You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2009/09/22 21:30:41 UTC

svn commit: r817788 - /maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java

Author: olamy
Date: Tue Sep 22 19:30:39 2009
New Revision: 817788

URL: http://svn.apache.org/viewvc?rev=817788&view=rev
Log:
restore canGenerateReport method call.

Modified:
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java?rev=817788&r1=817787&r2=817788&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java Tue Sep 22 19:30:39 2009
@@ -33,6 +33,8 @@
 import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoNotFoundException;
+import org.apache.maven.plugin.PluginConfigurationException;
+import org.apache.maven.plugin.PluginContainerException;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.reporting.MavenReport;
@@ -126,46 +128,71 @@
                                                          mavenReportExecutorRequest.getMavenSession(),
                                                          Thread.currentThread().getContextClassLoader(), imports );
 
-                    
-                    lifecycleExecutor.calculateForkedExecutions( mojoExecution,
-                                                                 mavenReportExecutorRequest.getMavenSession() );
-                    if ( !mojoExecution.getForkedExecutions().isEmpty() )
-                    {
-                        lifecycleExecutor.executeForkedExecutions( mojoExecution,
-                                                                   mavenReportExecutorRequest.getMavenSession() );
-                    }
-
                     MavenReport mavenReport =
                         getConfiguredMavenReport( mojoExecution, pluginDescriptor, mavenReportExecutorRequest );
                     if ( mavenReport != null )
                     {
+                        if ( canGenerateReport( mavenReport ) )
+                        {
                         MavenReportExecution mavenReportExecution =
                             new MavenReportExecution( mavenReport, pluginDescriptor.getClassRealm() );
-                        reports.add( mavenReportExecution );
+
+                            lifecycleExecutor.calculateForkedExecutions( mojoExecution,
+                                                                         mavenReportExecutorRequest.getMavenSession() );
+                            if ( !mojoExecution.getForkedExecutions().isEmpty() )
+                            {
+                                lifecycleExecutor.executeForkedExecutions( mojoExecution,
+                                                                           mavenReportExecutorRequest.getMavenSession() );
+                            }
+                            reports.add( mavenReportExecution );
+                        }
                     }
                 }
             }
             return reports;
         }
-        catch ( Throwable e )
+        catch ( Exception e )
         {
             throw new MojoExecutionException( "failed to get Reports ", e );
         }
     }
 
+    private boolean canGenerateReport(MavenReport mavenReport)
+    {
+     
+        try
+        {
+            return mavenReport.canGenerateReport();
+        }
+        catch ( AbstractMethodError e )
+        {
+            // the canGenerateReport() has been added just before the 2.0 release and will cause all the reporting
+            // plugins with an earlier version to fail (most of the org.codehaus mojo now fails)
+            // be nice with them, output a warning and don't let them break anything
+
+            getLog().warn(
+                           "Error loading report " + mavenReport.getClass().getName()
+                               + " - AbstractMethodError: canGenerateReport()" );
+            return true;
+        }        
+        
+    }
+    
     private MavenReport getConfiguredMavenReport( MojoExecution mojoExecution, PluginDescriptor pluginDescriptor,
                                                   MavenReportExecutorRequest mavenReportExecutorRequest )
-        throws Throwable
+        throws PluginContainerException, PluginConfigurationException
+
     {
         if ( !isMavenReport( mojoExecution, pluginDescriptor ) )
         {
             return null;
         }
+        MavenReport mavenReport = null;
         try
         {
             // FIXME here we need something to prevent MJAVADOC-251 config injection order can be different from mvn <
             // 3.x
-            MavenReport mavenReport =
+            mavenReport =
                 (MavenReport) mavenPluginManager.getConfiguredMojo( Mojo.class,
                                                                     mavenReportExecutorRequest.getMavenSession(),
                                                                     mojoExecution );
@@ -177,6 +204,7 @@
             getLog().warn( "skip ClassCastException " + e.getMessage() );
             return null;
         }
+
     }
 
     private boolean isMavenReport( MojoExecution mojoExecution, PluginDescriptor pluginDescriptor )