# 1.0.0-Beta15

Welcome to Beta 15! This release brings several significant enhancements aimed at improving the efficiency and functionality of the CLI environment and continued bug fixing to bring our CFML compatibility to several client applications and Ortus Libraries. Key among these is the introduction of the `bx-web-support` module, which allows the CLI to interface with web server capabilities, making it an excellent tool for testing and feature auditing. Additionally, the merge capabilities within module settings have been refined to support deep merges from the configuration file, ensuring greater flexibility and control.

Moreover, running scripts or classes via CLI execution now supports the automatic detection and execution of `Application.bx|cfc`, streamlining the process for developers. The new `ToString` dump template enhances debugging by enabling a concise display format for lists of Java objects, simplifying the analysis and debugging process.

Overall, this beta release brings further stability for CFML applications migrating to BoxLang!

## New Features

### [BL-544](https://ortussolutions.atlassian.net/browse/BL-544) Look and execute for Application.bx|cfc when running scripts or classes via CLI execution

We have always wanted even further CLI enhancements for applications built with BoxLang. Now you get it! BoxLang will look for an `Application.bx|cfc` whenever it executes a template or class and follow the process of application startup, settings, ORM, etc. The full life-cycle of an application but at the CLI level. This will allow you to completely test your web applications with no web server and even build CLI applications with easy application constructs!

### [BL-559](https://ortussolutions.atlassian.net/browse/BL-559) New bx-web-support module to support the CLI with web server capabilities. Great for testing, mocking and feature audits.

We have released the `bx-web-support` module which will give you mocking, testing and auditing capabilities for CLI testing and runners. This means that your CLI applications will look and feel like a real web application with a real web server, but using our mock approaches.

This module is still in it's alpha stages so expect much more development on it.

### [BL-574](https://ortussolutions.atlassian.net/browse/BL-574) Module settings should have a deep merge from the configuration file

All module settings in your `boxlang.json` can now be deeply merged automatically by BoxLang.

### [BL-580](https://ortussolutions.atlassian.net/browse/BL-580) Add a new ToString dump template that will take a list of java objects to display them in short hand format

We will be easing the visibility of certain human readable Java classes in our dump templates.

### [BL-581](https://ortussolutions.atlassian.net/browse/BL-581) Handle single values in arrayAppend merge=true

A nice feature to support further merging techniques with arrays.

## Improvements

[BL-503](https://ortussolutions.atlassian.net/browse/BL-503) dump improvement of UI when using expand/collapse

[BL-545](https://ortussolutions.atlassian.net/browse/BL-545) Show errors in class pseudo constructor in tag context

[BL-555](https://ortussolutions.atlassian.net/browse/BL-555) List utils need to trim all values when converting to arrays

[BL-558](https://ortussolutions.atlassian.net/browse/BL-558) LocalDateTime not showing in dumps as a date/time string, but as a Java Object

[BL-567](https://ortussolutions.atlassian.net/browse/BL-567) Update date/time and instant dump templates to be less verbose and more functional

[BL-569](https://ortussolutions.atlassian.net/browse/BL-569) Allow CF tag islands and template islands to be nested more than one level deep.

[BL-570](https://ortussolutions.atlassian.net/browse/BL-570) Merge CF lexer and grammar for faster parsing and more accurate lexing

[BL-571](https://ortussolutions.atlassian.net/browse/BL-571) Make tag expression parsing smarter

[BL-576](https://ortussolutions.atlassian.net/browse/BL-576) expandPath() must ignore invalid paths, just returning the input

[BL-579](https://ortussolutions.atlassian.net/browse/BL-579) More IO BIFs need to ignore invalid paths

## Bugs

[BL-434](https://ortussolutions.atlassian.net/browse/BL-434) script block parsing can be tricked by comments

[BL-546](https://ortussolutions.atlassian.net/browse/BL-546) Lucee allows properties to be anywhere in the pseduoconstructor of a class, not just at the top

[BL-547](https://ortussolutions.atlassian.net/browse/BL-547) flush component only flushes up one buffer, not all the way

[BL-550](https://ortussolutions.atlassian.net/browse/BL-550) Boxlang doesn't parse milliseconds in datetime string

[BL-551](https://ortussolutions.atlassian.net/browse/BL-551) Date "string" doesn't have date time member functions available

[BL-552](https://ortussolutions.atlassian.net/browse/BL-552) Querynew failing with more than one column defined

[BL-553](https://ortussolutions.atlassian.net/browse/BL-553) Regular Expression Syntax not supported

[BL-557](https://ortussolutions.atlassian.net/browse/BL-557) Metadata visitor doesn't support struct annotations with unquoted keys

[BL-561](https://ortussolutions.atlassian.net/browse/BL-561) Hyper module failing

[BL-562](https://ortussolutions.atlassian.net/browse/BL-562) bx-compat cfloop requires "index" when it shouldn't

[BL-563](https://ortussolutions.atlassian.net/browse/BL-563) transaction shouldn't require global DSN

[BL-564](https://ortussolutions.atlassian.net/browse/BL-564) cfproperty tag lucee allows non quoted properties

[BL-565](https://ortussolutions.atlassian.net/browse/BL-565) Class name sensitivity based on provided rather than class found

[BL-566](https://ortussolutions.atlassian.net/browse/BL-566) No reading dump templates due to pathing incorrectly in debug mode

[BL-568](https://ortussolutions.atlassian.net/browse/BL-568) Static support not compatible with CFML

[BL-572](https://ortussolutions.atlassian.net/browse/BL-572) javacast not actually casting as expected

[BL-573](https://ortussolutions.atlassian.net/browse/BL-573) functions in variables scope vs values in variables scope

[BL-575](https://ortussolutions.atlassian.net/browse/BL-575) bx-compat unquoted hashed expressions cause compiler error

[BL-577](https://ortussolutions.atlassian.net/browse/BL-577) serializeJSON errors when serializing a function

[BL-578](https://ortussolutions.atlassian.net/browse/BL-578) Sentinel loop with missing expressions fails

[BL-582](https://ortussolutions.atlassian.net/browse/BL-582) mid() It does not remove characters if the count is more than the length

[BL-583](https://ortussolutions.atlassian.net/browse/BL-583) Cannot invoke "ortus.boxlang.runtime.types.IStruct.putAll(java.util.Map)" because "recipient" is null
