Blog

Luis Majano

October 15, 2008

Spread the word


Share your thoughts

We are pleased to announce ColdBox 2.6.1. This version is a critical fix release that ALL users should upgrade too, that will provide stability and tons of fixes.  However, we have also included some goodies that we left out of 2.6.0 as they where not fully tested yet. Now they are.  Below we have delineated the new goodies for 2.6.1.  We have also created a What's New in 2.6.1 guide and you can read the entire release notes also.

What's New

ColdBox SideBar

This is another developer tool that will make your ColdBox development much easier thanks to Ernst van der Linden.  We truly believe this developer tool will revolutionize the way you build your ColdBox Applications.  TheThe full guide can be found here

This nifty little toolbar lives in your application (development of course) and helps you do the following:

* Reinit the framework
* Open cache and profiler monitors
* Dump vars
* Clear the Cache
* Clear Scopes
* Clear the log files
* Go in and out of debug mode
* Search the docs
* Search the forums
* Skinnable via css
* Add your own links via configuration (JSON)
* much more coming soon.

New Core Interception Points

We have added two more core interception points to ColdBox

* afterCacheElementExpired : Executes after an element has expired from the cache
* onException : Executes when an exception occurs anywhere in the framework

Caching Enhancements

There have been some cool minor enhancements to the cache.

* New FIFO Eviction policy (First In First Out)
* New method: setEvictionPolicy(policyObj), you can now override eviction policies with anything you want
* New method: getObjectMetadata(objectKey), you can now get the caching metadata structure about a specifc object key.

New Interceptor Output Buffer

What this means is that an interceptor has the following methods that enable you to add content to an output buffer that will be flushed after the execution of the interception point. Why would I use this? Well, just look at the ColdBox SideBar. I can create output without affecting handlers, views, etc. Interceptors wrap themselves around an execution (AOP), so you can output content in an non-obtrusive and decoupled manner.

* clearBuffer():void
* appendToBuffer(string):void
* getBufferString():string
* getBufferObject():coldbox.system.util.RequestBuffer

The buffer is unique per interception point but available to the entire chain of execution within an interception point. Once the interception point is executed, the interceptor service will check to see if the output buffer has content, if it does it will advice to write the output to the output stream. This way, you can produce output very cleanly from your interception points, without adding any messy-encapsulation breaking output=true tags to your interceptors. (BAD PRACTICE). This is an elegant solution that can work for both core and custom interception points.

 

//clear all of it first clearBuffer(); //Append to buffer appendToBuffer('This software is copyright by Luis Majano');

Bean Factory Plugin Autowire Update

The Autowire method in the bean factory now has a stopRecursion argument that can be used to send in a class name where recursion should stop.

Transfer Utilities

We have created several utilities for Transfer Integration that we introduced a while back.  They are now in the core in the extras directory. 

  • TransferConfigFactory
  • TDOBeanInjectorObserver

You can read more about these two tools and how they will help you when working with Transfer:

Critical Fixes and Updates

  • * #492 MTLogger Tracer method when called asynchrounously and from a remote call behaves weirdly, blanking out some variables due to cfthread.
  • * #493 setView() with no layout is not blanking out a pre-set layout
  • * #494 proxy,sessionstart,sessionend concurreny issues when ConfigAutoReload is set.
  • * #495 Throw an error that is informative when interceptor classes are not found instead of a bogus error.
  • * #499 onInvalidEvent crashes in SES mode
  • * #500 on Invalid Event error type is not configured correctly
  • * #501 resource bundle not handling relative paths, update to use same approach as other plugins
  • * #502 useSetterInjection not passed correctly across the inheritance tree in the beanFactory
  • * #503 Interceptor Service not registering correctly on demand registrations and doing double puts on some states
  • * #504 Interceptor state addition of an exists method, so overwriting does not occur
  • * #506 Missing onException core interception point
  • * #507 ExceptionHandler not firing on proxy errors
  • * #508 Request Context Decorator overriding the memento and loosing the controller reference
  • * #511 Resource bundle paths bug when unit testing remotely
  • * #517 event.noRender() has wrong logic for the remove bit

Add Your Comment

(3)

Aug 17, 2008 14:48:31 UTC

by Devon Burriss

I am going to test it a bit more before I call this out as a bug but on Railo 3.0 RC1 I seem I get the afterCacheElementExpired exception throwing after a minute or 2. Just thought I'd throw it out here and see if anyone else had experienced something similar since upgrading to 2.6.1.

Aug 17, 2008 17:47:32 UTC

by Luis Majano

I just got that too Devon, I have fixed the update. There was a file left out. I will be releasing it again

Aug 17, 2008 22:01:56 UTC

by Luis Majano

Thanks for the pointer Devon. The bits are updated and ready for download.

Recent Entries

Ortus June 2024 Newsletter!

Ortus June 2024 Newsletter!

Welcome to the latest edition of the Ortus Newsletter! This month, we're excited to bring you highlights from our sessions at CFCamp and Open South Code, as well as a sneak peek into our upcoming events. Discover the latest developments in BoxLang, our dynamic new JVM language, and catch up on all the insightful presentations by our expert team. Let's dive in!

Maria Jose Herrera
Maria Jose Herrera
June 28, 2024
BoxLang June 2024 Newsletter!

BoxLang June 2024 Newsletter!

We're thrilled to bring you the latest updates and exciting developments from the world of BoxLang. This month, we're diving into the newest beta release, introducing a new podcast series, showcasing innovative integrations, and sharing insights from recent events. Whether you're a seasoned developer or just getting started, there's something here for everyone to explore and enjoy.

Maria Jose Herrera
Maria Jose Herrera
June 28, 2024
BoxLang 1.0.0 Beta 3 Launched

BoxLang 1.0.0 Beta 3 Launched

We are thrilled to announce the release of BoxLang 1.0.0-Beta 3! This latest beta version is packed with exciting new features and essential bug fixes, including robust encryption functionality, enhanced Java interoperability, and more efficient event handling. Key highlights include the introduction of query caching capabilities, seamless coercion of Java Single Abstract Method (SAM) interfaces from BoxLang functions, and support for virtual thread executors. So, let’s dive into the details of what’s new in BoxLang 1.0.0-Beta 3 and how you can start leveraging these updates today!

Luis Majano
Luis Majano
June 28, 2024