vmassol     2004/06/28 14:04:04

  Modified:    checkstyle/xdocs changes.xml
               checkstyle/src/plugin-resources checkstyle.jsl
               checkstyle project.xml plugin.jelly
  Added:       checkstyle/src/plugin-resources/images rss.png
               checkstyle/src/plugin-resources checkstyle2rss.jsl
  Log:
  Added first cut of a checkstyle RSS feed. There's lot to improve but I'd like to 
gather some feedback before working more on this feature. It relies on the fact that 
RSS readers cache feed data previously read thus keeping an history of the feed 
content over time.
  
  Revision  Changes    Path
  1.1                  maven-plugins/checkstyle/src/plugin-resources/images/rss.png
  
        <<Binary file>>
  
  
  1.33      +4 -1      maven-plugins/checkstyle/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/checkstyle/xdocs/changes.xml,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- changes.xml       18 May 2004 21:50:24 -0000      1.32
  +++ changes.xml       28 Jun 2004 21:04:04 -0000      1.33
  @@ -25,7 +25,10 @@
       <author email="[EMAIL PROTECTED]">Emmanuel Venisse</author>
     </properties>
     <body> 
  -    <release version="2.4.2-SNAPSHOT" date="In CVS">
  +    <release version="2.5-SNAPSHOT" date="In CVS">
  +      <action dev="vmassol" type="add">
  +        Added generation of a Checkstyle RSS feed.
  +      </action>
         <action dev="aheritier" type="fix" issue="MPCHECKSTYLE-21">Fix : Build failed 
if target directory and License file didn't exist.</action>
       </release>  
       <release version="2.4.1" date="2004-05-18">
  
  
  
  1.14      +2 -1      maven-plugins/checkstyle/src/plugin-resources/checkstyle.jsl
  
  Index: checkstyle.jsl
  ===================================================================
  RCS file: /home/cvs/maven-plugins/checkstyle/src/plugin-resources/checkstyle.jsl,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- checkstyle.jsl    21 Apr 2004 00:55:43 -0000      1.13
  +++ checkstyle.jsl    28 Jun 2004 21:04:04 -0000      1.14
  @@ -46,7 +46,8 @@
           <section name="Checkstyle Results">
             <p>
               The following document contains the results of
  -            <a href="http://checkstyle.sourceforge.net/";>Checkstyle</a>.
  +            <a href="http://checkstyle.sourceforge.net/";>Checkstyle</a>
  +            <a href="checkstyle.rss"><img src="images/rss.png"/></a>.
             </p>
           </section>
   
  
  
  
  1.1                  maven-plugins/checkstyle/src/plugin-resources/checkstyle2rss.jsl
  
  Index: checkstyle2rss.jsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>

  

  <!--

   * ========================================================================

   * 

   * 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">

  

      <rss version="0.91">

        <channel>

          <title>Checkstyle report</title> 

          <link>${pom.url}</link> 

          <description>Checkstyle report</description>

          <language>en-us</language>

          <copyright>Copyright 2004 The Apache Software Foundation</copyright>

          <item>

  

            <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>

            <j:set var="warningCount"><x:expr select="count(file/[EMAIL 
PROTECTED]'warning'])"/></j:set>

            <j:set var="errorCount"><x:expr select="count(file/[EMAIL 
PROTECTED]'error'])"/></j:set>        

  

            <title>File: ${fileCount}, Errors: ${errorCount}, Warnings: 
${warningCount}, Infos: ${infoCount}</title>

            

            <!-- If we don't go through a tmp variable Jelly inserts a space between 
${pom.url} 

                 and '/checkstyle-report.html'. Go figure... -->

            <j:set var="link" value="${pom.url}/checkstyle-report.html"/>

            

            <link>${link}</link> 

            <description>

              <p>Click <a href="${pom.url}/checkstyle-report.html">here</a> for the 
