| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <document xmlns="http://maven.apache.org/XDOC/2.0" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> |
| |
| <head> |
| <title>Old Release Notes</title> |
| <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"/> |
| <script type="text/javascript" src="js/anchors.js"/> |
| <script type="text/javascript" src="js/google-analytics.js"/> |
| <link rel="icon" href="images/favicon.png" type="image/x-icon" /> |
| <link rel="shortcut icon" href="images/favicon.ico" type="image/ico" /> |
| </head> |
| |
| <body> |
| <section name="Release 5.7"> |
| <p>New features:</p> |
| <ul> |
| <li> |
| Support |
| <a href="config_filters.html#SuppressWarningsFilter">SuppressWarningsFilter</a> |
| to use <code>@SuppressWarnings</code> annotations to suppress |
| violations. Thanks to Trevor Robinson for patch #156. |
| </li> |
| <li> |
| New: UniqueProperties check. Thanks to Pavel Baranchikov. <a href="https://github.com/checkstyle/checkstyle/pull/19">#19</a> |
| </li> |
| <li> |
| Support for '&' in nested generics. Thanks to <a |
| href="https://github.com/dkomanov">dkomanov</a>. |
| </li> |
| <li> |
| Allow HeaderCheck definition to be specified as URL. Thanks to |
| tnarake. |
| </li> |
| <li> |
| Allow additional URL schemes for SuppressionFilter |
| configuration. Thanks to tnarake. |
| </li> |
| </ul> |
| <p>Bug fixes:</p> |
| <ul> |
| <li> |
| added support for a separate throws indentation configuration |
| </li> |
| <li> |
| SuppressionCommentFilter ignores messageFormat. Patch from Chris Brigham. |
| </li> |
| <li> |
| Exclude some java.util classes from Class Fan out. Thanks to Ivan Sopov and Vincent Massol.<a href="https://github.com/checkstyle/checkstyle/issues/31">#31</a> |
| </li> |
| <li> |
| Allow to ignore java.lang and certain other classes. Thanks to Ivan Sopov and Vincent Massol.<a href="https://github.com/checkstyle/checkstyle/issues/33">#33</a> |
| </li> |
| <li> |
| RequireThisCheck doesn't check methods. Thanks to krzyk.<a href="https://github.com/checkstyle/checkstyle/issues/41">#41</a> |
| </li> |
| <li> |
| Document WhitespaceAround for-each property. Thanks to Andrew Gaul.<a href="https://github.com/checkstyle/checkstyle/pull/15">#15</a> |
| </li> |
| <li> |
| Other corrections for typos. Thanks to Andrew Gaul.<a href="https://github.com/checkstyle/checkstyle/pull/16">#16</a> |
| </li> |
| <li> |
| Remnants of DoubleCheckedLocking were removed. Thanks to Antonio Ospite. |
| </li> |
| </ul> |
| <p>Notes:</p> |
| <ul> |
| <li> |
| Improved the performance of FileText construction, which |
| increased file loading times by up to 30%. |
| </li> |
| <li> |
| Upgraded dependencies to guava-jdk5 14.0.1 and JUnit 4.11. |
| </li> |
| <li> |
| partial fix for "Sonarqube found problems in Checkstyle" <a href="https://github.com/checkstyle/checkstyle/issues/46">#46</a>. |
| </li> |
| <li> |
| Remnants of DoubleCheckedLocking were removed. Thanks to |
| Antonio Ospite. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 5.6"> |
| <p>New features:</p> |
| <ul> |
| <li> |
| <a href="config_filters.html#SuppressionFilter">SuppressionFilter</a> |
| now supports loading a configuration from a URL |
| reference. Thanks to Stephen for patch #3485185. |
| </li> |
| </ul> |
| <p>Bug fixes:</p> |
| <ul> |
| <li> |
| Fixed bug in the grammar for an edge case (bug |
| #1667137). Thanks to Lukas Platinsky for patch #3393810. |
| </li> |
| <li> |
| <a href="config_coding.html#DeclarationOrder">DeclarationOrder</a> |
| handles ignoreModifiers correctly (all fields should be before |
| ctors and methods)(bug #3429775) |
| </li> |
| <li> |
| <a href="config_coding.html#InnerAssignment">Inner assignment</a> |
| is now allowed in try-with-resources (bug #3441097) |
| </li> |
| <li> |
| Fixed bug in the grammar when builtin types are used in a |
| generic declaration (bug #3553541). |
| </li> |
| </ul> |
| <p>Notes:</p> |
| <ul> |
| <li> |
| Removed the <code>DoubleCheckedLocking</code> check, as in Java 5 |
| (and beyond), using the <code>volatile</code> keyword addresses |
| the issue. See |
| <a href="http://jeremymanson.blogspot.com.au/2008/05/double-checked-locking.html">here</a> |
| for more details. |
| </li> |
| <li> |
| Added Turkish message translations. Thanks to poyrazus |
| for patch #3460908. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 5.5"> |
| <p>New features:</p> |
| <ul> |
| <li> |
| Added Java 7 support to the grammar. Thanks to Dinesh |
| Bolkensteyn for patch #3403265. |
| </li> |
| </ul> |
| <p>Bug fixes:</p> |
| <ul> |
| <li> |
| Fix parsing error <code>unexpected char: 0xFFFF</code> which was |
| triggered when a comment line is on a line without newline character. |
| Thanks to Evgeny Mandrikov for patch #3367782. |
| </li> |
| <li> |
| Fixed <a href="config_imports.html#UnusedImports">UnusedImports</a> |
| to consider @linkplain, @throws and @exception tags when the option |
| <code>processJavadoc</code> is turned on. |
| </li> |
| <li> |
| <a href="config_coding.html#RequireThis">RequireThis</a> now |
| ignores static members (bug #1155921). |
| </li> |
| <li> |
| <a href="config_coding.html#HiddenField">HiddenField</a> now |
| treats setxYz() as a setter for xYz, and setXYz() as a setter for |
| XYz property to comply JavaBeans specification (bug #3370946). |
| </li> |
| <li> |
| Fixed parsing errors for Unicode escape sequences. Thanks to |
| Dinesh Bolkensteyn for patch #3412812. |
| </li> |
| <li> |
| ignoreEnhancedForColon property added to |
| <a href="config_whitespace.html#WhitespaceAround">WhitespaceAround</a>. |
| Thanks to Travis Schneeberger for patch #1921815 (bug #1649038). |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 5.4"> |
| <p>New features:</p> |
| <ul> |
| <li> |
| Enhanced <a href="config_imports.html#UnusedImports">UnusedImports</a> |
| to have the option <code>processJavadoc</code> to detect whether |
| imports are used. Thanks to Lyle Hanson for patch #3267984. |
| </li> |
| <li> |
| Enhanced <a href="config_coding.html#MagicNumber">MagicNumber</a> |
| to support ignoring numbers in annotation declarations. Thanks to |
| Julio Cesar Cabral for patch #3132984. |
| </li> |
| <li> |
| Enhanced |
| <a href="config_coding.html#EqualsAvoidNull">EqualsAvoidNull</a> |
| to process <code>String.equalsIgnoreCase()</code> |
| invocations (which can be suppressed). |
| </li> |
| <li> |
| Enhanced |
| <a href="config_coding.html#IllegalThrows">IllegalThrows</a> |
| to support ignoring methods with specified names. Thanks to |
| Amit Shah for patch #3115439. |
| </li> |
| <li> |
| Enhanced |
| <a href="config_modifier.html#RedundantModifier">RedundantModifier</a> |
| to support detecting inner <code>interface</code> declarations that |
| are declared as <code>static</code>. Raised in bug #3222810. |
| </li> |
| <li> |
| Enhanced the <a href="anttask.html#Parameters">ANT task</a>, |
| <a href="cmdline.html#Command_line_usage">Command Line</a> and |
| <a href="config_filters.html#SuppressionFilter">Suppression Filter</a> to be |
| able to load their configuration file from either the filesystem or |
| the classpath as a resource. Thanks to Tracy Snell for patch #3307526. |
| </li> |
| </ul> |
| <p>Bug fixes:</p> |
| <ul> |
| <li> |
| Fix |
| <a href="config_coding.html#MultipleVariableDeclarations">MultipleVariableDeclarations</a> |
| to properly handle when multiple variable declarations are inside a |
| for loop initializer. Thanks to Amit Shah for patch #3121071. |
| </li> |
| <li> |
| Fix memory leak in FileContentsHolder. Thanks to Evgeny Mandrikov |
| for patch #3323517. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 5.3"> |
| <p>New features:</p> |
| <ul> |
| <li> |
| Added <a href="config_misc.html#OuterTypeFilename">OuterTypeFilename</a> |
| that checks that the outer type name and the file name match. |
| For example, the class <code>Foo</code> must be in a file named |
| <code>Foo.java</code>. |
| </li> |
| <li> |
| Enhanced |
| <a href="config_coding.html#PackageDeclaration">PackageDeclaration</a> |
| to optionally check that the package name matches the name of the |
| directory containing the file. |
| </li> |
| <li> |
| Added <a href="config_coding.html#NestedForDepth">NestedForDepth</a> |
| that restricts nested <code>for</code> blocks to a specified |
| depth (default = 1). Thanks to Alexander Jesse for patch |
| #1151673. |
| </li> |
| <li> |
| Added <a href="config_sizes.html#MethodCount">MethodCount</a> |
| that checks the number of methods declared in each type. This |
| includes the number of each scope (<code>private</code>, |
| <code>package</code>, <code>protected</code> and |
| <code>public</code>) as well as an overall total. Thanks to |
| Alexander Jesse for patch #1151669, which was the inspiration. |
| </li> |
| <li> |
| Added <a href="config_coding.html#OneStatementPerLine">OneStatementPerLine</a> |
| that checks there is only one statement per line. Thanks to |
| Alexander Jesse for patch #1144994, which was the inspiration. |
| </li> |
| <li> |
| Enhanced <a href="config_coding.html#MagicNumber">MagicNumber</a> |
| to support the parameter <code>ignoreHashCodeMethod</code> to ignore |
| magic numbers in <code>hashCode()</code> methods. Thanks to |
| Daniel Solano Gómez for patch #3050788. |
| </li> |
| <li> |
| Enhanced |
| <a href="config_naming.html#AbstractClassName">AbstractClassName</a> |
| to support checking that matching classes have the |
| <code>abstract</code> modifier. Thanks to Danil Lopatin for |
| patch #3043752. |
| </li> |
| <li> |
| Enhanced the property types |
| <a href="property_types.html#stringSet">stringSet</a> and |
| <a href="property_types.html#intSet">intSet</a> to support being |
| supplied multiple times to construct the equivalent of a comma |
| separated list. |
| </li> |
| <li> |
| Enhanced |
| <a href="config_imports.html#AvoidStarImport">AvoidStarImport</a> |
| to support the properties <code>allowClassImports</code> and |
| <code>allowStaticMemberImports</code> for finer control over |
| what is allowed. Thanks to Travis Schneeberger for patch |
| #1939775. |
| </li> |
| </ul> |
| <p>Bug fixes:</p> |
| <ul> |
| <li> |
| Fix <a href="config_javadoc.html#JavadocMethod">JavadocMethod</a> |
| checking of <code>@throws</code> tags for methods that throw multiple |
| non-runtime exceptions. Thanks to Daan Kets for patch #3039869. |
| </li> |
| <li> |
| Fix |
| <a href="config_design.html#HideUtilityClassConstructor">HideUtilityClassConstructor</a> |
| to handle empty and inner classes. Thanks to Roman Ivanov for |
| patch #3045720. |
| </li> |
| </ul> |
| <p>Notes:</p> |
| <ul> |
| <li> |
| Changed the default value of the property <code>logLoadErrors</code> |
| to be <code>true</code> for the checks |
| RedundantThrows and |
| <a href="config_javadoc.html#JavadocMethod">JavadocMethod</a> to |
| ensure consistent behaviour. |
| </li> |
| </ul> |
| </section> |
| <section name="Release 5.2"> |
| <p>New features:</p> |
| <ul> |
| <li> |
| Enhanced <a href="config_coding.html#DeclarationOrder">DeclarationOrder</a> |
| to support properties to ignore constructors, methods and modifiers. |
| Thanks to Steve McKay for patch #2953941. |
| </li> |
| <li> |
| Enhanced <a href="config_javadoc.html#WriteTag">WriteTag</a> |
| to support empty tags, and constructor declarations. |
| Thanks to Rolf Wojtech for patch #2724894. |
| </li> |
| <li> |
| Added <a |
| href="config_design.html#InnerTypeLast">InnerTypeLast</a> to |
| check nested (internal) classes/interfaces are declared at the |
| bottom of the class after all method and field declarations. |
| Thanks to Ruslan Dyachenko for patch #3027391. |
| </li> |
| <li> |
| Enhanced <a href="config_imports.html#ImportOrder">ImportOrder</a> |
| to support using regular expressions for defining groups. |
| Thanks to Martin von Gagern for patch #2782118. |
| </li> |
| </ul> |
| <p>Bug fixes:</p> |
| <ul> |
| <li> |
| Fixed <a href="config_imports.html#ImportOrder">ImportOrder</a> |
| to have the sort behaviour as in release 5.0. (bug #2952881). |
| Thanks to Steve McKay for patch #2953936. |
| </li> |
| <li> |
| Fixed <a href="config_javadoc.html#JavadocStyle">JavadocStyle</a> |
| not handling package declarations that have annotations. |
| (bug #2911363) |
| </li> |
| </ul> |
| <p>Notes:</p> |
| <ul> |
| <li> |
| Converted the build system to |
| <a href="http://maven.apache.org/">Maven</a>. The directory structure |
| has been maintained for now, rather than adopting Maven's |
| <a href="http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html"> |
| standard directory layout |
| </a>. This will change once Maven has been <i>proven</i>. |
| </li> |
| <li> |
| The Maven <code><groupId></code> changed to be |
| <code>com.puppycrawl.tools</code> (from <code>checkstyle</code>). |
| </li> |
| <li> |
| Introduced |
| <a href="apidocs/com/puppycrawl/tools/checkstyle/api/FileText.html"> |
| FileText |
| </a> |
| to provide more flexibility on how the contents of a file are |
| represented. This allows for Checkers that wish to operate on |
| a single character sequence instead of a list of lines. |
| Thanks to Martin von Gagern for patch #2783226. |
| </li> |
| <li> |
| Updated third party dependencies to the latest versions. See |
| <a href="dependencies.html">Project Dependencies</a> for details. |
| </li> |
| <li> |
| Made the method EmptyBlockCheck.hasText(DetailAST) as |
| <code>protected</code> so that it is accessible to subclasses. |
| Requested by Steve McKay. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 5.1"> |
| <p>New features:</p> |
| <ul> |
| <li> |
| Enhanced <a href="config_imports.html#ImportOrder">ImportOrder</a> |
| check to support wildcard ('*') groups. |
| Thanks to Steve McKay for patch #2891032. |
| </li> |
| <li> |
| Enhanced the naming checks |
| <a href="config_naming.html">ConstantName</a>, |
| <a href="config_naming.html">MemberName</a>, |
| <a href="config_naming.html">MethodName</a> |
| and <a href="config_naming.html">StaticVariableName</a> |
| to utilise the access control tuning features |
| of AbstractAccessControlNameCheck. Thanks to Steve McKay for patch |
| #2893581. |
| </li> |
| <li> |
| Improve ConfigurationLoader to use a InputSource. Thanks to |
| Martin von Gagern for patch #2782627. |
| </li> |
| <li> |
| Enhanced the |
| <a href="config_imports.html#ImportControl">ImportControl</a> check |
| to support regular expressions. Thanks to lbaeumer for patch |
| #2937442. |
| </li> |
| </ul> |
| <p>Bug fixes:</p> |
| <ul> |
| <li> |
| Corrected build errors on javadoc generation. |
| Thanks to Martin von Gagern for providing a patch (patch #2782630). |
| </li> |
| <li> |
| Corrected javadoc in TokenTypes class for UNARY_PLUS and UNARY_MINUS |
| members (bug #2745145). |
| </li> |
| <li> |
| Corrected broken link in WhiteSpaceAround documentation |
| (bug #2745287). |
| </li> |
| <li> |
| Corrected pad policy documentation for MethodParamPad (bug #2775402). |
| </li> |
| <li> |
| Added correct license information for referenced source files |
| (bug #2778850). |
| </li> |
| <li> |
| Updated documentation for writing checks (bug #2783451). |
| </li> |
| <li> |
| Report unused Javadoc tags with no trailing whitespace(bug #2506962). |
| Thanks to Ashlesha Patil for patch #2781021. |
| </li> |
| <li> |
| Enhanced <a href="config_javadoc.html#JavadocType">JavadocType</a> |
| check to handle and report on unknown Javadoc tags. |
| The property allowUnknownTags can be set to ignore errors. |
| (bug #2882261) |
| </li> |
| </ul> |
| <p>Notes:</p> |
| <ul> |
| <li> |
| <i>Updated dependencies</i>: Updated Google collections to version |
| 1.0. |
| </li> |
| <li> |
| <i>Updated documentation</i>: Added links for 3rd party tools. |
| </li> |
| </ul> |
| </section> |
| <section name="Release 5.0"> |
| <p> |
| Release 5.0 is not 100% backwardly compatible with release |
| 4.4. Most likely you will need to update your configuration |
| file. |
| </p> |
| <p>The following checks were added since release 4.4:</p> |
| <ul> |
| <li><a href="config_annotation.html#AnnotationUseStyle">AnnotationUseStyle</a></li> |
| <li><a href="config_annotation.html#MissingDeprecated">MissingDeprecated</a></li> |
| <li><a href="config_annotation.html#MissingOverride">MissingOverride</a></li> |
| <li><a href="config_annotation.html#PackageAnnotation">PackageAnnotation</a></li> |
| <li><a href="config_annotation.html#SuppressWarnings">SuppressWarnings</a></li> |
| <li><a href="config_coding.html#EqualsAvoidNull">EqualsAvoidNull</a></li> |
| <li><a href="config_coding.html#NoClone">NoClone</a></li> |
| <li><a href="config_coding.html#NoFinalizer">NoFinalizer</a></li> |
| <li><a href="config_imports.html#AvoidStaticImport">AvoidStaticImport</a></li> |
| <li><a href="config_javadoc.html#JavadocPackage">JavadocPackage</a></li> |
| <li><a href="config_naming.html#ClassTypeParameterName">ClassTypeParameterName</a></li> |
| <li><a href="config_naming.html#MethodTypeParameterName">MethodTypeParameterName</a></li> |
| <li><a href="config_regexp.html#RegexpMultiline">RegexpMultiline</a></li> |
| <li><a href="config_regexp.html#RegexpSingleline">RegexpSingleline</a></li> |
| <li><a href="config_regexp.html#RegexpSinglelineJava">RegexpSinglelineJava</a></li> |
| <li><a href="config_sizes.html#OuterTypeNumber">OuterTypeNumber</a></li> |
| <li><a href="config_whitespace.html#FileTabCharacter">FileTabCharacter</a></li> |
| <li><a href="config_whitespace.html#GenericWhitespace">GenericWhitespace</a></li> |
| </ul> |
| <p> |
| Since release 4.4 the following checks were changed from a Check |
| to a FileSetCheck: |
| </p> |
| <ul> |
| <li><a href="config_header.html#Header">Header</a></li> |
| <li><a href="config_header.html#RegexpHeader">RegexpHeader</a></li> |
| <li><a href="config_sizes.html#FileLength">FileLength</a></li> |
| </ul> |
| <p> |
| This means that the checks above must not be declared under the |
| TreeWalker module anymore. For example, the following Checkstyle |
| 4.4 configuration file: |
| </p> |
| <source> |
| <module name="Checker"> |
| <module name="TreeWalker"> |
| <module name="Header"> |
| <property name="headerFile" value="${checkstyle.header.file}"/> |
| </module> |
| </module> |
| </module> |
| </source> |
| |
| <p>becomes the following Checkstyle 5.0 configuration file:</p> |
| <source> |
| <module name="Checker"> |
| <module name="Header"> |
| <property name="headerFile" value="${checkstyle.header.file}"/> |
| <property name="fileExtensions" value="java"/> |
| </module> |
| </module> |
| </source> |
| <p>The following checks were removed since release 4.4:</p> |
| <ul> |
| <li> |
| GenericIllegalRegexpCheck - replaced with <a |
| href="config_regexp.html#RegexpMultiline">RegexpMultiline</a> |
| and <a |
| href="config_regexp.html#RegexpSingleline">RegexpSingleline</a> |
| and <a |
| href="config_regexp.html#RegexpSinglelineJava">RegexpSinglelineJava</a>. |
| </li> |
| <li> |
| RequiredRegexpCheck - replaced with <a |
| href="config_regexp.html#RegexpMultiline">RegexpMultiline</a> |
| and <a |
| href="config_regexp.html#RegexpSingleline">RegexpSingleline</a> |
| and <a |
| href="config_regexp.html#RegexpSinglelineJava">RegexpSinglelineJava</a>. |
| </li> |
| <li> |
| CrossLanguageRegexpHeaderCheck - replaced with |
| <a href="config_header.html#RegexpHeader">RegexpHeader</a>. |
| </li> |
| <li> |
| PackageHtmlCheck - replaced with |
| <a href="config_javadoc.html#JavadocPackage">JavadocPackage</a>. |
| </li> |
| <li>All the J2EE checks.</li> |
| </ul> |
| <p>New Features since release 5.0 Beta 2:</p> |
| <ul> |
| <li> |
| New Annotation checks |
| <a href="config_annotation.html#AnnotationUseStyle">AnnotationUseStyle</a> |
| <a href="config_annotation.html#MissingDeprecated">MissingDeprecated</a> |
| <a href="config_annotation.html#MissingOverride">MissingOverride</a> |
| <a href="config_annotation.html#PackageAnnotation">PackageAnnotation</a> |
| <a href="config_annotation.html#SuppressWarnings">SuppressWarnings</a> |
| . Big thanks to Travis Schneeberger who is now a committer on the |
| project. |
| </li> |
| </ul> |
| <p>Fixed Bugs since release 5.0 Beta 2:</p> |
| <ul> |
| <li> |
| <a href="config_coding.html#RequireThis">RequireThis</a> |
| reported a violation when using an annotation |
| with a member name that is the same as a member name in the enclosing |
| class the annotation was used in (bug #2123003). |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 5.0 Beta 2"> |
| <p> |
| Major change to FileSetCheck architecture to move the |
| functionality of open/reporting of files into Checker. The |
| advantages are: |
| </p> |
| <ul> |
| <li> |
| Reduces the logic required in each implementation of FileSetCheck |
| </li> |
| <li> |
| Reduces, but not eliminates, the number of times a file is |
| reported as being audited. |
| </li> |
| <li> |
| Reduces the amount of times a file needs to be read in from |
| the file system. |
| </li> |
| </ul> |
| <p> |
| The motivation for this change is to convert checks that are |
| language neutral in nature, to be based on FileSetCheck. This |
| allows the checks to be used for other languages apart from |
| Java. As a practical example, it is possible to ensure that JSP |
| and XML files do not contain tabs. |
| </p> |
| <p>New Features:</p> |
| <ul> |
| <li> |
| Added the option <i>charset</i> to the |
| <a href="config_header.html">header checks</a> to allow |
| controlling the encoding of the header file (rfe 1952641). |
| </li> |
| <li> |
| New check |
| <a href="config_sizes.html#OuterTypeNumber">OuterTypeNumber</a> |
| for enforcing the maximum number of outer types per file. Inspired |
| by patch #1145023 from Alexander Jesse. |
| </li> |
| <li> |
| Added the option <i>sumTokenCounts</i> to the <a |
| href="config_misc.html#DescendantToken">DescendantToken</a> to |
| allow for even more powerful checks. For example, detect |
| statements like <code>this == null</code>. |
| </li> |
| <li> |
| Add new options to the <a |
| href="config_imports.html#ImportOrder">ImportOrderCheck</a> |
| to make it more flexible. Thanks to David Didier for providing |
| patch #1854213. |
| </li> |
| <li> |
| New check <a |
| href="config_whitespace.html#FileTabCharacter">FileTabCharacter</a> |
| for ensuring that any files does not contain a tab |
| character. It replaces <i>TabCharacterCheck</i> which was |
| restricted to Java files. |
| </li> |
| <li> |
| Changed <a href="config_sizes.html#FileLength">FileLength</a> |
| check to be a FileSetCheck. |
| </li> |
| <li> |
| Changed <a |
| href="config_header.html#RegexpHeader">RegexpHeader</a> and <a |
| href="config_header.html#Header">Header</a> to be a |
| FileSetCheck. Removed CrossLanguageRegexpHeader as a result. |
| </li> |
| <li> |
| Enhanced <a |
| href="config_javadoc.html#JavadocStyle">JavadocStyle</a> to |
| check for allowed HTML tags. Thanks to Nicolas Dordet for |
| providing patch #2214251. |
| </li> |
| <li> |
| Enhanced <a |
| href="config_javadoc.html#JavadocMethod">JavadocMethod</a> to |
| be more restrictive on where <code>{@inheritDoc}</code> can be |
| used. Also enhanced <a |
| href="config_javadoc.html#JavadocPackage">JavadocPackage</a> |
| to ensure a <code>package-info.java</code> file contains a |
| comment. Thanks to Travis Schneeberger for providing patch |
| #2294029. |
| </li> |
| <li> |
| Added the <a href="config.html#Filters">SuppressWithNearbyCommentFilter</a> |
| filter that uses nearby comments to suppress audit events. Thanks |
| to Mick Killianey for providing patch #2354424. |
| </li> |
| <li> |
| Added the new checks <a |
| href="config_regexp.html#RegexpMultiline">RegexpMultiline</a> |
| <a |
| href="config_regexp.html#RegexpSingleline">RegexpSingleline</a> |
| <a |
| href="config_regexp.html#RegexpSinglelineJava">RegexpSinglelineJava</a>. |
| </li> |
| </ul> |
| |
| <p>Fixed Bugs:</p> |
| <ul> |
| <li> |
| The NCSS complexity checker reported an incorrect fileMax value |
| (bug #2161419). |
| </li> |
| |
| <li> |
| Checkstyle command-line no longer reports a usage error if the |
| user specifies a directory with the <i>-r</i> option that does |
| not contain any files. Thanks to Florian for patch #2151706. |
| </li> |
| <li> |
| Fixed the <a href="config_blocks.html#LeftCurly">LeftCurly</a> check |
| to ignore leading annotations. Thanks to Tim Carpenter for patch |
| #2506439. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 5.0 Beta 1"> |
| <p> |
| The 5.x release is developed using Java 5 and requires a Java 5 |
| platform to run. If you need run a Java 1.4 or earlier, then use |
| a Checkstyle 4.x release. As such, features for earlier versions |
| of Java will be dropped over time. |
| </p> |
| |
| <p>New Features:</p> |
| <ul> |
| <li> |
| New check <a |
| href="config_coding.html#NoFinalizer">NoFinalizer</a> |
| for ensuring that a class does not define a finalize() method. |
| Thanks to Feng Qian and Steve McKay for providing patch #1892273. |
| </li> |
| <li> |
| New check <a |
| href="config_whitespace.html#GenericWhitespace">GenericWhitespace</a> |
| for ensuring the whitespace around the Generic tokens < and |
| > are correct to the <i>typical</i> convention. |
| </li> |
| <li> |
| New check <a |
| href="config_javadoc.html#JavadocPackage">JavadocPackage</a> |
| for ensuring that each Java package has a Javadoc |
| comment. Replaces the check PackageHtml which has been |
| removed. (Bug 1228207) |
| </li> |
| <li> |
| Enhanced the <a |
| href="config_javadoc.html#JavadocMethod">JavadocMethod</a> |
| check to not require Javadoc if the method is tagged with the |
| <code>@Override</code> annotation. |
| </li> |
| <li> |
| New check <a |
| href="config_coding.html#EqualsAvoidNull">EqualsAvoidNull</a> |
| for ensuring that String literals is on the left side of an |
| <code>equals()</code> comparison. Thanks to |
| Travis Schneeberger for providing patch #1895152. |
| </li> |
| <li> |
| Overhaul of how the package names to be prefixed to module |
| names are determined. See the <a |
| href="config.html#Packages">documentation</a> for full |
| details. This has meant removing a supported parameter to the |
| ANT task and the Command line. Thanks to Lars Koedderitzsch |
| for patch #1914806. |
| </li> |
| <li> |
| New check <a |
| href="config_imports.html#AvoidStaticImport">AvoidStaticImport</a> |
| for ensuring there are no static import statements. Thanks to |
| Travis Schneeberger for providing patch #1940611. |
| </li> |
| <li> |
| Enhanced the <a href="config_naming.html">MethodName</a> check |
| to detect when a method name is the same as the residing class |
| name. Thanks to Travis Schneeberger for providing patch |
| #1892364. |
| </li> |
| <li> |
| New check <a href="config_coding.html#NoClone">NoClone</a> for |
| ensuring a class does not override the <code>clone</code> method from |
| the <code>Object</code> class. Thanks to Travis |
| Schneeberger for providing patch #1947417. |
| </li> |
| <li> |
| New checks <a href="config_naming.html#ClassTypeParameterName"> |
| ClassTypeParameterName</a> and |
| <a href="config_naming.html#MethodTypeParameterName"> |
| MethodTypeParameterName</a> |
| for type name formats. Thanks to Travis Schneeberger for providing |
| patch #1956561. |
| </li> |
| <li> |
| Overhaul of how <code>AbstractOptionCheck</code> works. |
| It now requires that the option type is a Java 5 Enum and hence the |
| <code>AbstractOption</code> class has been removed. |
| </li> |
| <li> |
| Provide support in the module configuration to allow for custom |
| messages that override the default message. This allows for |
| messages to be easily overridden. |
| See <a href="config.html#Custom_messages">Custom Messages</a> for |
| more information. Thanks to Lars Koedderitzsch for providing patch |
| #1917420. |
| </li> |
| </ul> |
| |
| <p>Fixed Bugs:</p> |
| <ul> |
| <li> |
| Stop the WhitespaceAroundCheck from checking the Generic |
| tokens < and >. |
| </li> |
| <li> |
| Fixed bug with incorrectly flagging an import as being |
| unused. Bug 1860424, but as a consequence reintroduced bug |
| 1098126. It is a catch-22 that both bugs can be solved with |
| the current architecture. |
| </li> |
| <li> |
| Fixed bug #1649020 where generic parameters for methods |
| recognized as HTML tags. Used patch #1936389 from Travis |
| Schneeberger. |
| </li> |
| </ul> |
| |
| <p>Notes:</p> |
| <ul> |
| <li> |
| <i>Retired</i> the J2EE Checks. If you are using Java 5, then you |
| really should be using |
| <a href="http://www.oracle.com/technetwork/java/javaee/overview/index.html">Java EE</a>. If you need |
| these checks, then use a Checkstyle 4.x release. |
| </li> |
| <li> |
| Applied patch #1892253 to expand access controls to other naming |
| checks. |
| </li> |
| <li> |
| Applied patch #1993103 to make the format of end of sentence |
| configurable in the |
| <a href="config_javadoc.html#JavadocStyle">JavadocStyle</a> |
| check. |
| </li> |
| <li> |
| <i>Updated dependencies</i>: Removed commons-collections; added Google collections |
| (google-collect-snapshot-20080321.jar); upgraded commons-cli to version 1.1. |
| </li> |
| <li> |
| Changed the classes <code>Scope</code> and |
| <code>SeverityLevel</code> to be based on the Java 5 |
| <code>Enum</code> class. Used patch #2004776 from Travis |
| Schneeberger. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 4.4"> |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li> |
| checkstyle-all.jar contained some classes from jakarta |
| commons-collections twice. (bug 1630361) |
| </li> |
| <li> |
| Multiple string literal check now ignores annotations by |
| default (bug 1560940). It is possible to retain the old |
| behaviour by setting the new check property |
| ignoreOccurrenceContext to an empty value. |
| </li> |
| <li> |
| The calculated value of NPath complexity was subject to |
| integer overflow, so complex code was not always flagged (bug |
| 1654769). |
| </li> |
| <li> |
| Fixed misleading documentation for BooleanExpressionComplexity |
| check (bug 1579227). |
| </li> |
| <li> |
| Fixed Java parser error for array brackets in wildcard generic |
| types (bug 1394014). Thanks to Paul Constantinides for |
| submitting the fix (patch 1422247). |
| </li> |
| <li> |
| Fixed false alarm in HideUtilityClassConstructor check when class |
| has only static methods but contains non static fields (bug 1762702). |
| </li> |
| </ul> |
| |
| <p>New features:</p> |
| |
| <ul> |
| <li> |
| Allow to control the operator token types in |
| BooleanExpressionComplexity check (in response to bug |
| 1579227). |
| </li> |
| <li> |
| Added an entry for <tt>Checkstyle-IDEA</tt> on the home page. |
| </li> |
| <li> |
| Set the <tt>failureProperty</tt> with a meaningful message |
| (feature request 1725475). |
| </li> |
| <li> |
| Add a URL option for ImportControl check. Thanks to Benjamin |
| Lerman for the patch 1724683. |
| </li> |
| <li> |
| Moved source control over to Subversion. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 4.3"> |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li> |
| The StrictDuplicateCode check didn't report correct results when |
| multiple duplicate code regions were overlapping. (bug 1564465) |
| </li> |
| <li> |
| Fixed NPE in FallThrough check (bug 1472228) |
| </li> |
| <li> |
| Fixed typo in Command Line example (bug 1464595) |
| </li> |
| <li> |
| RegexpHeader check now correctly report problematic line in |
| file with regexps for header (bug 1455575) |
| </li> |
| <li> |
| Fixed small problem in usage checks (patch 1498920). Thanks |
| to Chris Povirk (cpovirk) for submitting the patch. |
| </li> |
| <li> |
| Fixed incorrect French translation (bug 1611403). Thanks to |
| Fabien Bergeret for providing the correct value. |
| </li> |
| </ul> |
| |
| <p>New features:</p> |
| |
| <ul> |
| <li> |
| Major performance improvements in the StrictDuplicateCode check, |
| especially for large projects. Also, false alarms are no longer |
| possible. |
| </li> |
| <li> |
| New CrossLanguageRegexpHeader check that allows checking file headers |
| for other languages than Java. |
| </li> |
| <li> |
| Applied patch 1586411 from Dennis Lundberg (dennislundberg) to |
| add Maven POM files to the build. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 4.2"> |
| <p>New features:</p> |
| |
| <ul> |
| <li> |
| NoWhitespaceAfter check now accepts TYPECAST token to check is |
| there is no whitespace after typecast. (rfe 1248106). |
| </li> |
| <li> |
| IllegalType can be configured to accept some abstract classes |
| which matches to regexp of illegal type names (property |
| legalAbstractClassNames, rfe 953266). Thanks to Paul Guyot |
| (pguyot) for submitting patch. |
| </li> |
| <li> |
| TrailingComment now can be configured to accept some trailing |
| comments (such as NOI18N) (property legalComment, rfe |
| 1385344). |
| </li> |
| <li> |
| Added WriteTag check which outputs a JavaDoc tag as |
| information (patch 902110) Thanks to Daniel Grenner (dgrenner) |
| for contribution. |
| </li> |
| <li> |
| Support for suppressing audit events based on an identifier |
| that is assigned to individual modules/checks. This allows for |
| suppressing at a finer level than the check class |
| name. See <a href="config.html#Filters">SuppressionFilter</a> |
| documentation for more. |
| </li> |
| |
| <li> |
| Added the style sheet checkstyle-frames.xsl, thanks to Paul |
| King. (Bug 1385095). |
| </li> |
| |
| <li> |
| Applied patch (1505376) by Clint Stotesbery to support the |
| suppressLoadErrors property for AbstractTypeAwareCheck (RFE |
| 1491630). |
| </li> |
| |
| <li> |
| Upgraded to ANTLR 2.7.6. |
| </li> |
| |
| <li> |
| GUI now displays a TextArea with the contents of the file |
| parsed. Based on patch from sermojohn (RFE 1499180). |
| </li> |
| </ul> |
| |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li> |
| First attempt to fix 1000092 (RightCurlyCheck misbehaves for |
| LIT_CATCH). The check has been rewritten to check rcurly |
| after finally and else. Current behavior is incompatible |
| with previous one. |
| </li> |
| <li> |
| Fixed problem in type aware checks with loading |
| inner-classes which were referenced as |
| <outer_class_name>.<inner_class_name> (bug |
| 1379666, modules JavadocMethod and RedundantThrows). |
| </li> |
| <li> |
| Fix UTF-8 encoding error in XMLLogger. (bug 1369589). |
| </li> |
| <li> |
| The new property logLoadErrors of the JavaDocMethod check |
| now allows controlling the behaviour when checkstyle cannot |
| load a class that is referenced in javadoc (bug 1422462). |
| </li> |
| <li> |
| Tighten up the allowed use of the {@inheritDoc} tag. |
| </li> |
| <li> |
| Stop creating duplicate regular expression patterns. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 4.1"> |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li> |
| Documentation for JavadocMethod check corrected to indicate |
| that after fix for 1290379 javadoc which contains only @see |
| tag is not valid any more (bug 1369615) |
| </li> |
| <li> |
| Fixed StackOverflowError in GenericIllegalRegexp check |
| which may occur if ignoreComments is true and there is an |
| illegal match in comment at the end of line. (bug 1371588) |
| </li> |
| <li> |
| InnerAssignment now ignores assignments in annotations. (bug |
| 1369425) |
| </li> |
| <li> |
| Applied patch from Ralf (rakus) to remove javadoc's |
| complaints. (patch 1352862) |
| </li> |
| <li> |
| Fixed StringIndexOutOfBoundsException which MethodParamPad may |
| throws if someone tries to create object of generic class |
| (with any params) (bug 1374792). |
| </li> |
| <li> |
| Added information to the manifest file. (bug 1380322). |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 4.0"> |
| <p>New features:</p> |
| |
| <ul> |
| <li> |
| Applied patch 1344344 by sjq to provide the new |
| <a href="http://checkstyle.sourceforge.net/config_misc.html#Regexp">Regexp</a> check that can |
| provide the functionality of the following |
| checks: <a |
| href="config_header.html#RegexpHeader">RegexpHeader</a> |
| </li> |
| <li> |
| Added support for property <i>ignoreStringsRegexp</i> to |
| <i>MultipleStringLiterals</i> check. Patch 1254918 from taab. |
| </li> |
| <li> |
| Added Spanish translation of messages. Thanks to Ricardo Mones |
| (patch 1250329). |
| </li> |
| <li> |
| Made the Class Loader used to load infrastructure classes and |
| resources come from <code>Thread.currentThread() |
| .getContextClassLoader()</code>. Done as a result of patch |
| 1273903 from Lars Koedderitzsch. |
| </li> |
| <li> |
| Added patch The LocalizedMessage already gets the Class of the |
| check that triggers the message (to output the name of the |
| check). Instead of storing just the name of this class, store |
| the class itself. With this the name can be retrieved and the |
| classloader of this class can be used to load the correct |
| resource bundle. Patch 1309516 from Ralf (rakus). |
| </li> |
| <li> |
| FallThrough check now can check last case group (property |
| checkLastCaseGroup, bug 1245942). |
| </li> |
| <li> |
| Applied patch 906531 (WhitespaceAround allows empty |
| method/ctor bodies.) Thanks to Eric Roe (module |
| WhitespaceAround, properties allowEmptyCtors and |
| allowEmptyMethods). |
| </li> |
| <li> |
| FallThrough check can be configured to ignore fall-throughs |
| if there is a relief comment, thanks to Ralf (aka rakus) |
| for a great patch (rfe 1345691, patch 1348873) |
| </li> |
| </ul> |
| |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li> |
| Fixed encoding problems when parsing XML because was using |
| FileReader instead of FileInputStream. Bug 1320132. |
| </li> |
| <li> |
| The InnerAssignment check didn't find all instances of inner |
| assignments. Bug 1195047. |
| </li> |
| <li> |
| Fixed typo in grammar (bug 1335088) |
| </li> |
| <li> |
| Fixed ParenPad check problem which was caused by one of |
| recent grammar change (one which was about |
| (SUPER_)CTOR_CALL) (bug 1322879). |
| </li> |
| <li> |
| Fixed bug in logic JavadocStyle check uses to get |
| main-section of javadoc (bug 1291847). |
| </li> |
| <li> |
| Three more fixes for Indentation check (bugs 1251988, |
| 1260079, 1336737). |
| </li> |
| <li> |
| Fixed problem in Comment.hasIntersectionWithComment() (patch |
| 1339523 from Richard Schulte). |
| </li> |
| <li> |
| Now javadoc method should not contain only @see tag (but |
| could contain only {@ingeritDoc} tag) (bug 1290379, module |
| JavadocMethod) |
| </li> |
| </ul> |
| |
| <p>Other improvements:</p> |
| |
| <ul> |
| <li> |
| Applied patch 1292684 from Maarten Coene to fix the generated |
| HTML reports that are not correct if you include the |
| TreeWalker and the StrictDuplicateCode modules in the same |
| configuration. Patch effects checkstyle-noframes-sorted.xsl. |
| </li> |
| <li> |
| Applied patch 1340300 from David Dodini to update bcel |
| checks to be compilable with current Checkstyle's API. |
| </li> |
| <li> |
| Added antlib.xml to support new cool feature of Ant. |
| </li> |
| <li> |
| Applied patch 1386388 to enable ConfigurationLoader to load |
| from InputStream. |
| </li> |
| </ul> |
| |
| </section> |
| |
| <section name="Release 4.0 Beta 6"> |
| <p>New features:</p> |
| |
| <ul> |
| <li>One more change for grammar: now CTOR_CALL and |
| SUPER_CTOR_CALL nodes represents "this" and "super" keywords |
| from these statements.</li> |
| </ul> |
| |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li>Removed all reference to the usage checks (bug |
| 1256662).</li> |
| |
| <li>RequireThis now handles inner enums better (bug 1257599)</li> |
| |
| <li>Fixed package name for modifiers checks in documentation |
| (bug 1275988)</li> |
| |
| <li>MagicNumber allows use numeric constants in enum constant |
| definition (bug 1284682)</li> |
| |
| <li>Fixed i18n problems in ArrayTypeStyle, |
| HideUtilityClassConstructor and AvoidInlineConditionals(bug |
| 1262825)</li> |
| |
| </ul> |
| |
| <p>Other improvements:</p> |
| |
| <ul> |
| <li>TBD</li> |
| </ul> |
| |
| </section> |
| |
| <section name="Release 4.0 Beta 5"> |
| <p>New features:</p> |
| |
| <ul> |
| <li>Added useFile property of ant task (patch 916971)</li> |
| |
| <li> |
| Documented new tokens which is checked by WhitespaceAround |
| (bug 1233425) |
| </li> |
| |
| <li> |
| Added patch (ID 1193251) to suppress processing of checks with |
| 'ignore' severity. From Lars Koedderitzsch. |
| </li> |
| |
| <li> |
| Added IllegalThrowsCheck to detect illegal throw declarations. |
| </li> |
| |
| <li> |
| Added ImportControlCheck to controls what packages can be |
| imported in each package. Useful for ensuring that application |
| layering is not violated. |
| </li> |
| </ul> |
| |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li>HiddenField can be configured to ignore parameters of |
| abstract methods (property ignoreAbstractMethods, bug |
| 1084512)</li> |
| |
| <li>Applied patch 1079192 (thanks to Dave Brosius)</li> |
| |
| <li>Two more bugs fixed in type aware checks (RedundantThrows |
| and JavadocMethod checks) (bug 1168408 and 1220726)</li> |
| |
| <li>Applied patch 1045127 (thanks to Paul Constantinides)</li> |
| |
| <li>TypecastParenPad and ParenPad are now smarter in detecting |
| if paren is part of typecast (bug 1217798)</li> |
| |
| <li>LocalFinalVariable now also checks catch parameters (bug |
| 1223290)</li> |
| |
| <li>Applied patch 1061458, hope this helps users who use |
| checkstyle with JRockit (thank to Ville Skytta for |
| contribution)</li> |
| |
| <li>Changed way how to IndentationCheck handles fields in |
| classes and operator new (bug 1193848, 1232822)</li> |
| |
| <li>Fixed problem with cache file (patch 1012389) thanks to |
| Dave Wood.</li> |
| |
| <li>Fixed example for FinalLocalVariable snf the check itself |
| (bug 1241722)</li> |
| |
| <li>Fixed implementation of DetailAST so getPreviousSibling() |
| works for all nodes in AST tree (bug 1244994)</li> |
| |
| <li>Now type-aware check know more about generics (bug 1249707, |
| modules: RedundantThrows and JavadocMethodCheck)</li> |
| |
| </ul> |
| |
| <p>Other improvements:</p> |
| |
| <ul> |
| <li> |
| Introduced the EMMA code coverage tool. A report is produced |
| as a result of running the unit tests. |
| </li> |
| |
| <li> |
| Retired the usage checks to the contrib directory. If there is |
| interest in the future they may be promoted back into the |
| optional set of checks. |
| </li> |
| </ul> |
| </section> |
| |
| <section name="Release 4.0 Beta 4"> |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li>Fix critical bug in the grammar (bug 1216844)</li> |
| </ul> |
| </section> |
| |
| <section name="Release 4.0 Beta 3"> |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li>DesignForExtension check skips enums now (they are final |
| :). (bug# 1194470)</li> |
| |
| <li>Indentation check now works better with enums and |
| for-each statements (bugs 1193850 and 1193855)</li> |
| |
| <li>Corrected calculation of Cyclomatic complexity metric |
| (bug 1203536, module CyclomaticComplexity)</li> |
| |
| <li>SuppressionCommentFilter now silently does nothing if |
| there is no FileContentsHolder (bug 1183749)</li> |
| |
| <li>Java Parser now understands Java 5 hex float syntax |
| (bug 1195818)</li> |
| </ul> |
| |
| <p>Other improvements:</p> |
| |
| <ul> |
| <li>Improved performance of reading Java files |
| (patch 1214386, contributed by Lars Koedderitzsch)</li> |
| |
| </ul> |
| |
| <p>Dependencies:</p> |
| |
| <ul> |
| <li>Since Checkstyle now requires Java 1.4, it does not need |
| Jakarta Regexp library any more and uses java.util.regex |
| package from J2SE instead. The regular expression specifications |
| of these libraries use a slightly different syntax in some |
| corner cases, e.g. for posix character classes. We expect that |
| these differences are not relevant for the majority of checkstyle |
| users, but please check your configuration.</li> |
| |
| </ul> |
| |
| </section> |
| |
| <section name="Release 4.0 Beta 2"> |
| |
| <p>Dependencies:</p> |
| |
| <ul> |
| <li>Checkstyle now requires Java 1.4, running Checkstyle inside |
| a Java 1.3 VM is no longer supported.</li> |
| |
| </ul> |
| |
| <p>Fixed Bugs:</p> |
| |
| <ul> |
| <li>The Ant task now always prints a summary line like |
| 'Running Checkstyle 4.0 on 339 files' (bug 1099573).</li> |
| |
| <li>Added missing documentation for the fileExtensions |
| property of the NewlineAtEndOfFile check (bug 1174751).</li> |
| |
| <li>Fixed bug #1098126 in UnusedImport check.</li> |
| |
| <li>Fixed bug #1185722 (DeclarationCollector.leaveToken unbalanced |
| with visitToken)</li> |
| |
| <li>Fixed NPE in AbstractUsageCheck when we process an empty |
| file (bug 1165855)</li> |
| |
| </ul> |
| |
| </section> |
| |
| <section name="Release 4.0 Beta 1"> |
| |
| <p>New features:</p> |
| |
| <ul> |
| |
| <li>Introduced preliminary support (beta quality) for the Java 5 |
| language. Previous versions of Java are still supported so this |
| release should be a drop in replacement for the 3.5 release. The |
| reason for the beta release is to solicit feedback on the Java 5 |
| support.</li> |
| |
| <li>Documentation contains an alphabetically sorted |
| list of all available checks.</li> |
| |
| <li>Checker.getBasedir() is public now (rfe 1023004)</li> |
| |
| <li>JavadocMethod check now can be configured to skip missed javadoc |
| (rfe 1060634)</li> |
| |
| <li>Some clarifications on scope property of javadoc checks added |
| (rfe 1009201)</li> |
| |
| <li>UnusedPrivateMethod check now can be configured to ignore |
| serialization-related methods (readObject(), writeObject(), |
| readResolve() and writeReplace()) (rfe 1036387)</li> |
| |
| <li>Added support for the property |
| <code>allowMissingPropertyJavadoc </code> on the <a |
| href="config_javadoc.html#JavadocMethod">JavadocMethod</a> |
| check.</li> |
| |
| </ul> |
| |
| <p>Resolved bugs: </p> |
| |
| <ul> |
| |
| <li>Fix bug with suppression filtering. (bug 1080343).</li> |
| |
| <li>Improved French message translations |
| (patch 1097980 by Olivier Parent).</li> |
| |
| <li>Fixed typo in SuppressionCommentFilter which caused bug 1084654</li> |
| |
| <li>Fixed 1048226 (Runtime problems of Checks are logged to checkstyle |
| audit), now checkstyle will fail if it cannot load class for exception |
| from throws clause of javadoc (modules RedundantThrows and |
| JavadocMethod)</li> |
| |
| <li>Fixed French translation, patch from Paul Guyot (bugs 1090381 and |
| 1100946)</li> |
| |
| <li>Fixed problem with exception's javadoc checks(bug 1100193, module |
| JavadocMethod)</li> |
| |
| <li>Fixed two more problems in Indentation check (bug 1089128)</li> |
| |
| <li>ConstantName check now exclude serialPersistentFields from the |
| check (bug 1097285)</li> |
| |
| <li>One more problem with SuppressionCommentFilter fixed (bug |
| 1061459)</li> |
| |
| <li>format property of IllegalType check documented (bug 1047449)</li> |
| |
| <li>ModifiedControlVariable check changed to work with for-each |
| correctly (1101851)</li> |
| |
| <li>Annotations and enums are classes too and should be treated so by |
| ClassFanOutComplexity checks (bug 1109205)</li> |
| |
| <li>Two more annotation-related problems (module Indentation, bug |
| 1109214 and module UnnecessaryParentheses, bug 1109238)</li> |
| |
| </ul> |
| |
| <p>Other changes:</p> |
| |
| <ul> |
| |
| <li>Added new check packages and moved check implementations. |
| Users who maintain their own packagelist must adapt to these changes.</li> |
| |
| </ul> |
| |
| </section> |
| |
| <section name="Release 3.5"> |
| |
| <p>New features:</p> |
| <ul> |
| |
| <li>Added attributes maxErrors and maxWarnings to Ant task to allow |
| finetuning of failure behaviour (request 783538).</li> |
| |
| <li>Added check that checks for a required regexp, contributed by |
| Daniel Grenner (module RequiredRegexp, request 606115, patch |
| 902189).</li> |
| |
| <li>Added check for the ncss metric. (module JavaNCSS, patch |
| 920820)</li> |
| |
| <li>Added check that checks for multiple string literals, contributed |
| by Daniel Grenner (module MultipleStringLiterals, patch 929882).</li> |
| |
| <li>Added check that checks for a modified control variable in a for loop, |
| contributed by Daniel Grenner |
| (module ModifiedControlVariable, patch 927680).</li> |
| |
| <li>Added example of how to configure the XML parser factory for |
| Checkstyle, and how to support XInclude processing |
| (contrib/examples/XInclude, request 905169).</li> |
| |
| <li>Added example of an ant build file and stylesheet for generation |
| of an HTML error report with links to source code. |
| </li> |
| |
| <li>Added filter that suppresses audit events according to source file |
| comments, contributed by Mike McMahon (module |
| SuppressionCommentFilter, requests 732196 and 931327).</li> |
| |
| <li>Better information for unexpected char (request 666188).</li> |
| |
| <li>Added charset property to TreeWalker and StrictDuplicateCode check |
| (addresses bug 975346). </li> |
| |
| <li>French message translations, contributed by Pierre Dittgen |
| (request 978916).</li> |
| |
| <li>DataAbstractionCoupling reports coupling classes, contributed by |
| Benoit Xhenseval (request 990055).</li> |
| |
| <li>FinalLocalVariable ignores parameters of interface methods and |
| abstract methods. (request 993922 and bug 1002849).</li> |
| |
| <li>Header and RegexpHeader checks allow header specification directly |
| in the checkstyle configuration file, not only in an external file |
| (request 1041590).</li> |
| |
| <li>com.puppycrawl.tools.checkstyle.gui.Main accepts an optional file |
| name in the command line. (request 1000102).</li> |
| |
| </ul> |
| |
| <p>Resolved bugs: </p> |
| |
| <ul> |
| |
| <li>False alarms from UnusedPrivateMethodCheck for anonymous inner |
| class parameter. (bug 950548).</li> |
| |
| <li>Fixed bug in handling imports in RequireThis(bug 952508)</li> |
| |
| <li>JUnitTestCaseCheck erroneously mentions tearDown instead of |
| setUp. (bug 955925, patch by Paul Guyot)</li> |
| |
| <li>JavadocTypeCheck does not find a tag on the first comment |
| line. (patch 959995, patch by Michael Tamm)</li> |
| |
| <li>StrictDuplicateCodeCheck did not find duplicates within the same |
| file.</li> |
| |
| <li>Unexpected char (bug 975346).</li> |
| |
| <li>MagicNumber check overly aggressive (reported on user mailing |
| list).</li> |
| |
| <li>Documentation error for naming convention checks (bug |
| 987503).</li> |
| |
| <li>FinalParametersCheck checks parameters of abstract methods. (bug |
| 1002849).</li> |
| |
| <li>Bug in ClassResolver where it was mismatching imports - example |
| would match SecurityDataException when looking for DataException. Bug |
| was visible in RedundantThrows check (no known bug).</li> |
| |
| <li>Fixed HiddenFieldCheck to correctly handle static inner classes |
| (bug 1032426).</li> |
| |
| <li>Fixed misspelling of variable (patch 1032618 contributed by Paul |
| Wagland).</li> |
| |
| <li>Fixed ClassResolver to handle exceptions which are inner for |
| current class (bug 945149).</li> |
| |
| <li>Fixed ClassResolver to handle fully-qualified inner classes (bug |
| 1037667).</li> |
| |
| <li>Fixed 1033166 (Indent module specifies two indent levels for one |
| line)</li> |
| |
| <li>Fixed false alarms in RequireThis check (bug 952508)</li> |
| |
| </ul> |
| |
| <p>API changes:</p> |
| <ul> |
| |
| <li>Added new class SeverityLevelCounter.</li> |
| |
| </ul> |
| </section> |
| |
| <section name="Release 3.4"> |
| |
| <p> |
| New features: |
| </p> |
| |
| <ul> |
| |
| <li>Added a 'version' attribute to the 'checkstyle' element in the XML |
| output document (request 853128).</li> |
| |
| <li>FinalParameter can be applied to catch blocks (request |
| 848820).</li> |
| |
| <li>Improved German translation, contributed by Oliver Fischer (patch |
| 862911).</li> |
| |
| <li>Added stylesheet to translate XML output into comma separated |
| values format (contrib/checkstyle-csv.xsl, request 764153).</li> |
| |
| <li>Added BooleanExpressionComplexity check from Simon Harris (request |
| 750760)</li> |
| |
| <li>Added ClassDataAbstractionCoupling check |
| from Simon Harris (request 750758)</li> |
| |
| <li>Added ClassFanOutComplexity check from |
| Simon Harris (request 750759)</li> |
| |
| <li>Added NPathComplexity check from Simon |
| Harris (request 750757)</li> |
| |
| <li>Added several more log() methods to |
| AbstractViolationReporter. (request 843551)</li> |
| |
| <li>Added check to ensure that default is a last |
| label in the switch statement.(module DefaultComesLast, |
| request 754486 )</li> |
| |
| <li>Added check to ensure that all classes |
| define constructor. (module MissingCtor, request |
| 696129)</li> |
| |
| <li>Added check to warn on fall-through in case |
| with code not followed by break. (module FallThrough, |
| request 754438)</li> |
| |
| <li>Added check to ensure that every variable |
| is declared in its own statement and on its own line (module |
| MultipleVariableDeclarations, requests 639233, 753858, |
| 844705)</li> |
| |
| <li>Added check to ensure that references to |
| non-static fields and methods should be qualified. |
| (module RequireThis, contributed by Stephen Bloch, requests |
| 755550, 696295).</li> |
| |
| <li>Added multiLines property to regexpCheck |
| (request 597676)</li> |
| |
| <li>Added check for the padding between the |
| identifier of a method definition, constructor definition, |
| method call, or constructor invocation; |
| and the left parenthesis of the parameter list. (module |
| MethodParamPad, request 843254)</li> |
| |
| <li>Added check to forbid endline |
| comments. (module TrailingComment, request 744970)</li> |
| |
| <li>Added applyTo(Public|Protected|Package|Private) |
| properties to check MemberName. (request 695935)</li> |
| |
| <li>Added check to verify padding in empty for loop |
| initializers. (module EmptyForInitializerPad, part of fix for |
| bug 895072)</li> |
| |
| <li>Added checkEmptyJavadoc property to JavadocStyle |
| check, contributed by Daniel Grenner (request 849056, patch 903597) |
| </li> |
| |
| <li>Added format property to ReturnCount check |
| to configure ignored method names (request 904437)</li> |
| |
| <li>Added attribute 'default' to configuration |
| <property> tags, improves usability for centralized |
| configuration files. This change triggered a new version of the |
| configuration DTD. Your old configuration files will still work, |
| but if you want to use the new 'default' attribute you need to |
| upgrade your configuration file to DTD version 1.2.</li> |
| |
| <li>Ignore comments in GenericIllegalRegexp check, |
| contributed by Daniel Grenner (request 680988, patch 902109).</li> |
| |
| <li>UnnecessaryParentheses check contributed by |
| Eric Roe (patch 911086, request 634834)</li> |
| |
| <li>Added ignoreNonLocal property to UnusedParameter |
| check to check only private and static methods (request 787683)</li> |
| |
| <li>Added excludeScope property to |
| Javadoc(Method|Variable|Type|Style) checks (request |
| 846108)</li> |
| |
| </ul> |
| |
| <p> Resolved bugs: </p> |
| |
| <ul> |
| |
| <li>Incorrect documentation of cmdline options |
| (bug 865610).</li> |
| |
| <li>FinalParameter now reports column of start of |
| parameter declaration. (bug 864900)</li> |
| |
| <li>Fixed inconsistent handling of NLOW (new |
| line on wrap) option by LeftCurly check. (bug 866501)</li> |
| |
| <li>JDK 1.4 classes used by usage checks. |
| (bug 876570)</li> |
| |
| <li>Error in reporting UnusedLocalVariable for |
| multi-dimensional array index. |
| (bug 878608)</li> |
| |
| <li>MagicNumberCheck throws NumberFormatException |
| with negative octal and hex ints and longs.</li> |
| |
| <li>JavadocStyleCheck throws StringIndexOutOfBoundsException |
| when open tag character, <, is the last character on a line.</li> |
| |
| <li>UnusedPrivateMethod false positive (ternary call). |
| (bug 880954)</li> |
| |
| <li>Cast causes MagicNumberCheck error. |
| (bug 890706)</li> |
| |
| <li>Conflict between ParenPad and |
| NoWhiteSpaceBefore when code uses empty for loop |
| initializers. (bug 895072)</li> |
| |
| <li>Fixed JavadocStyleCheck to handle inline |
| javadoc tags correctly (bug 897749)</li> |
| |
| <li>Updated documentation for ReturnCount check to |
| reflect that it doesn't check equals() method (bug 904443)</li> |
| |
| <li>Erroneous UnusedPrivateField error |
| when the left operand is enclosed in parentheses |
| and the field is in the right operand (bug 908339)</li> |
| |
| <li>ExplicitInitialization shouldn't report about |
| explicitly initialized member of interface (bug 909619)</li> |
| |
| <li>DesignForExtension fires for private inner |
| classes (bug 884035).</li> |
| |
| <li>Entity resolver for configuration files now handles |
| all previous versions of the configuration DTD locally, without |
| accessing the internet (bug 909987).</li> |
| |
| <li>Fixed handling of imports for inner classes |
| in RedundantThrows (bug 925263)</li> |
| |
| </ul> |
| |
| <p> |
| Removed features: |
| </p> |
| |
| <ul> |
| |
| <li>Removed ignoreLines property of RegexpHeader check. To make some |
| line optional use "^.*$" regexp for this line.</li> |
| |
| <li>Fixing bug 895072 required changing the logic of |
| the NoWhiteSpaceBefore and ParenPad checks. |
| When a for loop has an empty initializer |
| (like <code>for (; i < j; i++)</code>) |
| both checks will not check whitespace between the opening parenthesis |
| and the first semicolon any more. |
| To enforce your coding rules for such code, you need to use |
| the EmptyForInitializerPad check.</li> |
| |
| </ul> |
| |
| <p> |
| API changes: |
| </p> |
| <ul> |
| |
| <li>Added programmatic access to token type |
| documentation (request 724871)</li> |
| |
| <li>All comments are wrapped in TextBlocks |
| (request 885993).</li> |
| |
| </ul> |
| </section> |
| |
| <section name="Release 3.3"> |
| <p> |
| Distribution: |
| </p> |
| <ul> |
| |
| <li>Renamed checkstyle-version-optional.jar to |
| checkstyle-optional-version.jar to make the distribution |
| <a href="http://maven.apache.org">Maven</a> friendly.</li> |
| |
| </ul> |
| |
| <p> |
| New features: |
| </p> |
| <ul> |
| <li>Fixed grammar build process (request 827781).</li> |
| |
| <li>Added caseSensitive property to ImportOrder check |
| (bug 842604).</li> |
| |
| <li>Added classpathref property to ant task |
| (patch 835896, from Ville Skytta (scop)).</li> |
| |
| </ul> |
| |
| <p> |
| Resolved bugs: |
| </p> |
| |
| <ul> |
| <li>Removed MutableException dependency from |
| 1.4 API.(bug 842756)</li> |
| |
| <li>j2ee.EntityBean check for constructor is incorrect |
| (bug 846110).</li> |
| |
| <li>Fixed ArrayIndexOutOfBounds in JavaStyle |
| (bug 841942).</li> |
| |
| <li>Fixed 8433887 - XHTML not handled correctly |
| in JavadocStyle.</li> |
| |
| <li>Fixed ArrayTypeStyle error when type declaration |
| and variable/method name are placed on different lines |
| (bug 848750).</li> |
| |
| <li>Fixed several typos in documentation (patch 848483 |
| from Ville Skytta (scop)).</li> |
| |
| <li>xmllogger.dtd is out-of-date |
| (bug 847974).</li> |
| |
| <li>ArrayTypeStyle shouldn't check method definition |
| (bug 849450).</li> |
| |
| <li>Added link to summary page in |
| checkstyle-frames.xsl (bug 852397).</li> |
| |
| <li>Fixed bug #791245: checkstyle-frames.xsl |
| cannot handle multiple leafs.</li> |
| |
| <li>Fixed handling of inheritDoc in JavadocMethod |
| check (bug 855839).</li> |
| |
| <li>Fixed bug #853225 - Indentation gives false |
| errors.</li> |
| |
| <li>Wrong documentation for FinalLocalVariable |
| (bug 860990).</li> |
| |
| </ul> |
| </section> |
| |
| <section name="Release 3.2"> |
| <p> |
| Distribution: |
| </p> |
| <ul> |
| |
| <li>Checks that are designed to be used for a |
| special class of applications (like J2EE) or that require |
| external libraries are now distributed in a separate jar |
| file. This is similar to the way the <a href="http://ant.apache.org">Ant</a> |
| distribution is organized.</li> |
| |
| <li>Updated Jakarta Regexp library to version 1.3.</li> |
| |
| </ul> |
| |
| <p> |
| New features: |
| </p> |
| |
| <ul> |
| |
| <li>Added ability for user to incorporate custom listeners (requests |
| 738205, 738388). Example listeners perform verbose and Commons Logging |
| audits (request 737584).</li> |
| |
| <li>Added JavadocStyle check to ensure they are |
| stylistically well formed. Nice patch from Chris Stillwell.</li> |
| |
| <li>Added check for trailing comma in array |
| initialization (module ArrayTrailingComma, request |
| 696301).</li> |
| |
| <li>MagicNumberCheck now checks array initializers (request |
| 745949).</li> |
| |
| <li>Added check for uncommented main |
| methods (debugging leftovers). (module UncommentedMain, |
| request 732257)</li> |
| |
| <li>Added check to enforce that anonymous inner classes do |
| not exceed a certain length (module AnonInnerLength, |
| request 715709, contributed by Rob Worth).</li> |
| |
| <li>Added TypecastParenPadCheck to check the padding of |
| typecasts (bug 750348).</li> |
| |
| <li>Added ignoreFormat property to HiddenFieldCheck (request 748830).</li> |
| |
| <li>Nice patch from Matt Quail to DetailAST to replace all the |
| repeated int[] array construction with a BitSet.</li> |
| |
| <li>Patch from Matt Quail to stop the ugly hack of having hard coded |
| constants in TokenTypes. The big risk was that when the grammar changed, the generated |
| constants could change (patch 757846).</li> |
| |
| <li>Added excludes property to AvoidStarImport, contributed |
| by Bill Schneider (request 744955).</li> |
| |
| <li>Added CyclomaticComplexityCheck from Simon Harris.</li> |
| |
| <li>Added check to catch equality comparison with string literals |
| using the == operator (module StringLiteralEquality, request 754835).</li> |
| |
| <li>Added check for definition of covariant equals() method |
| without overriding method equals(comp.lang.Object) |
| (module coding.CovariantEquals).</li> |
| |
| <li>Added NestedTryDepthCheck and |
| NestedIfDepthCheck from Simon Harris (requests 750736 and |
| 750744).</li> |
| |
| <li>Added IllegalTokenCheck from Simon Harris |
| (request 750755).</li> |
| |
| <li>Added allowInSwitchCase property to AvoidNestedBlocksCheck |
| to allow limiting the scope of variables to one case of a switch statement.</li> |
| |
| <li>Added checks for J2EE requirements.</li> |
| |
| <li>Added a check that an overriding clone() method invokes |
| super.clone().</li> |
| |
| <li>Added a check that an overriding finalize() method invokes |
| super.finalize().</li> |
| |
| <li>Added usage checks OneMethodPrivateFieldCheck, UnusedLocalVariableCheck, |
| UnusedParameterCheck, UnusedPrivateFieldCheck, UnusedPrivateMethodCheck.</li> |
| |
| <li>Added filters for audit events (partially fulfills request 559103). |
| A SuppressionFilter denies events according to a suppressions file (request 756416).</li> |
| |
| <li>Made basedir property of Checker OS agnostic |
| (request 663149).</li> |
| |
| <li>Enhanced RedundantModifier to check that all private methods and all methods in a |
| final class do not contain modifier final (discussed in request 775011).</li> |
| |
| <li>Added MethodLengthCheck option for counting empty and comment lines |
| (requests 589358 and 654039).</li> |
| |
| <li>Added a check for illegal token text |
| (requests 740694 and 750633).</li> |
| |
| <li>Added property to HiddenFieldCheck to ignore the parameter of |
| property setter methods (request 790456).</li> |
| |
| <li>Added DescendantToken check (request 755021).</li> |
| |
| <li>Added IllegalCatch check from Simon Harris (request 750746).</li> |
| |
| <li>Added PackageDeclaration check from Simon Harris (request 750753).</li> |
| |
| <li>Added JUnitTestCase check from Simon Harris (request 750761).</li> |
| |
| <li>Added MutableException check from Simon Harris (request 750750).</li> |
| |
| <li>Added AbstractClassName check from Simon Harris (request 750749).</li> |
| |
| <li>Added ThrowsCount check from Simon Harris (request 750742).</li> |
| |
| <li>Added ReturnCount check from Simon Harris (request 750745).</li> |
| |
| <li>Added CyclomaticComplexity check from Simon Harris (request 750756).</li> |
| |
| <li>Added ExecutableStatementCount check from Simon Harris (request 750751).</li> |
| |
| <li>Added property to HiddenFieldCheck to ignore constructor parameters |
| (request 798240).</li> |
| |
| <li>Added check for illegal type of variable, |
| parameters and return value of methods contributed by Simon |
| Harris (request 750739, module IllegalType)</li> |
| |
| <li>Added check for correct declarations order |
| contributed by Roland Auckenthaler (module |
| DeclarationOrder)</li> |
| |
| <li>Added ParameterAssignment check contributed |
| by Simon Harris (request 750748).</li> |
| |
| <li>Added FinalLocalVariable check from Roland |
| Auckenthaler and Kevin Gibbs.</li> |
| |
| <li>Added check for correct grouping/order of |
| imports from Bill Schneider (module ImportOrder, request |
| 745548)</li> |
| |
| <li>Added Indentation check from John Richardson |
| (request 493366)</li> |
| |
| <li>Added check for explicit initialization class |
| and object variable to value which is default for variable's |
| type (module ExplicitInitialization, request 614387).</li> |
| |
| <li>Added check to find duplicate code |
| (module StrictDuplicateCode, request 650710).</li> |
| |
| </ul> |
| |
| <p> |
| Resolved bugs: |
| </p> |
| |
| <ul> |
| |
| <li>Fixed NPE when running ArrayTypeStyle check (bug |
| 744573)</li> |
| |
| <li>Typo in HideUtilityClassConstructor description (bug |
| 743973)</li> |
| |
| <li>False MagicNumberCheck errors for interfaces (bug |
| 745941)</li> |
| |
| <li>Docs for severity (bug 745937)</li> |
| |
| <li>EmptyBlock does not accept stmt option (bug 747400)</li> |
| |
| <li>Inner class fields interpreted as local variables (bug 747530)</li> |
| |
| <li>Fixed typo in documentation for PackageName |
| (bug 7480028)</li> |
| |
| <li>NumberFormatException in MagicNumberCheck (bug 748913)</li> |
| |
| <li>Removed broken support for checking typecasts from |
| ParenPadCheck (bug 750348)</li> |
| |
| <li>Fixed grammar problems with unclosed string |
| literals and multiple-lines comments (bug 694111)</li> |
| |
| <li>Fixed grammar definition for identifiers to |
| handle all Unicode symbols (bug 755744)</li> |
| |
| <li>Corrected misspelling of "precede" (bug 744342)</li> |
| |
| <li>EmptyForIteratorPadCheck errors when for statement |
| wraps at the iterator (bug 777471)</li> |
| |
| <li>False alarms from IllegalInstantiation for |
| user defined classes with the same names as those in |
| java.lang (bug 772832)</li> |
| |
| <li>NoSuchElementException in JavadocStyleCheck (bug 785514)</li> |
| |
| <li>RedundantModifierCheck error for public modifier of a |
| method defined in an inner implementation (bug 784814)</li> |
| |
| <li>MagicNumberCheck does not permits negative constants (bug 788106)</li> |
| |
| <li>NullPointerException in Unused... checks (bug 787672)</li> |
| |
| <li>NoSuchMethodError when line wrapped at dot |
| operator (bug 790209)</li> |
| |
| <li>Removed finder restrictions of LocalHomeInterfaceCheck |
| and RemoteHomeInterfaceCheck (bug 791591)</li> |
| |
| <li>Fixed NoSuchMethodError when line wrapped at dot operator (bugid 790209)</li> |
| |
| <li>Incorrect usage checks documentation (bug 790457)</li> |
| |
| <li>CyclomaticComplexityCheck not documented in docs (bug 783800)</li> |
| |
| <li>Changed configuration documentation example from checkstyle_checks.xml |
| to sun_checks.xml (see bug 750169)</li> |
| |
| <li>JavadocStyleCheck doesn't accept {@inheritDoc} javadoc (bug 798405)</li> |
| |
| <li>Unused local variables are not always detected (bug 798111)</li> |
| |
| <li>Fixed allowThrowsTagsForSubclasses/allowMissingThrowsTag interfere (bug 803577) </li> |
| |
| <li>Unused... checks don't work together (bug 805954)</li> |
| |
| <li>NoWhitespaceBeforeCheck error with an interface (bug 806242)</li> |
| |
| <li>NoWhitespaceBeforeCheck error for anonymous inner class (bug 806243)</li> |
| |
| <li>Usage of optional checks should be documented (bug 806961)</li> |
| |
| <li>Changed default format for ConstantName to |
| ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ to please regexp library (see bug |
| 807571)</li> |
| |
| <li>HiddenFieldCheck error for a local variable of a static |
| method with same name as an instance field (bug 827713)</li> |
| |
| <li>Changed HideUtilityClassConstructorCheck behaviour for classes |
| that do not extend java.lang.Object directly (partial fix for bug 824754)</li> |
| |
| <li>False alarms for abstract classes from FinalClass (bug 837012)</li> |
| |
| <li>Added Checker.removeListener() (fix for 834367)</li> |
| |
| </ul> |
| |
| <p> |
| API changes (only relevant for IDE plugin authors): |
| </p> |
| <ul> |
| |
| <li>AuditListener and AuditEvent have been moved |
| from package com.puppycrawl.tools.checkstyle to package |
| com.puppycrawl.tools.checkstyle.api.</li> |
| |
| </ul> |
| |
| </section> |
| |
| <section name="Release 3.1"> |
| |
| <p> |
| New features: |
| </p> |
| <ul> |
| <li>Patch from David Schneider to have severity levels |
| for each check (request 597683).</li> |
| |
| <li>Added check to avoid inline conditionals like |
| "b ? x : y" (module AvoidInlineConditionals, request |
| 597790).</li> |
| |
| <li>Added check that blocks are not introduced at |
| arbitrary places but only for if, while, etc. (module |
| AvoidNestedBlocks, request 632442).</li> |
| |
| <li>Added check to enforce that utility classes |
| (classes that have only static methods) cannot be instantiated |
| (module HideUtilityClassConstructor, request 634838).</li> |
| |
| <li>Added check to enforce an API design that shields |
| classes against bugs in derived classes (module |
| DesignForExtension, request 659715).</li> |
| |
| <li>Added check to enforce that Interfaces do not |
| contain only constants (module InterfaceIsType, request 659717, see |
| [Bloch, Effective Java], Item 17 "Use interfaces only to define |
| types").</li> |
| |
| <li>Added check to detect the double-checked locking |
| idiom (module DoubleCheckedLocking, request 709333).</li> |
| |
| <li>Added check to enforce C style (char c[]) or Java |
| style (char[] c) for array type declaration (module ArrayTypeStyle, |
| request 493380).</li> |
| |
| <li>Added check to enforce that method parameters are |
| final (module FinalParameters, request 528196).</li> |
| |
| <li>Added module to enforce that files end |
| with a newline character, contributed by Christopher Lenz |
| (module NewLineAtEndOfFile, request 662544).</li> |
| |
| <li>Many documentation improvements, contributed by |
| Peter Dobratz.</li> |
| |
| <li>Patch from Simon Kitching to allow more |
| configuration control over the JavadocMethodCheck.</li> |
| |
| <li>Checkstyle ant task outputs version info |
| in verbose and debug mode (request 550483).</li> |
| |
| <li>Patch from Oleg Sukhodolsky to add FinalCheck to |
| check that classes are declared final if they only contain private |
| constructors (request 696290).</li> |
| |
| <li>Patch from Oleg Sukhodolsky to add |
| MissingSwitchDefaultCheck to check that a switch statement has a |
| default clause (request 564199).</li> |
| |
| <li>Patch from Oleg Sukhodolsky to fix TranslationCheck |
| Test bug. (bug 720925).</li> |
| |
| <li>Patch from Oleg Sukhodolsky to fix documentation. |
| (bug 727896).</li> |
| |
| <li>Added check to find empty statements (module |
| EmptyStatement, request 724573).</li> |
| |
| <li>Added check to find magic numbers (module |
| MagicNumber, request 564206).</li> |
| |
| <li>One more option for JavadocMethodCheck |
| (allowThrowsTagsForSubclasses, request 540383)</li> |
| |
| <li>Added sourceName property to AuditEvent and |
| LocalizedMessage; and "source" attribute to |
| "error" element of XMLLogger output (request 686336).</li> |
| |
| <li>Added line and column numbers to configuration |
| parse exceptions (request 714962).</li> |
| |
| <li>Added check for redundant exceptions in |
| throws clause (module RedundantThrows, request 579056)</li> |
| |
| <li>Added property for GenericIllegalRegexp to |
| customize reported message (module GenericIllegalRegexp, |
| property message, request 738567)</li> |
| |
| <li>Moved the location of the file |
| checkstyle_packages.xml to be in the directory |
| com/puppycrawl/tools/checkstyle. This is to work around a bug in |
| NetBeans (request 739881).</li> |
| |
| <li>Patch from Dale King to enhance the GUI with |
| a Reload Java File button and storage of the current directory |
| of the last opened file (request 740545).</li> |
| |
| <li>Patch from Bill Schneider to add |
| GenericIllegalRegexpCheck property to perform |
| case-insensitive matches (request 740112).</li> |
| |
| </ul> |
| |
| <p> |
| Resolved bugs: |
| </p> |
| |
| <ul> |
| |
| <li>False alarms from RightCurly module for code that |
| does not have braces in if-then-else (bug 689836).</li> |
| |
| <li>Grammar incorrectly defaulting unqualified floating |
| point literals to be float, when they should be double (bug |
| 713716).</li> |
| |
| <li>"threadsafe" was treated as a Java |
| keyword, resulting in parser errors for sources that use it as an |
| identifier (bug 710319).</li> |
| |
| <li>ConfigurationLoader was not public (only relevant |
| for IDE plugin authors).</li> |
| |
| <li>HTML syntax errors in documentation (bug |
| 721458).</li> |
| |
| <li>Error when writing a DOS file name from |
| checkstyle-frames.xsl (bug 713845).</li> |
| |
| <li>Files were not being closed by |
| Utils.getLines().</li> |
| |
| <li>Missing documentation for the EmptyForIterator |
| check (bug 740038).</li> |
| |
| </ul> |
| |
| <p> |
| Development Team: |
| </p> |
| <ul> |
| <li>Oleg Sukhodolsky has joined the team.</li> |
| </ul> |
| |
| </section> |
| |
| <section name="Release 3.0"> |
| |
| <p> |
| New features: |
| </p> |
| |
| <ul> |
| <li>Completely new architecture based around pluggable modules. This means that users can now write their own checks without changing the source code of checkstyle itself (request 578712).</li> |
| <li>Users can specify the Java token types for which a check must be performed. For example users can now control that there should be whitespace after 'synchronized' but not after 'if' (request 536385).</li> |
| <li>Detect classes that override 'equals()' but not 'hashCode()' (request 554373).</li> |
| <li>Detect inner assignments, e.g. 'this.add(label = new JLabel("yes, I'm a C hacker"));' (request 521325).</li> |
| <li>Detect matches of generic regular expressions (requests 595254, 621247, 630536).</li> |
| <li>Find empty blocks (not only empty catch blocks, request 609523).</li> |
| <li>Check spaces at empty for iterators (requests 565666, 583725).</li> |
| <li>Detect missing property file keys in internationalized applications (request 634966).</li> |
| <li>Check content of @author and @version tag against a regular expression.</li> |
| <li>Detect hiding of fields by parameters or local variables with the same name (request 471897).</li> |
| <li>Detect obsolete final modifier in interfaces (request 651121).</li> |
| <li>Detect whitespace before ';' (request 521323).</li> |
| <li>Added DTD for XML output (request 622157).</li> |
| <li>Added an XSL stylesheet to convert XML output to plain text, contributed by Jon Scott Stevens.</li> |
| <li>Added a Portuguese localization, contributed by Pedro Morais.</li> |
| <li>Added a Finnish localization, contributed by Ville Skyttä.</li> |
| <li>Added a French localization, contributed by Pierre Dittgen.</li> |
| </ul> |
| |
| <p> |
| Resolved bugs: |
| </p> |
| <ul> |
| <li>Fully-qualified @throws claimed unused (bug 658805).</li> |
| <li>Expected @return tag when one is there (bug 579190).</li> |
| <li>Package name reported incorrectly (bug 622290).</li> |
| <li>Empty header filename silently ignored (bug 629139).</li> |
| <li>Array instantiation incorrectly flagged (bug 626875).</li> |
| <li>Tests fail with non-English locale (bug 594469).</li> |
| <li>Cachefile streams were not closed (bug 665016).</li> |
| <li>Ant Task: NullPointerException when type was not specified in formatter (bug 670321).</li> |
| </ul> |
| |
| <p> |
| Removed features: |
| </p> |
| <ul> |
| <li>Removed support for Japanese localization until we find a new maintainer.</li> |
| </ul> |
| |
| <p> |
| API changes (only relevant for IDE plugin authors): |
| </p> |
| <ul> |
| <li>Configuration is not based on Properties any more. Instead a Configuration interface is used, IDE plugins can define their own way of creating Configurations or they can reuse the provided ConfigurationLoader to read checkstyle's standard XML config files.</li> |
| </ul> |
| |
| <p> |
| Development Team: |
| </p> |
| <ul> |
| <li>Rick Giles has joined the team.</li> |
| </ul> |
| </section> |
| |
| <section name="Release 2.4"> |
| <p> |
| New features: |
| </p> |
| <ul> |
| <li>Major refactoring on the way Checkstyle is configured. It is now completely based around properties. Big thanks to Vincent Massol for the suggestion on how to refactor the ANT task (bug 605141).</li> |
| <li>Check the package name against a pattern (request 597787). Patch provided by Simon Langford.</li> |
| <li>Detect the number of parameters in a declaration exceeding a specified amount (request 582144).</li> |
| <li>Inspired by patch 580410 from Shinya Ohnuma, now the error messages are localised.</li> |
| <li>Support checking to determine if an unused <code>@throws</code> exception is a subclass of <code>java.lang.Error</code> (request 583719).</li> |
| <li>Incorporate patch 555878 from Rick Giles to allow pattern for local final variables to be specified.</li> |
| <li>Incorporate patch 566855 from Rob Worth to optionally check that parenthesis are padded with spaces.</li> |
| <li>Incorporate patch 590931 from Vijay Aravamudhan to improve documentation of the build.xml file.</li> |
| <li>Incorporate patch from Vijay Aravamudhan to enforce requiring @version tag (request 543964).</li> |
| <li>Incorporate patch 607481 from Ville Skyttä to enforce wrap on operator at EOL.</li> |
| </ul> |
| |
| <p> |
| Resolved bugs: |
| </p> |
| <ul> |
| <li>Incorporate a patch from Ronald Hastings (Boeing) to correctly handle C++ style comments being between Javadoc comments and declarations.</li> |
| </ul> |
| |
| <p> |
| API changes (only relevant for IDE plugin authors): |
| </p> |
| <ul> |
| <li>Many changes to the Configuration object.</li> |
| </ul> |
| </section> |
| |
| <section name="Release 2.3"> |
| <p> |
| New features: |
| </p> |
| <ul> |
| <li>Support checking to determine if an unused <code>@throws</code> exception is a subclass of <code>java.lang.RuntimeException</code> (request 540382).</li> |
| <li>Detect instantiations of classes that should not be instantiated (e.g. java.lang.Boolean) (request 550205).</li> |
| <li>Added ability to specify the base directory for reporting file names (request 571161).</li> |
| <li>Check for line wrapping on operators (request 553160).</li> |
| <li>Detect empty <code>try</code> blocks.</li> |
| <li>Detect empty <code>catch</code> blocks (request 516255).</li> |
| <li>Detect empty <code>finally</code> blocks.</li> |
| <li>Detect to-do comments (request 504275).</li> |
| <li>Detect use of lowercase l ("ell") in long integer literals.</li> |
| <li>Include column number in the XML output (request 555262).</li> |
| <li>Added ability to specify a properties file on the command line (request 557544).</li> |
| <li>Check for whitespace around "{" and "}" (request 557544).</li> |
| <li>Fix Javadoc errors under JDK 1.4 (request 568553).</li> |
| <li>Detect redundant <code>abstract</code> modifier in interfaces (request 573485).</li> |
| <li>Support running Checkstyle using the <code>-jar</code> option.</li> |
| </ul> |
| |
| <p> |
| Resolved bugs: |
| </p> |
| <ul> |
| <li>Better error reporting for missing properties files (bug 576165).</li> |
| <li>Ant task now logs style violations as errors (bug 561616).</li> |
| </ul> |
| |
| <p> |
| API changes (only relevant for IDE plugin authors): |
| </p> |
| <ul> |
| <li>The get/setOutputStream methods have been removed from the AuditListener interface. The XMLLogger and DefaultLogger implementations now expect OutputStreams to be provided as a constructor argument.</li> |
| <li>The DefaultLogger now differentiates between info messages ("started checking file ...", etc.) and error messages (style errors found by checkstyle).</li> |
| </ul> |
| </section> |
| |
| <section name="Release 2.2"> |
| <p> |
| Resolved bugs: |
| </p> |
| <ul> |
| <li>The cache was not invalidated upon parameter change (Bug 522282).</li> |
| <li>Tabs were not counted correctly in line length checks (Bug 524671).</li> |
| <li>Problem when a Checker could not be created (Bug 528358).</li> |
| <li>The documentation of the command line property names did not list the property checkstyle.allow.tabs (Bug 529975).</li> |
| <li>The default regular expression for constant names allowed consecutive '_' characters to occur (Bug 540358).</li> |
| <li>Checkstyle reported unused @throws tag for multiple declarations of the same Exception. According to the Java BugParade this is incorrect, multiple @throws tags for the same exception are OK (Bug 540384).</li> |
| </ul> |
| |
| <p> |
| New features: |
| </p> |
| <ul> |
| <!--(Feature request 498879)--> |
| <li>added check for whitespace around '()'</li> |
| <!--(Feature request 500122)--> |
| <li>added support for JDK 1.4 assert statements</li> |
| <!--(Feature request 515787)--> |
| <li>added column number to error messages for better Emacs integration</li> |
| <!--(Feature request 524650)--> |
| <li>added possibility to disable line-length checking by means of regular expressions</li> |
| <!--(Feature request 531229)--> |
| <li>added possibility to disallow import of package hierarchies, e.g. sun.*</li> |
| <!--(Feature request 534038)--> |
| <li>added failureProperty to ANT task</li> |
| <!--(Feature request 537107)--> |
| <li>added check for 'public' modifier in interface method declarations, following the recommendation in chapter 9.4 of the Java Language Specification</li> |
| <!--(Feature request 545128)--> |
| <li>added -r "dir" option to the commandline frontend, checkstyle will find all Java files contained in the specified directory</li> |
| <!--(Patch 531230 + enhancements)--> |
| <li>incorporated patch from Warner Onstine to configure the ANT task by means of a property file</li> |
| <li>added 'contrib' directory, contains XSL stylesheets for formatting checkstyle's XML output (contributions by Ingmar Stein, Stephane Bailliez, Scott McCrory and Gray Herter)</li> |
| </ul> |
| </section> |
| |
| <section name="Release 2.1"> |
| <p> |
| New features: |
| </p> |
| <ul> |
| <li>added check for package.html</li> |
| <li>added flag allowPackage which acts similar as allowProtected</li> |
| <li>added support for ignoring multiple lines in the file header</li> |
| <li>added support for specifying the file header by means of regular expressions</li> |
| <li>added whitespace checks around '.', e.g. System . out . println()</li> |
| <li>added check for names of methods and local variables</li> |
| <li>check the order of modifiers (public, static, etc.) against the recommendation in the Java Language specification</li> |
| <li>added checks for curly braces placement</li> |
| <li>incorporated patch from Andrew Lang for more robust Javadoc parsing</li> |
| </ul> |
| </section> |
| |
| <section name="Release 2.0"> |
| <p> |
| Changes: |
| </p> |
| <ul> |
| <li>Now released under the GNU Lesser General Public License (LGPL).</li> |
| <li>Fix bug #508010, documentation and code are inconsistent.</li> |
| <li>Changes to make it build "out of the box".</li> |
| </ul> |
| </section> |
| </body> |
| </document> |