Author: carlos
Date: Wed Jun  8 21:59:16 2005
New Revision: 189706

URL: http://svn.apache.org/viewcvs?rev=189706&view=rev
Log:
Generate reports filtered by severity

Added:
    
maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle_severity_filter.jsl
Modified:
    maven/maven-1/plugins/trunk/checkstyle/plugin.jelly
    maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle.jsl
    maven/maven-1/plugins/trunk/checkstyle/xdocs/changes.xml

Modified: maven/maven-1/plugins/trunk/checkstyle/plugin.jelly
URL: 
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/checkstyle/plugin.jelly?rev=189706&r1=189705&r2=189706&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/checkstyle/plugin.jelly (original)
+++ maven/maven-1/plugins/trunk/checkstyle/plugin.jelly Wed Jun  8 21:59:16 2005
@@ -27,7 +27,9 @@
   xmlns:j="jelly:core"
   xmlns:ant="jelly:ant"
   xmlns:util="jelly:util"
-  xmlns:doc="doc">
+  xmlns:doc="doc"
+  xmlns:define="jelly:define"
+  xmlns:checkstyle="checkstyle">
 
   <!--
      ========================================================================
@@ -194,6 +196,11 @@
       outputMode="xml"
       prettyPrint="true"/>
 
+    <!-- Generate filtered pages for each severity level -->
+    <checkstyle:report-filtered severity="error"/>
+    <checkstyle:report-filtered severity="warning"/>
+    <checkstyle:report-filtered severity="info"/>
+
     <!-- Generate a RSS feed of the checktyle errors -->
     <doc:jsl
       input="${maven.build.dir}/checkstyle-raw-report.xml"
@@ -234,5 +241,26 @@
       <doc:deregisterReport name="Checkstyle"/>
     </j:if>
   </goal>
+
+
+  <!-- Generate a report filtering errors by severity -->
+
+  <define:taglib uri="checkstyle">
+
+    <define:tag name="report-filtered">
+      <!-- @severity: severity for which to generate the report -->
+
+      <echo>Generating report for severity ${severity}...</echo>
+    
+    <doc:jsl
+      input="${maven.build.dir}/checkstyle-raw-report.xml"
+      output="checkstyle-report-${severity}.xml"
+      stylesheet="${plugin.resources}/checkstyle_severity_filter.jsl"
+      encoding="${maven.docs.outputencoding}"
+      outputMode="xml"
+      prettyPrint="true"/>
+    </define:tag>
+
+  </define:taglib>
 
 </project>

Modified: 
maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle.jsl
URL: 
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle.jsl?rev=189706&r1=189705&r2=189706&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle.jsl 
(original)
+++ maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle.jsl 
Wed Jun  8 21:59:16 2005
@@ -51,6 +51,16 @@
           </p>
         </section>
 
+        <section name="Errors filtered by severity">
+          <p>
+            <ul>
+              <li><a href="checkstyle-report-error.html">Error</a></li>
+              <li><a href="checkstyle-report-warning.html">Warning</a></li>
+              <li><a href="checkstyle-report-info.html">Info</a></li>
+            </ul>
+          </p>
+        </section>
+
         <section name="Summary">
           <j:set var="fileCount"><x:expr select="count(file)"/></j:set>
           <j:set var="infoCount"><x:expr select="count(file/[EMAIL 
PROTECTED]'info'])"/></j:set>

Added: 
maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle_severity_filter.jsl
URL: 
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle_severity_filter.jsl?rev=189706&view=auto
==============================================================================
--- 
maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle_severity_filter.jsl
 (added)
+++ 
maven/maven-1/plugins/trunk/checkstyle/src/plugin-resources/checkstyle_severity_filter.jsl
 Wed Jun  8 21:59:16 2005
