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.