Blog

ColdBox 4.2.0 Released!

Luis Majano April 01, 2016

Spread the word

Luis Majano

April 01, 2016

Spread the word


Share your thoughts

We are excited to announce the general availability of ColdBox 4.2.0. This release includes tons of fixes but also great new features and speed improvements. If you have CommandBox installed, you can upgrade now by just typing: box update coldbox or get started with a new ColdBox app by typing: box coldbox create app --installColdBox.

 

 

Here is a synopsis of the major feature updates and improvements in this release.

Travis Integration

Travis-Ci

All pull requests will now have Travis integration to verify the consistency and quality of them. This will also help promote our collaborators to enhance our test suites and feel good that what they are sending doesn't break the core. Check out our new Travis page: https://travis-ci.org/ColdBox/coldbox-platform

CommandBox Integration

CommandBox

We have fully documented the approach to hack in our source code. This will allow collaborators to just download CommandBox, fork our repo, and type box install && box server start and start collaborating. We are incredibly focused in this release to make it easier for people to collaborate with ColdBox.

Route Support for Integration Testing

Our integration testing method execute() now supports a route and querystring arguments. This will allow you to test any route in your system and make sure that they are parsed correctly by the url mapping and routing services. This is great for testing your RESTFul services and routing.

Get rendered content easily

If you are doing integration tests and you pass in the renderResults argument to the execute() method, you can now very easily retrieve the rendered content from the event object via the new method: event.getRenderedContent(). No more trying to figure out what rc variable it was placed in.

New event.getHTTPBaseURL() method

We have added a convenience method usually used in <base> tags to give you a protocol sensitive base URL for your applicaiton. This will determine if you are in SSL mode or not and give you the rigth base URL.

Population Enhancements

The populateModel method has been enhanced to take in new arguments:

  • memento So you can populate directly with any a-la-carte structure
  • json So you can populate from any JSON packet
  • xml So you can populate from any XML packet
  • query So you can populate from any query

No more config ma!

This update allows you to create ColdBox apps with no ColdBox.cfc configuration object. Great for simple mockups and no fancy configs

No more handlers ma!

Since we introduced modularization, the core app no longer requires handlers to function. You can even create applications with no handlers, just views now.

View Caching Flag

You can now declare a new coldbox directive flag: viewCaching which can enable or disable view caching globally in your application. Great for environments.

Release Notes

New Features

  • [COLDBOX-477] - Update testing docs for collaboration and update core for CommandBox development
  • [COLDBOX-483] - Add a test browser by default to the test harness
  • [COLDBOX-492] - Add a new 'route,querystring' argument to the 'execute' method to allow for SES route testing
  • [COLDBOX-493] - Added a 'memento' argument to the 'populateModel' method to allow for overriding of what struct to populate with
  • [COLDBOX-494] - Added json,xml,query additions to the populateModel() method to allow for more populations
  • [COLDBOX-498] - Update build process for DocBox and travis integrations
  • [COLDBOX-499] - Update and Cleanup of app templates
  • [COLDBOX-500] - Allow for applications with no ColdBox.cfc config, full convention mode
  • [COLDBOX-501] - new convenience method on testing request context to retrieve rendered content: getRenderedContent()
  • [COLDBOX-506] - Refactor app templates to their own repo
  • [COLDBOX-507] - New context method: getHTMLBaseURL() to get a http protocol sensitive request context base url

Improvements

  • [COLDBOX-191] - Flag to turn view caching on/off
  • [COLDBOX-246] - Autowire remote proxies, changed to manual instead of automatic
  • [COLDBOX-348] - Remove requirement to have at least one handler
  • [COLDBOX-472] - Update the documentation URL in box.json
  • [COLDBOX-476] - Review duplication of error object in ExceptionBean.cfc
  • [COLDBOX-486] - Support for german characters for slugify
  • [COLDBOX-495] - Load internal system modules first rather than last in module hierarchy discovery
  • [COLDBOX-496] - Error detail, message empty on CF10 CF11
  • [COLDBOX-503] - Replace StringBuffer with StringBuilder for performance

Bugs Squashed

  • [COLDBOX-429] - Bundling Modules w/ module excludes does not respect excludes
  • [COLDBOX-453] - API docs have broken links
  • [COLDBOX-462] - acf incompatibillty on restful template response object
  • [COLDBOX-463] - addAsset does not recognize urls that ends with say "app.js?123" as js, not css.
  • [COLDBOX-467] - fix for tomcat 8 not removingr repeating slashes on path info
  • [COLDBOX-471] - HTML Helper's startForm() doesn't pick up if current request is HTTPS
  • [COLDBOX-474] - doctype default switch case was on the wrong type, thanks to Hector Cruz
  • [COLDBOX-475] - _counter does not increment in rendering query-based view collections
  • [COLDBOX-485] - Bean Populator not working correctly when ORM entity inherits from other
  • [COLDBOX-487] - Bean populator errors on null values in JSON string
  • [COLDBOX-490] - syntax and wrong argument type matching on exception bean
  • [COLDBOX-497] - double forward slash generated in buildLink
  • [COLDBOX-509] - SES interceptor has poor query string parsing

Add Your Comment

Recent Entries

Mastering Events and Listeners in CBWIRE

Mastering Events and Listeners in CBWIRE

In CBWIRE, events and listeners are the backbone of building responsive, modular applications without relying heavily on JavaScript. This guide walks you through setting up and using CBWIRE events to create seamless interactions between components, from dispatching events in CFML and frontend templates to listening with Alpine.js and JavaScript. Learn how to make your applications feel dynamic and engaging by effortlessly connecting components. Whether you’re triggering events to update a dashboard or targeting specific parts of your app with dispatchTo, these techniques will empower you to create a modern, interactive CFML experience with ease.

Grant Copley
Grant Copley
November 11, 2024
10 Key Benefits of Hiring a Specialized ColdFusion Consulting Team

10 Key Benefits of Hiring a Specialized ColdFusion Consulting Team

ColdFusion remains a powerful and versatile platform for building dynamic web applications. However, keeping your ColdFusion environment optimized, secure, and scalable requires specialized expertise. Whether managing a long-standing ColdFusion application or planning new development projects, hiring a dedicated ColdFusion consulting and support team can be a game-changer for CTOs, CIOs, and developers. Here's why:

1. Expert Guidance on ColdFusion Web Development

...

Cristobal Escobar
Cristobal Escobar
November 08, 2024
ColdBox Free Tip 5 - Building Named Routes with a Struct

ColdBox Free Tip 5 - Building Named Routes with a Struct

**Did you know ColdBox provides flexible ways to build routes using structs?** In this tip, we’ll cover how to use the `event.buildLink()` and `event.route()` methods for named routes, a feature that’s especially handy when working with dynamic URLs.

Maria Jose Herrera
Maria Jose Herrera
November 07, 2024