@@ -0,0 +1,177 @@
+<?xml version="1.0"?>
+
+<!--
+ * ========================================================================
+ * 
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ * 
+ * ========================================================================
+-->
+
+<jsl:stylesheet
+  select="$doc"
+  xmlns:j="jelly:core"
+  xmlns:jsl="jelly:jsl"
+  xmlns:util="jelly:util"
+  xmlns:x="jelly:xml"
+  xmlns:doc="doc"
+  xmlns="dummy" trim="true">
+
+  <!-- This needs to be instantiated here to be available in the template 
matches -->
+  <j:useBean var="mavenTool" class="org.apache.maven.util.MavenTool"/>
+  <j:useBean var="htmlescape" class="org.apache.velocity.anakia.Escape"/>
+  <j:useBean var="fileutil" class="org.apache.velocity.texen.util.FileUtil"/>
+  <j:useBean var="pathtool" class="org.apache.maven.util.DVSLPathTool"/>
+
+  <jsl:template match="checkstyle">
+    <document>
+
+      <properties>
+        <title>Checkstyle errors in severity ${severity}</title>
+      </properties>
+
+
+      <!-- TODO find a better way to do this -->
+      <j:choose>
+        <j:when test="${severity.equalsIgnoreCase('error')}">
+          <x:set var="severity" select="'error'"/>
+        </j:when>
+        <j:when test="${severity.equalsIgnoreCase('warning')}">
+          <x:set var="severity" select="'warning'"/>
+        </j:when>
+        <j:when test="${severity.equalsIgnoreCase('info')}">
+          <x:set var="severity" select="'info'"/>
+        </j:when>
+        <j:otherwise>
+        </j:otherwise>
+      </j:choose>
+
+
+      <body>
+        <section name="Checkstyle Errors">
+          <p>
+            The following document contains the results of
+            <a href="http://checkstyle.sourceforge.net/";>Checkstyle</a>
+            <a href="checkstyle.rss"><img src="images/rss.png"/></a>
+            for severity ${severity}.
+          </p>
+        </section>
+
+        <section name="Summary">
+          <j:set var="fileCount"><x:expr select="count(file)"/></j:set>
+          <j:set var="errorCount"><x:expr select="count(file/[EMAIL 
PROTECTED])"/></j:set>        
+          <table summary="Report summary">
+            <thead>
+              <tr>
+                <th>Files</th>
+                <th style="width:75px">Errors</th>
+              </tr>
+            </thead>
+            <tbody>
+              <tr>
+                <td><doc:formatAsNumber string="${fileCount}" 
pattern="0"/></td>
+                <td><doc:formatAsNumber string="${errorCount}" 
pattern="0"/></td>
+              </tr>
+            </tbody>
+          </table>
+        </section>
+
+        <section name="Files">
+          <table summary="Files">
+            <thead>
+              <tr>
+                <th>Files</th>
+                <th style="width:30px">Errors</th>
+              </tr>
+            </thead>
+            <tbody>
+              <j:set var="fullSrcDir" value="${pom.build.sourceDirectory}"/>
+              <j:set var="srcDir" 
value="${fileutil.file(fullSrcDir).getCanonicalPath()}"/>
+              <j:set var="srcDirLength" value="${srcDir.length() + 1}"/>
+              <x:set var="files" select="file[./[EMAIL PROTECTED]" 
sort="@name"/>
+              <!-- x:forEach is busted -->
+              <j:forEach var="file" items="${files}">
+                <!-- Type coercion doesn't work worth a fuck in jexl. -->
+                <j:set var="name" 
value="${file.attribute('name').getValue()}"/>
+                <j:set var="name" 
value="${name.substring(mavenTool.toInteger(srcDirLength.toString()))}"/>
+                <util:replace var="name" value="${name}" oldChar="\\" 
newChar="/"/>
+                <!--- +1 is for the trailing slash above -->
+                <j:set var="errorCount"><x:expr select="count($file/[EMAIL 
PROTECTED])"/></j:set>
+                
+                <j:if test="${errorCount != 0}">
+                  <tr>
+                    <td>
+                      <a href="#${name}">${name}</a>
+                    </td>
+                    <td><doc:formatAsNumber string="${errorCount}" 
pattern="0"/></td>
+                  </tr>
+                </j:if>
+              </j:forEach>
+            </tbody>
+          </table>
+
+          <j:forEach var="file" items="${files}">
+            <x:set var="errorCount" select="count($file/[EMAIL PROTECTED])"/>
+            <j:if test="${errorCount != 0}">
+              <j:set var="name" value="${file.attribute('name').getValue()}"/>
+              <j:set var="name" 
value="${name.substring(mavenTool.toInteger(srcDirLength.toString()))}"/>
+              <util:replace var="name" value="${name}" oldChar="\\" 
newChar="/"/>
+              
+              <subsection name="${name}">
+                <table summary="Error details for ${name}">
+                  <thead>
+                    <tr>
+                      <th colspan="2">Error</th>                   
+                      <th style="width:20px">Line</th>
+                    </tr>
+                  </thead>
+                  <x:set var="errors" select="$file/[EMAIL PROTECTED]"/>
+                  <j:forEach var="error" items="${errors}">
+                    <tbody>
+                      <tr>
+                        <td style="width:20px">
+                          <img src="images/icon_${severity}_sml.gif" 
width="15" height="15" alt="Error" />
+                        </td>  
+                        <td>
+                          <j:set var="errorMessage" 
value="${error.attribute('message').getValue()}"/>
+                          ${htmlescape.getText(errorMessage)}
+                        </td>                    
+                        <td>
+                          <j:set var="line" 
value="${error.attribute('line').getValue()}"/>
+                          <j:set var="lastIndex" 
value="${name.lastIndexOf('.java')}"/>
+                          <j:choose>
+                            <j:when test="${lastIndex > 0}">
+                              <j:set var="index" 
value="${mavenTool.toInteger(lastIndex.toString())}"/>
+                              <j:set var="nameWithoutJavaExtension" 
value="${name.substring(0, index)}"/>
+                              <util:replace var="nameWithoutJavaExtension" 
value="${nameWithoutJavaExtension}" oldChar="\\" newChar="/"/>
+                              <a 
href="xref/${nameWithoutJavaExtension}.html#${line}">${line}</a>
+                            </j:when>
+                            <j:otherwise>
+                              ${line}
+                            </j:otherwise>
+                          </j:choose>
+                        </td>
+                      </tr>
+                    </tbody>
+                  </j:forEach>
+                </table>
+              </subsection>
+            </j:if>
+          </j:forEach>
+        </section>
+      </body>
+    </document>
+  </jsl:template>
+</jsl:stylesheet>

Modified: maven/maven-1/plugins/trunk/checkstyle/xdocs/changes.xml
URL: 
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/checkstyle/xdocs/changes.xml?rev=189706&r1=189705&r2=189706&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/checkstyle/xdocs/changes.xml (original)
+++ maven/maven-1/plugins/trunk/checkstyle/xdocs/changes.xml Wed Jun  8 
21:59:16 2005
@@ -26,6 +26,7 @@
   </properties>
   <body>
     <release version="3.0-SNAPSHOT" date="in SVN">
+      <action dev="carlos" type="add">Generate reports filtered by 
severity</action>
       <action dev="carlos" type="update">Support for Java5</action>
       <action dev="carlos" type="update">Upgraded to checkstyle 4.0</action>
       <action dev="carlos" type="fix" issue="MPCHECKSTYLE-29">Fixed MemberName 
rule in Turbine checkstyle rules</action>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to