ColdBox Blog

RunEvent Caching - Accelerate your events

Luis Majano   |   January 27, 2015


In ColdBox 4 we have expanded the runEvent() method to allow you to add caching parameters so ColdBox can take care of caching output from events.  This is a great way to accelerate the execution of widgets or viewlets within an application as it will execute them and cache them as needed.  Here is the new signature for the runEvent() method.


ColdBox 4.0 Handlers are Singletons

Curt Gratz   |   January 26, 2015


ColdBox 4.0 has been built for speed.  We really wanted to improve performance out of the box.  We spent a lot of time making sure, as we always do, that we can squeeze everything out of the framework as possible.  

One of the major changes you should be aware of in terms of performance is that ColdBox handlers are now singletons out of the box. Most applications should be using their handlers as singletons because controllers generally shouldn't have state in an event driven application.  

In pre-4.0.0 applications all event handlers were cached in CacheBox with specific timeouts. We have found that this just created extra noise and complexity for handler CFCs. So now all event handlers will be cached as singletons be default (unless specified in the ColdBox.cfc).

Find out what else is new



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 --installColdBoxBE 
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


ColdBox Platform Utilities v5.0.0 Released

Luis Majano   |   January 21, 2015


We are so proud to announce another update to our Adobe ColdFusion Builder extension: ColdBox Platform Utilities v5.0.0.  This update has tons of cool updates for upcoming ColdBox 4 release and our previous TestBox releases.

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! 

Into The Box Conference is back for another round

Brad Wood   |   December 01, 2014


We are excited that Into The Box is coming back for another round in 2015.  ITB is a 1-day, 2-track conference happening the day before dev.Objective().  It was sold out last year and can only get bigger and better.

ITB is put on by Ortus Solutions, the makers of the ColdBox MVC platform.  While ColdBox is the flagship product of Ortus, their repertoire has grown to include tunes of CMSs, NoSQL, security, and performance.  Many of the hits on Ortus' playlist such as WireBox, CacheBox, LogBox, and CacheBox got their start in the ColdBox platform before they set out on their own.  They're available to any CFML developer these days, but we'll always consider them part of our family.  

So it's only fitting that ITB will not only be about ColdFusion's de-facto MVC platform but about the full line of productivity tools offered by Ortus-- most of which are open source like ColdBox.  We're still busy hashing out the exact topic titles and if you have suggestions or are open to actually presenting a session, check out the call for speakers over on the ITB blog.  

For the rest of you, the registration form for ITB 2015 is already open so head on over and get your ticket now.  Also, watch for discounts coming soon for dev.Objective() attendees.  See you there!


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.



Thanks for making ColdBox Developers Week 2014 a success!

Brad Wood   |   October 01, 2014


As we're recovering from our third annual ColdBox Developers Week, we'd like to give a shout out of thanks to everyone who participated.  From our sponsors, to the speakers and the attendees; everyone helped play a part in making these 21 training sessions fun and informative.  We hope everyone had as much fun learning as we did putting this on.


Thanks to our sponsors, Ortus Solutions and Computer Know How, we had tons of prizes to give away. Here's a recap of the winners.  Congratulations!

Furthermore, we offered additional prizes to the first two people to submit new packages to ForgeBox-- CFML's newest and most comprehensive code repository.  The following two people stepped up:


The most common question I've gotten is, "Was this session recorded?"  The answer is, YES!  Every session including our special guest session by Gert Franz of Railo was recorded and is posted along with the slide decks over on the CBDW 2014 recording page.


Hopefully you came away from CBDW excited to try out some of the tooling you learned about.  We're here to help you with that.  Here's some links for you to get started:


Ortus Solutions spends a lot of time putting on free training for the CFML community.  If your company benefited from this free event, please consider donating back so we can do even more free stuff for the CF community.

Secure Donation via PayPal

ColdBox Book