|
| 1 | +--- |
| 2 | +description: April 27, 2025 |
| 3 | +--- |
| 4 | + |
| 5 | +# What's New With 7.4.0 |
| 6 | + |
| 7 | +Welcome to ColdBox 7.4.0, our last planned release for the 7.x series before our 8.x series starts. Let's review the major updates of these release. |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +## ColdBox Updates |
| 12 | + |
| 13 | +<figure><img src="../../.gitbook/assets/logo-gradient-dark.png" alt=""><figcaption><p>www.boxlang.io</p></figcaption></figure> |
| 14 | + |
| 15 | +### BoxLang Support |
| 16 | + |
| 17 | +With the latest updates, ColdBox extends its capabilities to support the development of entire applications using BoxLang exclusively. This enhancement allows developers to leverage the full power and modern syntax of BoxLang, streamlining the development process and adopting current best practices.  |
| 18 | + |
| 19 | +For those who prefer a gradual transition, ColdBox offers the flexibility to integrate BoxLang within existing ColdFusion Markup Language (CFML) applications. Consequently, developers can choose to write components, handlers, views, and models using either BoxLang, CFML, or a combination of both. This dual-support approach not only facilitates a seamless transition for applications migrating from CFML to BoxLang but also enables new projects to be crafted entirely in the more modern and robust BoxLang environment. |
| 20 | + |
| 21 | +Nothing for you to do except create `.bx, bxm` templates for your application |
| 22 | + |
| 23 | +### BoxLang Template |
| 24 | + |
| 25 | +You also now have a `bx-default` application template you can use to build your applications with. You can find it here: [https://github.com/coldbox-templates/bx-default](https://github.com/coldbox-templates/bx-default) |
| 26 | + |
| 27 | +## CacheBox Updates |
| 28 | + |
| 29 | +### DiskStore Rewrite |
| 30 | + |
| 31 | +The entire `DiskStore` has been rewritten to include better performance but more importantly to be able to be used concurrently and on distributed network drives. It no longer relies on in-memory indexes and each store on each cluster node can rebuild itself. |
| 32 | + |
| 33 | +### BoxLang Providers |
| 34 | + |
| 35 | +If you are migrating your ColdBox applications then you will need to update your Lucee/CF Providers to use the BoxLang ones: |
| 36 | + |
| 37 | +| Lucee | Adobe | BoxLang Equivalent | |
| 38 | +| -------------------- | ----------------- | ---------------------- | |
| 39 | +| LuceeProvider | CFProvider | BoxLangProvider | |
| 40 | +| LuceeColdboxProvider | CFColdBoxProvider | BoxLangColdBoxProvider | |
| 41 | + |
| 42 | +### Memory Indexers |
| 43 | + |
| 44 | +Memory indexers have also been rewritten to improve stability on clustered servers and to avoid null issues and double map tracking. |
| 45 | + |
| 46 | + |
| 47 | + |
| 48 | +## LogBox Upates |
| 49 | + |
| 50 | +Rollling file threads had an bad setting and they would be running on a 1 millisecond timer. This not only has been mitigated, but also made it configurable via the `rotatorSchedulerMinutes` property on the appender. |
| 51 | + |
| 52 | + |
| 53 | + |
| 54 | +## WireBox Updates |
| 55 | + |
| 56 | +WireBox now completely talks BoxLang and CMFL. Giving it the ability to inject, build and compose objects of either language. |
| 57 | + |
| 58 | + |
| 59 | + |
| 60 | +## Release Notes |
| 61 | + |
| 62 | +{% tabs %} |
| 63 | +{% tab title="ColdBox HMVC" %} |
| 64 | +### Improvement |
| 65 | + |
| 66 | +[COLDBOX-1286](https://ortussolutions.atlassian.net/browse/COLDBOX-1286) Make sure global scheduler is loaded after modules load. |
| 67 | + |
| 68 | +[COLDBOX-1287](https://ortussolutions.atlassian.net/browse/COLDBOX-1287) If running scheduled tasks manually with a \`force\` then do not set the next run since this is a forced run. |
| 69 | + |
| 70 | +[COLDBOX-1288](https://ortussolutions.atlassian.net/browse/COLDBOX-1288) Allow Disabling of PrettyJson in Log Output |
| 71 | + |
| 72 | +[COLDBOX-1294](https://ortussolutions.atlassian.net/browse/COLDBOX-1294) Call \`reset()\` when testing and unloadColdbox is true in the \`afterTests()\` to make sure the reset procedures are done, not only the shutdown. |
| 73 | + |
| 74 | +[COLDBOX-1305](https://ortussolutions.atlassian.net/browse/COLDBOX-1305) Improvement: Update Config Seeding to Include Original Module Settings |
| 75 | + |
| 76 | +#### New Feature |
| 77 | + |
| 78 | +[COLDBOX-1285](https://ortussolutions.atlassian.net/browse/COLDBOX-1285) BoxLang Support so you can write your ColdBox apps in BoxLang |
| 79 | + |
| 80 | +[COLDBOX-1296](https://ortussolutions.atlassian.net/browse/COLDBOX-1296) New flow peek() method to do fluent peeks in objects |
| 81 | + |
| 82 | +[COLDBOX-1297](https://ortussolutions.atlassian.net/browse/COLDBOX-1297) Schedulers now have a startupTask( task ) to dynamically startup a task by name or task object |
| 83 | + |
| 84 | +[COLDBOX-1306](https://ortussolutions.atlassian.net/browse/COLDBOX-1306) Better tracking of status code and text on the request context so integration tests are not corrupted by response commitment: getStatusCode(), getStatusText() accessors |
| 85 | + |
| 86 | +#### Bug |
| 87 | + |
| 88 | +[COLDBOX-1280](https://ortussolutions.atlassian.net/browse/COLDBOX-1280) coldbox.system.cache.policies.LRU cleanup errors |
| 89 | + |
| 90 | +[COLDBOX-1281](https://ortussolutions.atlassian.net/browse/COLDBOX-1281) DateTimeHelper.validateTime Regression |
| 91 | + |
| 92 | +[COLDBOX-1282](https://ortussolutions.atlassian.net/browse/COLDBOX-1282) ScheduledTasks Bug - java.util.concurrent.TimeUnit type error |
| 93 | + |
| 94 | +[COLDBOX-1289](https://ortussolutions.atlassian.net/browse/COLDBOX-1289) Directory Helper Logic in Renderer.cfc is Incorrect and Generates Bad Path On Windows |
| 95 | + |
| 96 | +[COLDBOX-1295](https://ortussolutions.atlassian.net/browse/COLDBOX-1295) Dumps in BugReport.cfm need top attributes |
| 97 | + |
| 98 | +[COLDBOX-1304](https://ortussolutions.atlassian.net/browse/COLDBOX-1304) thisLocationToken is not var scoped |
| 99 | + |
| 100 | +[COLDBOX-1311](https://ortussolutions.atlassian.net/browse/COLDBOX-1311) Remove direct calls to the servlet response.setStatus( int, String ) methods due to jakarta removing statusText |
| 101 | + |
| 102 | +[COLDBOX-1317](https://ortussolutions.atlassian.net/browse/COLDBOX-1317) ACF 2025 has removed htmlEditFormat |
| 103 | + |
| 104 | +[COLDBOX-1326](https://ortussolutions.atlassian.net/browse/COLDBOX-1326) populator discover entity name not accouting for missing entityname |
| 105 | + |
| 106 | +[COLDBOX-1327](https://ortussolutions.atlassian.net/browse/COLDBOX-1327) \`layoutLocations\` variable error when using event.noLayout() |
| 107 | +{% endtab %} |
| 108 | + |
| 109 | +{% tab title="CacheBox" %} |
| 110 | +### New Feature |
| 111 | + |
| 112 | +[CACHEBOX-87](https://ortussolutions.atlassian.net/browse/CACHEBOX-87) BoxLang Providers |
| 113 | + |
| 114 | +[CACHEBOX-88](https://ortussolutions.atlassian.net/browse/CACHEBOX-88) New approach for indexing objects on object stores to allow for concurrency and without separating indexers |
| 115 | + |
| 116 | +### Bug |
| 117 | + |
| 118 | +[CACHEBOX-86](https://ortussolutions.atlassian.net/browse/CACHEBOX-86) JDBCStore has double now overrides when doing insert/updates on caching. Remove one of them |
| 119 | + |
| 120 | +### Improvement |
| 121 | + |
| 122 | +[CACHEBOX-42](https://ortussolutions.atlassian.net/browse/CACHEBOX-42) Rewrite CacheBox DiskStore to not rely on in-memory indexer |
| 123 | +{% endtab %} |
| 124 | + |
| 125 | +{% tab title="LogBox" %} |
| 126 | +### Bug |
| 127 | + |
| 128 | +[LOGBOX-81](https://ortussolutions.atlassian.net/browse/LOGBOX-81) Make the Rolling File Appender rotator task timer configurable: rotatorSchedulerMinutes property |
| 129 | + |
| 130 | +[LOGBOX-82](https://ortussolutions.atlassian.net/browse/LOGBOX-82) LogBox Rolling file threads rotator running on an insane millisecond timer instead of minutes |
| 131 | +{% endtab %} |
| 132 | + |
| 133 | +{% tab title="WireBox" %} |
| 134 | +### Bug |
| 135 | + |
| 136 | +[WIREBOX-155](https://ortussolutions.atlassian.net/browse/WIREBOX-155) ExceptionBean is referenced but not shipped with Standalone install |
| 137 | +{% endtab %} |
| 138 | +{% endtabs %} |
0 commit comments