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 2010/08/12 22:48:50 UTC

svn commit: r984961 - in /maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site: ./ wagon/ wagon/repository/

Author: olamy
Date: Thu Aug 12 20:48:50 2010
New Revision: 984961

URL: http://svn.apache.org/viewvc?rev=984961&view=rev
Log:
add some javadoc.

Modified:
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecution.java
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportPlugin.java
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/PathUtils.java
    maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/repository/Repository.java

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java?rev=984961&r1=984960&r2=984961&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java Thu Aug 12 20:48:50 2010
@@ -47,6 +47,7 @@ public abstract class AbstractSiteMojo
 
     /**
      * @parameter
+     * @since 3.0-beta-1
      */
     protected ReportPlugin[] reportPlugins;
 

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=984961&r1=984960&r2=984961&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 Thu Aug 12 20:48:50 2010
@@ -20,6 +20,7 @@ package org.apache.maven.plugins.site;
  */
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -45,6 +46,7 @@ import org.apache.maven.plugin.version.P
 import org.apache.maven.plugin.version.PluginVersionResult;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.reporting.MavenReport;
+import org.codehaus.classworlds.ClassRealm;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
@@ -55,7 +57,41 @@ import org.codehaus.plexus.util.xml.Xpp3
 import org.mortbay.log.Log;
 
 /**
- *
+ * <p>
+ *   This component will build some {@link MavenReportExecution} from {@link MavenReportExecutorRequest}.
+ *   If a {@link MavenReport} need to fork a lifecycle, this fork is executed here. 
+ *   It will ask the core to get some informations in order to correctly setup {@link MavenReport}.
+ * </p>
+ * <p>
+ *   <b>Note</b> if no version is defined in the report plugin the version will be search 
+ *   with method {@link #getPluginVersion(ReportPlugin, RepositoryRequest, MavenReportExecutorRequest)}
+ *   Steps to find a plugin version stop after each step if a non <code>null</code> has been found
+ *   <ul>
+ *     <li>use the one defined in the reportPlugin configuration</li>
+ *     <li>search similar (same groupId and artifactId) mojo in the build/plugins section of the pom</li>
+ *     <li>search similar (same groupId and artifactId) mojo in the build/pluginManagement section of the pom</li>
+ *     <li>ask {@link PluginVersionResolver} to get a version and display a warning as it's not a recommended use</li>  
+ *   </ul>
+ * </p>
+ * <p>
+ *   Following steps are done
+ *   <ul>
+ *     <li>get {@link PluginDescriptor} from the {@link MavenPluginManager#getPluginDescriptor(Plugin, RepositoryRequest)}</li>
+ *     <li>setup a {@link ClassLoader} with the Mojo Site plugin {@link ClassLoader} as parent for the report execution. 
+ *       You must note some classes are imported from the current Site Mojo {@link ClassRealm} see {@link #imports}.
+ *       The artifact resolution excludes the following artifacts (with using an {@link ExclusionSetFilter} : 
+ *       doxia-site-renderer, doxia-sink-api.
+ *       done using {@link MavenPluginManager#setupPluginRealm(PluginDescriptor, org.apache.maven.execution.MavenSession, ClassLoader, List, org.apache.maven.artifact.resolver.filter.ArtifactFilter)}
+ *     </li>
+ *     <li>
+ *       setup the mojo using {@link MavenPluginManager#getConfiguredMojo(Class, org.apache.maven.execution.MavenSession, MojoExecution)}
+ *     </li>
+ *     <li>
+ *       verify with {@link LifecycleExecutor#calculateForkedExecutions(MojoExecution, org.apache.maven.execution.MavenSession)}
+ *       if any forked execution is needed : if yes executes the forked execution here
+ *     </li>
+ *   </ul>
+ * </p>
  * @author Olivier Lamy
  * @since 3.0-beta-1
  */
@@ -74,6 +110,13 @@ public class DefaultMavenReportExecutor
 
     @Requirement
     protected PluginVersionResolver pluginVersionResolver;
+    
+    private List<String> imports = Arrays.asList( "org.apache.maven.reporting.MavenReport",
+                                                  "org.apache.maven.reporting.MavenMultiPageReport",
+                                                  "org.apache.maven.doxia.siterenderer.Renderer",
+                                                  "org.apache.maven.doxia.sink.SinkFactory",
+                                                  "org.codehaus.doxia.sink.Sink", "org.apache.maven.doxia.sink.Sink",
+                                                  "org.apache.maven.doxia.sink.SinkEventAttributes" );
 
     public List<MavenReportExecution> buildMavenReports( MavenReportExecutorRequest mavenReportExecutorRequest )
         throws MojoExecutionException
@@ -83,17 +126,7 @@ public class DefaultMavenReportExecutor
             getLog().debug( "buildMavenReports" );
         }
 
