Blog

ColdBox Platform v3.7.0 Released!

Luis Majano July 10, 2013

Spread the word

Luis Majano

July 10, 2013

Spread the word


Share your thoughts

logoWe are proud to announce ColdBox Platform release version 3.7.0 and ColdBox DevBox 2.4. This is an important release that addresses many important issues, but also introduces some great enhancements. There are no compatibility updates needed and here are our "What's New" guideline:

This update includes updates to all of our major internal libraries as well (blog posts coming as well):

The most considerable new features in this release are done in the areas of the HTML helper and generation, RESTFul services, rendering data, ORM relationship compositions via population, i18n enhancements and integration testing enhancements.

Bugs Squashed

  • [COLDBOX-130] - Error in MethodValidator.cfc when it recives a null from an orm relationship.
  • [COLDBOX-135] - Usage of parent factories overrides local adapter in the ColdBox IOC bridge
  • [COLDBOX-143] - InterceptorService in compatible with ACF 8
  • [COLDBOX-163] - "Unique" missing from validValidators list in ValidationManager
  • [COLDBOX-170] - The location argument in the event.renderData() method was not being passed dynamically but as a string.
  • [COLDBOX-180] - Bug when inflating relationships with population, getRelationalMetadata should not bring back non-relational columns

Improvements

  • [COLDBOX-133] - Allow struct arguments to all HTML elements so it can do KEY-XXX elements for you within the tag
  • [COLDBOX-138] - Ability to choose your own rendering template for the core MessageBox
  • [COLDBOX-141] - Allow {placeHolder} replacements for custom messages
  • [COLDBOX-144] - Update all application templates to new versions and standards
  • [COLDBOX-149] - Allow message placeholder replacements with getResource()
  • [COLDBOX-153] - Validation "required" doesn't work for complex objects.
  • [COLDBOX-157] - BugReport.cfm assumes form values are all simple
  • [COLDBOX-161] - ORM Relationship compositions and null support in object populators
  • [COLDBOX-167] - Make non-inhertance approach the default for application templates
  • [COLDBOX-172] - Lite Sample app doesn't escape HTML in error message.
  • [COLDBOX-173] - BaseTestCase new method: getMockController() that returns a mocked controller object

New Features

  • [COLDBOX-26] - allow the definition of security rules as a JSON file
  • [COLDBOX-146] - Ability to override messagebox template via renderMessage() and renderit() methods, 'template' arg
  • [COLDBOX-148] - New HTML 5 Field shortcuts: urlfield, emailfield
  • [COLDBOX-150] - Add group and label wrappers to HTMLHelper to allow for wrapping of controls as such is done with Bootstrap
  • [COLDBOX-151] - All module configuration objects now are decorated in the variables scope with "wirebox,logbox,cachebox"
  • [COLDBOX-164] - Ability to route responses inline via addRoute() with new parameters: response, statusCode and statusText
  • [COLDBOX-165] - addRoute() enhance to support a new argument 'condition' which can be a closure or UDF that MUSt return boolean as a secondary check on pattern checks. So pattern must match and condition must execute and validate
  • [COLDBOX-166] - Update query sim to do queryToArrayOfStructures thanks to Winston Yee!
  • [COLDBOX-168] - Ability to generate ANY tag via HTML helper as onMissingMethod calls: h2("hi"), p("hello"), div("what up")
  • [COLDBOX-169] - Create new script only template
  • [COLDBOX-171] - All interceptors now receive a third "buffer" argument which is a reference to a request buffer that can produce elegant output if needed.
  • [COLDBOX-174] - New "formats" and "formatsView" argument to renderdata so it can automatically marshall and setup a request for rendering with the passed in formats
  • [COLDBOX-178] - New Testing Decorator: ORMTransactionRollback that will automatically transaction and rollback your test methods using ColdBox ORM Services
  • [COLDBOX-179] - Integration testing execute() method now can render the results of the request by passing *renderResults=true* as an argument. This will create a cbox_rendered_content variable in the RC for you to assert the renderings

Thanks for always supporting us!

Resources:

Add Your Comment

Recent Entries

BoxLang AI 3.6: Your Agent Now Has Eyes, Ears, and a Voice

BoxLang AI 3.6: Your Agent Now Has Eyes, Ears, and a Voice

Ortus Solutions today announces BoxLang AI 3.6, the release that connects the AI framework to the rest of the BoxLang productivity platform. Your agents can now drive a real browser via bx-playwright, speak and master audio via bx-audio, stream text-to-speech token by token, talk to any MCP server over stdio — and do all of it with the same fluent BoxLang syntax they always have.

Luis Majano
Luis Majano
October 20, 2026
BxAudio 1.0: Make, Mix, Master and Speak Audio from BoxLang

BxAudio 1.0: Make, Mix, Master and Speak Audio from BoxLang

Ortus Solutions today announces the general availability of BxAudio 1.0, the audio module for BoxLang. Synthesize instruments and drums, arrange them on a beat grid, master to a loudness target, speak text with open license voices, score a video and play sound in a game. All of it from BoxLang, on the JVM. No Python. Nothing native to install.

Luis Majano
Luis Majano
October 20, 2026
BoxLang Under the Lens: Observability Meets AI - Free Webinar

BoxLang Under the Lens: Observability Meets AI - Free Webinar

Your application is slow. Something is failing. Where do you start looking?

On October 28, 2026, at 11:00 AM CDT, join Luis Majano, Ortus Solutions CEO and BoxLang creator, for a live, hands-on look at how observability and AI come together in BoxLang.

BoxLang Under the Lens: Observability Meets AI introduces BxLens, Lensy, and the additional monitoring capabilities of BoxLang+....

Victor Campos
Victor Campos
October 19, 2026