- moved AbstractHeaderCheck to header package
- moved file extension filtering code to Utils, so it's available not only from FileSetChecks
- moved regexp header checking logic to RegexpHeaderChecker bean
- moved check initialization logic and parameter checking to HeaderInfo classes
Originally longs were used to lower the likelyhood of checksum clashes, as those would result in false alarms. This is no longer the case, because of the line-by-line verification that now takes place when a checksum match is detected.
- don't report blocks that contain only empty lines. With the obove bugfix, that is absolutely neccesary to check the JDK, because much of the nio code is machine generated and contains large empty blocks. With all of them overlapping, the SDC would produce huge amounts of violation reports without this change
- Further speedup by using a reverse lookup from the sorted relevant checksums back to the original line index numbers
- Externalized low level checksum management to a separate class, ChecksumInfo, so SDCC contains more high level code
To avoid reading the same file multiple times a soft reference map from commons-util is used, this requires a modification in import-control.xml. Hope this is OK - commons-util is a dependency anyway and is included in checkstyle-all.jar.
Technically this change also allows controlling RedundantThrows check, however this deliberately remains undocumented as code must be compilable and hence failing to load a class mentioned in the throws clause of a method is always a configuration problem.
Fixed some minor documentation problems like typos and duplicate example code along the way.
- build checkstyle-all.jar directly from jars, without unpacking them in a tmp folder
- avoid adding overview.html from beanutils.jar to checkstyle-all.jar
suppress messages based on the id. The motivation is to allow for finer
grained suppressions. For example, can enable multiple instances of the
Regexp check, and suppress on the individual instance.