Announcing release the first beta release of 3.0 of Checkstyle is availab=
This is a beta release. Extensive testing has been done, however due to t=
new framework (see below), a beta cycle is being used. Please report any
What is it?
Checkstyle is a development tool to help programmers write Java code that
adheres to a coding standard. Its purpose is to automate the process of
checking Java code, and to spare humans of this boring (but important)
Checkstyle can be run via an ANT task (recommended) or a command line
Third-party plug-ins are available for Maven, jEdit, NetBeans, Centipede,
JBuilder, Eclipse/WSAD, Emacs JDE.
The major change in release 3.0 is a completely new architecture based
pluggable modules. This means that users can now write their own checks
without changing the sourcecode of Checkstyle itself. A detailed tutorial
provided on how to write a check.
Great care was taken in designing the new architecture to not sacrifice t=
excellent performance of Checkstyle. The configuration has been completel=
revamped and it is now possible to configure down to the token level. So
example, whitespace checking can be configured to only look at the "=3D=3D=
Other new features include:
- Detect classes that override 'equals()' but not 'hashCode()' (request
- Detect inner assignments, e.g. 'this.add(label =3D new JLabel("yes, I=
hacker"));' (request 521325).
- Detect matches of generic regular expressions (requests 595254, 62124=
- Find empty blocks (not only empty catch blocks, request 609523).
- Check spaces at empty for iterators (requests 565666, 583725).
- Detect missing property file keys in internationalized applications
- Check content of @author and @version tag against a regular expressio=
- Detect hiding of fields by parameters or local variables with the sam=
name (request 471897).
- Detect obsolete final modifier in interfaces (request 651121).
- Detect whitespace before ';' (request 521323).
- Added DTD for XML output (request 622157).
- Added portuguese localization, contributed by Pedro Morais.
- Added finnish localization, contributed by Ville Skytt=E4.
- Added french localization, contributed by Pierre Dittgen.
- Fully-qualified @throws claimed unused (bug 658805).
- Expected @return tag when one is there (bug 579190).
- Package name reported incorrectly (bug 622290).
- Empty header filename silently ignored (bug 629139).
- Array instantiation incorrectly flagged (bug 626875).
- Tests fail with non-english locale (bug 594469).
- Cachefile streams were not closed (bug 665016).