Author: ltheussl Date: Tue Feb 1 13:00:59 2011 New Revision: 1066038 URL: http://svn.apache.org/viewvc?rev=1066038&view=rev Log: make SiteDeployMojo extend AbstractSiteMojo. this makes project parameters like locales, reactorProjects, etc available in the deploy and stage mojos, which will be needed for fixing MSITE-322, MSITE-537
Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java?rev=1066038&r1=1066037&r2=1066038&view=diff ============================================================================== --- maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java (original) +++ maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteMojo.java Tue Feb 1 13:00:59 2011 @@ -20,19 +20,14 @@ package org.apache.maven.plugins.site; */ import java.io.File; -import java.util.Iterator; + import java.util.List; -import java.util.Locale; -import java.util.Map; import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.doxia.site.decoration.DecorationModel; -import org.apache.maven.doxia.site.decoration.Menu; -import org.apache.maven.doxia.site.decoration.MenuItem; import org.apache.maven.doxia.tools.SiteTool; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.project.MavenProject; -import org.apache.maven.reporting.MavenReport; + import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.ReaderFactory; @@ -133,50 +128,6 @@ public abstract class AbstractSiteMojo return ( outputEncoding == null ) ? ReaderFactory.UTF_8 : outputEncoding; } - protected void populateReportItems( DecorationModel decorationModel, Locale locale, - Map<String, MavenReport> reportsByOutputName ) - { - for ( Iterator<Menu> i = decorationModel.getMenus().iterator(); i.hasNext(); ) - { - Menu menu = i.next(); - - populateItemRefs( menu.getItems(), locale, reportsByOutputName ); - } - } - - private void populateItemRefs( List<MenuItem> items, Locale locale, Map<String, MavenReport> reportsByOutputName ) - { - for ( Iterator<MenuItem> i = items.iterator(); i.hasNext(); ) - { - MenuItem item = i.next(); - - if ( item.getRef() != null ) - { - MavenReport report = reportsByOutputName.get( item.getRef() ); - - if ( report != null ) - { - - if ( item.getName() == null ) - { - item.setName( report.getName( locale ) ); - } - - if ( item.getHref() == null || item.getHref().length() == 0 ) - { - item.setHref( report.getOutputName() + ".html" ); - } - } - else - { - getLog().warn( "Unrecognised reference: '" + item.getRef() + "'" ); - i.remove(); - } - } - populateItemRefs( item.getItems(), locale, reportsByOutputName ); - } - } - /** * TODO should be removed see PLXUTILS-61 * Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java?rev=1066038&r1=1066037&r2=1066038&view=diff ============================================================================== --- maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java (original) +++ maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractSiteRenderingMojo.java Tue Feb 1 13:00:59 2011 @@ -19,11 +19,24 @@ package org.apache.maven.plugins.site; * under the License. */ +import java.io.File; +import java.io.IOException; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; + import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.doxia.sink.render.RenderingContext; import org.apache.maven.doxia.site.decoration.DecorationModel; +import org.apache.maven.doxia.site.decoration.Menu; +import org.apache.maven.doxia.site.decoration.MenuItem; import org.apache.maven.doxia.site.decoration.inheritance.DecorationModelInheritanceAssembler; import org.apache.maven.doxia.siterenderer.DocumentRenderer; import org.apache.maven.doxia.siterenderer.Renderer; @@ -34,15 +47,6 @@ import org.apache.maven.plugin.MojoExecu import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.reporting.MavenReport; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; /** * Base class for site rendering mojos. @@ -415,4 +419,49 @@ public abstract class AbstractSiteRender } return documents; } + + protected void populateReportItems( DecorationModel decorationModel, Locale locale, + Map<String, MavenReport> reportsByOutputName ) + { + for ( Iterator<Menu> i = decorationModel.getMenus().iterator(); i.hasNext(); ) + { + Menu menu = i.next(); + + populateItemRefs( menu.getItems(), locale, reportsByOutputName ); + } + } + + private void populateItemRefs( List<MenuItem> items, Locale locale, Map<String, MavenReport> reportsByOutputName ) + { + for ( Iterator<MenuItem> i = items.iterator(); i.hasNext(); ) + { + MenuItem item = i.next(); + + if ( item.getRef() != null ) + { + MavenReport report = reportsByOutputName.get( item.getRef() ); + + if ( report != null ) + { + + if ( item.getName() == null ) + { + item.setName( report.getName( locale ) ); + } + + if ( item.getHref() == null || item.getHref().length() == 0 ) + { + item.setHref( report.getOutputName() + ".html" ); + } + } + else + { + getLog().warn( "Unrecognised reference: '" + item.getRef() + "'" ); + i.remove(); + } + } + + populateItemRefs( item.getItems(), locale, reportsByOutputName ); + } + } } Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java?rev=1066038&r1=1066037&r2=1066038&view=diff ============================================================================== --- maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java (original) +++ maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java Tue Feb 1 13:00:59 2011 @@ -20,6 +20,7 @@ package org.apache.maven.plugins.site; */ import java.io.File; +import java.util.List; import org.apache.commons.lang.StringUtils; @@ -27,7 +28,6 @@ import org.apache.maven.artifact.manager import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.model.DistributionManagement; import org.apache.maven.model.Site; -import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; @@ -77,7 +77,7 @@ import org.codehaus.plexus.util.xml.Xpp3 * @goal deploy */ public class SiteDeployMojo - extends AbstractMojo implements Contextualizable + extends AbstractSiteMojo implements Contextualizable { /** * Directory containing the generated project sites and report distributions. @@ -115,13 +115,6 @@ public class SiteDeployMojo private String chmodOptions; /** - * @parameter expression="${project}" - * @required - * @readonly - */ - protected MavenProject project; - - /** * @component */ private WagonManager wagonManager; @@ -393,6 +386,32 @@ public class SiteDeployMojo container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY ); } + /** + * Find the top level parent in the reactor, i.e. the execution root. + * + * @param reactorProjects The projects in the reactor. May be null in which case null is returnned. + * @return The top level project in the reactor, or <code>null</code> if none can be found + * + * @since 2.3 + */ + protected static MavenProject getTopLevelProject( List<MavenProject> reactorProjects ) + { + if ( reactorProjects == null ) + { + return null; + } + + for ( MavenProject reactorProject : reactorProjects ) + { + if ( reactorProject.isExecutionRoot() ) + { + return reactorProject; + } + } + + return null; + } + private static Site getSite( final MavenProject project ) throws MojoExecutionException { Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java?rev=1066038&r1=1066037&r2=1066038&view=diff ============================================================================== --- maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java (original) +++ maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java Tue Feb 1 13:00:59 2011 @@ -19,13 +19,12 @@ package org.apache.maven.plugins.site; * under the License. */ -import org.apache.maven.doxia.tools.SiteTool; +import java.util.List; + import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.project.MavenProject; -import java.util.List; - /** * Deploys the generated site to a staging or mock directory to the site URL * specified in the <code><distributionManagement></code> section of the @@ -69,16 +68,9 @@ public class SiteStageDeployMojo private String stagingRepositoryId; /** - * SiteTool. - * - * @component - * @since 2.3 - */ - private SiteTool siteTool; - - /** * {@inheritDoc} */ + @Override public void execute() throws MojoExecutionException { Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java?rev=1066038&r1=1066037&r2=1066038&view=diff ============================================================================== --- maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java (original) +++ maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageMojo.java Tue Feb 1 13:00:59 2011 @@ -20,6 +20,7 @@ package org.apache.maven.plugins.site; */ import java.io.File; + import java.util.List; import org.apache.maven.model.Site; @@ -27,6 +28,7 @@ import org.apache.maven.plugin.MojoExecu import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.project.MavenProject; import org.apache.maven.plugins.site.wagon.repository.Repository; + import org.codehaus.plexus.util.StringUtils; /** @@ -58,18 +60,9 @@ public class SiteStageMojo protected File stagingDirectory; /** - * The reactor projects. - * - * @parameter default-value="${reactorProjects}" - * @required - * @readonly - * @since 2.3 - */ - protected List<MavenProject> reactorProjects; - - /** * @see org.apache.maven.plugin.Mojo#execute() */ + @Override public void execute() throws MojoExecutionException { @@ -145,28 +138,6 @@ public class SiteStageMojo } /** - * Find the top level parent in the reactor, i.e. the execution root. - * - * @param reactorProjects The projects in the reactor - * @return The top level project in the reactor, or <code>null</code> if none can be found - */ - protected MavenProject getTopLevelProject( List<MavenProject> reactorProjects ) - { - MavenProject topLevelProject = null; - if ( reactorProjects != null ) - { - for ( MavenProject reactorProject : reactorProjects ) - { - if ( reactorProject.isExecutionRoot() ) - { - topLevelProject = reactorProject; - } - } - } - return topLevelProject; - } - - /** * Generates the site structure using the project hiearchy (project and its modules) or using the * distributionManagement elements from the pom.xml. *