Version | Date | Description |
---|---|---|
0.6 | 2005-09-27 | |
0.5 | 2005-08-07 | |
0.4 | 2004-09-05 | |
0.3 | 2004-05-23 | |
0.2 | 2004-05-22 |
Type | Changes | By |
---|---|---|
Clirr now provides a SPI to represent the java code structure, the checks now work against this SPI. Clirr provides a SPI implementation that works on jar files, but other implementations can be used as well. For example, an IDE will typically already have an in-memory representation of the Java sources, so a Clirr IDE plugin could use that (via an adapter) and would not require a full compile before running Clirr. The API will most probably be in flux when Clirr adds support for Java 1.5 features like generics and varargs. | lkuehne | |
Ant task: Class exclusion via apiclasses subelement was broken on Windows. | lkuehne | |
CLI: Handling of multi-jar libraries in parameters -o and -n was broken on Windows. | lkuehne | |
CLI: Allow specification of 3rd party jars via new options -ocp and -ncp. | lkuehne | |
Improved test coverage. | lkuehne | |
Improved startup time of commandline uberjar. | lkuehne | |
Ant task now works with uberjar. | lkuehne |
Type | Changes | By |
---|---|---|
Avoid false alarms when package visible classes are removed. | lkuehne | |
Removed the ant.jar from the uberjar file, resulting in a much smaller distribution size. | lkuehne | |
The Ant task now allows to exclude classes from compatibility checks via the 'apiclasses' subelement. | lkuehne | |
Detect change of method final modifier. | lkuehne |
Type | Changes | By |
---|---|---|
Improved change messages if field accessibility is weakened/strengthened. Thanks to skitching . | lkuehne | |
Detect 'pull up in class hierarchy' refactoring for methods. | lkuehne | |
XML formatter did not write method and field attributes correctly. | lkuehne | |
Report on methods being deprecated or undeprecated. | s_kitching | |
Added a command-line interface, net.sf.clirr.cli.Clirr, for running checks and generating reports from the command-line. | s_kitching | |
Removed abstract methods that are specified by an implemented interface are no longer reported as a compatibility problem. | lkuehne | |
Report on classes changing accessibility (top-level classes changing between public and package, or nested classes changing between any of public/protected/package/private). | s_kitching | |
It is no longer an error to add a "final" attribute to a class w hich has no public or protected constructors, as it was always impossible to derive subclasses from it anyway. | s_kitching | |
Clirr now analyses code changes for source code compatibility problems as well. Note: Ant task attribute names and the output format of the XML formatter have changed to support this feature. | lkuehne | |
Error messages are now localized. Initial supported languages are english and german. | lkuehne | |
Treat all changes in package and private items as being of INFO level severity only, ie changes which would result in an ERROR being reported if they were public or protected are reported with a severity of INFO if they are package or private. | s_kitching |
Type | Changes | By |
---|---|---|
Fixed a copy + paste error in field modifier comparison logic that would lead to false alarms and undetected compatibility problems. Thanks to Stephen Colebourne . | lkuehne | |
Detect changes of field types. | lkuehne | |
Ant Task fails when filesets origFiles or newFiles are empty. Empty file sets are usually a setup problem - they should not create the impression that there are no compatibility problems, just because Clirr didn't report anything. | lkuehne | |
Documented formatter subelements in Ant task. | lkuehne | |
Warn about compile time constant value ch anges. Changing the value of a constant is not binary incompatible (you won't get any Exception), but client code compiled against the old version of the library will have the old value inlined and continue to use that old value. See the Java Language Spec, Chapter 13.4.8, for details. | lkuehne | |
Warn about adding new superclasses to a class derived from java.lang.Throwable. Such changes are not binary incompatible (you won't get any Exception), but a different catch clause might get selected in client code. | lkuehne |