2010-03-28: Parsley 2.2.1 Consolidation Release
After adding a lot of functionality during the past months it was about time to slow down a bit with adding features and take some time to polish the existing features. Apart from many bugfixes, most of them again caused by very helpful bug reports from the community, this release contains a lot of subtle enhancements, that were added based on practical experience of using Parsley in enterprise Flex projects.
This is a brief summary of the most significant enhancements:
- The component lifecycle has been improved in many ways. In particular stage events that are merely caused by reparenting are no longer interpreted as lifecycle events, which caused the component to temporarily get unwired in previous versions.
- Furthermore each component can now define its own custom event type to signal that it wishes to be removed from the Context with the new [RemovedEvent] metadata. This is useful in cases where a particular component should have a lifecycle which is independent from stage events.
- The <FastInject> tag introduced in version 2.2.0 for injection without reflection has been improved to allow to specify multiple injections with a single tag. You can also now use several inline event handlers to synchronize the component initialization with the injections.
- The framework does no longer swallow the stacktraces of the original error in case of problems during Context initialization or message processing. This was a significant hindrance in troubleshooting applications built with previous Parsley versions.
- Likewise the <Configure> tag now logs warnings when it cannot find a Context to wire to.
- The Context now has a meaningful toString output for logging which can also be set explicitly with the new description attribute of the <ContextBuilder> tag.
- There is a new <Settings> child tag for the <ContextBuilder> tag for some of the most common settings
where you normally have to programmatically access
GlobalFactoryRegistry.instance. - The cache for the Spicelib Reflection API has been extracted from the ClassInfo class to its own interface to allow for pluggable implementations.
- The message receiver cache for the default implementation of the Messaging Framework has been optimized for better performance.
- And much more...
For the complete list of smaller enhancements and fixes you may browse through the Jira tickets for the new release.
This release marks the end of the 2.2.x lifecycle. If you regularly build snapshots from trunk it is recommended to stop for a while as there will be some major (but backwards-compatible) refactoring in the IOC Kernel. You should at least wait until this refactoring is completed with the 2.3.M1 release.
The release cycles will change a bit from now on, as there will now be milestone releases of new functionality instead of waiting until all features for a major update have been implemented. This is to allow to gather feedback and bug reports earlier which have been proven to be very useful in the past. I noticed that some of the unofficial snapshot preview releases for earlier version were downloaded a lot, so I will now make these interim releases official, so that changes can be tracked in the corresponding release section in Jira.
You can download the new version here.