Apr 26
I have been getting some inquiries of why not also allowing the purchase of the 2 days of CBOX-101 at our training right after Scotch on the Rocks. So we listened! You can now either purchase the 3 day training which includes the 2 days of CBOX-101 plus a one day coding bootcamp or you can just purchase the 2 days of CBOX-101 training.
We are only about 4 weeks away, so reserve your seat now before there is no more space, our space is limited. Also, there are several discounts codes floating around, so find them and get some cool discounts.
Apr 24
Last night I had the honor to share the stage with 8 other amazing developers to do a Pecha Kucha style presentation. It was a ton of fun and I encourage anyone who has a chance to present in this style to take it. It a unique style of presenting. 20 slides, 20 seconds per slide...What would you say?
I spoke on MockBox. Here are my slides if your interested.
Mocking, Its not just for picking on people-slides
Also, here is a video of me presenting. It was taken on my co-workers Blackberry, so the quality is might not be great
Mocking, Its not just for picking on people-video
To wow the crowd, I also wore a Jedi robe I "happened" to have with me at the conference. 
Read more...
Apr 23
To those who where not able to attend our ColdBox 3.0.0 presentation at CFObjective, here you can download all the
presentation and assets.
Apr 23
I just updated the M5 release bit to build ID: coldbox-buildID-201004231342
If your build is less than that, please update. We updated two core fixes for relocations via URL and also for entity service wirings.
Thanks
Apr 20
Hey everybody, its
M5 time! After several months of intense work we arrive at our almost last milestone in our road to 3.0.0 greatness. One more milestone and we go gold! This milestone is dear to my heart as it includes one of my favorite new features of ColdBox,
ColdBox Modules! We have also managed to document pretty much every single update and fix for the
current milestone and we have also now managed to document ALL the
ColdBox plugins.
But as usual, we have laid out all the tickets that where closed in this milestone and then a brief rundown of the major pieces that where completed in this release cycle. Also, please note the tickets that have a (compatibility) tag on them. That means that it could break old 2.6 code if implemented the old ways. Again, also refer to the
compatibility guide for the latest updates on migrating your code to 3.0.0 standards.
3.0.0 M5
Milestone Tickets:
http://coldbox.assembla.com/spaces/coldbox/milestones/135865-3-0-0m5
| 138 | ColdBox Modules |
| 763 | new base test case for testing model objects. Ability to give you a mocked ready model object |
| 873 | setNextEvent reworked for 3.0.0 too many obscure parameters, setNextRoute & relocate will now be deprecated (compatibility) |
| 915 | setNextEvent updated for compatibility varStruct changed to persistStruct (compatibility) |
| 916 | persistVariables update from varStruct to persistStruct on arguments (compatibility) |
| 917 | Update testing so we can do unit testing of plugins |
| 918 | Update testing so we can do unit testing of interceptors |
| 920 | New useSSL element for redirecting via SSL in the security interceptor |
| 949 | profilers monitor brocken in M4 |
| 950 | Update integration testing to fire off pre and post process interception points as part of lifecycle (COMPATIBILITY) |
| 951 | Exception when using the COLDBOX_CONFIG_FILE setting on Application.cfc, the loader is not reading the override first |
| 953 | request context new method: getHTTPHeader(key,default) utility function to get a HTTP header |
| 954 | contention issues when dealing with event caching on the same event and different contexts. Might produce cache data from the same event with diff data. |
| 955 | Add more error trapping on policies when high load ocurrs, as sometimes arrays are not verified for sorting. |
| 956 | New cache method: clearEventMulti() to allow for the clearing of multiple event cache entries using regex. |
| 957 | Enhance event caching to allow for multi-host applications |
| 958 | No more inheritance needed for handlers, plugins or interceptors. (Completely optional now) |
| 961 | New helper convention for view folders, create a helper with the name of the folder the view is contained on: ex: folder=category, helper=categoryHelper.cfm |
| 964 | due to cf9 persistent cfc's dumping them in the debugger panel causes performance issues |
| 965 | ses convention name value pairs not evaluating empty spaces: /var1/val1/var2//page/3 |
| 967 | Module directives to control modules startup |
| 969 | addition of "patterns" attribute to the Environments interceptor for regex matching. |
| 971 | New DSL to autowire interceptor objects: coldbox:interceptor:name |
| 974 | Ability to load LogBox via new DSL in configuration programmatic approach |
| 975 | New cool HTMLHelper plugin to help you do well, HTML stuff |
| 976 | Update testing so we can do unit testing of handlers standalone, meaning targeted testing, not integration testing |
| 977 | new autowire DSL: coldbox:fwSetting:{setting}, coldbox:fwConfigBean |
| 978 | getSettingsBean() new argument: fwSettings:Boolean, so you can also get a config bean of coldbox settings |
| 980 | new debugger interception points: beforeDebuggerPanel, afterDebuggerPanel |
So the major features to look out for on this release are the following:
ColdBox Modules
The ability to create modularized ColdBox sub-set applications in the same way you are used to building ColdBox applications. Actually, just add one more simple CFC and you got yourself a module. Read more here.

