## [1.19.0] - 2023-12-11
### Changed
- Rename StrUtil.array2text() to arrayToText()
- Rename StrUtil.intnum2decimal() to intNumToDecimal()
- Rename StrUtil.text2array() to textToArray()

## [1.20.0] - 2024-01-20
### Changed
- Rename Time.toReadableString() to toStringWithUnit()
- Make StringPermutation class independent from StrUtil class

## [1.21.0] - 2025-08-06
### Changed
- Removed dependency on `java.xml.bind` to improve compatibility with Java 9 and later.

## [1.22.0] - 2025-08-07
### Changed
- Renamed `RandomGenerator` class to `Randomizer`.

## [1.23.0] - 2026-09-01

### Added

* Added instance `CommandExecutor.execCommand()` methods for executing command arrays.

### Changed

* Improved HTTP redirect handling, including relative URLs, 303 responses, query strings, and redirect limits.
* Improved handling and performance across string, binary, file, date/time, CSV, JSON, properties, and random utility functions.
* Updated Maven build and publishing configuration while continuing to target Java 8.

### Fixed

* Fixed command execution timeout and default charset handling.
* Fixed negative duration formatting and negative time conversion.
* Fixed file reading and directory copying issues.
* Fixed JSON control character escaping.
* Fixed various parsing, boundary, padding, and range handling issues across utility methods.

### Removed

* Removed the `Base64s` class as part of the migration to XB64.
* Removed `HttpRequest.joinPath()` and `HttpRequest.appendQuery()`; use the corresponding `UrlUtil` methods instead.