Below I describe all the changes for this release, and thank to GOD for helping me get this release in time.
Changelog for 2.0.0
Below I describe some of the major changes for this release. However, you can go to the Milestone Page at the trac site to get a full listing of the 56 issues that were solved for this release.
- Over 120 pages of documentation and growing are now available via the Trac site with tons of examples, guides, and external tutorials.
- Framework License change to Apache 2
- Dashboard Application 2.0.0 included, it is a separate entity and does not encompass the Apache 2 license. It is a separate license and the application is provided in compiled form.
- New RequestContext bus. This is in order to enable caching and encapsulation of the request collection. Please see the compatibility guide. Your 1.1.0 and below code will have to be modified slightly to accommodate this. All event handler methods receive the requestContext bus object as an argument called 'event'.The object is also called 'event',for the layouts/views.
Addition of new Application Settings:
- ReinitPassword: used to protect the fwreinit flag.
- onInvalidEvent: write the event to execute when an invalid event is detected.
- HandlerCaching: The framework will now cache your event handlers in the coldbox cache.
- IOCFramework: You can now declare which framework you are using: coldspring or lightwire.
- IOCDefinitionFile: Here is where you declare the configuration file to load onAppInit in conjunction with the IOCFramework declared.
- IOCObjectCaching: The ability to cache via the IoC Plugin the objects created by the IoC frameworks.
- AppMapping setting is now optional, coldbox detects its paths.
- Addition of Complex Settings for Arrays and Structures with simple syntax.
- Addition of datasource aliases.
- Addition of two new implicit methods for execution within event handlers: preHandler and postHandler.
- Addition of a 'getHash()' method to handlers and plugins. This retrieves the unique UUID of the created instance.
ColdBox OCM (Object Cache Manager)
A facility for in-memory caching. This facility caches your event handlers, plugins, custom plugins and anything you want. Look at API for usage. The framework has a reap frequency in which once every cycle,the framework will remove objects from the cache that have expired. This way, reaping is not performed on every request. A great way to balance cache access and reaping.
- Metadata settings for caching for custom plugins and handlers via the cfcomponent tag:
The cachetimeout is in minutes. The cache flag is by default set to true if not set. So if you do not set it explicitly to false, the framework will cache it at the default framework's timeout. Cache settings override via config.xml.cfm, please see wiki config guide.
- Beanfactory.cfc - Addition of the populateBean method. It can now populate a named or instantiated bean from the request collection. Great for setting a bean with form data. It follows the bean contract, thanks to Sanah Ullah. Great for Transfer Object population.
- FileUtilities.cfc - new methods: getJVMFreeMemory(), getJVMTotalMemory(), isCFUUID()
- IOC.cfc - Added Inversion Of Control support via coldspring or lightwire. Coldspring is the only one supported now. Lightwire will be added in the next version. (Peter, please help with lightwire??)
- sessionstorage.cfc - New facade plugin to use session scope for permanent values
- renderer.cfc: renderExternalview(). Will render an external view. Any type of view: js,gif,etc.
- queryHelper.cfc - New plugin to help you sort and filter queries.
- timer.cfc - New plugin to help you time your code.
New argument to plugin factory: NewInstance it will create a new instance of the specified plugin.
New Debugging Panel
- The new debugging panel now includes the cache panel and monitor for monitoring AJAX Applications. This will blow your mind.
- The framework now supports multi-package handler layout. you can now define packages for all your handlers due to ColdBox's new event registration system.
- The framework now supports for compiled code execution. Event multi-package compiled layouts.
- New eclipse snippets.
- Refactoring and code optimization.
- New ANT scripts for creating new applications and more.
- Addition of the framework pre-compiled: compiled_system. You now have a pre-compiled source for the framework.
Well, I believe this is a major major release and not all the little changes are here, for that check the Trac site. I hope you enjoy it, please send me your feedback via the usual channels and help support this project with your donations.