After much hard work by Team ColdBox, we are glad to put out our first release candidate. Below are some of the new features introduced and the fixes introduced in the release candidate. So please enjoy this release as we approach a final 2.6 version. We will probably have one more release candidate before release and we need all the testing you can give us. If you would like to find out all about the 2.6.0 release, please visit the What's New page in our wiki. Also, please remember that there are a few compatibility issues with version 2.5.X, that may or may not apply to you, so please read the Compatibility Guide to learn if you need to alter something or not. The documentation revisions have started for version 2.6 and all documentation is right now in constant update, not only in English, but in Spanish and Japanese. We are also looking for people or companies interested in the translation efforts, if you are interested, please contact us at [email protected] for more information of how to partner with ColdBox.

Download RC 1

New Features

  • Plugin/Handler Cache integration services re-built. This provides a huge performance boost on object retrievals..
  • New method: uploadFile() on the Utilities plugin for easy file uploading
  • Environment interceptor re factored to include a new method: detectEnvironement() that can be easily extended by your own custom environment interceptor. This will allow you to do any kind of detection algorithm.
  • Query Helper new method: filterNull(qry, field, NULL or IS NOT NULL) a cute utility method to filter out rows.
  • Autowire interceptor can now read cfproperty tags from plugins/handlers/interceptors or anything you send to it. So now the interceptor can inject via cfproperty annotations or via setters. I like cfproperty because of the following:

  • As you can see from above, the cfproperty tag will grab all the properties of type ioc and then will inject them into the object according to the scope attribute you provide. The default scope is the variables scope. How cool is that. The interceptor will still search for setters and will inject them via setter injection if they have not been injected before. cfproperty takes precedence over the setter.
  • The Attesoro i18n tool has been updated to version 1.8
  • The JavaLoader utility has been updated to version 0.6
  • The request context decorator now receives a reference to the ColdBox controller and a getController() method. You can now develop even richer request context objects by using settings, plugins, or anything that you have available from the ColdBox controller. This really expands on the effectiveness of building request context decorators.
  • Interceptor Service: you now have the ability to register and unregister interceptors at runtime. You don't even need to declare them via the config if you want. You can load them up at runtime. You can even now append custom interception points at runtime. This is a great features that can provide auto-registration systems or drop and play functionality to systems by just tapping into the API and register interceptors and observers. Not only that, but you know have access to retrieve the state containers so you can build your own debugging panels, or interact with any of the observable states. You can add/remove and do all kinds of reporting via the interceptor service API.

Bug Fixes-Optimizations

  • Handler dictionaries not clearing on reinitializations or auto reloads
  • ColdBox factory missing a throw() method
  • Unnecessary creation of request context objects during a request. Instead of creating just one it was re-creating about 5-6 objects. This has been fixed and optimized. A common request was optimized by over 100-300 ms due to this bug.
  • ColdBox reader sample application bugs and fixes
  • Flex Tester sample application bugs and fixes
  • Transfer Sample application bugs and fixes
  • Logger plugin was appending an extra OS slash on the log full path
  • Login Sample application refactored
  • Autowire interceptor was not correctly traversing the inheritance tree to find dependencies
  • Handler Service error on exception string when no handlers found in system.
  • Debugging panel css/html cleanup.
  • More unit testing and complete migration to MXUnit for all our test cases and suites.