CHANGELOG

Version 8.9 - March 01, 2024
- new feature - throws-clause
- minor changes

Version 8.8 - December 01, 2023
- Java 21 support
- restructured tutorial

Version 8.7 - September 01, 2023
- new feature - set-methods-to-public
- new feature - set-fields-to-public

Version 8.6 - June 01, 2023
- Java 20 support
- new classes/methods/fields/packages renaming option - 'ABC'

Version 8.5 - March 01, 2023
- Java 19 support
- minor fixes

Version 8.4 - December 01, 2022
- Java 18 support
- several bug fixes

Version 8.3 - September 01, 2022
- removing local variables that are assigned a value but never used
- 'reverse-alphabetical' option for reordering class members

Version 8.2 - June 01, 2022
- Java 17 support
- enhanced control flow obfuscation and optimization
- outputting some obfuscation statistics to the log file

Version 8.1 - March 01, 2022
- 'keep-if-members-match' option for keeping classes
- bug fixes

Version 8.0 - December 01, 2021
- remove-calls now removes calls even if return value is used
- bug fixes and minor changes

Version 7.9 - September 01, 2021
- Java 16 support
- support for more stack trace restore formats

Version 7.8 - June 01, 2021
- added remove-annotations property
- applying unique-renaming for selected classes with apply2class

Version 7.7 - March 01, 2021
- Java 15 support
- minor optimizations

Version 7.6 - December 01, 2020
- improved configuration file processing
- optimized Android support

Version 7.5 - September 01, 2020
- 'unique' renaming option for fields
- optimizations and fixes

Version 7.4 - June 01, 2020
- Java 14 support
- obfuscation warnings from console output are also put in the log file

Version 7.3 - March 01, 2020
- Java 13 support
- new options for member-reorder

Version 7.2 - December 01, 2019
- more advanced option for custom string encryption
- minor fixes

Version 7.1 - September 01, 2019
- Java 12 support
- added output-jar-duplicate-name-entries property

Version 7.0 - June 01, 2019
- improved Android support
- optimized string encryption

Version 6.9 - March 01, 2019
Version 6.8 - December 01, 2018
- Java 10 and Java 11 support
- improved Spring Boot support
- improved watermarking

Version 6.7 - September 01, 2018
- improved string encryption
- minor changes and optimizations

Version 6.6 - June 01, 2018
- improved control flow obfuscation
- improved Android support

Version 6.5 - March 01, 2018
- 'keep' renaming option for packages
- using system properties and environment variables in configuration file
- minor improvements

Version 6.4 - December 01, 2017
- new stack trace restore utility
- set encoding for updating resource files
- initial Java 9 support

Version 6.3 - September 01, 2017
- 'custom' renaming option for packages
- numerous control flow obfuscation improvements

Version 6.2 - June 01, 2017
- added output-jar-compression-level property
- improved renaming algorithms

Version 6.1 - March 01, 2017
- new methods/fields renaming option - 'real'
- minor improvements

Version 6.0 - December 01, 2016
- new classes/methods/fields renaming option - 'custom'
- improved control flow obfuscation

Version 5.9 - September 01, 2016
- improved string encryption
- improved resource files handling
- minor fixes

Version 5.8 - June 01, 2016
- new classes/methods/fields/packages renaming option - '123'
- added packages-naming property
- setting the default single name for local variables

Version 5.7 - March 01, 2016
- Eclipse IDE plugin
- using instanceof in field template
- using @annotation in class, method and field templates

Version 5.6 - December 01, 2015
- improved string encryption
- ability to rewrite classes in input folder
- optimized default settings

Version 5.5 - September 01, 2015
- Android Studio integration
- minor changes/fixes

Version 5.4 - June 01, 2015
- added inner-classes property
- added classes-naming-prefix property
- new classes naming option - 'keep-$-sign'

Version 5.3 - March 01, 2015
- added update-resource-names property
- added update-resource-contents property

Version 5.2 - December 01, 2014
- Java 8 support
- new renaming techniques

Version 5.1 - September 01, 2014
- added string-encryption-ignored-strings property
- improved renaming

Version 5.0 - June 01, 2014
- new classes naming option - 'unique'
- option to completely exclude some classes from obfuscation - ignore-classes

Version 4.9 - March 01, 2014
- added remove-toString property
- added remove-calls property

