description |
---|
December 13, 2024 |
This release takes BoxLang to the next level, delivering a mix of critical bug fixes, thoughtful improvements, and exciting new features designed to enhance your development experience. With Beta25, we’ve solidified and made the ASM ByteCode BoxPiler the default compiler, refined module, and logging management, and added long-requested query of queries and JSON-based logging encoders. Additionally, we’ve tackled critical issues around debugging, compatibility, and system settings to make this the most stable and feature-complete beta yet.
At this point, we have a handful of small bugs open, which will completely certify all of the major Ortus frameworks like ColdBox, ContentBox, and over 50 modules. Complete certification is around the corner.
As a bonus, we are almost ready to release our Hibernate ORM module (bx-orm
) and move into a Release Candidate phase for our entire lineup. So please test test test, and give us your feedback.
• BL-121: createObject() now supports classloading arguments as the third argument.
Easily manage and control classloading with arguments to enhance flexibility and modularity.
createObject( "java", "HelloWorld", [ "/libs/paths" ]
• BL-699: Dynamic Task Management in Schedulers
Added startupTask(task)
to dynamically initialize tasks by name or task object.
• BL-794: JSON-based Logging Support
Appenders and root configurations now include JSON encoders for enhanced logging formats.
• BL-828: Improved Scheduler Logging
Scheduler logs are now effectively reported to provide better insights.
• BL-829: Enhanced Module Logging
Modules now have dedicated logs to improve debugging and diagnostics.
• BL-832: New Event Lifecycle: onConfigurationLoad
Introduced a new lifecycle event for IServices to optimize configuration handling.
• BL-833: Enhanced Compatibility Assignments
Assignments now accurately interpret null variables for better compatibility.
• BL-846: New Logging Setting: statusPrinterOnLoad
Added statusPrinterOnLoad for much-needed debugging of logging configurations.
• BL-682: Streamlined Method Expectations
Improved handling of methods that don’t expect return values for better consistency.
• BL-706: Enhanced Session Cookie Controls
Added missing controls for session cookie management to improve security and compliance.
• BL-760: Bytecode Line Number Enhancements
Added line number details to bytecode generated with ASM for improved debugging.
• BL-766: ASM is Now the Default BoxPiler
Streamlined the toolchain by making ASM the only default stock BoxPiler.
• BL-784: Optimized Replace Operations
Updated replaceAll() methods to use pre-compiled patterns for better performance.
• BL-787: Unified Logging Configuration
Consolidated logging startups and configurations for both servlet and non-servlet environments.
• BL-788: Support for this.componentPaths
Introduced implicit mapping support for more intuitive path management.
• BL-791: Module Enable/Disable Support
Modules can now be enabled or disabled using enabled in boxlang.json, removing double negatives like disabled.
• BL-809: Forms Module Introduced
A new module for handling forms was added, enhancing the BoxLang ecosystem.
• BL-812: Improved Scope Assignment
Allowed reassignment of a scope to a struct for more flexible programming.
• BL-822: Collision Prevention in IClassRunnable Methods
Prefixed methods to prevent naming collisions for safer execution.
• BL-830: Graceful Module Unloading
Added defensive coding for module unloading failures to ensure runtime stability.
• BL-831: Consistent Struct Collector Outputs
Resolved inconsistencies by ensuring collectors return Struct objects.
• BL-839: Improved Parent Class Delegation
Enhanced module class loaders to delegate certain parent classes to the parent loader exclusively.
• ASM and Debugging Fixes:
BL-694, BL-742, BL-759, BL-762, BL-760
• Localization and Formatting Issues:
• Parsing Errors:
• Thread and Scope Resolution Bugs:
• Miscellaneous: