Author: vsiveton
Date: Tue Nov  3 13:30:02 2009
New Revision: 832410

URL: http://svn.apache.org/viewvc?rev=832410&view=rev
Log:
MSHARED-120: No single report generated with latest maven-reporting-impl

o changed the impl to be able to run single report

Modified:
    maven/shared/branches/maven-reporting-impl-2.0.4.x/pom.xml
    
maven/shared/branches/maven-reporting-impl-2.0.4.x/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java

Modified: maven/shared/branches/maven-reporting-impl-2.0.4.x/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/shared/branches/maven-reporting-impl-2.0.4.x/pom.xml?rev=832410&r1=832409&r2=832410&view=diff
==============================================================================
--- maven/shared/branches/maven-reporting-impl-2.0.4.x/pom.xml (original)
+++ maven/shared/branches/maven-reporting-impl-2.0.4.x/pom.xml Tue Nov  3 
13:30:02 2009
@@ -62,16 +62,14 @@
   </properties>
 
   <dependencies>
+    <!-- maven -->
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-project</artifactId>
       <version>${mavenVersion}</version>
     </dependency>
-    <dependency>
-      <groupId>commons-validator</groupId>
-      <artifactId>commons-validator</artifactId>
-      <version>1.2.0</version>
-    </dependency>
+
+    <!-- doxia -->
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
       <artifactId>doxia-core</artifactId>
@@ -92,6 +90,25 @@
       <artifactId>doxia-site-renderer</artifactId>
       <version>${doxiaVersion}</version>
     </dependency>
+
+    <!-- misc -->
+    <dependency>
+      <groupId>commons-validator</groupId>
+      <artifactId>commons-validator</artifactId>
+      <version>1.2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-doxia-tools</artifactId>
+      <version>1.0.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>1.5.8</version>
+    </dependency>
+
+    <!-- test -->
     <dependency>
       <groupId>junit-addons</groupId>
       <artifactId>junit-addons</artifactId>

Modified: 
maven/shared/branches/maven-reporting-impl-2.0.4.x/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
URL: 
http://svn.apache.org/viewvc/maven/shared/branches/maven-reporting-impl-2.0.4.x/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java?rev=832410&r1=832409&r2=832410&view=diff
==============================================================================
--- 
maven/shared/branches/maven-reporting-impl-2.0.4.x/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
 (original)
+++ 
maven/shared/branches/maven-reporting-impl-2.0.4.x/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
 Tue Nov  3 13:30:02 2009
@@ -20,14 +20,21 @@
  */
 
 import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.site.decoration.DecorationModel;
 import org.apache.maven.doxia.siterenderer.Renderer;
+import org.apache.maven.doxia.siterenderer.RendererException;
+import org.apache.maven.doxia.siterenderer.SiteRenderingContext;
 import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.reporting.sink.SinkFactory;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.WriterFactory;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
 import java.util.Locale;
 
 /**
@@ -58,11 +65,12 @@
     public void execute()
         throws MojoExecutionException
     {
+        SiteRendererSink sink;
         try
         {
             String outputDirectory = getOutputDirectory();
 
-            SiteRendererSink sink =
+            sink =
                 SinkFactory.createSink( new File( outputDirectory ), 
getOutputName() + ".html" );
 
             generate( sink, Locale.getDefault() );
@@ -75,6 +83,36 @@
             throw new MojoExecutionException( "An error has occurred in " + 
getName( locale ) + " report generation.",
                                               e );
         }
+
+        File outputHtml = new File( getOutputDirectory(), getOutputName() + 
".html" );
+        outputHtml.getParentFile().mkdirs();
+
+        Writer writer = null;
+        try
+        {
+            SiteRenderingContext context = new SiteRenderingContext();
+            context.setDecoration( new DecorationModel() );
+            context.setTemplateName( 
"org/apache/maven/doxia/siterenderer/resources/default-site.vm" );
+            context.setLocale( locale );
+
+            writer = WriterFactory.newXmlWriter( outputHtml );
+
+            getSiteRenderer().generateDocument( writer, sink, context );
+        }
+        catch ( RendererException e )
+        {
+            throw new MojoExecutionException( "An error has occurred in " + 
getName( Locale.ENGLISH )
+                + " report generation.", e );
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "An error has occurred in " + 
getName( Locale.ENGLISH )
+                + " report generation.", e );
+        }
+        finally
+        {
+            IOUtil.close( writer );
+        }
     }
 
     /**
@@ -100,6 +138,7 @@
 
     protected void closeReport()
     {
+        getSink().close();
     }
 
     public String getCategoryName()


Reply via email to