Author: dennisl
Date: Tue Nov  4 22:02:20 2014
New Revision: 1636753

URL: http://svn.apache.org/r1636753
Log:
[RAT-61] List files with unapproved licenses in Maven output

Added:
    
creadur/rat/trunk/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl
      - copied, changed from r1636670, 
creadur/rat/trunk/apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl
Modified:
    creadur/rat/trunk/RELEASE_NOTES.txt
    creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Defaults.java
    
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
    
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java
    
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java

Modified: creadur/rat/trunk/RELEASE_NOTES.txt
URL: 
http://svn.apache.org/viewvc/creadur/rat/trunk/RELEASE_NOTES.txt?rev=1636753&r1=1636752&r2=1636753&view=diff
==============================================================================
--- creadur/rat/trunk/RELEASE_NOTES.txt (original)
+++ creadur/rat/trunk/RELEASE_NOTES.txt Tue Nov  4 22:02:20 2014
@@ -13,6 +13,7 @@ Rat 0.12 (SNAPSHOT)
     * [RAT-175] - SourceCodeManagementSystems.hasIgnoreFile() should return 
boolean
     * [RAT-177] - final arrays should be private
    Improvement
+    * [RAT-61]  - List files with unapproved licenses in Maven output
     * [RAT-170] - RAT should use itself during build and site generation
     * [RAT-181] - BinaryGuesser should treat *.truststore as binary
     * [RAT-184] - Add DEPENDENCIES to the list of ignored files in NoteGuesser.

Modified: 
creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Defaults.java
URL: 
http://svn.apache.org/viewvc/creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Defaults.java?rev=1636753&r1=1636752&r2=1636753&view=diff
==============================================================================
--- 
creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Defaults.java 
(original)
+++ 
creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Defaults.java 
Tue Nov  4 22:02:20 2014
@@ -67,12 +67,18 @@ public class Defaults {
                     new CDDL1License()));
     
     public static final String PLAIN_STYLESHEET = 
"org/apache/rat/plain-rat.xsl";
-    
+    public static final String UNAPPROVED_LICENSES_STYLESHEET = 
"org/apache/rat/unapproved-licenses.xsl";
+
     public static InputStream getPlainStyleSheet() {
         InputStream result = 
Defaults.class.getClassLoader().getResourceAsStream(Defaults.PLAIN_STYLESHEET);
         return result;
     }
     
