Releases

Aspectran 9.2 Release Notes

Aspectran 9.2 is a significant release focused on dramatically improving the framework’s stability, correctness, and performance. Through extensive refactoring of the internal architecture and several critical bug fixes, it provides a more robust and reliable foundation.

🚀 Key Enhancements

  • Bean Scope Management and Concurrency Performance
    • Optimized the locking strategy when creating beans via FactoryBean, significantly reducing unnecessary contention and improving performance in concurrent environments. This ensures better throughput in multi-threaded applications.
    • Removed API restrictions on SessionScope to allow manual destruction of specific bean instances, increasing usability in scenarios like sticky sessions.
  • Refactoring Across Core Components
    • Session Management: Refactored the Lettuce-based session store by abstracting common logic to reduce code duplication and modernized terminology from “Master-Replica” to “Primary-Replica”.
    • MyBatis Integration: Improved the internal structure of the MyBatis integration module by clarifying responsibilities and increasing maintainability.
    • Internal Logic: Enhanced the stability of several utility classes, such as introducing a JsonParser to separate JSON processing logic and improving error handling in RestRequest.
  • Shell and Daemon Environment Stability
    • Greatly improved stability in the development environment by fixing several critical bugs that occurred during a shell restart.
    • Enhanced usability in scripted environments by allowing the quit command to exit immediately without a prompt in non-interactive mode, and optimized performance by caching interactive mode detection logic.
  • Code Quality and Documentation
    • Significantly improved the developer experience by extensively adding and refining Javadoc comments across the project and making internal logging and user messages clearer and more consistent.
    • Clarified API roles by renaming the resource release method in EmbeddedAspectran from release() to destroy().

🐞 Key Bug Fixes

  • Bean and Profile Configuration Correctness
    • Strengthened validation to prevent configuration errors by ignoring and issuing a warning if @Profile or other configuration annotations are used without the @Component annotation.
    • Fixed a critical bug in SessionScope that incorrectly matched beans by class name instead of ID, resolving unpredictable behavior, especially in clustered environments.
    • Resolved an issue where a NoUniqueBeanException would occur when multiple profiled beans were present, ensuring profile-based bean selection works correctly.
  • Service Lifecycle Bugs
    • Shell Restart Failures: Fixed critical bugs that caused the shell to terminate unexpectedly or logging to fail after a restart command due to issues in the asynchronous shutdown process of the embedded Jetty server and Logback context handling.
    • Request Handling During Startup: Improved stability by making incoming requests wait for service startup to complete, instead of rejecting them.
  • Other Important Fixes
    • Fixed a NotSerializableException in ConcurrencyThrottleSupport.
    • Fixed a bug where the Quartz scheduler was not created under certain conditions and added logic to prevent re-initialization.

NEWS
Release

Archive