Author: olga
Date: Thu Mar 12 00:32:55 2009
New Revision: 752727

URL: http://svn.apache.org/viewvc?rev=752727&view=rev
Log:
PIG-711: Implement checkstyle for pig (gkesavan via olgan)

Added:
    hadoop/pig/trunk/test/checkstyle-noframes-sorted.xsl
    hadoop/pig/trunk/test/checkstyle.xml
Modified:
    hadoop/pig/trunk/CHANGES.txt
    hadoop/pig/trunk/build.xml

Modified: hadoop/pig/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=752727&r1=752726&r2=752727&view=diff
==============================================================================
--- hadoop/pig/trunk/CHANGES.txt (original)
+++ hadoop/pig/trunk/CHANGES.txt Thu Mar 12 00:32:55 2009
@@ -470,3 +470,6 @@
     olgan)
 
     PIG-703: user documentation (chandec vi olgan)
+
+    PIG-711: Implement checkstyle for pig (gkesavan via olgan)
+

Modified: hadoop/pig/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/hadoop/pig/trunk/build.xml?rev=752727&r1=752726&r2=752727&view=diff
==============================================================================
--- hadoop/pig/trunk/build.xml (original)
+++ hadoop/pig/trunk/build.xml Thu Mar 12 00:32:55 2009
@@ -515,4 +515,32 @@
        </java>
     </target>
 
+    <target name="checkstyle" depends="checkstyle.check, 
set-checkstyle-classpath" if="checkstyle.home" 
+                       description="Run optional third-party tool targets">
+       <taskdef resource="checkstyletask.properties">
+                       <classpath refid="classpath"/>
+               <classpath refid="checkstyle-classpath"/>
+        </taskdef>
+        <mkdir dir="${test.build.dir}"/>
+        <checkstyle config="${test.src.dir}/checkstyle.xml" 
failOnViolation="false">
+               <fileset dir="${src.dir}" includes="**/*.java" 
excludes="**/generated/**"/>
+               <formatter type="xml" 
toFile="${test.build.dir}/checkstyle-errors.xml"/>
+        </checkstyle>
+        <xslt style="${test.src.dir}/checkstyle-noframes-sorted.xsl" 
in="${test.build.dir}/checkstyle-errors.xml"
+               out="${test.build.dir}/checkstyle-errors.html"/>
+    </target>
+
+    <target name="checkstyle.check" unless="checkstyle.home">
+       <fail message="'checkstyle.home' is not defined. Please pass 
-Dcheckstyle.home=&lt;base of checkstyle installation&gt; 
+               to Ant on the command-line." />
+    </target>
+    
+    <target name="set-checkstyle-classpath">
+       <path id="checkstyle-classpath">
+               <fileset dir="${checkstyle.home}">
+                       <include name="**/*.jar"/>
+               </fileset>
+       </path>
+    </target>  
+
 </project>

Added: hadoop/pig/trunk/test/checkstyle-noframes-sorted.xsl
URL: 
http://svn.apache.org/viewvc/hadoop/pig/trunk/test/checkstyle-noframes-sorted.xsl?rev=752727&view=auto
==============================================================================
--- hadoop/pig/trunk/test/checkstyle-noframes-sorted.xsl (added)
+++ hadoop/pig/trunk/test/checkstyle-noframes-sorted.xsl Thu Mar 12 00:32:55 
2009
@@ -0,0 +1,178 @@
+<xsl:stylesheet        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
+<xsl:output method="html" indent="yes"/>
+<xsl:decimal-format decimal-separator="." grouping-separator="," />
+
+<xsl:key name="files" match="file" use="@name" />
+
+<!-- Checkstyle XML Style Sheet by Stephane Bailliez <sbaill...@apache.org>    
     -->
+<!-- Part of the Checkstyle distribution found at 
http://checkstyle.sourceforge.net -->
+<!-- Usage (generates checkstyle_report.html):                                 
     -->
+<!--    <checkstyle failonviolation="false" config="${check.config}">          
     -->
+<!--      <fileset dir="${src.dir}" includes="**/*.java"/>                     
     -->
