You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2013/04/06 18:42:32 UTC

svn commit: r1465271 - in /maven/shared/trunk/maven-reporting-exec/src: main/java/org/apache/maven/reporting/exec/ site/apt/

Author: hboutemy
Date: Sat Apr  6 16:42:32 2013
New Revision: 1465271

URL: http://svn.apache.org/r1465271
Log:
code simplification

Modified:
    maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java
    maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/MavenReportExecutorRequest.java
    maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportPlugin.java
    maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportSet.java
    maven/shared/trunk/maven-reporting-exec/src/site/apt/index.apt

Modified: maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java?rev=1465271&r1=1465270&r2=1465271&view=diff
==============================================================================
--- maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java (original)
+++ maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java Sat Apr  6 16:42:32 2013
@@ -22,12 +22,13 @@ package org.apache.maven.reporting.exec;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Set;
 
-import org.apache.maven.artifact.repository.DefaultRepositoryRequest;
 import org.apache.maven.artifact.repository.RepositoryRequest;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.lifecycle.LifecycleExecutor;
@@ -67,7 +68,7 @@ import org.sonatype.aether.repository.Re
  * </p>
  * <p>
  *   <b>Note</b> if no version is defined in the report plugin, the version will be searched
- *   with method {@link #getPluginVersion(ReportPlugin, MavenReportExecutorRequest)}
+ *   with method {@link #resolvePluginVersion(ReportPlugin, MavenReportExecutorRequest)}
  *   Steps to find a plugin version stop after each step if a non <code>null</code> value has been found:
  *   <ol>
  *     <li>use the one defined in the reportPlugin configuration,</li>
@@ -138,49 +139,40 @@ public class DefaultMavenReportExecutor
         }
         getLog().debug( "DefaultMavenReportExecutor.buildMavenReports()" );
 
-        List<String> reportPluginKeys = new ArrayList<String>();
-        List<MavenReportExecution> reports = new ArrayList<MavenReportExecution>();
+        Set<String> reportPluginKeys = new HashSet<String>();
+        List<MavenReportExecution> reportExecutions = new ArrayList<MavenReportExecution>();
 
         String pluginKey = "";
         try
         {
             for ( ReportPlugin reportPlugin : mavenReportExecutorRequest.getReportPlugins() )
             {
-                pluginKey = reportPlugin.getGroupId() + ":" + reportPlugin.getArtifactId();
+                pluginKey = reportPlugin.getGroupId() + ':' + reportPlugin.getArtifactId();
+
+                if ( !reportPluginKeys.add( pluginKey ) )
+                {
+                    logger.info( "plugin " + pluginKey + " will be executed more than one time" );
+                }
 
-                buildReportPlugin( mavenReportExecutorRequest, reportPlugin, reportPluginKeys, reports );
+                reportExecutions.addAll( buildReportPlugin( mavenReportExecutorRequest, reportPlugin ) );
             }
-            return reports;
         }
         catch ( Exception e )
         {
             throw new MojoExecutionException( "failed to get report for " + pluginKey, e );
         }
+
+        return reportExecutions;
     }
 
-    protected void buildReportPlugin( MavenReportExecutorRequest mavenReportExecutorRequest, ReportPlugin reportPlugin,
-                                      List<String> reportPluginKeys, List<MavenReportExecution> reports )
+    protected List<MavenReportExecution> buildReportPlugin( MavenReportExecutorRequest mavenReportExecutorRequest,
+                                                            ReportPlugin reportPlugin )
         throws Exception
     {
         Plugin plugin = new Plugin();
         plugin.setGroupId( reportPlugin.getGroupId() );
         plugin.setArtifactId( reportPlugin.getArtifactId() );
-
-        String pluginKey = reportPlugin.getGroupId() + ":" + reportPlugin.getArtifactId();
-        if ( reportPluginKeys.contains( pluginKey ) )
-        {
-            logger.info( "plugin " + pluginKey + " will be executed more than one time" );
-        }
-        else
-        {
-            reportPluginKeys.add( pluginKey );
-        }
-
-        RepositoryRequest repositoryRequest = new DefaultRepositoryRequest();
-        repositoryRequest.setLocalRepository( mavenReportExecutorRequest.getLocalRepository() );
-        repositoryRequest.setRemoteRepositories( mavenReportExecutorRequest.getProject().getPluginArtifactRepositories() );
-
-        plugin.setVersion( getPluginVersion( reportPlugin, mavenReportExecutorRequest ) );
+        plugin.setVersion( resolvePluginVersion( reportPlugin, mavenReportExecutorRequest ) );
 
         mergePluginToReportPlugin( mavenReportExecutorRequest, plugin, reportPlugin );
 
@@ -196,6 +188,7 @@ public class DefaultMavenReportExecutor
 
         if ( reportPlugin.getReportSets().isEmpty() && reportPlugin.getReports().isEmpty() )
         {
+            // by default, execute every reports (goals)
             List<MojoDescriptor> mojoDescriptors = pluginDescriptor.getMojos();
             for ( MojoDescriptor mojoDescriptor : mojoDescriptors )
             {
@@ -218,6 +211,7 @@ public class DefaultMavenReportExecutor
             }
         }
 
+        List<MavenReportExecution> reports = new ArrayList<MavenReportExecution>();
         for ( Entry<String, PlexusConfiguration> entry : goalsWithConfiguration.entrySet() )
         {
             MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( entry.getKey() );
@@ -291,6 +285,8 @@ public class DefaultMavenReportExecutor
                 reports.add( mavenReportExecution );
             }
         }
