Skip to content

Commit

Permalink
add checkstyle with commented out rules (it will be included in future)
Browse files Browse the repository at this point in the history
  • Loading branch information
KirillMakarov committed Sep 12, 2017
1 parent 0264d38 commit e8b5851
Show file tree
Hide file tree
Showing 7 changed files with 918 additions and 4 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,4 @@ maka-vlc/
/fastlane/report.xml
/fastlane/README.md

findbugs-report
reports
3 changes: 2 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
apply from: '../code_quality_tools/jacoco.gradle'
apply from: '../code_quality_tools/quality.gradle'
apply from: '../code_quality_tools/findbugs.gradle'
apply from: '../code_quality_tools/checkstyle.gradle'

def globalConf = rootProject.ext
android {
Expand Down
177 changes: 177 additions & 0 deletions code_quality_tools/checkstyle-noframes-sorted.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
<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 <[email protected]> -->
<!-- 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="file[@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="file[@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="currentName" select="@name" />
<xsl:variable name="errorCount" select="count(key('files', @name)/error)"/>
<tr>
<xsl:call-template name="alternated-row"/>
<td><a href="#f-{@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(file[@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>
22 changes: 22 additions & 0 deletions code_quality_tools/checkstyle.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
apply plugin: 'checkstyle'

checkstyle {
configFile file("${project.rootDir}/code_quality_tools/checkstyle.xml")
ignoreFailures false
showViolations true
configProperties = [
'checkstyle.cache.file': file('${project.rootDir}/reports/checkstyle/checkstyle.cache'),
]
}

task checkstyle(type: Checkstyle) {
source 'src/main', 'src/release'
include '**/*.java'
exclude '**/gen/**'
exclude '**/R.java'
exclude '**/BuildConfig.java'
reports {
html.destination "${project.rootDir}/reports/checkstyle/main.html"
}
classpath = files()
}
128 changes: 128 additions & 0 deletions code_quality_tools/checkstyle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<module name="Checker">
<!--<module name="NewlineAtEndOfFile">-->
<!--<property name="lineSeparator" value="lf" />-->
<!--</module>-->
<!--<module name="FileLength"/>-->
<!--<module name="FileTabCharacter"/>-->

<!--&lt;!&ndash; Trailing spaces &ndash;&gt;-->
<!--<module name="RegexpSingleline">-->
<!--<property name="format" value="\s+$"/>-->
<!--<property name="message" value="Line has trailing spaces."/>-->
<!--</module>-->

<!--<module name="TreeWalker">-->
<!--<property name="cacheFile" value="${checkstyle.cache.file}"/>-->

<!--&lt;!&ndash; Checks for Javadoc comments. &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_javadoc.html &ndash;&gt;-->
<!--&lt;!&ndash;module name="JavadocMethod"/&ndash;&gt;-->
<!--&lt;!&ndash;module name="JavadocType"/&ndash;&gt;-->
<!--&lt;!&ndash;module name="JavadocVariable"/&ndash;&gt;-->
<!--&lt;!&ndash;module name="JavadocStyle"/&ndash;&gt;-->


<!--&lt;!&ndash; Checks for Naming Conventions. &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_naming.html &ndash;&gt;-->
<!--<module name="ConstantName"/>-->
<!--<module name="LocalFinalVariableName"/>-->
<!--<module name="LocalVariableName"/>-->
<!--<module name="MemberName"/>-->
<!--<module name="MethodName"/>-->
<!--&lt;!&ndash;<module name="PackageName"/>&ndash;&gt;-->
<!--<module name="ParameterName"/>-->
<!--<module name="StaticVariableName"/>-->
<!--<module name="TypeName"/>-->


<!--&lt;!&ndash; Checks for imports &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_import.html &ndash;&gt;-->
<!--<module name="AvoidStarImport"/>-->
<!--<module name="IllegalImport"/> &lt;!&ndash; defaults to sun.* packages &ndash;&gt;-->
<!--<module name="RedundantImport"/>-->
<!--<module name="UnusedImports">-->
<!--<property name="processJavadoc" value="true"/>-->
<!--</module>-->


<!--&lt;!&ndash; Checks for Size Violations. &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_sizes.html &ndash;&gt;-->
<!--<module name="LineLength">-->
<!--<property name="max" value="180"/>-->
<!--</module>-->
<!--&lt;!&ndash;<module name="MethodLength"/>&ndash;&gt;-->
<!--&lt;!&ndash;module name="ParameterNumber"/&ndash;&gt;-->


<!--&lt;!&ndash; Checks for whitespace &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_whitespace.html &ndash;&gt;-->
<!--<module name="GenericWhitespace"/>-->
<!--<module name="EmptyForIteratorPad"/>-->
<!--<module name="MethodParamPad"/>-->
<!--<module name="NoWhitespaceAfter">-->
<!--<property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS"/>-->
<!--</module>-->
<!--<module name="NoWhitespaceBefore"/>-->
<!--<module name="OperatorWrap"/>-->
<!--<module name="ParenPad"/>-->
<!--<module name="TypecastParenPad"/>-->
<!--<module name="WhitespaceAfter"/>-->
<!--<module name="WhitespaceAround"/>-->


<!--&lt;!&ndash; Modifier Checks &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_modifiers.html &ndash;&gt;-->
<!--<module name="ModifierOrder"/>-->
<!--<module name="RedundantModifier"/>-->


<!--&lt;!&ndash; Checks for blocks. You know, those {}'s &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_blocks.html &ndash;&gt;-->
<!--&lt;!&ndash;module name="AvoidNestedBlocks"/&ndash;&gt;-->
<!--&lt;!&ndash;module name="EmptyBlock"/&ndash;&gt;-->
<!--<module name="LeftCurly"/>-->
<!--&lt;!&ndash;module name="NeedBraces"/&ndash;&gt;-->
<!--<module name="RightCurly"/>-->


<!--&lt;!&ndash; Checks for common coding problems &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_coding.html &ndash;&gt;-->
<!--&lt;!&ndash;module name="AvoidInlineConditionals"/&ndash;&gt;-->
<!--<module name="CovariantEquals"/>-->
<!--<module name="EmptyStatement"/>-->
<!--<module name="EqualsAvoidNull"/>-->
<!--<module name="EqualsHashCode"/>-->
<!--&lt;!&ndash;module name="HiddenField"/&ndash;&gt;-->
<!--<module name="IllegalInstantiation"/>-->
<!--&lt;!&ndash;module name="InnerAssignment"/&ndash;&gt;-->
<!--&lt;!&ndash;module name="MagicNumber"/&ndash;&gt;-->
<!--<module name="MissingSwitchDefault"/>-->
<!--<module name="SimplifyBooleanExpression"/>-->
<!--<module name="SimplifyBooleanReturn"/>-->

<!--&lt;!&ndash; Checks for class design &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_design.html &ndash;&gt;-->
<!--&lt;!&ndash;module name="DesignForExtension"/&ndash;&gt;-->
<!--&lt;!&ndash;module name="FinalClass"/&ndash;&gt;-->
<!--&lt;!&ndash;module name="HideUtilityClassConstructor"/&ndash;&gt;-->
<!--<module name="InterfaceIsType"/>-->
<!--&lt;!&ndash;module name="VisibilityModifier"/&ndash;&gt;-->


<!--&lt;!&ndash; Miscellaneous other checks. &ndash;&gt;-->
<!--&lt;!&ndash; See http://checkstyle.sf.net/config_misc.html &ndash;&gt;-->
<!--<module name="ArrayTypeStyle"/>-->
<!--&lt;!&ndash;module name="FinalParameters"/&ndash;&gt;-->
<!--&lt;!&ndash;module name="TodoComment"/&ndash;&gt;-->
<!--<module name="UpperEll"/>-->
<!--<module name="Indentation">-->
<!--<property name="basicOffset" value="2"/>-->
<!--<property name="caseIndent" value="2"/>-->
<!--</module>-->
<!--</module>-->
</module>
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ task findbugs(type: FindBugs) {
html.enabled = true
xml.enabled = false
html {
destination "${project.rootDir}/findbugs-report/findbugs-output.html"
destination "${project.rootDir}/reports/findbugs-output.html"
}
}

classes = files("${project.projectDir}/build/intermediates/classes")
classes = files("${project.rootDir}/build/intermediates/classes")
source = fileTree('src/main/java')

// If somebody has an idea how to make this work with support libraries -> open a PR please.
Expand Down
Loading

0 comments on commit e8b5851

Please sign in to comment.