+<!--      <formatter type="xml" toFile="${doc.dir}/checkstyle_report.xml"/>    
     -->
+<!--    </checkstyle>                                                          
     -->
+<!--    <style basedir="${doc.dir}" destdir="${doc.dir}"                       
     -->
+<!--            includes="checkstyle_report.xml"                               
     -->
+<!--            style="${doc.dir}/checkstyle-noframes-sorted.xsl"/>            
     -->
+
+<xsl:template match="checkstyle">
+       <html>
+               <head>
+               <style type="text/css">
+    .bannercell {
+      border: 0px;
+      padding: 0px;
+    }
+    body {
+      margin-left: 10;
+      margin-right: 10;
+      font:normal 80% arial,helvetica,sanserif;
+      background-color:#FFFFFF;
+      color:#000000;
+    }
+    .a td {
+      background: #efefef;
+    }
+    .b td {
+      background: #fff;
+    }
+    th, td {
+      text-align: left;
+      vertical-align: top;
+    }
+    th {
+      font-weight:bold;
+      background: #ccc;
+      color: black;
+    }
+    table, th, td {
+      font-size:100%;
+      border: none
+    }
+    table.log tr td, tr th {
+
+    }
+    h2 {
+      font-weight:bold;
+      font-size:140%;
+      margin-bottom: 5;
+    }
+    h3 {
+      font-size:100%;
+      font-weight:bold;
+      background: #525D76;
+      color: white;
+      text-decoration: none;
+      padding: 5px;
+      margin-right: 2px;
+      margin-left: 2px;
+      margin-bottom: 0;
+    }
+               </style>
+               </head>
+               <body>
+                       <a name="top"></a>
+      <!-- jakarta logo -->
+      <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr>
+        <td class="bannercell" rowspan="2">
+          <!--a href="http://jakarta.apache.org/";>
+          <img src="http://jakarta.apache.org/images/jakarta-logo.gif"; 
alt="http://jakarta.apache.org"; align="left" border="0"/>
+          </a-->
+        </td>
+               <td class="text-align:right"><h2>CheckStyle Audit</h2></td>
+               </tr>
+               <tr>
+               <td class="text-align:right">Designed for use with <a 
href='http://checkstyle.sourceforge.net/'>CheckStyle</a> and <a 
href='http://jakarta.apache.org'>Ant</a>.</td>
+               </tr>
+      </table>
+       <hr size="1"/>
+
+                       <!-- Summary part -->
+                       <xsl:apply-templates select="." mode="summary"/>
+                       <hr size="1" width="100%" align="left"/>
+
+                       <!-- Package List part -->
+                       <xsl:apply-templates select="." mode="filelist"/>
+                       <hr size="1" width="100%" align="left"/>
+
+                       <!-- For each package create its part -->
+            <xsl:apply-templates select="fi...@name and generate-id(.) = 
generate-id(key('files', @name))]" />
+
+                       <hr size="1" width="100%" align="left"/>
+
+
+               </body>
+       </html>
+</xsl:template>
+
+
+
+       <xsl:template match="checkstyle" mode="filelist">
+               <h3>Files</h3>
+               <table class="log" border="0" cellpadding="5" cellspacing="2" 
width="100%">
+      <tr>
+        <th>Name</th>
+        <th>Errors</th>
+      </tr>
+          <xsl:for-each select="fi...@name and generate-id(.) = 
generate-id(key('files', @name))]">
+                <xsl:sort data-type="number" order="descending" 
select="count(key('files', @name)/error)"/>
+                               <xsl:variable name="errorCount" 
select="count(error)"/>
+                               <tr>
+          <xsl:call-template name="alternated-row"/>
+                                       <td><a href="#...@name}"><xsl:value-of 
select="@name"/></a></td>
+                                       <td><xsl:value-of 
select="$errorCount"/></td>
+                               </tr>
+                       </xsl:for-each>
+               </table>
+       </xsl:template>
+
+
+       <xsl:template match="file">
+    <a name="f...@name}"></a>
+    <h3>File <xsl:value-of select="@name"/></h3>
+
+    <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
+       <tr>
+         <th>Error Description</th>
+         <th>Line</th>
+      </tr>
+        <xsl:for-each select="key('files', @name)/error">
+          <xsl:sort data-type="number" order="ascending" select="@line"/>
+       <tr>
+        <xsl:call-template name="alternated-row"/>
+         <td><xsl:value-of select="@message"/></td>
+         <td><xsl:value-of select="@line"/></td>
+       </tr>
+       </xsl:for-each>
+    </table>
+    <a href="#top">Back to top</a>
+       </xsl:template>
+
+
+       <xsl:template match="checkstyle" mode="summary">
+               <h3>Summary</h3>
+        <xsl:variable name="fileCount" select="count(fi...@name and 
generate-id(.) = generate-id(key('files', @name))])"/>
+               <xsl:variable name="errorCount" select="count(file/error)"/>
+               <table class="log" border="0" cellpadding="5" cellspacing="2" 
width="100%">
+               <tr>
+                       <th>Files</th>
+                       <th>Errors</th>
+               </tr>
+               <tr>
+                 <xsl:call-template name="alternated-row"/>
+                       <td><xsl:value-of select="$fileCount"/></td>
+                       <td><xsl:value-of select="$errorCount"/></td>
+               </tr>
+               </table>
+       </xsl:template>
+
+  <xsl:template name="alternated-row">
+    <xsl:attribute name="class">
+      <xsl:if test="position() mod 2 = 1">a</xsl:if>
+      <xsl:if test="position() mod 2 = 0">b</xsl:if>
+    </xsl:attribute>
+  </xsl:template>
+</xsl:stylesheet>
+
+

