Blog

WireBox 1.1.0 Released!

Luis Majano March 15, 2011

Spread the word

Luis Majano

March 15, 2011

Spread the word


Share your thoughts

I am glad to announce WireBox 1.1.0 to the ColdFusion community. We have definitely received tremendous feedback on WireBox and have been able to complete this release based on great feedback and over 15,000 downloads since its release February 21st. For those of you not in the loop, WireBox is our new addition to the family. It is our enterprise dependency injection and AOP framework for ColdFusion 8 and above. This project has been part of ColdBox since its early version 2.0 releases but now it has been released as a standalone framework that can be used in any ColdFusion application. WireBox's inspiration has been based on the idea of rapid workflows when building object oriented ColdFusion applications, programmatic configurations and simplicity. With that motivation we introduced dependency injection by annotations and conventions, which has been the core foundation of WireBox. We have definitely been influenced by great DI projects like Google Guice, Grails Framework, Spring and ColdSpring so we thank them for their contributions and inspiration.

So apart from all the fixes and tigthening up of the WireBox core here are the most notable features and enhancements:

Documentation

What would be a ColdBox related release without its appropriate documentation. All the docs are now 1.1.0 compliant and we are constantly updating them as we still would like to add more theoretical approaches and more recipes to WireBox. We have also updated our cheatsheet so you can have a great WireBox companion.

Shutdown Procedures

WireBox now supports a shutdown() method that can be used to gracefully shutdown the injector. This will also shutdown its CacheBox instance gracefully if it is running. You also have two new event listeners: beforeInjectorShutdown and afterInjectorShutdown that you can listen to.

injector.shutdown();

Events Enhancements

All WireBox events now pass in the calling injector reference so you can talk to it in your event listeners

function beforeInjectorShutdown(interceptData){ var injector = arguments.interceptData.injector; }

onMissingMethod for Providers

WireBox is unique as it enables you to talk to objects that might be on volatile scopes and still give you correct instances of the objects. We went a step further thanks to our IOC guru Brad Wood and added an onMissingMethod() to the virtual object providers. This means that you can talk to your provider JUST as if it was the object itself. The provider will proxy your calls to the actual object for you. So instead of doing things like:

userProvider.get().sayHello()

You can do

userProvider.sayHello()

Now, please understand that proxying calls does not yield great performance, but it surely looks nice!

Provider Requirements

Our providers now require that scope registration be enabled when configuring WireBox. By default this is done for you already, so don't worry about it.

scopeRegistration = { enabled = true, scope = "application", key = "wirebox" }

New WireBox injection DSL Namespace

We have registered a new default namespace called wirebox that you can leverage to talk to the current used injector. This enables you to very easily inject the injector itself and any of its dependencies. The following are the wirebox injection dsl methods registered.

DSL Description
wirebox Get a reference to the current injector
wirebox:parent Get a reference to the parent injector (if any)
wirebox:eventManager Get a reference to injector's event manager
wirebox:binder Get a reference to the injector's binder
wirebox:populator Get a reference to a WireBox's Object Populator utility
wirebox:scope:{scope} Get a direct reference to an internal or custom scope object

Please also note that we are releasing several screencasts and also will be having our first ColdBox Connection Show this week, so enjoy WireBox!

 

Add Your Comment

Recent Entries

ColdBox 7.2.0 Released

ColdBox 7.2.0 Released

ColdBox, a widely used development platform for ColdFusion (CFML), has unveiled version 7.2. Packed with compelling new features, bug fixes, and enhancements, this release is designed to empower developers by boosting productivity, refining scheduled task capabilities, and enhancing the overall reliability and efficiency of application development. This article will delve into the key highlights of ColdBox 7.2 and elucidate how these advancements can positively impact developers in their daily coding endeavors.

Luis Majano
Luis Majano
November 20, 2023
Into the Box 2023 Series on CFCast

Into the Box 2023 Series on CFCast

Excitement is in the air as we unleash the highly anticipated ITB 2023 series exclusively for our valued CFCast subscribers – and the best part? It's FREE for CFCast members! Now is the perfect time if you haven't joined the CFCast community yet. Plus, we've got an incredible End-of-Year deal that's too good to miss

Maria Jose Herrera
Maria Jose Herrera
November 20, 2023
Ortus Deals are Finally Here!

Ortus Deals are Finally Here!

The much-anticipated Ortus End-of-the-Year Sale has arrived, and it's time to elevate your development experience! Whether you're a seasoned developer, a tech enthusiast, or someone on the lookout for top-notch projects, Ortus has something special in store for you. Brace yourself for incredible discounts across a wide array of products and services, including Ortus annual events, books, cutting-edge services, and more.

Maria Jose Herrera
Maria Jose Herrera
November 15, 2023