Skip to content
This repository has been archived by the owner on Jan 13, 2023. It is now read-only.

v0.6

Latest
Compare
Choose a tag to compare
@TheDGOfficial TheDGOfficial released this 05 Apr 12:43
· 153 commits to main since this release
2b7c7dc

Release notes (not all changes):

This release does not contain much new features and therefore it is a general maintenance release including bug fixes and other enchancements. We planned to release this as Java 16 upgrade but apparently CodeQL / LGTM blocked us, and we will not gonna delay it anymore.

Added:

Featured:

  • Added a warning for when the target jar contains META-INF/versions, but the META-INF/MANIFEST.MF does not contain Multi-Release: true entry. The suggested fix for this is either add that entry or use -Djdk.util.jar.enableMultiRelease=force when launching your program. Note that the latter does not fix this warning, though.

Others:

  • New CLI message on exit that prints exit code.
  • Added version information to handleError() for fatal errors.
  • Added more debug messages when creating threads and for supressed exceptions, etc.

Changed:

Semi-breaking:

  • Arguments can be specified multiple times now without side-effects.

Featured:

  • Now gets the license name from the POM, too.
  • Expose Lazy#supplierInvoked via Lazy#isSupplierInvoked.
  • Run I/O actions in a ManagedBlock, resulting in a performance boost when I/O is the bottleneck. It will create a new thread to maximize CPU power, since while the other threads would be blocking in I/O, the new thread can process. For this purpose, there is a new class, SupplierManagedBlock, that uses Lazy internally and uses Lazy#isSupplierInvoked.
  • Use scheduleWithFixedDelay instead of scheduleAtFixedRate, since the latter does not include the time spent in running the task.
  • Set thread-priorities properly to improve performance.
  • More performance improvements.

Others:

  • Upgraded to Contributor Covenant 2.0.
  • Updated shell-check and setup-java in GH Actions, possibly changing default build JDK from Zulu to AdoptOpenJDK.
  • Upgraded to Maven & maven-model 3.8.1.
  • Upgraded to ECJ 3.25.0.
  • JavaDoc additions, clarifications and typo fixes.
  • Exported range limiting functionality to separate methods.
  • Other general code quality and naming changes (length() --> isEmpty(), getHasPrintedAtLeastOneVersion() --> hasPrintedAtLeastOneVersion(), etc.).

Fixed:

  • Fixed wrong repo URL in CONTRIBUTING.md.
  • Fixed 404 in License URL in POM.
  • Fixed default --fail-verbosity of Verbosity#ERROR is not working (works when explicitly specified, though), this because of ArgumentAction being only run when the argument is entered. The fix is running the ArgumentAction after loadArguments() for the argument to process default value exactly as-is like it was specified explicitly.
  • Fixed a false positive LGTM memory leak warning with a work-around.
  • Fixed Logging.debug() method using info(""), replaced with debug(() -> "") instead. Note that however, while this is a valid fix, this method is not used in any of the releases, so this bug does not affect any release, including this release, even without this fix.

See full changes here:
v0.5...v0.6