The Ortus BlogBox
ColdBox 4.0 is a major release for the ColdBox line. The most major since its original release in June 2006. To boost efficency and open up options, we've removed a lot of non-necessary items from the core installation and made them available through modular architecture instead. However, there are some thing that we've kept - and for good reason. This post discusses what we kept in the core of ColdBox 4.0 and why.
In ColdBox 4 we have expanded the
runEvent() method to allow you to add caching parameters so ColdBox can take care of caching output from events. This is a great way to accelerate the execution of widgets or viewlets within an application as it will execute them and cache them as needed. Here is the new signature for the
In tandem with our ColdBox 4.0 release, we are publishing major releases of the core Box libraries as well:
- [CACHEBOX-25] - Deprecate Cachebox xml config support
Read the What's New guide.
- [LOGBOX-14] -Truncating of category data to avoid error on insertion on DB Appender
- [LOGBOX-13] - Deprecate logbox xml support
Read the What's New guide.
- [WIREBOX-31] -Builder.buildDSLDependency does not use the custom DSL correctly as the default namespace kicks in
- [WIREBOX-32] -binder.mapDirectory now skips hidden dirs
- [WIREBOX-35] -Remove coldbox:cacheManager DSL reference, it is no longer valid
- [WIREBOX-2] -allow mapDSL to be altered at runtime by modules via new wirebox method: registerDSL()
- [WIREBOX-30] -Support wiring new injection DSL = byType, which leverages the type to match to an implementation
- [WIREBOX-33] -Add a force argument to the map functions so you can override if a mapping already exists
- [WIREBOX-36] -New coldbox dsl to get a renderer reference: coldbox:renderer
Read the What's New guide.
It is a happy day here at Ortus Solutions as we bring you yet again a plethora of releases of all our major open source libraries. This is the culmination of over 6 months of hard work to get you updates for all of our major open source libraries and even a new library, TestBox. You can read more about our releases in our engineering blog:
We are proud to announce CacheBox version 1.6.0. You can read our What's new with CacheBox 1.6 to get a better idea of this release.
- [CACHEBOX-14] - Stats incorrect using Railo Provider
- [CACHEBOX-15] - Error if timeout is passed in as empty string
- [CACHEBOX-16] - Gracefully handle cache engines that can't list keys
- [CACHEBOX-20] - Method getQuiet in cachebox.system.cache.providers.CacheBoxProvider uses normal get method
New Features & Improvements
- [CACHEBOX-13] - Increased top level on cache dumper
- [CACHEBOX-18] - Update internal logging to debug instead of info, too much chatter.
- [CACHEBOX-3] - Create graph to show how full the cache is
- [CACHEBOX-7] - New method: getOrSet() Allow caching a snippet of code with a single provider method via a closure or udf
- [CACHEBOX-10] - Allow config path as string in CacheBox init (standalone)
We are very excited to partner up with the great folks at Couchbase to bring you an awesome webinar on November 19th, 2013. Myself, Brad and Tug will be presenting on the amazing features of the Couchbase NoSQL server and how it can be leveraged for scalability with CFML applications. Here is a synopsis of the webinar:
Scaling ColdFusion (CFML) Applications with Couchbase NoSQL Server
In modern applications, scalability is one of the most important keys to success. High availability requires distributed systems that can scale with load and data size. Couchbase has been recognized to be one of the fastest and easiest to scale NoSQL databases. Ortus Solutions has developed plugins for CFML applications (powered by ColdFusion and/or Railo) and Couchbase to bring this power to your CFML applications.
Many modern applications are using NoSQL document stores for rapid development and flexible data models. Many data needs can be satisfied by storing JSON documents that allow for on-the-fly modifications. You can index JSON documents of any structure using map reduce functions, and execute queries against them. Couchbase will bring both scalability, flexible data models and much more to your CFML applications.
In this webinar you'll see:
- Overview of Couchbase Server and NoSQL Document store
- Overview of ColdFusion (CFML) Applications
- Distribute Java EE sessions with Couchbase Railo Extension
- Leverage NoSQL JSON Document store from CFML
- Leverage Couchbase as a distributed cache from any CFML application.
We are proud to announce the release of the CacheBox RefCard. CacheBox is our enterprise Caching engine, API and Aggregator for ColdFusion. This RefCard is a great introduction to our product and will get you kickstarted with caching and scalability for your CFML applications. Enjoy!
We are very excited to announce our second online course available for both ColdBox and ContenBox Modular CMS thanks to our annual conference CBDW2013: http://www.udemy.com/coldbox-platform-developer-week-2013/. This course covers over 50 lectures and over 30 hours of video content. This is definitely an ultimate training tool for you or your organization and it definitely helps us pay the bills :)
So far in this series, we’ve introduced you to Couchbase Server and showed you how to set up a cache cluster. Then we covered using that cluster as an ORM Secondary Cache as well as connecting to it through our open source CacheBox Provider. Today, we’re going to show how to get the deepest integration yet for those of you running Railo’s Open Source CFML server via our upcoming Ortus Railo Couchbase Extension. Our extension will allow you to leverage Couchbase directly from Railo as a caching engine, but also as a storage container for session or even client scope variables. The extension also introduces several native ColdFusion functions that will allow you to interact with Couchbase directly from CFML code for your NoSQL or Caching needs. So let's get to it and start off by introducing our extension.
CFML has a set of cache-related functions that allow you to set and retrieve objects from an application cache. Adobe ColdFusion uses EHCache, an in-process Java caching solution. Railo, the open source CFML engine, also can use EHCache, but they went a step further and introduced a pluggable cache architecture that allows you to write a Java adapter class that will connect to any underlying caching engine; much how CacheBox works but right into the engine.
Railo also allows these caches to be used for session or client storage as an added bonus. This is extremely handy if you have a farm of load balanced web servers and you want to use session storage without using session replication or enabling sticky sessions on your load balancer. By configuring your session storage to use an out-of-process distributed cache you are allowing your site to scale out easily since the application servers won't be taxed with storing session data for all your users in their in-process heap. It will also allow for your session information to survive server restarts and provide a much better user experience for your application. Lastly, it can allow your load balancers to run round-robin algorithms instead of the typical sticky session approach. This will bring a much more stable cluster farm where load can be distributed evenly and without user segregation.
Couchbase is not only an amazing caching solution but also a NoSQL database, as we have seen throughout our series. Having the capabilities to interact with it easily via CFML was our next step of introducing several native CFML functions thanks to Railo's extension architecture. This is where we come in. We here at Ortus Solutions have developed a commercial extension for Railo Server that adds Couchbase support for the native cache functions, as well as query/template/function caches, session/client storage and native CFML functions for NoSQL integration. This extension is built on top of the Couchbase Java SDK and truly gives you low-level access to the power of Couchbase Server.