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 )