Added: hadoop/pig/trunk/test/checkstyle.xml
URL: 
http://svn.apache.org/viewvc/hadoop/pig/trunk/test/checkstyle.xml?rev=752727&view=auto
==============================================================================
--- hadoop/pig/trunk/test/checkstyle.xml (added)
+++ hadoop/pig/trunk/test/checkstyle.xml Thu Mar 12 00:32:55 2009
@@ -0,0 +1,170 @@
+<?xml version="1.0"?>
+<!DOCTYPE module PUBLIC
+    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd";>
+
+<!--
+
+  Checkstyle configuration for Hadoop that is based on the sun_checks.xml file
+  that is bundled with Checkstyle and includes checks for:
+
+    - the Java Language Specification at
+      http://java.sun.com/docs/books/jls/second_edition/html/index.html
+
+    - the Sun Code Conventions at http://java.sun.com/docs/codeconv/
+
+    - the Javadoc guidelines at
+      http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
+
+    - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
+
+    - some best practices
+
+  Checkstyle is very configurable. Be sure to read the documentation at
+  http://checkstyle.sf.net (or in your downloaded distribution).
+
+  Most Checks are configurable, be sure to consult the documentation.
+
+  To completely disable a check, just comment it out or delete it from the 
file.
+
+  Finally, it is worth reading the documentation.
+
+-->
+
+<module name="Checker">
+
+    <!-- Checks that a package.html file exists for each package.     -->
+    <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
+    <module name="PackageHtml"/>
+
+    <!-- Checks whether files end with a new line.                        -->
+    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
+    <!-- module name="NewlineAtEndOfFile"/-->
+
+    <!-- Checks that property files contain the same keys.         -->
+    <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
+    <module name="Translation"/>
+
+
+    <module name="TreeWalker">
+
+        <!-- Checks for Javadoc comments.                     -->
+        <!-- See http://checkstyle.sf.net/config_javadoc.html -->
+        <module name="JavadocType">
+          <property name="scope" value="public"/>
+          <property name="allowMissingParamTags" value="true"/>
+        </module>
+        <module name="JavadocStyle"/>
+
+        <!-- Checks for Naming Conventions.                  -->
+        <!-- See http://checkstyle.sf.net/config_naming.html -->
+        <module name="ConstantName"/>
+        <module name="LocalFinalVariableName"/>
+        <module name="LocalVariableName"/>
+        <module name="MemberName"/>
+        <module name="MethodName"/>
+        <module name="PackageName"/>
+        <module name="ParameterName"/>
+        <module name="StaticVariableName"/>
+        <module name="TypeName"/>
+
+
+        <!-- Checks for Headers                                -->
+        <!-- See http://checkstyle.sf.net/config_header.html   -->
+        <!-- <module name="Header">                            -->
+            <!-- The follow property value demonstrates the ability     -->
+            <!-- to have access to ANT properties. In this case it uses -->
+            <!-- the ${basedir} property to allow Checkstyle to be run  -->
+            <!-- from any directory within a project. See property      -->
+            <!-- expansion,                                             -->
+            <!-- http://checkstyle.sf.net/config.html#properties        -->
+            <!-- <property                                              -->
+            <!--     name="headerFile"                                  -->
+            <!--     value="${basedir}/java.header"/>                   -->
+        <!-- </module> -->
+
+        <!-- Following interprets the header file as regular expressions. -->
+        <!-- <module name="RegexpHeader"/>                                -->
+
+
+        <!-- Checks for imports                              -->
+        <!-- See http://checkstyle.sf.net/config_import.html -->
+        <module name="IllegalImport"/> <!-- defaults to sun.* packages -->
+        <module name="RedundantImport"/>
+        <module name="UnusedImports"/>
+
+
+        <!-- Checks for Size Violations.                    -->
+        <!-- See http://checkstyle.sf.net/config_sizes.html -->
+        <module name="FileLength"/>
+        <module name="LineLength"/>
+        <module name="MethodLength"/>
+        <module name="ParameterNumber"/>
+
+
+        <!-- Checks for whitespace                               -->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+        <module name="EmptyForIteratorPad"/>
+        <module name="MethodParamPad"/>
+        <module name="NoWhitespaceAfter"/>
+        <module name="NoWhitespaceBefore"/>
+        <module name="ParenPad"/>
+        <module name="TypecastParenPad"/>
+        <module name="TabCharacter"/>
+        <module name="WhitespaceAfter">
+               <property name="tokens" value="COMMA, SEMI"/>
+               </module>
+
+
+        <!-- Modifier Checks                                    -->
+        <!-- See http://checkstyle.sf.net/config_modifiers.html -->
+        <module name="ModifierOrder"/>
+        <module name="RedundantModifier"/>
+
+
+        <!-- Checks for blocks. You know, those {}'s         -->
+        <!-- See http://checkstyle.sf.net/config_blocks.html -->
+        <module name="AvoidNestedBlocks"/>
+        <module name="EmptyBlock"/>
+        <module name="LeftCurly"/>
+        <module name="NeedBraces"/>
+        <module name="RightCurly"/>
+
+
+        <!-- Checks for common coding problems               -->
+        <!-- See http://checkstyle.sf.net/config_coding.html -->
+        <!-- module name="AvoidInlineConditionals"/-->
+        <module name="DoubleCheckedLocking"/>
+        <module name="EmptyStatement"/>
+        <module name="EqualsHashCode"/>
+        <module name="HiddenField">
+          <property name="ignoreConstructorParameter" value="true"/>
+        </module>
+        <module name="IllegalInstantiation"/>
+        <module name="InnerAssignment"/>
+        <module name="MissingSwitchDefault"/>
+        <module name="RedundantThrows"/>
+        <module name="SimplifyBooleanExpression"/>
+        <module name="SimplifyBooleanReturn"/>
+
+        <!-- Checks for class design                         -->
+        <!-- See http://checkstyle.sf.net/config_design.html -->
+        <module name="FinalClass"/>
+        <module name="HideUtilityClassConstructor"/>
+        <module name="InterfaceIsType"/>
+        <module name="VisibilityModifier"/>
+
+
+        <!-- Miscellaneous other checks.                   -->
+        <!-- See http://checkstyle.sf.net/config_misc.html -->
+        <module name="ArrayTypeStyle"/>
+        <module name="Indentation">
+            <property name="basicOffset" value="4" />
+            <property name="caseIndent" value="0" />
+        </module> 
+        <module name="TodoComment"/>
+        <module name="UpperEll"/>
+
+    </module>
+
+</module>


Reply via email to