Version 4.8 - December 01, 2013
- new string encryption option - 'maximum-with-warnings'
- running obfuscation from Maven

Version 4.7 - August 09, 2013
- new classes/methods/fields renaming option - 'iii'
- added synthetize-methods property
- added synthetize-fields property

Version 4.6 - May 16, 2013
- improved string encryption
- minor fixes

Version 4.5 - February 15, 2013
- added generics property
- minor changes/optimizations

Version 4.4 - November 07, 2012
- improved Android support
- minor changes/fixes
- optimized performance

Version 4.3 - August 05, 2012
- improved control flow obfuscation
- performance optimizations

Version 4.2 - May 08, 2012
- added classes-naming property
- added skip-renaming property

Version 4.1 - February 18, 2012
- added methods-naming-prefix property
- added fields-naming-prefix property
- added unique-renaming property

Version 4.0 - January 16, 2012
- completely new string encryption
- completely new control flow obfuscation
- added version-marker property
- added extensive-flow-obfuscation property
- added string-encryption-version property
- added "optimize" value to local-variables-naming property
- introduced annotations to configure string encryption and control flow obfuscation
- minor fixes

Version 3.5 - December 01, 2011
- introduced Rename and DoNotRename annotations for easier and more accurate configuration
- improved string encryption

Version 3.4 - September 06, 2011
- improved Android obfuscation

Version 3.3 - May 26, 2011
- renaming enum fields
- jar index support

Version 3.2 - February 23, 2011
- improved flow obfuscation
- minor changes

Version 3.1 - October 12, 2010
- improved renaming algorithms
- minor improvements

Version 3.0 - June 24, 2010
- selecting string-encryption-type for specified classes
- improved repackaging algorithm

Version 2.9 - March 29, 2010
- enabling/disabling string-encryption for specified classes
- minor fixes

Version 2.8 - September 07, 2009
- numerous improvements of J2ME support
- minor changes and optimizations

Version 2.7 - July 01, 2009
- added force-default-package property
- major improvements of renaming algorithms

Version 2.6 - May 01, 2009
- using '**' in classpath configuration to recurse into subdirectories
- improved control flow obfuscation

Version 2.5 - February 14, 2009
- J2ME-compatible expiry date feature
- minor improvements

Version 2.4 - December 10, 2008
- J2ME-compatible string encryption and watermarks
- improved incremental obfuscation

Version 2.3 - September 22, 2008
- new option: finalizing classes with no subclasses
- improved generics support
- improved J2ME support

Version 2.2 - July 09, 2008
- absolutely all strings can now be encrypted using 'maximum' option
- added 'string-encryption-type' property with two options: 'fast' and 'strong'
- added new options to keep names of methods' parameters

Version 2.1 - May 18, 2008
- war and ear files support
- allows to add expiry date to the obfuscated application

Version 2.0 - April 06, 2008
- fixes in the incremental obfuscation process
- optimized renaming algorithms

Version 1.9 - February 13, 2008
- new fields and methods renaming scheme - 'keywords'
- reading non-JARed class files from directories

Version 1.8 - November 25, 2007
- new fields and methods renaming scheme - 'compact'
- improved control flow obfuscation
- enhanced J2ME support

Version 1.7 - September 17, 2007
- optimized watermarking
- minor fixes/changes

Version 1.6 - July 01, 2007
- enhanced Java 1.6 support
- bugfixes and optimizations

Version 1.5 - February 05, 2007
- full support of Java annotations
- fixed enum handling

Version 1.4 - December 04, 2006
- J2ME support (Sun Java Wireless Toolkit for CLDC plugin)
- fixed multidimensional arrays handling
- performance optimizations

Version 1.3 - November 07, 2006
- incremental obfuscation
- new option for string encryption - 'maximum'
- referencing Ant properties from Allatori configuration file
- better resolving of interclass dependencies
- fixed array renaming bug

Version 1.2 - September 10, 2006
- added new configuration property 'random-seed'
- fixed method template matching
- fixed classpath handling
- optimized log file writing
- optimized resource management

Version 1.1 - June 26, 2006
- minor fixes and general optimization of renamer algorithm
- fixed some issues with JDK1.5 support
- new validity checks of configuration file options
- stronger and faster string encryption
- optimized control flow analysis

Version 1.0 - January 30, 2006
Internal Smardec's Java obfuscator project was renamed to Allatori Obfuscator.
Initial public release.