Simple CFCs
No more inheritance on plugins, handlers and interceptors. You heard that right! We have moved to a decoration at runtime model and it works fantastic. But don't worry, if you like your inheritance, you can keep it, we don't discriminate. However, we believe the simple CFC approach brings in more benefits as you are not bound to core classes when building these objects. You can apply more OO techniques, test faster and code is cleaner. Not only that, this is huge for plugins as ANY CFC can be a plugin now. Read more here
ColdFusion ORM Support
Thanks to Spring Hibernate Template inspirations, we have released our own Hibernate support classes for ColdFusion ORM. These support classes include, Hibernate-ColdBox event handling bridges, generic entity service layers and virtual entity service layers. We have also created a new plugin called ORMService that can act as a cool generic service layer. We have expanded our autowiring DSL to now include the wiring of these entity support classes anywhere. There is so much wealth of code here that it is better just reading out the capabilities first hand:
Expanded Unit-Integration Testing
We are expanding our testing capabilities and now providing 4 more base test classes to help you unit test:
- Plugins
- Interceptors
- Handlers
- Model Objects
You can now specifically unit test each of these objects and not only that, we mix in some MockBox goodness at the same time and enable you to do mocking on any of them. Check the docs out.
SetNextEvent() Revamped
Our setNextEvent() method has been revamped to support full URL relocations and full relative URL relocations. All internal calls now filter to setNextEvent(), so please check your old unit tests or code as now setNextEvent() is king!
Security Interceptor now handles SSL
The security interceptor rules engine now supports a new <useSSL> element that can be used to redirect with or without SSL on a per rule basis.
Easily get HTTP Headers via the RequestContext
The request context object has a new method called: getHTTPHeader(key,[default]) that can help you easily get HTTP headers and even with some cool default values if not found.
Caching Updates
We are now ready to start on our multi-cache configuration and provider release as our cache core is now more solid than ever. We also updated the event caching mechanisms to allow for multi-domain event caching and managed to include some cool new methods: clearEventMulti()
New Plugin: HTMLHelper
A cool new helper plugin that can do HTML and do it well. You can create tables, lists from array of entities, queries, etc. Help you build dynamic headers, manage js and css assets across requests, and soooo much more. Of course, fully documented.
"patterns" attribute to the Environments interceptor for regex matching.
You can now add a "patterns" attribute to your environment control so pattern matching can be detected instead of simple url matching via the URLs attribte:
<environment name="dev" urls="localhost" patterns=”list,of,regex,patterns”>
Autowire DSL enhancements
The autowire DSL has been enhanced and you now have more choices of wiring:
- interceptors
- javaloader
- logbox
- fwSettings
- fwSettingsBean
- etc.
Lots of LogBox AdditionsWe have updated the way you configure LogBox by adding a new LogBox DSL declaration language for its settings. You can also create portable LogBox configurations via simple CFCs using the new
LogBox DSL.
ColdBox Debugger CustomizationsYou can now add your own debugger panels via two new interception points:
- beforeDebuggerPanel
- afterDebuggerPanel
So check out the
what's new docs so you can get informed!