This release introduces a completely overhauled APON/JSON module with powerful new features, significant improvements to web utilities, and several important bug fixes. Key highlights include a new high-performance APON parser, extensible JSON serialization, and enhanced type safety.
✨ New Features
- New
AponParserfor High-Performance Parsing:- Introduced a new, high-performance
AponParserclass designed for efficient, structure-based parsing of dynamic APON data, especially multi-dimensional arrays.
- Introduced a new, high-performance
- Enhanced APON & JSON Capabilities:
- Added support for lenient JSON parsing in
JsonParserandJsonToParametersto handle non-standard formats (e.g., with trailing commas). - Introduced the
JsonSerializerinterface, allowing the registration of custom serializers for extensible and flexible JSON object serialization. AponReadernow correctly parses nested (multi-dimensional) arrays and supports compact empty structures ([],{}).
- Added support for lenient JSON parsing in
- Modernized Web Utilities:
- Added
SameSiteattribute support toCookieGeneratorfor enhanced browser security and standards compliance.
- Added
- Flexible Token Generation:
- Added overloaded static methods to
PBTokenIssuerandTimeLimitedPBTokenIssuerthat accept an explicitencryptionPassword, allowing for greater flexibility without relying on a single system-wide configuration.
- Added overloaded static methods to
🚀 Improvements
- APON/JSON Core Refactoring:
- The
Parametersclass hierarchy has been refactored with a newDefaultParametersbase class to improve code reuse and simplify the creation of custom parameter types. - Greatly improved error messages and exception handling in APON utilities for better diagnostics.
- The
AponLinesAPI has been refined for clearer and safer line appending.
- The
- Web Utility Enhancements:
- Standardized all HTML and JavaScript escaping to use the robust Apache Commons Text library, removing legacy custom implementations.
- Standardized URI encoding to UTF-8 across
WebUtilsandUrlTagfor better consistency.
- Core Framework & Build:
CoreServiceHolder.getAllContextNames()now returns aSet<String>to guarantee uniqueness.- Added
httpclient5as a required dependency for core web functionalities. - Refactored
PBTokenIssuerandTimeLimitedPBTokenIssuerinto final utility classes with static methods for easier use.
🐞 Bug Fixes
- Type Safety and Correctness in APON/JSON:
- Resolved potential
ClassCastExceptions inParameterValueby replacing unsafe direct casts with type-safe conversion logic for allgetValueAs...List()methods. - Fixed an issue where
JsonToParametersfailed to correctly convert JSON arrays into APONParameters. - An empty
JsonStringno longer causes anEOFExceptioninJsonWriter; it now correctly outputsnull. - Fixed a bug where empty collections were incorrectly stored as an array containing a single null element.
- Resolved potential
🛠️ Dependency Upgrades
- Jetty updated to 12.1.4
- Hibernate Validator updated to 9.1.0
- Commons IO updated to 2.21.0
- Other minor dependency patches.
Juho Jeong NEWS
Release