# Author: Christophe Herreman
# Version: $Revision: 168 $, $Date: 2009-02-05 16:22:32 +0100 (do, 05 feb 2009) $, $Author: cherreman $
# Since: 0.1
SPRING ACTIONSCRIPT CHANGELOG
=============================
Note: dates are in DD.MM.YYYY format
Changes in version 0.7.1 (05.02.2009)
-------------------------------------
Package org.springextensions.actionscript.collections
* added random suffix to urlrequest in Properties to avoid caching
Package org.springextensions.actionscript.domain
* added INamed interface
* added NamedEntity class
Package org.springextensions.actionscript.domain.util
* added NamedUtil class
Package org.springextensions.actionscript.errors
* removed ClassNotFoundError since this is now part of AS3Reflect
Package org.springextensions.actionscript.ioc.factory.support
* fixed object creation with circular references in AbstractObjectFactory
Package org.springextensions.actionscript.ioc.factory.xml
* fixed lookup of import nodes in XMLObjectFactory
Package org.springextensions.actionscript.utils
* added "Assert.isTrue"
Changes in version 0.7 (20.01.2009)
-----------------------------------
General
* Prana Framework is now Spring ActionScript
* Reflection API is now a separate project (as3reflect: http://code.google.com/p/as3reflect/)
* Cairngorm and PureMVC extensions removed from the core framework sources
* added support for parent objects in XML config
* added support for depends-on attribute in XML config
* fixed issues with object factory post processors
* added Maven build file
* introduced experimental MVCS framework
Package org.springextensions.actionscript.collections
* added PropertiesParser
* refactored loader complete event to use PropertiesParser in Properties
* added remove methods in EntityCollection
Package org.springextensions.actionscript.context.support
* added auto-registration and invocation of object factory post processors
* added "XMLApplicationContext.invokeObjectFactoryPostProcessor" method
Package org.springextensions.actionscript.domain
* renamed ValueObject to BaseObject
* added ICloneable, ICopyFrom, IEquals interfaces
* removed IValueObject interface
* added check for simple objects in "BaseObject.cloneField" method
* fixed "BaseObject.copyFrom" method to also copy variables
* fixed "BaseObject.copyFrom" so that it is no longer allowed if the other object is the same instance
* fixed "BaseObject.clonePropertyValue", enums should not be cloned
* "BaseObject.doEquals()" now check for IEquals implementations
Package org.springextensions.actionscript.ioc
* added support for nodes
* added LogEvent
Package org.springextensions.actionscript.ioc.factory.config
* added CustomEditorConfigurer
* added LoggingTargetObjectPostProcessor for auto registration of ILoggingTarget objects
Package org.springextensions.actionscript.ioc.factory.support
* fixed assertion in AbstractObjectFactory
* changed logging of pre-instantiated singletons in DefaultListableObjectFactory
* fixed "getObjectNamesForType" and "getObjectsOfType", did not check correctly for matching objects in DefaultListableObjectFactory
* refactored property assignment to handle custom editor configurers in AbstractObjectFactory
* "AbstractObjectFactory.resolveReference" now return null if passed in property is null
Package org.springextensions.actionscript.ioc.factory.xml
* added "addEmbeddedConfig" method to XMLObjectFactory for embedded XML config
* "XMLObjectFactory.load" method now throws an IllegalStateError when loading a context without config locations or XML
* made "parser" property public in XMLObjectFactory to allow registration of xml preprocessors through application context
Package org.springextensions.actionscript.ioc.factory.xml.parser.support
* changed order of preprocessors in XMLObjectDefinitionsParser so that id preprocessor is first
Package org.springextensions.actionscript.ioc.factory.xml.parser.support.nodeparsers
* added NullNodeParser
Package org.springextensions.actionscript.ioc.factory.xml.preprocessors
* added ParentAttributePreprocessor
* fixed id assignment of MethodInvokingObject objects in MethodInvocationPreprocessors
* "singleton" attribute is now removed after prepocessing in ScopeAttributePreprocessor
Package org.springextensions.actionscript.ioc.serializer
* removed xml serializer because it is no longer supported
Package org.springextensions.actionscript.mvcs
* added experimental package for MVCS support
Package org.springextensions.actionscript.puremvc
* updated to PureMVC Standard v2.0.4
* automatic initialization of IoC facade is dropped. Immediately after construction IocFacade doesn't support IoC
features any more (only standard PureMVC features are available). To enable IoC features one must invoke
initializeIocContainer() method. Please look for examples in "PranaSampleAnotherArch101Demo.mxml".
* IocFacade.addConfigSource() method is added. It enables specification of configuration sources for new IocFacade
instances in XML, String and Array of strings formats. To be effective, method must be called before invoking of
initializeIocContainer() method. Please look for examples in "PranaSampleAnotherArch101Demo.mxml". Addition of this
method also enables support for embedded configurations as shown in examples.
* fixed bug with command names map which was not initialized properly during explicit ioc facade initialization.
Package org.springextensions.actionscript.utils
* added "StringUtils.tokenizeToArray" method
* added "StringUtils.isWhiteSpace" method
* added "StringUtils.isDigit" method
* added "StringUtils.naturalCompare" method
* added ArrayCollectionUtils
* added MultilineString
* fixed "XMLUtils.convertAttributeToNode" to support FP10 (possible bug in playerglobal.swc)
* added "ArrayUtils.getItemsByType" method
* added "StringUtils.removeChars" method
* added "StringUtils.replaceChars" method
* added "StringUtils.nthIndexOf" method
* "StringUtils.hasText" now returns false if an invalid string is passed
* removed "ObjectUtils.getClassInfo" method: had Flex dependency and was not used in the framework anyway
Changes in version 0.6 (03.07.2008)
-----------------------------------
General
* major refactoring of the IoC container, parser and application context to remove dependencies on the Flex framework
classes. For ActionScript only projects use the XMLApplicationContext, for Flex/AIR projects use the
FlexXMLApplicationContext.
* added new prana/puremvc integration sample - "prana-sample-anotherArch101Demo". Description of new features is given
in "prana-sample-anotherArch101Demo/resources/docs/pranaPureMvcIntegration-FurtherDevelopment.txt" document.
* object postprocessors are now automatically instantiated when placed in XML context
* introduced reference resolvers to handle references in application contexts
* introduced node parsers to allow extensibility of the application context parser
* introduced property editors
Package org.pranaframework.cairngorm
* refactored package layout
* added abstract business delegate
* added support for command factories in frontcontroller
Package org.pranaframework.domain
* introduced domain package for base domain objects
* added Entity, Enum, ValueObject
Package org.pranaframework.flexunit
* added "FlexUnitTestCase.assertLength"
* added "FlexUnitTestCase.assertArrayContains"
Package org.pranaframework.ioc
* "ObjectDefinitionScope.fromName" now returns SINGLETON if scope was not found
Package org.pranaframework.ioc.factory.support
* AbstractObjectFactory now uses configurable reference resolvers
* added FlexXMLApplicationContext
* fixed object creation from static factory method (arguments were not passed)
Package org.pranaframework.ioc.factory.xml
* fixed bug in XML merging from imports
* refactored XSD to use group for subtypes
* added support for "import" tag in XMLObjectFactory
Package org.pranaframework.ioc.factory.xml.preprocessors
* added MethodInvocationPreprocessor that handles "method-invocation" elements
* fixed replacement of template parameters in TemplatePreprocessor
Package org.pranaframework.objects
* added property editors
Package org.pranaframework.puremvc
* added IIocConfigNameAware and IocConfigNameAwarePostProcessors. This addition enables much more natural usage of
configured pure mvc elements (proxies, mediators, commands) in prana/puremvc integration.
* IocProxy, IocMediator, IocSimpleCommand, IocMacroCommand and IocFacade are now extended from theirs puremvc
counterparts. Usage patterns are same as before. Classes extended from IocProxy, IocMediator, IocSimpleCommand and
IocMacroCommand are now fully compatible with typical "pure" PureMVC applications and can be used there without
modification if they are not using IoC specific API.
* added IocManagedMacroCommand
* removed methods retrieveProxyByConfigName(), removeProxyByConfigName(), removeMediatorByConfigName() and
retrieveMediatorByConfigName() from IIocFacade and its corresponding default IocFacade implementation. Instead of
these methods, "standard" PureMvc method implementations (retrieveProxy(), removeProxy(), retrieveMediator() and
removeMediator()) in IocFacade should be used.
* IocFacade can now be constructed without configSource parameter. Now initializeIocContainer() method can be used for
IoC container initialization after construction. This can be very useful in scenarios when application needs a control
over GUI before IoC container can be initialized. For example, during application startup, when application wants to
bring some kind of splash screen or something, controlled by PureMVC elements.
Package org.pranaframework.reflection
* replaced Map with Object for cache implementation in Type
* added IInvocationHandler to handle invocations on a proxy
Package org.pranaframework.utils
* added "Assert.arrayContains"
* renamed "ClassUtils.getParentClasss" to "ClassUtils.getSuperClass"
* added "ClassUtils.getName"
* added "ClassUtils.getNameFromFullyQualifiedName"
* added "ClassUtils.getSuperClassName"
* added "ClassUtils.getFullyQualifiedSuperClassName"
* added "ClassUtils.getImplementedInterfaceNames"
* added "ClassUtils.getFullyQualifiedImplementedInterfaceNames"
* added "ClassUtils.getImplementedInterfaces"
* added "ClassUtils.convertFullyQualifiedName"
* added "ObjectUtils.getNumProperties"
* added "ObjectUtils.getKeys"
* added "DictionaryUtils.getKeys"
Changes in version 0.5 (21.04.2008)
-----------------------------------
General
* improved documentation
* added support for loading property files in application context
* removed modified Cairngorm Store by Renaun Erickson
* added updated Cairngorm Store that uses AMF3 and Mock data
* prana-sample-puremvcArch101Demo updated to match PureMVC 2.0.3 related change (thanks to Ryan Gardner for supplying a patch)
* project layout refactored for all Prana's projects
* build system added and refactored for all Prana's projects
* prana-install project introduced to ease configuration of Prana's projects for Eclipse/Flex Builder and Ant environments
* prana-tools project added with initial version of template based project creation tool
* "sample" template added in prana-tools
* prana-tools-internal project added to host internal utilities (i.e. release build script)
* XSD is now available for xml object definition files - http://www.pranaframework.org/schema/objects/prana-objects-0.5.xsd
* added namespace support for xml object definition files
* introduced Application Context concept as an XMLObjectFactory extension
Package org.pranaframework.cairngorm
* fixed changewatcher for property chain in EventSequence (thx Tony Hillerson)
* "responder" property now has a public setter
* added IResponderAware that defines a "responder" setter
* made the responder argument optional in AbstractRemoteObjectDelegate
* changed order of constructor arguments AbstractRemoteObjectDelegate
Package org.pranaframework.collections
* added Properties
Package org.pranaframework.context
* added IApplicationContext
* added IApplicationContextAware
* added IConfigurableApplicationContext
Package org.pranaframework.context.support
* added ApplicationContextAwareProcessor
* added XMLApplicationContext
Package org.pranaframework.ioc.loader
* XmlObjectDefinitionsLoader handles loading of property files
Package org.pranaframework.ioc.factory.config
* added IConfigurableListableObjectFactory
* added IConfigurableObjectFactory
* added IObjectFactoryPostProcessor
Package org.pranaframework.ioc.factory.support
* replaced ObjectFactory with AbstractObjectFactory
Package org.pranaframework.ioc.factory.xml.parser
* "parse" method in XmlObjectDefinitionsParser now gets an optional Properties collection
* fixed parsing of inline Dictionary entries
Package org.pranaframework.ioc.factory.xml.parser.preprocessors
* added PropertiesPreprocessor to apply properties to object definitions
Package org.pranaframework.utils
* added DictionaryUtils for working with Dictionary objects
* added PropertiesUtils for working with Properties objects
* added XMLUtils for working with XML objects
* added "ObjectUtils.getClassInfo" which is the same as ObjectUtil.getClassInfo() in the Flex framework but adds support for primitive types
* fixed "ObjectUtils.forInstance" to support primitive types
* added support for Application Domains in "ClassUtils.forName" and "ClassUtils.forInstance"
Package org.pranaframework.puremvc
* updated dependencies to PureMVC 2.0.3 (thanks to Ryan Gardner for supplying a patch)
* support for multiple configuration files added in PureMvc integration
Changes in version 0.4 (26.01.2008)
-----------------------------------
General
* introduction of PureMVC support
* added PureMVC sample application
* nightly builds available at http://prana.herrodius.com
* fixed config.xsl to ignore _svn folders
Package org.pranaframework.cairngorm
* fixed early dispatching of events in EventSequence
Package org.pranaframework.collections
* added "remove" method to IMap and Map
* changed "size" and "values" methods to getters
* Map now extends Dictionary instead of Proxy
Package org.pranaframework.config
* AppSettings now extends Proxy instead of Map
Package org.pranaframework.ioc
* added check for valid IList before creating cursor
* added "isLazyInit" and "initMethod" properties to IObjectDefinition and ObjectDefinition
* added support for init method in ObjectContainer
* added "removeObjectFromInternalCache" method
* enhancements to "getObject"
* added post processing capabilities to ObjectContainer
Package org.pranaframework.ioc.factory
* added IObjectContainerAware
Package org.pranaframework.ioc.factory.config
* added ObjectContainerAwarePostProcessor
* added LoggingTargetFactoryObject
Package org.pranaframework.ioc.parser
* added support for lazy init and init method in XmlObjectDefinitionsParser
* fixed "parseProperties" because of Map refactoring, keys were not strings in XmlObjectDefinitionsParser
Package org.pranaframework.puremvc
* initial release
Package org.pranaframework.utils
* added Parse port from the Fit framework
* added HtmlUtils utility methods for working with html
* added "isExplicitInstanceOf" method to ObjectUtils
Changes in version 0.3.1 (26.12.2007)
-------------------------------------
General
* improved documentation
* build file now handles releases
Package org.pranaframework.collections
* IMap and Map now have "get" and "put" methods to support data binding
* IMap now implements ICollectionView
* added MapViewCursor
Package org.pranaframework.config
* AppSettings no longer implements IEventDispatcher because Map now does
Package org.pranaframework.ioc
* added support for factory objects in ObjectContainer through IFactoryObject interface
* added ObjectDefinitionScope enum
* IObjectDefinition now has "scope" getter and setter
* added "scope" getter and setter to ObjectDefinition
* "isSingleton" in ObjectDefinition now alters scope property instead of having a private member
* ObjectContainer.getObject() is now able to return singleton or prototype objects
Package org.pranaframework.ioc.factory
* added "isSingleton" getter to IFactoryObject
* added AbstractFactoryObject base class for factory objects
Package org.pranaframework.ioc.factory.config
* added RandomNumberFactoryObject to return random numbers
* added FieldRetrievingFactoryObject to retrieve static or non-static fields from an object
Package org.pranaframework.ioc.parser
* added scopeAttributePreprocessor to XmlObjectDefintionsParser to set up scope attributes on object definitions
Package org.pranaframework.ioc.util
* added singleton and scope attributes to Constants
Package org.pranaframework.reflection
* added Field as a base class for all fields
* Accessor now extends Field instead of AbstractMember
* Constant now extends Field instead of AbstractMember
* Type now extends Field instead of AbstractMember
* Variable now extends Field instead of AbstractMember
Package org.pranaframework.utils
* TypeConverter.execute() can now return a class
Changes in version 0.3 (24.11.2007)
-----------------------------------
General
* added Movie sample application based on article by Martin Fowler
* improved documentation
* moved Cairngorm related classes to org.pranaframework.cairngorm
* Cairngorm Store sample now has different configuration of service locator
Package org.pranaframework.cairngorm
* added support for event sequencing
* CairngormFrontController now checks for commands implementing the ICommands interface
* implementation of CairngormServiceLocator
Package org.pranaframework.errors
* added ClassNotFoundError for retrieving a class by name when class was not found
Package org.pranaframework.ioc
* added serializer to create an application context from an object
* added support for initializing object with IInitializingObject
* added support for templates in application context
* added support for