The Ortus BlogBox
I just commited a nice fix for the ColdBox Dashboard so you can create new folders that was left out and pointed out by Dan Sorensen. I have updated the ColdBox 2.6.0 Beta 1 bits for you to have an updated ColdBox Dashboard. I have made several improvements to the ColdBox Dashboard which I have not blogged about, but I will be in the coming days. I will also start blogging about all the great new features in 2.6.0.
ColdBox 2.6.0 Beta 1 has been released. This is another major update to the framework and toolkit that encompasses on optimizations, bug fixes and several new features. The full release notes and what's new document have been posted to the wiki and you can check them out. Below is just a condensed listing of some of the new features that have been implemented for 2.6.0 beta 1. There are some that are still missing for a full release and of course, your testing and ideas are still welcomed for this version. The beta of 2.6.0 is planned to go on for about 3-4 weeks, depending on the amount of testing done and submissions.
- Per application conventions. Control how each application is defined. More granularity and portability.
- New convention: Default Event Action = index(). Each handler can implement a default action to be executed if an event just defines the handler. Of course, you can change this via the per-application conventions.
- onMissingAction() - You can now define this powerful action in your handlers and create virtual events, error handling or whatever you feel like doing. It simulates onMissingMethod() but on a handler level basis.
- Debugger Panel Updates and configuration: You can now fully configure the debugger panel to your liking.
- Execution Profiler Monitor: The framework now saves a stack of requests (configurable) and creates a monitor so you can do execution profiling and poll incoming requests. Again, ANY request, via FLEX/AJAX/AIR or normal http request.
- Reinit Button on info panel:
You can now reinit the framework right from your panel.
- Messagebox Plugin enhanced with multiple optimizations and new methods
- Environment Interceptor enhanced
- New plugin: json
- Complex configuration settings are now JSON based.
- New plugin: methodInjector
- New supertype methods: htmlhead(), getInterceptor()
- getInterceptor() can now retrieve specific interceptors that have been loaded in your application.
- IoC plugin optimizations and updates
- LightWire fixes and updates
- Application storage and session storage plugins optimized and updated
- SES numerical and alphanumerical route definitions
- New Interceptor: security. Secure your event-driven applications with ease. Tons of configuration options and ease of use.
- Cookiestorage plugin can now do encryption
- Render views and cache them at the same time
- Flash persistence scope can now be choosen for flash saving of variables on redirections
- You can now define and execute private events via runEvent(event, private=true)
- Major Caching Updates
- Use of java softreferences to create a memory aware caching mechanism
- Usage of JDK 1.5 > concurrency classes for atomical operations and locking features
- Create your own eviction policies
- Cache panel and graphing updates
- Discard mechanism updated and can even use regular expressions
- cfc Viewer plugin is spanking new
- Request context new methods: isSES(), buildLink() and much more.
I have just updated the bits for ColdBox 2.6.0 Beta 2. This update includes tons of fixes on caching, request context optimizations, var scoping fixes, sample application updates, flex tester upgrade, dashboard windows compatibility, mxunit generation, performance updates and a new Cheat Sheet. Phew!! What a week getting ready for CF. Objective. The other update is for the extra downloads, the plugin pack. The plugin pack includes an update rssReader plugin that will now cache either in the coldbox cache or files. This gives you more versatility. Also, you can now decide how many entries per feed you want to create. The other update is also for the plugin pack, new plugin called paging.cfc. This plugin will create a carrousel for paging for any type of recordset or whatever you want to create paging or carrousels for. The api is very simple to use. Anyways, please enjoy this beta and test to your heart's content.
I have just implemented a Google custom search engine for the entire ColdBox Forums that you will find really nice. There are over 1300 messages on the forums now and they now get the best search engine so you can search all you want. So if you really want some advanced searching on any ColdBox topic on the forums, give it a whirl. As a side note, the entire ColdBox Framework site also implements a custom google search engine that searches this blog, the forums, the wiki documentation, and much more.
This is an announcement that an internationalization translation project is way on its way for the ColdBox documentation. If you go to the official wiki site, you will see two new languages: Japanese and Spanish. The entire docs are being translated now to these languages and should be done by version 2.6 release if possible. Also, a new group has been created for ColdBox Translators. So if you are interested in helping out in the translation process, become an official translator or just help out, please email us at firstname.lastname@example.org. Right now we have one Japanase translator and one Spanish translator. So please contribute if you have time.
I just updated the ColdBox MVC Guide to help newbies to the whole framework and object oriented approaches get an understanding of how to apply its uses. I am starting a whole set of newbie guides on the wiki to not only guide on Coldbox, but also on basic object oriented principles and guidelines. Your input is much appreciated and also resource links are much appreciated.
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@example.com for more information of how to partner with ColdBox.
- 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.
- 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.
Just some notification that the src folder in the repository has been refactored to make it easier on builds. The folder is now called testharness and the system folder has been pulled out to the root to keep consistency with the actual build. I have slacked off on this updated, but finally here. So if you do auto builds from SVN, please update.