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.
So the major features to look out for on this release are the following:
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.
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:
We are expanding our testing capabilities and now providing 4 more base test classes to help you unit test:
- Model Objects
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.
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:
We 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 Customizations
You can now add your own debugger panels via two new interception points:
So check out the what's new docs so you can get informed!