You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2015/03/22 00:20:21 UTC

svn commit: r1668327 - in /maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker: AbstractInvokerMojo.java ReportUtils.java

Author: khmarbaise
Date: Sat Mar 21 23:20:21 2015
New Revision: 1668327

URL: http://svn.apache.org/r1668327
Log:
[MINVOKER-181] Create single summary file
 The summary file (invoker-summary.txt) will be created 
 in the invoker-reports folder.

Modified:
    maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java
    maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/ReportUtils.java

Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java?rev=1668327&r1=1668326&r2=1668327&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java Sat Mar 21 23:20:21 2015
@@ -20,6 +20,7 @@ package org.apache.maven.plugin.invoker;
  */
 
 import java.io.BufferedReader;
+import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -733,6 +734,44 @@ public abstract class AbstractInvokerMoj
         runBuilds( projectsDir, buildJobs );
 
         processResults( new InvokerSession( buildJobs ) );
+
+        writeSummaryFile( buildJobs );
+    }
+
+    private void writeSummaryFile( BuildJob[] buildJobs )
+        throws MojoExecutionException
+    {
+        File summaryReportFile = new File( reportsDirectory, "invoker-summary.txt" );
+
+        try
+        {
+            FileOutputStream fos = new FileOutputStream( summaryReportFile );
+            OutputStreamWriter osw = new OutputStreamWriter( fos, "UTF-8" );
+            Writer writer = new BufferedWriter( osw );
+
+            for ( int i = 0; i < buildJobs.length; i++ )
+            {
+                BuildJob buildJob = buildJobs[i];
+                writer.append( buildJob.getResult() );
+                writer.append( " [" );
+                writer.append( buildJob.getProject() );
+                writer.append( "] " );
+                if ( buildJob.getFailureMessage() != null )
+                {
+                    writer.append( " " );
+                    writer.append( buildJob.getFailureMessage() );
+                }
+                writer.append( "\n" );
+            }
+
+            writer.close();
+            osw.close();
+            fos.close();
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "Failed to write summary report " + summaryReportFile, e );
+        }
     }
 
     protected void doFailIfNoProjects()
@@ -1350,8 +1389,9 @@ public abstract class AbstractInvokerMoj
                 boolean executed;
                 try
                 {
-                    executed = runBuild( basedir, interpolatedPomFile, settingsFile, actualJavaHome,
-                                         invokerProperties );
+                    //CHECKSTYLE_OFF: LineLength
+                    executed = runBuild( basedir, interpolatedPomFile, settingsFile, actualJavaHome, invokerProperties );
+                    //CHECKSTYLE_ON: LineLength
                 }
                 finally
                 {

Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/ReportUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/ReportUtils.java?rev=1668327&r1=1668326&r2=1668327&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/ReportUtils.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/ReportUtils.java Sat Mar 21 23:20:21 2015
@@ -20,6 +20,7 @@ package org.apache.maven.plugin.invoker;
  */
 
 import java.io.File;
+import java.io.FilenameFilter;
 
 /**
  * Provides utility methods for invoker report processing.
@@ -29,6 +30,17 @@ import java.io.File;
 class ReportUtils
 {
 
+    private static class FileFilterOnlyXmlFile
+        implements FilenameFilter
+    {
+
+        public boolean accept( File dir, String name )
+        {
+            return name.endsWith( ".xml" );
+        }
+
+    }
+
     /**
      * Gets the paths to the invoker reports available in the specified directory.
      * 
@@ -37,7 +49,8 @@ class ReportUtils
      */
     public static File[] getReportFiles( File reportsDirectory )
     {
-        File[] reportFiles = ( reportsDirectory != null ) ? reportsDirectory.listFiles() : null;
+        File[] reportFiles =
+            ( reportsDirectory != null ) ? reportsDirectory.listFiles( new FileFilterOnlyXmlFile() ) : null;
 
         if ( reportFiles == null )
         {