ColdBox Blog

Category Filtering: 'releases'


CacheBox 2.0, WireBox 2.0, and LogBox 2.0 Released

Brad Wood   |   January 23, 2015


In tandem with our ColdBox 4.0 release, we are publishing major releases of the core Box libraries as well:

CacheBox 2.0


  • [CACHEBOX-25] - Deprecate Cachebox xml config support


Read the What's New guide.

Download CacheBox

LogBox 2.0


  • [LOGBOX-14] -Truncating of category data to avoid error on insertion on DB Appender


Read the What's New guide.

Download LogBox

WireBox 2.0


  • [WIREBOX-31] -Builder.buildDSLDependency does not use the custom DSL correctly as the default namespace kicks in


  • [WIREBOX-32] -binder.mapDirectory now skips hidden dirs
  • [WIREBOX-35] -Remove coldbox:cacheManager DSL reference, it is no longer valid

New Features

  • [WIREBOX-2] -allow mapDSL to be altered at runtime by modules via new wirebox method: registerDSL()
  • [WIREBOX-30] -Support wiring new injection DSL = byType, which leverages the type to match to an implementation
  • [WIREBOX-33] -Add a force argument to the map functions so you can override if a mapping already exists
  • [WIREBOX-36] -New coldbox dsl to get a renderer reference: coldbox:renderer

Read the What's New guide.

Download WireBox

ColdBox 4.0 Release Goes Gold

Brad Wood   |   January 22, 2015


We are very excited to announce the official release of ColdBox 4.0.  Work started a year ago with a very aggressive plan to overhaul the core and refocus the platform for agility, speed, and control.  We carved out tons of legacy support, leaving a slim and  fast MVC shell.  ColdBox 4 has 80% less code and is even faster than before as all the extra libraries and plugins have been externalized into modules. 

Speaking of modules, they have been greatly enhanced and upgraded to first-class citizens of the framework.  All of the tooling that makes the ColdBox Platform standout from other frameworks such as validation, ORM services, storage facades, and debuggers are still available but now a-la carte in the form of pluggable modules.  

Developers are also empowered more than ever before to write reusable modules that can be publicly shared, and plugged into any ColdBox MVC app for instant convention-based functionality that increased productivity and makes code-sharing even easier.  With the advent of CommandBox, our new powerful package manager and CLI as well as our new box.json package conventions, managing these modules as packaged dependencies is easy and  portable.

Don't believe us?  Try out ColdBox 4 right now on any computer.  Download CommandBox to your desktop and double click on it.  Now, type the following simple commands:

CommandBox> mkdir mySite
CommandBox> cd mySite
CommandBox> coldbox create app myApp --installColdBox
CommandBox> start

That's it!  In a few seconds, the embedded server will spring to life and a browser window will open with your new ColdBox 4.0 site.  Want to use the awesome validation features of ColdBox?  Just type this in your command line window:

CommandBox> install cbvalidation
CommandBox> restart

Welcome to the new age of CFML developers who are no longer held back by old tools, crusty processes, the lack of automation, and frameworks that don't work FOR them!  

ColdBox Manual

We are also announcing the availability of our new documentation in book format we handsomely call: The ColdBox Manual.  We have been listening to all the feedback about the docs and organization and we have made great progress to migrate all our documentation in many formats: HTML, ePub, mobi, PDF and more.  Anybody can also contribute to our documentation as it is available via GitHub with an awesome markdown editor from  You can also subscribe to get notified of changes and updates of the documentation, so go ahead and subscribe.

Roll Excitement

We are so excited for the future we can barely hold it in.  Don't take our word for it though.  Dig into the What's New guide to see what you're missing!

Official ColdBox download page

CommandBox Getting Started Guide


TestBox BDD v2.1.0 and MockBox Released!

Luis Majano   |   November 14, 2014


We are so excited to bring you TestBox 2.1.0 and MockBox 3.1.0!  These releases are minor releases of our libraries and include not only great features but a slew of fixes.  You can read all about the exciting features in our What's New Guide!  They have also been integrated with CommandBox, our new ColdFusion CLI and package manager, to allow you to download, install and even execute tests in the command line.  We have also made available our integration server builds which can also be installed via our CLI.

You can now do this to install TestBox or MockBox.

// install testbox
box install testbox

// install testbox bleeding edge
box install testbox-be

// install mockbox
box install mockbox

// Execute tests
box testbox run runner="runner path"

// Generate a bdd spec
box testbox create bdd MySpec


