Author: hboutemy
Date: Sun May 12 16:53:50 2013
New Revision: 1481603

URL: http://svn.apache.org/r1481603
Log:
[MPIR-232] when packaging is pom, add modules report in the default index

Modified:
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/it/mpir-229/pom.xml
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoRenderer.java
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ProjectIndexPageReport.java

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/it/mpir-229/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/it/mpir-229/pom.xml?rev=1481603&r1=1481602&r2=1481603&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/it/mpir-229/pom.xml 
(original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/it/mpir-229/pom.xml 
Sun May 12 16:53:50 2013
@@ -80,6 +80,7 @@
         <reportSets>
           <reportSet>
             <reports>
+              <report>index</report>
               <report>modules</report>
             </reports>
           </reportSet>

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoRenderer.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoRenderer.java?rev=1481603&r1=1481602&r2=1481603&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoRenderer.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/AbstractProjectInfoRenderer.java
 Sun May 12 16:53:50 2013
@@ -30,9 +30,9 @@ import org.codehaus.plexus.util.StringUt
 public abstract class AbstractProjectInfoRenderer
     extends AbstractMavenReportRenderer
 {
-    private I18N i18n;
+    protected I18N i18n;
 
-    private Locale locale;
+    protected Locale locale;
 
     public AbstractProjectInfoRenderer( Sink sink, I18N i18n, Locale locale )
     {

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java?rev=1481603&r1=1481602&r2=1481603&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
 Sun May 12 16:53:50 2013
@@ -20,18 +20,12 @@ package org.apache.maven.report.projecti
  */
 
 import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.tools.SiteTool;
 import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.i18n.I18N;
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.ReaderFactory;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
+
 import java.util.List;
 import java.util.Locale;
 
@@ -53,7 +47,7 @@ public class ModulesReport
     @Override
     public void executeReport( Locale locale )
     {
-        new ModulesRenderer( getSink(), getProject().getModel(), getI18N( 
locale ), locale ).render();
+        new ModulesRenderer( getSink(), getProject(), getI18N( locale ), 
locale, siteTool ).render();
     }
 
     /** {@inheritDoc} */
@@ -81,16 +75,19 @@ public class ModulesReport
     /**
      * Internal renderer class
      */
-    private class ModulesRenderer
+    static class ModulesRenderer
         extends AbstractProjectInfoRenderer
     {
-        private Model model;
+        protected MavenProject project;
+
+        protected SiteTool siteTool;
 
-        ModulesRenderer( Sink sink, Model model, I18N i18n, Locale locale )
+        ModulesRenderer( Sink sink, MavenProject project, I18N i18n, Locale 
locale, SiteTool siteTool )
         {
             super( sink, i18n, locale );
 
-            this.model = model;
+            this.project = project;
+            this.siteTool = siteTool;
         }
 
         @Override
@@ -132,70 +129,37 @@ public class ModulesReport
 
             endSection();
         }
-    }
-
-    // adapted from DefaultSiteTool#appendMenuItem
-    private String getRelativeLink( String baseUrl, String href, String 
defaultHref )
-    {
-        String selectedHref = href;
 
-        if ( selectedHref == null )
+        // adapted from DefaultSiteTool#appendMenuItem
+        private String getRelativeLink( String baseUrl, String href, String 
defaultHref )
         {
-            selectedHref = defaultHref;
-        }
-
-        if ( baseUrl != null )
-        {
-            selectedHref = siteTool.getRelativePath( selectedHref, baseUrl );
-        }
+            String selectedHref = href;
 
-        if ( selectedHref.endsWith( "/" ) )
-        {
-            selectedHref = selectedHref.concat( "index.html" );
-        }
-        else
-        {
-            selectedHref = selectedHref.concat( "/index.html" );
-        }
-
-        return selectedHref;
-    }
+            if ( selectedHref == null )
+            {
+                selectedHref = defaultHref;
+            }
 
-    private String linkedName( String name, String link )
-    {
-        return "{" + name + ", ./" + link + "}";
-    }
+            if ( baseUrl != null )
+            {
+                selectedHref = siteTool.getRelativePath( selectedHref, baseUrl 
);
+            }
 
-    /**
-     * Gets the pom model for this file.
-     *
-     * @param pom the pom
-     *
-     * @return the model
-     */
-    private Model readModel ( File pom )
-    {
-        MavenXpp3Reader xpp3 = new MavenXpp3Reader();
-        Reader reader = null;
+            if ( selectedHref.endsWith( "/" ) )
+            {
+                selectedHref = selectedHref.concat( "index.html" );
+            }
+            else
+            {
+                selectedHref = selectedHref.concat( "/index.html" );
+            }
 
-        try
-        {
-            reader = ReaderFactory.newXmlReader( pom );
-            return xpp3.read( reader );
-        }
-        catch ( IOException io )
-        {
-            getLog().debug( io );
-            return null;
-        }
-        catch ( XmlPullParserException xe )
-        {
-            getLog().debug( xe );
-            return null;
+            return selectedHref;
         }
-        finally
+
+        private String linkedName( String name, String link )
         {
-            IOUtil.close( reader );
+            return "{" + name + ", ./" + link + "}";
         }
     }
 }

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ProjectIndexPageReport.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ProjectIndexPageReport.java?rev=1481603&r1=1481602&r2=1481603&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ProjectIndexPageReport.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ProjectIndexPageReport.java
 Sun May 12 16:53:50 2013
@@ -20,8 +20,10 @@ package org.apache.maven.report.projecti
  */
 
 import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.tools.SiteTool;
 import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.reporting.AbstractMavenReportRenderer;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.i18n.I18N;
 
 import java.util.Locale;
 
@@ -67,7 +69,8 @@ public class ProjectIndexPageReport
     public void executeReport( Locale locale )
     {
         ProjectIndexRenderer r =
-            new ProjectIndexRenderer( getName( locale ), project.getName(), 
getDescription( locale ), getSink() );
+            new ProjectIndexRenderer( project, getName( locale ), 
getDescription( locale ), getSink(),
+                                      getI18N( locale ), locale, siteTool );
 
         r.render();
     }
@@ -92,38 +95,43 @@ public class ProjectIndexPageReport
      * Internal renderer class
      */
     private static class ProjectIndexRenderer
-        extends AbstractMavenReportRenderer
+        extends ModulesReport.ModulesRenderer
     {
         private final String title;
 
         private final String description;
 
-        private final String name;
+        private boolean modules = false;
 
-        ProjectIndexRenderer( String title, String name, String description, 
Sink sink )
+        ProjectIndexRenderer( MavenProject project, String title, String 
description, Sink sink, I18N i18n,
+                              Locale locale, SiteTool siteTool )
         {
-            super( sink );
+            super( sink, project, i18n, locale, siteTool );
 
             this.title = title;
 
             this.description = description;
-
-            this.name = name;
         }
 
         @Override
         public String getTitle()
         {
-            return title;
+            return modules ? super.getTitle() : title;
         }
 
         @Override
         public void renderBody()
         {
-            startSection( title.trim() + " " + name );
+            startSection( title.trim() + " " + project.getName() );
 
             paragraph( description );
 
+            if ( !project.getModules().isEmpty() )
+            {
+                modules = true;
+                super.renderBody();
+            }
+
             endSection();
         }
     }


Reply via email to