-        List<String> imports = new ArrayList<String>();
-        imports.add( "org.apache.maven.reporting.MavenReport" );
-        imports.add( "org.apache.maven.reporting.MavenMultiPageReport" );
-        imports.add( "org.apache.maven.doxia.siterenderer.Renderer" );
-        imports.add( "org.apache.maven.doxia.sink.SinkFactory" );
-        imports.add( "org.codehaus.doxia.sink.Sink" );
-        imports.add( "org.apache.maven.doxia.sink.Sink" );
-        imports.add( "org.apache.maven.doxia.sink.SinkEventAttributes" );
-
         Set<String> excludes = new HashSet<String>( 1 );
-        //excludes.add( "maven-reporting-impl");
         excludes.add( "doxia-site-renderer" );
         excludes.add( "doxia-sink-api" );
 
@@ -361,6 +394,14 @@ public class DefaultMavenReportExecutor
         return logger;
     }
 
+    /**
+     * 
+     * @param reportPlugin
+     * @param repositoryRequest
+     * @param mavenReportExecutorRequest
+     * @return the plugin version
+     * @throws PluginVersionResolutionException
+     */
     protected String getPluginVersion( ReportPlugin reportPlugin, RepositoryRequest repositoryRequest,
                                        MavenReportExecutorRequest mavenReportExecutorRequest )
         throws PluginVersionResolutionException

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecution.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecution.java?rev=984961&r1=984960&r2=984961&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecution.java (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecution.java Thu Aug 12 20:48:50 2010
@@ -23,7 +23,23 @@ import org.apache.maven.model.Plugin;
 import org.apache.maven.reporting.MavenReport;
 
 /**
- *
+ * <p>
+ *   Since maven 3 reporting plugin {@link MavenReport} are not anymore injected by maven core
+ *   This class will store all necessary information for {@link MavenReport} execution :
+ *   <ul>
+ *     <li>a build {@link MavenReport}</li>
+ *     <li>The associated {@link ClassLoader} for the Report Mojo execution</li>
+ *     <li>The {@link Plugin} associated to the {@link MavenReport}</li>
+ *   </ul> 
+ * </p>
+ * <p>
+ *   With this it's possible to execute the {@link MavenReport} generate with settings
+ *   the current {@link Thread} classLoader first with {@link #classLoader}
+ * </p>
+ * <p>
+ *   This beans will be build by {@link MavenReportExecutor}.
+ * </p>
+ * 
  * @author Olivier Lamy
  * @since 3.0-beta-1
  */

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java?rev=984961&r1=984960&r2=984961&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/MavenReportExecutorRequest.java Thu Aug 12 20:48:50 2010
@@ -23,6 +23,16 @@ import org.apache.maven.artifact.reposit
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.project.MavenProject;
 
+/**
+ * <p>
+ *   Bean which contains necessay informations for build {@link MavenReportExecution} 
+ *   with {@link MavenReportExecutor}.
+ *   The goal is to store some informations regarding the current maven execution.
+ * </p>
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 3.0-beta-1
+ * @version $Id$
+ */
 public class MavenReportExecutorRequest
 {
     private ArtifactRepository localRepository;

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportPlugin.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportPlugin.java?rev=984961&r1=984960&r2=984961&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportPlugin.java (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/ReportPlugin.java Thu Aug 12 20:48:50 2010
@@ -22,10 +22,14 @@ package org.apache.maven.plugins.site;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.maven.model.Plugin;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
 
 /**
- * Represents a reporting plugin and its executions.
+ * <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>
  * @since 3.0-beta-1
  */
 public class ReportPlugin

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java?rev=984961&r1=984960&r2=984961&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java Thu Aug 12 20:48:50 2010
@@ -290,7 +290,6 @@ public class SiteDeployMojo
      * @param repository the Repository to extract the ProxyInfo from.
      * @param wagonManager the WagonManager used to connect to the Repository.
      * @return a ProxyInfo object instantiated or <code>null</code> if no matching proxy is found
-     * FIXME FIXME take care about proxy use
      */
     public static ProxyInfo getProxyInfo( Repository repository, WagonManager wagonManager )
     {

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/PathUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/PathUtils.java?rev=984961&r1=984960&r2=984961&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/PathUtils.java (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/PathUtils.java Thu Aug 12 20:48:50 2010
@@ -37,6 +37,7 @@ public final class PathUtils
 {
     private PathUtils()
     {
+        // no op
     }
     
     /**

Modified: maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/repository/Repository.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/repository/Repository.java?rev=984961&r1=984960&r2=984961&view=diff
==============================================================================
--- maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/repository/Repository.java (original)
+++ maven/plugins/branches/maven-site-plugin-3.x/src/main/java/org/apache/maven/plugins/site/wagon/repository/Repository.java Thu Aug 12 20:48:50 2010
@@ -75,7 +75,7 @@ public class Repository
      */
     public Repository()
     {
-
+        // no op
     }
 
     public Repository( String id, String url )