Release Notes

Bugs Fixed

  • [TESTBOX-96] - isEqual on Query fails when queries are equal
  • [TESTBOX-97] - equalize fails on struct/objects/arrays when null values exist within them
  • [TESTBOX-98] - Floating Point Number isEqual Fails
  • [TESTBOX-100] - Specs with the same name cause thread name exceptions when using async
  • [TESTBOX-101] - Download file has "samples" instead of "tests" directory
  • [TESTBOX-102] - tobe() cannot handle sparse arrays on Adobe CF
  • [TESTBOX-103] - xUnit compatibility CF9 broken due to isClosure() being utilized
  • [TESTBOX-105] - skip closures get more metadata arguments when being executed.
  • [TESTBOX-115] - testbox errors when using complete null support in railo


  • [TESTBOX-40] - Have debug() include information about where it came from
  • [TESTBOX-95] - remove extra whitespace in text reporter
  • [TESTBOX-110] - Remove CF7,8 incompatibilities
  • [TESTBOX-118] - ColdFusion 11 cfinclude compatibilities

New Feature

  • [TESTBOX-106] - BDD run() method now receive the TestResults argument for usage in their definitions.
  • [TESTBOX-107] - BDD runner and specs receive reference to the TestBox calling class via the run() method
  • [TESTBOX-108] - Update the apidocs with our new DocBox skin
  • [TESTBOX-109] - Debug labels and telemetry additions
  • [TESTBOX-112] - Add "top" attribute to debug method
  • [TESTBOX-114] - HTMLRunner add big request timeout setting to avoid server cut offs
  • [TESTBOX-116] - have expectations assertions return the expectation to allow chaining
  • [TESTBOX-117] - Simple reporter includes now a test bundle filter
  • [TESTBOX-119] - New lifecycle method: aroundEach() so you can do a full AOP advice on any spec




New Compatibility Module released to help get you on ColdBox 4.0

Brad Wood   |   November 13, 2014


ColdBox 4.0 is now in Release Candidate and we're tightening down all the screws for the big release.  As 4.0 is a major release of the platform, we've taken the opportunity to really clean up the code, making changes and improvements where necessary.  This includes the exodus of 75% of ColdBox's core code into pluggable modules so you can truly pick and choose what parts of the framework you want.  Some methods such as getPlugin() and getColdBoxOCM() were also removed.  This has naturally modified the framework's API a bit and your 3.x ColdBox app might not run without some tweaking.  

We have a What's New doc as well as a Compatibility Guide for ColdBox 4.0 where we have tried to document any changes necessary to get your codebase switched over.  However, we realize that some of this may take time for you to refactor if you have a larger codebase and we don't want it to keep you from looking at ColdBox 4.0  

That's why I've created a compatibility module for ColdBox 3.x code bases to help them run on the new 4.0 version of the ColdBox platform.  We feel this is a  much better solution than littering the core codebase with additional settings and feature flags.  ColdBox is the only framework with a first-class modular architecture.  Mix that with the incredible extensibility options, and this module has be ability to alter just about anything it wants.  

Only install it if you need it, and remove it once you're finished refactoring your code to the 4.0 standards.  This isn't meant to be a permanent install-- it's just a stepping stone to help you get your codebase up and running until you have time to finish refactoring.  Do feel free to use it in production, though it comes with no warranties or guarantees.  Here's a list of the modifications this module will make to ColdBox 4.x to make it work like the 3.x versions.

Functions and behaviors restored

  • Original getModuleSettings() behavior
  • getPlugin() function
  • getMyPlugin() function
  • getColdBoxOCM() function
  • UDFLibraryFile setting
  • "model" convention for WireBox scan locations
  • coldbox.system.plugin base class

The following WireBox mapping DSL namespaces are restored

  • ocm
  • ocm:{keyName}
  • coldbox:plugin:{pluginName}
  • coldbox:myplugin:{pluginName}
  • coldbox:myplugin:{pluginName@moduleName}
  • coldbox:fwconfigbean
  • coldbox:configbean
  • coldbox:cacheManager
  • coldbox:mailsettingsbean (requires mailservices module)
  • coldbox:debuggerService (requires cbdebugger module)
  • coldbox:validationManager (requires validation module)

This module also comes packaged with all the original ColdBox 3.8.1 plugins, so you only need to install this module and you'll have it all back again.   If you need any of the functionality that was refactored into modules such as ORM, validation, or i18n, just install those modules.  