full Checkstyle report.</p>

              

            <table summary="Files" border="1">

              <thead>

                <tr>

                  <th>Files</th>

                  <th style="width:30px">I</th>

                  <th style="width:30px">W</th>

                  <th style="width:30px">E</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" 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="infoCount"><x:expr select="count($file/[EMAIL 
PROTECTED]'info'])"/></j:set>

                  <j:set var="warningCount"><x:expr select="count($file/[EMAIL 
PROTECTED]'warning'])"/></j:set>

                  <j:set var="errorCount"><x:expr select="count($file/[EMAIL 
PROTECTED]'error'])"/></j:set>

                  

                  <j:if test="${errorCount + warningCount + infoCount != 0}">

                    <tr>

                      <td>

                        <a href="${link}#${name}">${name}</a>

                      </td>

                      <td><doc:formatAsNumber string="${infoCount}" pattern="0"/></td>

                      <td><doc:formatAsNumber string="${warningCount}" 
pattern="0"/></td>

                      <td><doc:formatAsNumber string="${errorCount}" pattern="0"/></td>

                    </tr>

                  </j:if>

                </j:forEach>

              </tbody>

            </table>

              

            </description> 

          </item>

        </channel>

      </rss>

  

    </jsl:template>

  

  </jsl:stylesheet>

  
  
  
  1.51      +6 -1      maven-plugins/checkstyle/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/checkstyle/project.xml,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- project.xml       25 Jun 2004 15:24:27 -0000      1.50
  +++ project.xml       28 Jun 2004 21:04:04 -0000      1.51
  @@ -23,7 +23,7 @@
     <pomVersion>3</pomVersion>
     <id>maven-checkstyle-plugin</id>
     <name>Maven Checkstyle Plugin</name>
  -  <currentVersion>2.4.2-SNAPSHOT</currentVersion>
  +  <currentVersion>2.5-SNAPSHOT</currentVersion>
     <description/>
     <shortDescription>Produce Checkstyle report</shortDescription>
     <url>http://maven.apache.org/reference/plugins/checkstyle/</url>
  @@ -64,6 +64,11 @@
         <id>2.4.1</id>
         <name>2.4.1</name>
         <tag>MAVEN_CHECKSTYLE_2_4_1</tag>
  +    </version>
  +    <version>
  +      <id>2.5</id>
  +      <name>2.5</name>
  +      <tag>HEAD</tag>
       </version>
     </versions>
     <developers>
  
  
  
  1.27      +14 -1     maven-plugins/checkstyle/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven-plugins/checkstyle/plugin.jelly,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- plugin.jelly      18 May 2004 21:50:24 -0000      1.26
  +++ plugin.jelly      28 Jun 2004 21:04:04 -0000      1.27
  @@ -1,4 +1,5 @@
   <?xml version="1.0"?>
  +
   <!-- 
   /*
    * Copyright 2001-2004 The Apache Software Foundation.
  @@ -17,7 +18,6 @@
    */
    -->
   
  -
   <!--
     =============================================================================
       Checkstyle plugin for Maven.
  @@ -194,6 +194,19 @@
         encoding="${maven.docs.outputencoding}"
         outputMode="xml"
         prettyPrint="true"/>
  +
  +    <!-- Generate a RSS feed of the checktyle errors -->
  +    <doc:jsl
  +      input="${maven.build.dir}/checkstyle-raw-report.xml"
  +      output="checkstyle.rss"
  +      stylesheet="${plugin.resources}/checkstyle2rss.jsl"
  +      encoding="${maven.docs.outputencoding}"
  +      outputMode="xml"
  +      prettyPrint="true"/>
  +
  +    <!-- Copy the RSS XML logo -->
  +    <mkdir dir="${maven.docs.dest}"/>
  +    <copy todir="${maven.docs.dest}/images" 
file="${plugin.resources}/images/rss.png"/>
   
     </goal>
   
  
  
  

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

Reply via email to