# 1.0.0-Beta22

The BoxLang 1.0.0-Beta22 release includes several improvements, bug fixes, new features, and stories. Key improvements include enhanced redirection for the Miniserver, better transactional event broadcasting, and added convenience methods like `getRequestContext()` and `getApplicationContext()`. Bug fixes address issues such as JSON deserialization, whitespace management, and various errors related to data types and loops. New features include support for multiple statements inside queries and a new `datasourceRegister()` BIF for easier SaaS integrations.

## Release Notes

#### New Features

[BL-123](https://ortussolutions.atlassian.net/browse/BL-123) Implement multiple statements inside queries

[BL-383](https://ortussolutions.atlassian.net/browse/BL-383) new bif: datasourceRegister() to allow for easy saas integrations to create datasources

[BL-658](https://ortussolutions.atlassian.net/browse/BL-658) MIgrate AST Capture to it's own experimental flag

[BL-748](https://ortussolutions.atlassian.net/browse/BL-748) Add getApplicationContext() method on all contexts for convenience, especially when calling from CF/BL

#### Improvement

[BL-730](https://ortussolutions.atlassian.net/browse/BL-730) Miniserver needs to 302 redirect when hitting a directory without the trailing slash

[BL-734](https://ortussolutions.atlassian.net/browse/BL-734) Broadcast Transactional events at the Application listener-level

[BL-735](https://ortussolutions.atlassian.net/browse/BL-735) Allow unregistering a java class (IInterceptor) from an InterceptorPool

[BL-737](https://ortussolutions.atlassian.net/browse/BL-737) Add getRequestContext() method on all contexts for convenience, especially when calling from CF/BL

[BL-738](https://ortussolutions.atlassian.net/browse/BL-738) Allow output from functional wrappers

[BL-740](https://ortussolutions.atlassian.net/browse/BL-740) Autocast simple values to Keys when calling java methods from BL

[BL-741](https://ortussolutions.atlassian.net/browse/BL-741) Allow :: static access to be chained to any expression

[BL-746](https://ortussolutions.atlassian.net/browse/BL-746) Add toLegacyDate BIF and Member Function to Compat module

[BL-751](https://ortussolutions.atlassian.net/browse/BL-751) Make generated getters return null when property is not initialized

[BL-116](https://ortussolutions.atlassian.net/browse/BL-116) Implement unfinished query options

#### Bug

[BL-694](https://ortussolutions.atlassian.net/browse/BL-694) Fix tests that fail when using ASM

[BL-695](https://ortussolutions.atlassian.net/browse/BL-695) large json fails to deserialise with bx-compat

[BL-714](https://ortussolutions.atlassian.net/browse/BL-714) Add Whitespace Management

[BL-731](https://ortussolutions.atlassian.net/browse/BL-731) dump errors with compat installed due to null variable

[BL-733](https://ortussolutions.atlassian.net/browse/BL-733) RandRange seems to never return upper range

[BL-736](https://ortussolutions.atlassian.net/browse/BL-736) JDBC Transaction listeners not firing upon transaction event announcement

[BL-739](https://ortussolutions.atlassian.net/browse/BL-739) shebang checks in BoxRunner don't nicely handle invalid file paths

[BL-743](https://ortussolutions.atlassian.net/browse/BL-743) WDDX not parsing booleans correctly

[BL-744](https://ortussolutions.atlassian.net/browse/BL-744) Cannot cast ortus.boxlang.runtime.types.DateTime to java.util.Date

[BL-745](https://ortussolutions.atlassian.net/browse/BL-745) parseDateTime failing

[BL-747](https://ortussolutions.atlassian.net/browse/BL-747) for (sentinel) loop is evaluating the step/increment expression one final time too many when a break is used

[BL-752](https://ortussolutions.atlassian.net/browse/BL-752) error using negative indices to get characters from strings

[BL-754](https://ortussolutions.atlassian.net/browse/BL-754) error: integer number too large

[BL-755](https://ortussolutions.atlassian.net/browse/BL-755) SerializeJSON not working with named params