Known issues:

  • When this module loads, it will copy Plugin.cfc to the coldbox/system directory.  If you uninstall this module, it will not remove that file.
  • Plugins only work for the default convention location of "plugins". 
  • You will still need to change the Application.cfc to use coldbox.system.Bootstrap instead of coldbox.system.ColdBox.  There's really no way around that one.


The preferred way to install this module is via CommandBox because using a package manager is just so fast and easy.  If you don't have Command Box, grab it real quick from here.  Then CD to your site's web root and run the following:

CommandBox> install cbcompat

If you want to do an old-fashioned installation, just click the download link from ForgeBox, and uncompress the contents of the zip file into your app's modules directory.

If you have questions or suggestions, hit me up on the ColdBox list, or feel free to submit a pull request.

ColdBox 4.0 Release Candidate Available

Brad Wood   |   October 19, 2014


We've been hard at work on on ColdBox 4.0 ever since we announced the public roadmap back in February.  There has been two good rounds of feedback in our Alpha and Beta cycles and we are pleased to announce the general availability of our first release candidate for ColdBox 4.0.

ColdBox 4.0 is a major release of the software with a completely revamped core that's seen a complete modularization of 75% of the features.  That means ColdBox is now leaner, faster, and more focused.  Don't worry, all your  favorite libraries are still available to you, but they've been moved to ForgeBox and you can install them easily with our new CLI and package manager CommandBox.

Please take ColdBox 4.0 out for a spin and kick the tires.  If  you're currently using an older version of ColdBox, start by reading our Compatibility Guide here:

You can also get a leg up on the long list of the new features on our What's New page here:

Once you're ready to give it a spin, download ColdBox 4.0 Release Candidate from the "Upcoming Release" portion of our download page:

Or better yet, fire up CommandBox, CD into your web root and run

install coldbox-be

And as usual, please report any issues or questions you have to our Google Group.



ColdBox 4 & CommandBox Beta have arrived!

Luis Majano   |   September 04, 2014



After almost half a year worth of work, we are finally here, ColdBox 4 & CommandBox CLI Beta have arrived.  For those of you who don't know what CommandBox is, CommandBox is our very own ColdFusion (CFML) Command Line Interface, package manager, REPL and recipe runner.  It connects to our ForgeBox online community for package repositories, installation and tracking.  It also has a very extensible commands interface that allows any CFML developer to contribute commands into CommandBox.  It ships with tons of commands for Coldbox 4 integration as well as the other boxes.  Check out the product pagedocumentation and Command API docs as well.  You can also check out the intro video below:


ColdBox 4 Major Features

So what's going with ColdBox 4.  ColdBox 4 is a major release in our ColdBox Platform series and includes a new revamped MVC core, extreme focus on Modularity and all extra functionality has been refactored into ColdBox modules. We have pushed the modular architecture to 1st class citizen even in the core itself. There are several compatibility updates that you must do in order to upgrade your ColdBox 3.X applications to CodlBox 4 standards. You will notice that the source and download of ColdBox 4 has been reduced by almost 75% in size. This is now due to our modular approach were functionality can just be brought in dynamically via CommandBox.  This has in turn made our release the smallest, fastest and most flexible ever. For in-depth guide, check out the What's New with ColdBox 4.0.0 guide and our Compatibility Guide.  Here is a breakdown of the major updates for this release.


TestBox BDD v2.0.0 and MockBox Released!

Luis Majano   |   June 09, 2014


