added Check Errors report, to focus only on issues

git-svn-id: https://svn.apache.org/repos/asf/maven/sandbox/trunk@1716997 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dist-tools/dist-tool-plugin/pom.xml b/dist-tools/dist-tool-plugin/pom.xml
index 3d560ff..0347d9e 100644
--- a/dist-tools/dist-tool-plugin/pom.xml
+++ b/dist-tools/dist-tool-plugin/pom.xml
@@ -233,6 +233,7 @@
               <report>check-site</report>
               <report>check-source-release</report>
               <report>check-index-page</report>
+              <report>check-errors</report>
               <report>list-plugins-prerequisites</report>
             </reports>
           </reportSet>
diff --git a/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckErrorsMojo.java b/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckErrorsMojo.java
new file mode 100644
index 0000000..3b499d4
--- /dev/null
+++ b/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckErrorsMojo.java
@@ -0,0 +1,150 @@
+package org.apache.maven.dist.tools;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Locale;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.reporting.MavenReportException;
+import org.codehaus.plexus.util.FileUtils;
+
+/**
+ *
+ * @author skygo
+ */
+@Mojo( name = "check-errors", requiresProject = false )
+public class DistCheckErrorsMojo
+    extends AbstractDistCheckMojo
+{
+    private static final String[] FAILURES_FILENAMES = { DistCheckSourceReleaseMojo.FAILURES_FILENAME,
+        DistCheckSiteMojo.FAILURES_FILENAME, DistCheckIndexPageMojo.FAILURES_FILENAME };
+
+    private static final String EOL = System.getProperty( "line.separator" );
+
+    @Override
+    boolean isIndexPageCheck()
+    {
+        return false;
+    }
+
+    boolean isDummyFailure()
+    {
+        return false;
+    }
+
+    private boolean checkError( String failuresFilename )
+        throws MavenReportException
+    {
+        File failureFile = new File( failuresDirectory, failuresFilename );
+
+        try
+        {
+            if ( failureFile.exists() )
+            {
+                String content = FileUtils.fileRead( failureFile );
+
+                if ( isDummyFailure() )
+                {
+                    getLog().error( failuresFilename + " error log not empty:" + EOL + content );
+                }
+                else
+                {
+                    String failure = failuresFilename.substring( 0, failuresFilename.length() - 4 );
+                    getSink().section2();
+                    getSink().sectionTitle2();
+                    getSink().link( "dist-tool-" + failure + ".html" );
+                    getSink().text( failure );
+                    getSink().link_();
+                    getSink().sectionTitle2_();
+                    getSink().verbatim( true );
+                    getSink().rawText( content );
+                    getSink().verbatim_();
+                    getSink().section2_();
+                }
+            }
+
+            return failureFile.exists();
+        }
+        catch ( IOException ioe )
+        {
+            throw new MavenReportException( "Cannot read " + failureFile, ioe );
+        }
+    }
+
+    @Override
+    protected void executeReport( Locale locale )
+        throws MavenReportException
+    {
+        boolean failure = false;
+        // if failures log file is present, throw exception to fail build
+        for ( String failuresFilename : FAILURES_FILENAMES )
+        {
+            failure |= checkError( failuresFilename );
+        }
+
+        if ( failure )
+        {
+            if ( isDummyFailure() )
+            {
+                throw new MavenReportException( "Dist Tool> Checks found inconsistencies in some released "
+                    + "artifacts, see https://builds.apache.org/job/dist-tool-plugin/site/dist-tool-check-errors.html "
+                    + "for more information" );
+            }
+        }
+        else
+        {
+            getSink().paragraph();
+            getSink().text( "No issue found." );
+            getSink().paragraph_();
+        }
+    }
+
+    protected String getFailuresFilename()
+    {
+        return "dummy";
+    }
+
+    @Override
+    public String getOutputName()
+    {
+        return "dist-tool-check-errors";
+    }
+
+    @Override
+    public String getName( Locale locale )
+    {
+        return "Dist Tool> Check Errors";
+    }
+
+    @Override
+    public String getDescription( Locale locale )
+    {
+        return "Dist Tool report to display inconsistencies found by any check report";
+    }
+
+    @Override
+    protected void checkArtifact( ConfigurationLineInfo request, String repoBase )
+        throws MojoExecutionException
+    {
+    }
+}
diff --git a/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DummyFailureMojo.java b/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DummyFailureMojo.java
index 061bc29..90f8376 100644
--- a/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DummyFailureMojo.java
+++ b/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DummyFailureMojo.java
@@ -19,14 +19,9 @@
  * under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
 import java.util.Locale;
 