+
+        return reports;
     }
 
     private boolean canGenerateReport( MavenReport mavenReport, MojoExecution mojoExecution )
@@ -456,7 +452,7 @@ public class DefaultMavenReportExecutor
      * @return the report plugin version
      * @throws PluginVersionResolutionException
      */
-    protected String getPluginVersion( ReportPlugin reportPlugin, MavenReportExecutorRequest mavenReportExecutorRequest )
+    protected String resolvePluginVersion( ReportPlugin reportPlugin, MavenReportExecutorRequest mavenReportExecutorRequest )
         throws PluginVersionResolutionException
     {
         String reportPluginKey = reportPlugin.getGroupId() + ':' + reportPlugin.getArtifactId();

Modified: maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/MavenReportExecutorRequest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/MavenReportExecutorRequest.java?rev=1465271&r1=1465270&r2=1465271&view=diff
==============================================================================
--- maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/MavenReportExecutorRequest.java (original)
+++ maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/MavenReportExecutorRequest.java Sat Apr  6 16:42:32 2013
@@ -24,11 +24,9 @@ import org.apache.maven.execution.MavenS
 import org.apache.maven.project.MavenProject;
 
 /**
- * <p>
- *   Bean which contains necessary informations for build {@link MavenReportExecution} 
- *   with {@link MavenReportExecutor}.
- *   The goal is to store some informations regarding the current Maven execution.
- * </p>
+ * Bean which contains necessary informations to build {@link MavenReportExecution} with {@link MavenReportExecutor}.
+ * The goal is to store some informations regarding the current Maven execution.
+ * 
  * @author Olivier Lamy
  * @version $Id$
  */
@@ -81,5 +79,4 @@ public class MavenReportExecutorRequest
     {
         this.reportPlugins = reportPlugins;
     }
-
 }

Modified: maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportPlugin.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportPlugin.java?rev=1465271&r1=1465270&r2=1465271&view=diff
==============================================================================
--- maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportPlugin.java (original)
+++ maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportPlugin.java Sat Apr  6 16:42:32 2013
@@ -27,14 +27,11 @@ import org.apache.maven.model.Plugin;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
 
 /**
- * <p>
  * Represents a reporting plugin and its executions. It basically contains similar informations
- * as a {@link Plugin} but in order to decoupled reporting stuff from core some values are copied.
- * </p>
+ * as a {@link Plugin}, but in order to decouple reporting stuff from core, some values are copied.
  */
 public class ReportPlugin
 {
-
     private String groupId = "org.apache.maven.plugins";
 
     private String artifactId;
@@ -111,7 +108,4 @@ public class ReportPlugin
     {
         this.reports = reports;
     }
-
-    
-
 }

Modified: maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportSet.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportSet.java?rev=1465271&r1=1465270&r2=1465271&view=diff
==============================================================================
--- maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportSet.java (original)
+++ maven/shared/trunk/maven-reporting-exec/src/main/java/org/apache/maven/reporting/exec/ReportSet.java Sat Apr  6 16:42:32 2013
@@ -25,7 +25,7 @@ import java.util.List;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
 
 /**
- * Represents a set of reports and configuration to be used to generate them.
+ * Represents a set of reports and a configuration to be used to generate them.
  */
 public class ReportSet
 {

Modified: maven/shared/trunk/maven-reporting-exec/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-reporting-exec/src/site/apt/index.apt?rev=1465271&r1=1465270&r2=1465271&view=diff
==============================================================================
--- maven/shared/trunk/maven-reporting-exec/src/site/apt/index.apt (original)
+++ maven/shared/trunk/maven-reporting-exec/src/site/apt/index.apt Sat Apr  6 16:42:32 2013
@@ -33,9 +33,9 @@ Maven Reporting Executor
 +----
 
   Notice: this is the model from plugins in <<<\<reporting\>>>> section of POM without <<<\<inherited\>>>> element
-  and with <<<\<reports\>>>> list that simplifies reports configuration in usual cases.
+  and with immediate <<<\<reports\>>>> list (ie not in <<<\<reportSet\>>>>) that simplifies reports configuration in usual cases.
 
   Maven 3 core makes an automatic transformation of <<<\<reporting\>>>> POM section to <<<maven-site-plugin>>>
   configuration through the
   {{{http://maven.apache.org/ref/current/maven-model-builder/apidocs/org/apache/maven/model/plugin/ReportingConverter.html}ReportingConverter}}
-  component.
\ No newline at end of file
+  component.