We are so excited to bring you TestBox 2.0 and MockBox 3.0!  These releases are major releases of our libraries and include not only great features but a new repository home.  TestBox/MockBox have been decoupled from the ColdBox core and are now available standalone only (  They have also been integrated with CommandBox, our new ColdFusion CLI and package manager, to allow you to download, install and even execute tests in the command line.  We have also made available our integration server builds which can also be installed via our CLI.

You can now do this to install TestBox or MockBox.

// install testbox
box install testbox

// install testbox bleeding edge
box install testbox-be

// install mockbox
box install mockbox

// install mockbox bleeding edge
box install mockbox-be

// Execute tests
box testbox run runner="runner path"

// Generate a bdd spec
box testbox create bdd MySpec


Release Notes


  • [TESTBOX-75] - Suite marked as skipped even when nested suites executed
  • [TESTBOX-76] - assertSame / assertNotSame behaving differently from MXUnit
  • [TESTBOX-77] - Incorrect message for isNotEmpty assertion
  • [TESTBOX-79] - isEmpty returns true when it receives a function
  • [TESTBOX-84] - TestBox is walking up the tree instead of down the tree for beforeEach
  • [TESTBOX-87] - addAssertions() method failure on adding CFCs
  • [TESTBOX-90] - teardown(), afterEach() will only be executed if the test not Failed
  • [TESTBOX-92] - HTML reporter not showing skipped or hidden specs/suites correctly


  • [TESTBOX-73] - Always output variables when using assertEquals()
  • [TESTBOX-81] - Add a shorthand for getMockBox.prepareMock(Object).$getProperty('VarName')

New Feature

  • [TESTBOX-74] - Ability to pass labels to the URL runner to execute only the labels thanks To Juerg Anderegg
  • [TESTBOX-78] - New method to retrieve private variables: getProperty()
  • [TESTBOX-83] - Add echo of test results on ANT build file so you can see results on the console
  • [TESTBOX-88] - Refactor to its new repository
  • [TESTBOX-93] - Integreate with box.json for CommandBox package management
  • [TESTBOX-94] - TestBox now sends a mini report as headers when making HTTP requests to it


Finally, TestBox is also a direct drop-replacement for MXUnit as well.  

ColdBox Platform Utilities v4.0.0 with TestBox Support Released

Luis Majano   |   March 28, 2014


We are so proud to announce another update to our Adobe ColdFusion Builder exension: ColdBox Platform Utilities v4.0.  This update has tons of cool updates and fixes:

Bugs Squashed


New Features

So either download the extension and install it or if you have it installed, just click "ColdBox Platform > Check For Extension Updates..." and perform our sweet auto update!  Here are a few screenshots of some new functionality:


ColdBox 4 Roadmap Released

Brad Wood   |   February 12, 2014


We've been hard at work planning the future of CFML's most comprehensive development platform and we're pleased to announce our roadmap for the next major version of the ColdBox MVC Platform.  Click the button below to download our complete roadmap document.

TestBox BDD/xUnit Testing v1.1.0 Final

Luis Majano   |   February 12, 2014


We are very happy to release our first minor patch for TestBox.  This update includes finalizations of some features but mostly tons and tons of improvements and fixes as our library matures.  For those of you who do not know about TestBox, TestBox is a next generation testing framework for ColdFusion (CFML) that is based on BDD (Behavior Driven Development) for providing a clean obvious syntax for writing tests.

It contains not only a testing framework, runner, assertions and expectations library but also integrates with MockBox for mocking and stubbing. It also supports xUnit style of testing and MXUnit compatibilities.  TestBox can be downloaded from our main downloads page and it has been also integrated into the ColdBox platform as well.

Release Notes


  • [TESTBOX-43] - Test case names in xUnit have better definitions
  • [TESTBOX-44] - Output and mode arguments not compat with MXUnit's HTML formats
  • [TESTBOX-45] - isExpectedException fails on non-inherited specs
  • [TESTBOX-46] - ANTJunit reporter needs to build single tree suite instead of nested suites
  • [TESTBOX-51] - Some MXUnit extension assertions are missing
  • [TESTBOX-53] - makePublic() doesn't seem to work for packaged methods on compatibility mode
  • [TESTBOX-54] - mock(), getMockFactory(), setMockingframework() not implemented
  • [TESTBOX-56] - The method init was not found in component TestCase.cfc.
  • [TESTBOX-58] - toThrow() cannot match empty message & cannot match detail
  • [TESTBOX-59] - isEqual assertion returns false with two equal complex structures or arrays
  • [TESTBOX-60] - HTTP Runner in samples errors
  • [TESTBOX-61] - Samples will not run without ColdBox
  • [TESTBOX-63] - beforeEach does not fire in recursive fashion for nested suites
  • [TESTBOX-65] - expectException() doesn't work on certain use cases with annotations and method calls.
  • [TESTBOX-67] - doesn't completely respect its "excludes" argument in compat mode
  • [TESTBOX-68] - TestCase.cfc doesn't have life-cycle methods on compat mode
  • [TESTBOX-71] - "Global Stats" summary does not include failures from "Global Bundle Exception" failures
  • [TESTBOX-72] - Nested empty describe blocks don't show in runner


  • [TESTBOX-57] - Allow building of file for ANT runner so build can fail
  • [TESTBOX-70] - Reporters improved to allow for better UI when skipping and excluding tests


Finally, TestBox is also a direct drop-replacement for MXUnit as well.  

ColdBox Book