You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by ev...@apache.org on 2005/05/07 14:03:10 UTC

svn commit: r169073 - /maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java

Author: evenisse
Date: Sat May  7 05:03:10 2005
New Revision: 169073

URL: http://svn.apache.org/viewcvs?rev=169073&view=rev
Log:
Generate reports links in menu

Modified:
    maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java

Modified: maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java?rev=169073&r1=169072&r2=169073&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java Sat May  7 05:03:10 2005
@@ -23,8 +23,12 @@
 import org.apache.maven.reporting.MavenReport;
 import org.apache.maven.reporting.MavenReportConfiguration;
 import org.codehaus.doxia.site.renderer.SiteRenderer;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringInputStream;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -124,12 +128,44 @@
                 }
             }
 
-            siteRenderer.render( siteDirectory, generatedSiteDirectory, outputDirectory, flavour );
+            File siteDescriptor = new File( siteDirectory, "site.xml" );
+            if ( !siteDescriptor.exists() )
+            {
+                throw new MojoExecutionException( "The site descriptor is not present!" );
+            }
+            String siteDescriptorContent = FileUtils.fileRead( siteDescriptor );
+            Map props = new HashMap();
+            if ( reports != null )
+            {
+                props.put( "reports", getReportsMenu() );
+            }
+            siteDescriptorContent = StringUtils.interpolate( siteDescriptorContent, props );
+            StringInputStream siteDescriptorStream = new StringInputStream( siteDescriptorContent );
+
+            siteRenderer.render( siteDirectory, generatedSiteDirectory, outputDirectory, flavour,
+                                 siteDescriptorStream );
         }
         catch ( Exception e )
         {
             // TODO: handle it better
             throw new MojoExecutionException( "Error during site generation", e );
         }
+    }
+    private String getReportsMenu()
+    {
+        StringBuffer buffer = new StringBuffer();
+        buffer.append( "<menu name=\"Project Documentation\">\n" );
+        buffer.append( "    <item name=\"About " + project.getName() + "\" href=\"/index.html\"/>\n");
+        buffer.append( "    <item name=\"Project reports\" href=\"/maven-reports.html\" collapse=\"true\">\n" );
+
+        for ( Iterator i = reports.keySet().iterator(); i.hasNext(); )
+        {
+            String reportKey = (String) i.next();
+            buffer.append( "        <item name=\"" + reportKey + "\" href=\"/" + reportKey + ".html\"/>\n" );
+        }
+
+        buffer.append( "    </item>\n" );
+        buffer.append( "</menu>\n" );
+        return buffer.toString();
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org