<?xml version="1.0"?> | |
<!-- | |
/* | |
* Copyright 2001-2005 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. | |
*/ | |
--> | |
<!DOCTYPE module PUBLIC | |
"-//Puppy Crawl//DTD Check Configuration 1.1//EN" | |
"http://www.puppycrawl.com/dtds/configuration_1_1.dtd"> | |
<!-- | |
Checkstyle configuration for Struts. Struts uses the Sun coding guidelines, | |
so this file is almost the same as Maven's sun_checks.xml file. The only | |
changes from that file are: | |
- Use a RegexpHeader check instead of a regular Header check, since we use | |
the Subversion 'Id' keyword in file headers, which needs to be ignored | |
in the header check. | |
- Disable the HiddenField module, since Struts has always used the | |
"this.foo = foo" pattern, which is not recognised by this module. | |
- Disable the DesignForExtension module, since fixing those complaints | |
would result in backwards incompatible API changes. | |
- Disable the FinalParameters module, since fixing those complaints | |
would result in backwards incompatible API changes. | |
--> | |
<!-- | |
Checkstyle configuration that checks the sun coding conventions from: | |
- 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"> | |
<property name="cacheFile" value="${checkstyle.cache.file}"/> | |
<!-- Checks for Javadoc comments. --> | |
<!-- See http://checkstyle.sf.net/config_javadoc.html --> | |
<module name="JavadocMethod"/> | |
<module name="JavadocType"/> | |
<module name="JavadocVariable"/> | |
<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"/> --> | |
<module name="RegexpHeader"> | |
<property name="headerFile" value="${checkstyle.regexp.header}"/> | |
</module> | |
<!-- Checks for imports --> | |
<!-- See http://checkstyle.sf.net/config_import.html --> | |
<module name="AvoidStarImport"/> | |
<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="NoWhitespaceAfter"/> | |
<module name="NoWhitespaceBefore"/> | |
<module name="OperatorWrap"/> | |
<module name="ParenPad"/> | |
<module name="TypecastParenPad"/> | |
<module name="TabCharacter"/> | |
<module name="WhitespaceAfter"/> | |
<module name="WhitespaceAround"/> | |
<!-- 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"/> <!-- MY FAVOURITE --> | |
<module name="EmptyStatement"/> | |
<module name="EqualsHashCode"/> | |
<!-- Disabled for Struts: module name="HiddenField"/ --> | |
<module name="IllegalInstantiation"/> | |
<module name="InnerAssignment"/> | |
<module name="MagicNumber"/> | |
<module name="MissingSwitchDefault"/> | |
<module name="RedundantThrows"/> | |
<module name="SimplifyBooleanExpression"/> | |
<module name="SimplifyBooleanReturn"/> | |
<!-- Checks for class design --> | |
<!-- See http://checkstyle.sf.net/config_design.html --> | |
<!-- Disabled for Struts: module name="DesignForExtension"/ --> | |
<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"/> | |
<!-- Disabled for Struts: module name="FinalParameters"/ --> | |
<module name="GenericIllegalRegexp"> | |
<property name="format" value="\s+$"/> | |
<property name="message" value="Line has trailing spaces."/> | |
</module> | |
<module name="TodoComment"/> | |
<module name="UpperEll"/> | |
</module> | |
</module> |