Java API Compliance
Checker: History
Version 2.4 (January 20, 2018)
Improvements
-
Support for Java 9
-
Check for changes in annotation elements
-
Dump default values of annotation elements
-
Added -non-impl option to specify interfaces that should not be implemented by users
-
Added -non-impl-all option to tell the tool that all interfaces should not be implemented by users
-
Added -check-annotations option to check for changes in annotation types like in other interfaces
-
Added more regression tests
Other
-
Changed license to LGPL-2.1+
-
Bumped API dump version to 2.4
Version 2.3 (August 30, 2017)
Bug Fixes
-
Bumped required API dump version to 2.2
Version 2.2 (August 30, 2017)
Analysis
-
Fixed analysis of generic types
-
Added compatibility rules:
-
Class_Became_Raw
-
Class_Became_Generic
-
Interface_Became_Raw
-
Interface_Became_Generic
-
Changed_Method_Return
-
Variable_Arity_To_Array
-
Array_To_Variable_Arity
-
Field_Became_NonFinal (Src)
-
NonConstant_Field_Became_Static (Src)
-
Static_Method_Became_Final (Bin)
-
Fixed rules:
-
Changed_Field_Type
-
Changed_Method_Return_From_Void
-
*_Added_Abstract_Method*
-
Fixed anasysis of added/removed super-classes
-
Compare class structure if became generic or raw
-
Check for unknown compatibility rules
-
Do not list added and removed protected methods in final classes
-
Reduced severity of changed super-class
-
Added -check-packages option to check packages matched by the regular expression
-
Fixed filtering of annotated classes
-
Fixed -client option
Report
-
Show method return type in the problem description
-
Fixed signatures of generic constructors
-
Fixed order of methods in the report
-
Add noindex meta tag to empty reports
-
Fixed styles of the report
Dump
-
Added GenericParam attribute
-
Fixed Type and BaseType of variable arity parameter
-
Show warning for old API dump versions
-
Increased ID length
-
Fixed methods mangled names in the API dump; old dumps should be recreated
-
Bumped dump version
Tests
-
Added more test cases
-
Show path to the tests journal
Misc
-
Properly handle errors of javap
-
Fixed number of arguments passed to javap on Linux
-
Properly handle errors when creating/extracting tarballs
Version 2.1 (February 12, 2017)
Improvements
Bug Fixes
-
Fixed support for Windows
-
Fixed API dumps
-
Fixed -debug option
-
Fixed -test option
Version 2.0 (January 28, 2017)
Improvements
-
Code refactoring
-
Improved report style
-
Works faster on big libraries
-
Added a module with compatibility rules
-
Added a module to create API dump from disassembled code
-
Added a module to handle XML descriptors
-
Added a module to filter API symbols
-
Added a module to handle input data
-
Added a module for logging
-
Added a module to unmangle symbols
-
Added a module with regression test suite
-
Added a module to find system files
-
Added a module to handle type attributes
-
Added a module with basic functions
Bug Fixes
-
Fixed analysis of template instances
-
Fixed error message if modules are not installed
Version 1.8 (July 04, 2016)
Improvements
-
New style of the report
-
Improved analysis of default methods
-
Check if all abstract methods of added super-interface have default implementations in the class
-
New documentation
-
Code refactoring
New Options
-
-old-style: generate old-style report
-
-dep1, -dep2: specify API dump of the required dependency archive to resolve overwritten methods
Bug Fixes
-
Fixed support for Windows platform
-
Fixed -client option on OS X
-
Select version numbers automatically ('X' and 'Y') if not set by options
-
Fixed -skip-packages option
Version 1.7 (April 14, 2016)
Improvements
-
Added numbers of checked methods and types to the meta line of the report
-
Skip checking of auto-generated methods
New Options
-
-skip-internal-types: skip checking of some data types (classes and interfaces)
-
-added-annotations: apply filters by annotations only to new version of the library
-
-count-methods: count methods in the API dump
Bug Fixes
-
Do not count added methods when calculating compatibility rate
-
Fixed filtering of checked methods and classes
-
Show number of checked classes instead of number of all classes in the report summary
-
Fixed -client option
-
Fixed html formatting in the report
-
Fixed class-file names in the report
Version 1.6 (April 08, 2016)
Improvements
-
Support for Scala
-
Fixed IDs of API elements (methods and types) in the API dump, requires Digest::MD5 core Perl module
-
Show version of used javac compiler instead of the version of java interpreter in the console output
-
Check annotations of methods
-
Check for removed classes with public static fields and only private constructor
-
Check for removed public static fields in classes with only private constructor
-
Show percentage of affected methods in the problem description
-
Show compatibility rate instead of affect rate in the console output
-
Reduced size of the report
-
Added more unit tests
New Options
-
-compact: simplify formatting and reduce size of the report for a big set of changes
-
-skip-annotations-list: skip checking of some annotated classes and methods
-
-external-css: generate CSS styles to external file
-
-external-js: generate JS scripts to external file
Bug Fixes
-
Fixed analysis of deprecated methods and types
-
Fixed detection of methods moved up class hierarchy to java.lang.Object
-
Fixed support for annotations in Java 8
-
Fixed analysis of template types
-
Fixed -short option
-
Fixed -client option
-
Do not skip checking of com.oracle.*, com.sun.*, COM.rsa.*, sun.* and sunw.* packages
-
Fixed problem descriptions in the report
-
Fixed style of the report
-
Added method usage information to an API dump
-
Comparison of API dumps is now equivalent to comparison of JARs
Version 1.5 (March 24, 2016)
Improvements
-
Up to 100 times faster on big libraries
-
Up to 4 times less RAM usage on big libraries
-
Improved design of the report
-
Replaced verdict with compatibility rate in the report
-
Implemented check for removed annotations
-
Do not show Java version in the report
-
Limited number of affected methods shown in the report
-
Do not show package names in the report by default
-
Do not show time stamp in the report
-
Do not show warning for added class fields
-
Added Makefile
-
Removed obsolete options
-
Reduced size of the report
-
Allowed api, dump and apidump extensions of API dump
-
Changed format of API dump
-
Changed console output
New Options
-
-skip-packages
-
-dump-path
Bug Fixes
-
Fixed affect descriptions
-
Fixed issue with API dumps on OS X
-
Fixed -jdk-path option
-
Fixed -limit-affected option
Version 1.4.1 (March 12, 2015)
Improvements
-
Support for Java 8
-
Support for limiting checking based on annotations (for Apache HBase)
-
Add support for runtime visible annotations
New Options
-
-minimal
-
-hide-templates
-
-hide-packages
Bug Fixes
-
Fixed auto-skipping of internal packages
-
Fixed warnings on Solaris
-
Fixed -client option
Version 1.3.7 (April 25, 2014)
Improvements
-
Show Java version in the report summary
-
Mark deprecated methods in the report
New Options
Bug Fixes
-
Improved support for Java 7 templates
Other
Version 1.3.6 (January 21, 2014)
Improvements
New Options
Bug Fixes
-
Corrected formatting of output html reports
-
Fixed issue #7: "The command line is too long"
-
Improved performance on large input objects (30%)
-
Fixed issue #8: "-client option doesn't work"
Other
-
Code cleaning
-
Corrected Makefile
Version 1.2.1 (October 09, 2012)
New Options
Bug Fixes
-
Fixed -open and -browse options
Version 1.2 (September 22, 2012)
New Options
-
-skip-deprecated
-
-skip-classes
Bug Fixes
-
Fixed an issue with spaces in the execution path
Other
Version 1.1.2 (June 08, 2012)
New Options
Bug Fixes
-
Fixed an issue with -classes-list option
-
Fixed an issue with spaces in the path to javap and other commands
-
Fixed an issue with escaping of inner class specifier
Other
Version 1.1 (April 16, 2012)
Improvements
-
Improved design of the compatibility report
-
Added compatibility rate in the summary of the report
-
Added "Other Changes in Data Types" section of the compatibility report
New Options
-
-debug
-
-quick
-
-browse
-
-report-path
-
-bin-report-path
-
-src-report-path
Other
Version 1.0.3 (December 13, 2011)
Improvements
-
Add Makefile.pl installer
Other
-
Corrected INSTALL file
-
Corrected help message
-
Changed license to dual GPL and LGPL of any version
-
Added check for presence of installed JDK-devel package in the system
-
Updated copyrights
Version 1.0 (August 30, 2011)
Initial version of the tool.