What's new in 08.8

One of the requested features was to implement a way to do bindings without creating a strong reference. The PropertyInjector tag establishes a binding between the source and the target. Internally, it uses the BindingUtils to create the binding. The problem with this approach is that BindingUtils always creates a strong reference - at least in Flex 3 (Flex 4 has some improvements for that).

To fix that, we added a new attribute called "softBinding" to the PropertyInjector tag that will create a binding using weak references. This feature is very handy if you are using modules because your module will be garbage collected when you unload it.

What else is new?

The ability to use an ISmartObject as the value for a service method call. In other words, now you can use a value coming from an event or any ISmartObject to define the method that a RemoteObjectInvoker or WebserviceInvoker will use. Also, I added a patch to MessangeHandlers that avoids calling the subscribe method in the consumer twice (thanks to Dirk Stevens for the patch).

Ok that is all for 08.8. I didn't do a post about what was new for 08.7, so here it is . The major feature was Injection by interfaces, what that means is that you can add an interface as a target of the Injector tag and if that matches the current object, the object will get injected. Also, if you add a super class as a target and the current object extends that class, the injection will also run. But there is something that you should be aware of: to make it work, you need to set "includeDerivatives" to true. By default, this attribute is false because injecting by super classes and injecting by interfaces is more expensive than the normal injection. So if you don't need it, I would suggest that you don't change that attribute.

The other main thing in 08.7 is the addition of the new tag called CacheSetter. I will not cover all the details of that. There is a thread in the forums that you can read