Releases

Aspectran 9.3 Release Notes

This is a major update featuring a significant overhaul of the core IoC container (bean module). It introduces powerful new features for bean creation, enhances stability and performance through extensive refactoring, and fixes several critical bugs. Due to the scale of these internal changes, thorough testing is recommended after upgrading.

✨ New Features

  • Fine-grained Scope Control for FactoryBean: The FactoryBean interface now includes an isSingleton() method. This allows a factory to have fine-grained control over whether the object it produces is a shared singleton (default) or a new prototype instance for each request.

🚀 Improvements

  • Bean Creation & Lifecycle:
    • The internal logic for bean creation, especially for FactoryBean and factory methods, has been refactored for clarity and robustness.
    • Implemented robust, thread-safe singleton creation using a double-checked locking mechanism.
    • Added a concurrency test to verify thread-safe singleton bean creation.
  • Wildcard Utilities:
    • The wildcard matching engine has been significantly refactored for improved readability and maintainability by centralizing logic into a new WildcardEngine.
    • A new comprehensive, data-driven test suite has been added to ensure its stability.
  • AsEL (Aspectran Expression Language):
    • The AsEL evaluation mechanism has been refactored for a cleaner design and better extensibility, including improvements to token parsing and item evaluation logic.
  • Performance & Thread-Safety:
    • Improved performance and thread-safety in the AspectRegistry by optimizing data structures and iteration.
    • Enhanced thread-safety in CoreServiceHolder by using ConcurrentHashMap.
  • Exception Handling:
    • Exception handling for aspect advice has been improved to traverse the exception chain, allowing handlers to catch underlying cause exceptions.
  • Request Handling:
    • The default character encoding for web requests has been changed to UTF-8 to align with modern web standards.
  • Code Quality & Documentation:
    • Improved exception messages and Javadocs across multiple core modules to enhance developer experience.

🐞 Bug Fixes

  • FactoryBean/Factory-Method Lifecycle: Fixed a critical bug where the factory bean instance was incorrectly injected as a dependency instead of the object it produces.
  • AsEL Runtime Evaluation: Fixed a critical bug that prevented dynamically parsed AsEL tokens (e.g., #{field:...}) from being evaluated at runtime.
  • Wildcard Escaping: Fixed a bug in the wildcard parser where escaped characters (e.g., \*) were not correctly treated as literals.
  • Request Size Limit: Fixed a bug in WebRequestBodyParser where the request size limit could be bypassed with multi-byte encodings.
  • File Parameter Handling: Fixed an issue where FileParameter.getContentType() could return null.
  • ItemRule Properties Handling: Fixed a bug that caused incorrect handling of Properties values in ItemRule.
  • RedirectRule: Fixed a bug where getExcludeEmptyParameters() returned the wrong value.

NEWS
Release

Archive