+    public static InputStream getUnapprovedLicensesStyleSheet() {
+        InputStream result = 
Defaults.class.getClassLoader().getResourceAsStream(Defaults.UNAPPROVED_LICENSES_STYLESHEET);
+        return result;
+    }
+
     public static InputStream getDefaultStyleSheet() {
         InputStream result = getPlainStyleSheet();
         return result;

Copied: 
creadur/rat/trunk/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl
 (from r1636670, 
creadur/rat/trunk/apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl)
URL: 
http://svn.apache.org/viewvc/creadur/rat/trunk/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl?p2=creadur/rat/trunk/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl&p1=creadur/rat/trunk/apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl&r1=1636670&r2=1636753&rev=1636753&view=diff
==============================================================================
--- 
creadur/rat/trunk/apache-rat-core/src/main/resources/org/apache/rat/plain-rat.xsl
 (original)
+++ 
creadur/rat/trunk/apache-rat-core/src/main/resources/org/apache/rat/unapproved-licenses.xsl
 Tue Nov  4 22:02:20 2014
@@ -20,72 +20,12 @@
 <xsl:stylesheet version="1.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
 <xsl:output method='text'/>
-<xsl:template match='/'>
-*****************************************************
-Summary
--------
-Generated at: <xsl:value-of select='rat-report/@timestamp'/>
-Notes: <xsl:value-of 
select='count(descendant::type[attribute::name="notice"])'/>
-Binaries: <xsl:value-of 
select='count(descendant::type[attribute::name="binary"])'/>
-Archives: <xsl:value-of 
select='count(descendant::type[attribute::name="archive"])'/>
-Standards: <xsl:value-of 
select='count(descendant::type[attribute::name="standard"])'/>
-
-Apache Licensed: <xsl:value-of 
select='count(descendant::header-type[attribute::name="AL   "])'/>
-Generated Documents: <xsl:value-of 
select='count(descendant::header-type[attribute::name="GEN  "])'/>
-
-JavaDocs are generated and so license header is optional
-Generated files do not required license headers
-
-<xsl:value-of 
select='count(descendant::header-type[attribute::name="?????"])'/> Unknown 
Licenses
-
-*******************************
-
-Unapproved licenses:
-
+<xsl:template match='/'>Files with unapproved licenses:
 <xsl:for-each select='descendant::resource[license-approval/@name="false"]'>
   <xsl:text>  </xsl:text>
   <xsl:value-of select='@name'/>
   <xsl:text>
 </xsl:text>
 </xsl:for-each>
-*******************************
-
-Archives:
-<xsl:for-each select='descendant::resource[type/@name="archive"]'>
- + <xsl:value-of select='@name'/>
- <xsl:text>
- </xsl:text>
- </xsl:for-each>
-*****************************************************
-  Files with Apache License headers will be marked AL
-  Binary files (which do not require AL headers) will be marked B
-  Compressed archives will be marked A
-  Notices, licenses etc will be marked N
- <xsl:for-each select='descendant::resource'>
-  <xsl:choose>
-     <xsl:when test='license-approval/@name="false"'>!</xsl:when>
-     <xsl:otherwise><xsl:text> </xsl:text></xsl:otherwise>
- </xsl:choose>
- <xsl:choose>
-     <xsl:when test='type/@name="notice"'>N    </xsl:when>
-     <xsl:when test='type/@name="archive"'>A    </xsl:when>
-     <xsl:when test='type/@name="binary"'>B    </xsl:when>
-     <xsl:when test='type/@name="standard"'><xsl:value-of 
select='header-type/@name'/></xsl:when>
-     <xsl:otherwise>!!!!!</xsl:otherwise>
- </xsl:choose>
- <xsl:text> </xsl:text>
- <xsl:value-of select='@name'/>
- <xsl:text>
- </xsl:text>
- </xsl:for-each>
-*****************************************************
- Printing headers for files without AL header...
- 
- <xsl:for-each select='descendant::resource[header-type/@name="?????"]'>
-=======================================================================
-==<xsl:value-of select='@name'/>
-=======================================================================
-<xsl:value-of select='header-sample'/>
-</xsl:for-each>
 </xsl:template>
 </xsl:stylesheet>

Modified: 
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
URL: 
http://svn.apache.org/viewvc/creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java?rev=1636753&r1=1636752&r2=1636753&view=diff
==============================================================================
--- 
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
 (original)
+++ 
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
 Tue Nov  4 22:02:20 2014
@@ -40,6 +40,8 @@ import javax.xml.transform.TransformerCo
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.io.Writer;
 import java.lang.reflect.UndeclaredThrowableException;
 import java.util.ArrayList;
@@ -378,6 +380,63 @@ public abstract class AbstractRatMojo ex
     }
 
     /**
+     * Creates the report as a string.
+     *
+     * @param styleSheet The style sheet to use when formatting the report
+     * @throws MojoFailureException
+     *             An error in the plugin configuration was detected.
+     * @throws MojoExecutionException
+     *             An error occurred while creating the report.
+     * @return Report contents
+     */
+    protected String createReport( InputStream styleSheet )
+        throws MojoExecutionException, MojoFailureException
+    {
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = null;
+        try
+        {
+            pw = new PrintWriter( sw );
+            createReport( new PrintWriter( sw ), styleSheet );
+            final String result = sw.toString();
+            pw.close();
+            pw = null;
+            sw.close();
+            sw = null;
+            return result;
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( e.getMessage(), e );
+        }
+        finally
+        {
+            if ( pw != null )
+            {
+                try
+                {
+                    pw.close();
+                }
+                catch ( Throwable t )
+                {
+                    // Ignore me
+                }
+            }
+            if ( sw != null )
+            {
+                try
+                {
+                    sw.close();
+                }
+                catch ( Throwable t )
+                {
+                    // Ignore me
+                }
+            }
+        }
+    }
+
+    /**
      * Writes the report to the given stream.
      *
      * @param out

Modified: 
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java
URL: 
http://svn.apache.org/viewvc/creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java?rev=1636753&r1=1636752&r2=1636753&view=diff
==============================================================================
--- 
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java
 (original)
+++ 
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatCheckMojo.java
 Tue Nov  4 22:02:20 2014
@@ -89,6 +89,15 @@ public class RatCheckMojo extends Abstra
     @Parameter(property = "rat.ignoreErrors", defaultValue = "false")
     private boolean ignoreErrors;
 
+    /**
+     * Whether to output the names of files that have unapproved licenses to 
the
+     * console.
+     *
+     * @since 0.12
+     */
+    @Parameter(property = "rat.consoleOutput", defaultValue = "false")
+    private boolean consoleOutput;
+
     private ClaimStatistic getRawReport()
         throws MojoExecutionException, MojoFailureException
     {
@@ -181,6 +190,18 @@ public class RatCheckMojo extends Abstra
         getLog().info("Rat check: Summary of files. Unapproved: " + 
statistics.getNumUnApproved() + " unknown: " + statistics.getNumUnknown() + " 
generated: " + statistics.getNumGenerated() + " approved: " + 
statistics.getNumApproved() + " licence.");
         if ( numUnapprovedLicenses < statistics.getNumUnApproved() )
         {
+            if ( consoleOutput )
+            {
+                try
+                {
+                    getLog().warn( createReport( 
Defaults.getUnapprovedLicensesStyleSheet() ).trim() );
+                }
+                catch( MojoExecutionException e )
+                {
+                    getLog().warn( "Unable to print the files with unapproved 
licenses to the console." );
+                }
+            }
+
             final String seeReport = " See RAT report in: " + reportFile;
             if ( !ignoreErrors )
             {

Modified: 
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java
URL: 
http://svn.apache.org/viewvc/creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java?rev=1636753&r1=1636752&r2=1636753&view=diff
==============================================================================
--- 
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java
 (original)
+++ 
creadur/rat/trunk/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java
 Tue Nov  4 22:02:20 2014
@@ -22,8 +22,6 @@ package org.apache.rat.mp;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
 import java.io.Writer;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -129,61 +127,6 @@ public class RatReportMojo extends Abstr
     }
 
     /**
-     * Creates the report as a string. Currently, this string will be embedded 
verbatimly into the report document.
-     *
-     * @throws MojoFailureException
-     *             An error in the plugin configuration was detected.
-     * @throws MojoExecutionException
-     *             An error occurred while creating the report.
-     * @return Report contents
-     */
-    private String createReport() throws MojoExecutionException, 
MojoFailureException
-    {
-        StringWriter sw = new StringWriter();
-        PrintWriter pw = null;
-        try
-        {
-            pw = new PrintWriter( sw );
-            createReport( new PrintWriter( sw ), 
Defaults.getDefaultStyleSheet() );
-            final String result = sw.toString();
-            pw.close();
-            pw = null;
-            sw.close();
-            sw = null;
-            return result;
-        }
-        catch ( IOException e )
-        {
-            throw new MojoExecutionException( e.getMessage(), e );
-        }
-        finally
-        {
-            if ( pw != null )
-            {
-                try
-                {
-                    pw.close();
-                }
-                catch ( Throwable t )
-                {
-                    // Ignore me
-                }
-            }
-            if ( sw != null )
-            {
-                try
-                {
-                    sw.close();
-                }
-                catch ( Throwable t )
-                {
-                    // Ignore me
-                }
-            }
-        }
-    }
-
-    /**
      * Called from Maven to invoke the plugin.
      *
      * @throws MojoFailureException
@@ -313,7 +256,7 @@ public class RatReportMojo extends Abstr
         sink.verbatim( true );
         try
         {
-            sink.text( createReport() );
+            sink.text( createReport( Defaults.getDefaultStyleSheet() ) );
         }
         catch ( MojoExecutionException e )
         {


Reply via email to