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>&lt;distributionManagement&gt;</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.
      *


Reply via email to