-import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.reporting.MavenReportException;
-import org.codehaus.plexus.util.FileUtils;
 
 /**
  *
@@ -34,55 +29,12 @@
  */
 @Mojo( name = "failure-report", requiresProject = false )
 public class DummyFailureMojo
-    extends AbstractDistCheckMojo
+    extends DistCheckErrorsMojo
 {
-    private static final String[] FAILURES_FILENAMES = { DistCheckSourceReleaseMojo.FAILURES_FILENAME,
-        DistCheckSiteMojo.FAILURES_FILENAME, DistCheckIndexPageMojo.FAILURES_FILENAME };
-
-    private static final String EOL = System.getProperty( "line.separator" );
-
     @Override
-    boolean isIndexPageCheck()
+    boolean isDummyFailure()
     {
-        return false;
-    }
-
-    private boolean checkFailure( String failuresFilename )
-        throws MavenReportException
-    {
-        File failureFile = new File( failuresDirectory, failuresFilename );
-
-        try
-        {
-            if ( failureFile.exists() )
-            {
-                getLog().error( failuresFilename + " error log not empty:" + EOL + FileUtils.fileRead( failureFile ) );
-            }
-
-            return failureFile.exists();
-        }
-        catch ( IOException ioe )
-        {
-            throw new MavenReportException( "Cannot read " + failureFile, ioe );
-        }
-    }
-
-    @Override
-    protected void executeReport( Locale locale )
-        throws MavenReportException
-    {
-        boolean failure = false;
-        // if failures log file is present, throw exception to fail build
-        for ( String failuresFilename : FAILURES_FILENAMES )
-        {
-            failure |= checkFailure( failuresFilename );
-        }
-
-        if ( failure )
-        {
-            throw new MavenReportException( "Dist tools check reports found inconsistencies in some released "
-                + "artifacts, see https://builds.apache.org/job/dist-tool-plugin/site/ for more information" );
-        }
+        return true;
     }
 
     protected String getFailuresFilename()
@@ -107,10 +59,4 @@
     {
         return "Dist Tool report to fail the build in case of inconsistency found by any check reports";
     }
-
-    @Override
-    protected void checkArtifact( ConfigurationLineInfo request, String repoBase )
-        throws MojoExecutionException
-    {
-    }
 }
diff --git a/dist-tools/dist-tool-plugin/src/site/markdown/index.md b/dist-tools/dist-tool-plugin/src/site/markdown/index.md
index 8bc498c..38b03ac 100644
--- a/dist-tools/dist-tool-plugin/src/site/markdown/index.md
+++ b/dist-tools/dist-tool-plugin/src/site/markdown/index.md
@@ -22,13 +22,15 @@
 
 The dist-tool-plugin checks that [Maven release process][6] has been fully applied across every artifact, as listed in [configuration file][4].
 
-Results are displayed in 3 reports:
+Results are displayed in 4 reports:
 
 * [Check Source Release][2] report, for checks about artifacts [source release publication][5],
 
 * [Check Sites][1] report, for checks about documentation sites associated to artifacts,
 
-* [Check Index page][3] report, for checks about index pages.
+* [Check Index page][3] report, for checks about index pages,
+
+* [Check Errors][8] report, to display errors found in previous checks.
 
 In addition, dist-tool-plugin provides report for some interesting information about Maven artifacts:
 
@@ -44,4 +46,4 @@
 [5]: http://maven.apache.org/developers/release/maven-project-release-procedure.html#Copy_the_source_release_to_the_Apache_Distribution_Area
 [6]: http://maven.apache.org/developers/release/releasing.html
 [7]: ./dist-tool-prerequisites.html
-
+[8]: ./dist-tool-check-errors.html
diff --git a/dist-tools/dist-tool-plugin/src/site/site.xml b/dist-tools/dist-tool-plugin/src/site/site.xml
index a3c32c9..6f76798 100644
--- a/dist-tools/dist-tool-plugin/src/site/site.xml
+++ b/dist-tools/dist-tool-plugin/src/site/site.xml
@@ -32,6 +32,7 @@
             <item name="Check Source Release" href="dist-tool-check-source-release.html" />
             <item name="Check Sites" href="dist-tool-check-site.html" />
             <item name="Check Index Pages" href="dist-tool-check-index-page.html" />
+            <item name="Check Errors" href="dist-tool-check-errors.html" />
         </menu>
         <menu name="Dist Tool Informations">
             <item name="List Plugins Prerequisites" href="dist-tool-prerequisites.html" />