2010-12-28: First Milestone of Parsley 2.4 Released
After versions 2.1 to 2.3 introduced major feature additions, the next release will be more like a polishing release, refining many of the existing features, often in a way primarily useful for bigger and modular applications. Like previous releases it is intended to be fully backwards-compatible for application code. Even most of the extensions you may be using (3rd party or your own) should continue to work unmodified. Only exception are the cases where you replaced or decorated one of the IOC kernel services (which is not that common).
If you are using version 2.3.2 in production, it is not recommended to update immediately, at least not without thorough testing. But even if you don't update, please test the new milestone with existing production applications. With previous releases it became apparent that most people wait for the final release before they start to test. If they run into issues then they obviously have to wait for a dot release until they can start using the new version. So please do yourself a favor and try it out as early as possible!
The most significant enhancements in this milestone were:
- Support for new Reflection Features in Flash Player 10.1: Flash Player 10.1 introduced a new reflection hook that avoids the use of XML like the old describeType function and uses JSON under the hood instead and runs significantly faster. Parsley 2.4 will automatically detect whether this new function is available and prefer this over the old approach and only fall back to XML for older Players.
- Support for Persistent Properties: A published property - using the
[PublishSubscribe]metadata (or MXML or XML) tag - can now be marked as persistent. Immediately after the object gets instantiated it will then receive the value from the last time the application ran. Under the hood Parsley uses Local SharedObjects for storing the values. But this is only the default implementation which can be swapped like almost everything in Parsley. For details see this new section in the manual
- Configuration Properties inherited by Child Contexts: The new Configuration Properties introduced in version 2.3 are now inherited by child Contexts. Previously they were only available for the one Context they were loaded into, so that they had to be loaded multiple times if they were needed in more than just one Context.
And some internal changes that do not affect normal application code:
- Simplified Support for Flex Modules: Versions 2.1 to 2.3 installed a wrapper around the original Flex ModuleManager. While this worked reasonably well, it turned out to be unnecessary complexity, as the major goal for that wrapper was to detect and remember the ApplicationDomain to use for each Context getting built. This task is now performed by a much simpler service, which can also be replaced. The default implementation looks for the moduleFactory property of the first view root for each new Context and retrieves the domain from there. In Flash Applications the default looks for the
viewRoot.root.loaderInfoproperty. If any of the automatic approaches does not work, the ApplicationDomain can still be specified explicitly like in previous versions.
- Redesigned Context Bootstrap Service: This change primarily affects developers writing extensions. While the other 6 IOC kernel services are already stabilizing and won't be touched in version 2.4 (apart from small enhancements for the core messaging logic), one of the 7 kernel services needed a larger refactoring (basically a rewrite). The old
CompositeContextBuildergets deprecated and replaced by a new
BootstrapManagerwhich more cleanly offers one central hook for all bootstrap configuration which is now also completely inherited from parent Context to child Context. The new home for global defaults is now
BootstrapDefaults.config, replacing the old
GlobalFactoryRegistrywhich is still (partially) available for backwards-compatibility.
For the complete list of changes and enhancements you may browse through the Jira tickets for the new release
When the second digit of the version changes there is also always a new version of the manual and API docs online. So if you bookmarked the manual, change it to http://www.spicefactory.org/parsley/docs/2.4/manual/ once you started using the new version.
You can download the new version here.