Spring ActionScript changes

Release History

VersionDateDescription
0.92009-09-14Release of version 0.9
0.8.12009-09-14Release of version 0.8.1
0.82009-07-16Release of version 0.8
0.7.12009-05-02Release of version 0.7.1
0.72009-01-20Release of version 0.7
0.62008-07-03Release of version 0.6
0.52008-04-21Release of version 0.5
0.42008-01-26Release of version 0.4
0.3.12007-12-26Release of version 0.3.1
0.32007-11-24Release of version 0.3
0.22007-04-26Release of version 0.2
0.1.12007-04-10Release of version 0.1.1
0.12007-04-08Release of version 0.1

Release 0.9 - 2009-09-14

TypeChangesByDate
fixfixed constructor-arg type attribute was not declared in spring-actionscript-objects-1.0.xsd Fixes 62.rzwaga19/09/2009
addadded unregisterStageProcessor() method to the IStageProcessorRegistry interfacerzwaga19/09/2009
addadded DefaultFlexAutowireProcessor that handles binding using the [Autowired(host="objectName","property.chain")] metadatarzwaga21/09/2009
addadded PureMVC documentation sectionrzwaga22/09/2009
addAdded autowiring support for injecting external property values using [Autowired(propertyName="s1")]rzwaga23/09/2009

Release 0.8.1 - 2009-09-14

TypeChangesByDate
fixfixed recursive resolve of properties Fixes 60.cherreman28/07/2009
addadded module support to CairngormFrontControllerrzwaga27/07/2009
fixfixed parsing of empty value nodes Fixes 49.cherreman31/07/2009
fixfixed imports Fixes 50.cherreman31/07/2009
fixfixed error in example code in the documentation Fixes 52.rzwaga31/07/2009
fixfixed Flex dependency in XMLObjectFactory Fixes 51.rzwaga31/07/2009
fixfixed autowiring stage components in modules that are loaded in a different applicationDomain Fixes 57.rzwaga31/07/2009
addadded IStageProcessor and IStageProcessorRegistry interfaces in org.springextensions.actionscript.stage packagerzwaga20/08/2009
addrefactored the stage autowiring into separate IStageProcessor implementation called DefaultAutowiringStageProcessorrzwaga20/08/2009
addstage components are now autowired only once by default, can be optionally turned off in DefaultAutowiringStageProcessor by setting the autowireOnce property to false.rzwaga27/08/2009
updaterenamed stage interception schema to stage processing schemarzwaga21/08/2009
addadded org.springextensions.actionscript.localization package and corresponding sample applicationrzwaga24/08/2009
addadded org.springextensions.actionscript.security package and corresponding sample applicationrzwaga28/08/2009
updatemoved the IObjectSelector interface to org.springextensions.actionscript.stage packagerzwaga27/08/2009
fixinner singleton objects are now automatically marked as lazy-init Fixes 59.rzwaga02/09/2009
addadded support for interface definitions, both in XML and MXML configurationsrzwaga03/09/2009
fixautowire byType now also works for objects created by an IFactoryObject Fixes 61.rzwaga04/09/2009
fixfixed random suffix on property file URL is now optional, use prevent-cache=false on the import tag (is true by default) Fixes 29.rzwaga07/09/2009
fixchanged implementation of method-invocation elements Fixes 43.cherreman09/09/2009
updatechanged implementation of MethodInvocations in MXML support to match the new implementationrzwaga11/09/2009
addadded stagewiring sample applicationrzwaga12/09/2009

Release 0.8 - 2009-07-16

TypeChangesByDate
addnew website at www.springactionscript.org
addfactored out common functionality into the AS3Commons projects (www.as3commons.org)
addmajor update to the documentation
addadded autowire support
addadded custom namespace handler support
addrestructured subversion repository
addupdated samples
addvarious performance improvements
addadded IDataTranslator and IDataTranslatorAware interfaces
addadded AbstractDataTranslatorAwareBusinessDelegate base class
addadded 'batch command' support to CairngormFrontController Fixes 47.
addadded entire package for MXML support for application contexts
removemoved Enum to AS3Commons-Lang
removemoved ICloneable to AS3Commons-Lang
removemoved IEquals to AS3Commons-Lang
removemoved IllegalArgumentError to AS3Commons-Lang
removemoved IllegalStateError to AS3Commons-Lang
removeremoved RuntimeError
addadded "factoryObjectName" property to IObjectDefinition and ObjectDefinition
addadded ObjectDefinitionStoreError
addadded StageComponentInterceptionPostProcessor
fixfixed e4x query to select nodes with Required metadata in RequiredMetadataObjectPostProcessor
updatechanged "getObject" and "getObjectType" so we can also return Function references from methods in FieldRetrievingFactoryObject
addadded "getObjectDefinition" in IConfigurableListableObjectFactory
addadded ApplicationPropertiesResolver
removeremoved "allowObjectDefinitionOverriding" getter and setter from IObjectDefinitionRegistry
addadded error is now thrown when overriding an object definition while it is not allowed in DefaultListableObjectFactory
addadded support for retrieving factory objects and autowiring in AbstractObjectFactory
addadded ObjectDefinitionBuilder
fixfixed bug with caching of factory objects in AbstractObjectFactory
addadded StageInterceptionNamespaceHandler
addadded spring-actionscript-stageinterception-1.0.xsd
addadded spring_actionscript_stageinterception namespace
addadded RPCNamespaceHandler
addadded spring-actionscript-rpc-1.0.xsd
addadded spring_actionscript_rpc namespace
addadded UtilNamespaceHandler
addadded spring-actionscript-util-1.0.xsd
addadded spring_actionscript_util namespace
addadded MessagingNamespaceHandler
addadded spring-actionscript-messaging-1.0.xsd
addadded spring_actionscript_messaging namespace
addadded "resolveID" to AbstractObjectDefinitionParser method that allow object name lookup and generation
fixfixed XMLObjectDefinitionsParser so that abstract definitions are no longer parsed
fixfixed XMLObjectDefinitionsParser to support nested custom nodes
fixfixed ObjectNodeParser to support nested custom nodes
addadded StageInterceptorNodeParser
fixfixed parent properties not being overridden by child properties in ParentAttributePreprocessor
fixfixed bug with properties replacement
removeremoved AbstractService
addadded IApplicationController
addadded AbstractApplicationController
addadded ApplicationEvent
addadded ApplicationEventDispatcher
addadded IApplicationEventListener
addadded ApplicationUtils
removemoved ArrayUtils to AS3Commons-Lang
removemoved Assert to AS3Commons-Lang
removemoved DictionaryUtils to AS3Commons-Lang
removemoved ObjectUtils to AS3Commons-Lang
removemoved StringUtils to AS3Commons-Lang
removemoved XMLUtils to AS3Commons-Lang
removeremoved TypedProxy
addadded object-definition-parser-builder sample project

Release 0.7.1 - 2009-05-02

TypeChangesByDate
addadded random suffix to urlrequest in Properties to avoid caching
addadded INamed interface
addadded NamedEntity class
addadded NamedUtil class
removeremoved ClassNotFoundError since this is now part of AS3Reflect
fixfixed object creation with circular references in AbstractObjectFactory
fixfixed lookup of import nodes in XMLObjectFactory
addadded "Assert.isTrue"

Release 0.7 - 2009-01-20

TypeChangesByDate
addPrana Framework is now Spring ActionScript
addReflection API is now a separate project (as3reflect: http://code.google.com/p/as3reflect/)
addCairngorm and PureMVC extensions removed from the core framework sources
addadded support for parent objects in XML config
addadded support for depends-on attribute in XML config
addfixed issues with object factory post processors
addadded Maven build file
addintroduced experimental MVCS framework
addadded PropertiesParser
updaterefactored loader complete event to use PropertiesParser in Properties
addadded remove methods in EntityCollection
addadded auto-registration and invocation of object factory post processors
addadded "XMLApplicationContext.invokeObjectFactoryPostProcessor" method
updaterenamed ValueObject to BaseObject
addadded ICloneable, ICopyFrom, IEquals interfaces
removeremoved IValueObject interface
addadded check for simple objects in "BaseObject.cloneField" method
fixfixed "BaseObject.copyFrom" method to also copy variables
fixfixed "BaseObject.copyFrom" so that it is no longer allowed if the other object is the same instance
fixfixed "BaseObject.clonePropertyValue", enums should not be cloned
update"BaseObject.doEquals()" now check for IEquals implementations
addadded support for nodes
addadded LogEvent
addadded CustomEditorConfigurer
addadded LoggingTargetObjectPostProcessor for auto registration of ILoggingTarget objects
fixfixed assertion in AbstractObjectFactory
updatechanged logging of pre-instantiated singletons in DefaultListableObjectFactory
fixfixed "getObjectNamesForType" and "getObjectsOfType", did not check correctly for matching objects in DefaultListableObjectFactory
updaterefactored property assignment to handle custom editor configurers in AbstractObjectFactory
update"AbstractObjectFactory.resolveReference" now return null if passed in property is null
addadded "addEmbeddedConfig" method to XMLObjectFactory for embedded XML config
update"XMLObjectFactory.load" method now throws an IllegalStateError when loading a context without config locations or XML
updatemade "parser" property public in XMLObjectFactory to allow registration of xml preprocessors through application context
updatechanged order of preprocessors in XMLObjectDefinitionsParser so that id preprocessor is first
addadded NullNodeParser
addadded ParentAttributePreprocessor
fixfixed id assignment of MethodInvokingObject objects in MethodInvocationPreprocessors
update"singleton" attribute is now removed after prepocessing in ScopeAttributePreprocessor
removeremoved xml serializer because it is no longer supported
addadded experimental package for MVCS support
updateupdated to PureMVC Standard v2.0.4
removeautomatic 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".
addIocFacade.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.
fixfixed bug with command names map which was not initialized properly during explicit ioc facade initialization.
addadded "StringUtils.tokenizeToArray" method
addadded "StringUtils.isWhiteSpace" method
addadded "StringUtils.isDigit" method
addadded "StringUtils.naturalCompare" method
addadded ArrayCollectionUtils
addadded MultilineString
fixfixed "XMLUtils.convertAttributeToNode" to support FP10 (possible bug in playerglobal.swc)
addadded "ArrayUtils.getItemsByType" method
addadded "StringUtils.removeChars" method
addadded "StringUtils.replaceChars" method
addadded "StringUtils.nthIndexOf" method
update"StringUtils.hasText" now returns false if an invalid string is passed
removeremoved "ObjectUtils.getClassInfo" method: had Flex dependency and was not used in the framework anyway

Release 0.6 - 2008-07-03

TypeChangesByDate
updatemajor 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.
addadded new prana/puremvc integration sample - "prana-sample-anotherArch101Demo". Description of new features is given in "prana-sample-anotherArch101Demo/resources/docs/pranaPureMvcIntegration-FurtherDevelopment.txt" document.
updateobject postprocessors are now automatically instantiated when placed in XML context
addintroduced reference resolvers to handle references in application contexts
addintroduced node parsers to allow extensibility of the application context parser
addintroduced property editors
updaterefactored package layout
addadded abstract business delegate
addadded support for command factories in frontcontroller
addintroduced domain package for base domain objects
addadded Entity, Enum, ValueObject
addadded "FlexUnitTestCase.assertLength"
addadded "FlexUnitTestCase.assertArrayContains"
update"ObjectDefinitionScope.fromName" now returns SINGLETON if scope was not found
updateAbstractObjectFactory now uses configurable reference resolvers
addadded FlexXMLApplicationContext
fixfixed object creation from static factory method (arguments were not passed)
fixfixed bug in XML merging from imports
updaterefactored XSD to use group for subtypes
addadded support for "import" tag in XMLObjectFactory
addadded MethodInvocationPreprocessor that handles "method-invocation" elements
fixfixed replacement of template parameters in TemplatePreprocessor
addadded property editors
addadded IIocConfigNameAware and IocConfigNameAwarePostProcessors. This addition enables much more natural usage of configured pure mvc elements (proxies, mediators, commands) in prana/puremvc integration.
updateIocProxy, 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.
addadded IocManagedMacroCommand
removeremoved 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.
updateIocFacade 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.
updatereplaced Map with Object for cache implementation in Type
addadded IInvocationHandler to handle invocations on a proxy
addadded "Assert.arrayContains"
updaterenamed "ClassUtils.getParentClasss" to "ClassUtils.getSuperClass"
addadded "ClassUtils.getName"
addadded "ClassUtils.getNameFromFullyQualifiedName"
addadded "ClassUtils.getSuperClassName"
addadded "ClassUtils.getFullyQualifiedSuperClassName"
addadded "ClassUtils.getImplementedInterfaceNames"
addadded "ClassUtils.getFullyQualifiedImplementedInterfaceNames"
addadded "ClassUtils.getImplementedInterfaces"
addadded "ClassUtils.convertFullyQualifiedName"
addadded "ObjectUtils.getNumProperties"
addadded "ObjectUtils.getKeys"
addadded "DictionaryUtils.getKeys"

Release 0.5 - 2008-04-21

TypeChangesByDate
updateimproved documentation
addadded support for loading property files in application context
removeremoved modified Cairngorm Store by Renaun Erickson
addadded updated Cairngorm Store that uses AMF3 and Mock data
updateprana-sample-puremvcArch101Demo updated to match PureMVC 2.0.3 related change (thanks to Ryan Gardner for supplying a patch)
updateproject layout refactored for all Prana's projects
addbuild system added and refactored for all Prana's projects
addprana-install project introduced to ease configuration of Prana's projects for Eclipse/Flex Builder and Ant environments
addprana-tools project added with initial version of template based project creation tool
add"sample" template added in prana-tools
updateprana-tools-internal project added to host internal utilities (i.e. release build script)
addXSD is now available for xml object definition files - http://www.pranaframework.org/schema/objects/prana-objects-0.5.xsd
addadded namespace support for xml object definition files
addintroduced Application Context concept as an XMLObjectFactory extension
fixfixed changewatcher for property chain in EventSequence (thx Tony Hillerson)
update"responder" property now has a public setter
addadded IResponderAware that defines a "responder" setter
updatemade the responder argument optional in AbstractRemoteObjectDelegate
updatechanged order of constructor arguments AbstractRemoteObjectDelegate
addadded Properties
addadded IApplicationContext
addadded IApplicationContextAware
addadded IConfigurableApplicationContext
addadded ApplicationContextAwareProcessor
addadded XMLApplicationContext
addXmlObjectDefinitionsLoader handles loading of property files
addadded IConfigurableListableObjectFactory
addadded IConfigurableObjectFactory
addadded IObjectFactoryPostProcessor
updatereplaced ObjectFactory with AbstractObjectFactory
update"parse" method in XmlObjectDefinitionsParser now gets an optional Properties collection
fixfixed parsing of inline Dictionary entries
addadded PropertiesPreprocessor to apply properties to object definitions
addadded DictionaryUtils for working with Dictionary objects
addadded PropertiesUtils for working with Properties objects
addadded XMLUtils for working with XML objects
addadded "ObjectUtils.getClassInfo" which is the same as ObjectUtil.getClassInfo() in the Flex framework but adds support for primitive types
fixfixed "ObjectUtils.forInstance" to support primitive types
addadded support for Application Domains in "ClassUtils.forName" and "ClassUtils.forInstance"
updateupdated dependencies to PureMVC 2.0.3 (thanks to Ryan Gardner for supplying a patch)
updatesupport for multiple configuration files added in PureMvc integration

Release 0.4 - 2008-01-26

TypeChangesByDate
updateintroduction of PureMVC support
addadded PureMVC sample application
addnightly builds available at http://prana.herrodius.com
fixfixed config.xsl to ignore _svn folders
fixfixed early dispatching of events in EventSequence
addadded "remove" method to IMap and Map
updatechanged "size" and "values" methods to getters
updateMap now extends Dictionary instead of Proxy
updateAppSettings now extends Proxy instead of Map
addadded check for valid IList before creating cursor
addadded "isLazyInit" and "initMethod" properties to IObjectDefinition and ObjectDefinition
addadded support for init method in ObjectContainer
addadded "removeObjectFromInternalCache" method
updateenhancements to "getObject"
addadded post processing capabilities to ObjectContainer
addadded IObjectContainerAware
addadded ObjectContainerAwarePostProcessor
addadded LoggingTargetFactoryObject
addadded support for lazy init and init method in XmlObjectDefinitionsParser
fixfixed "parseProperties" because of Map refactoring, keys were not strings in XmlObjectDefinitionsParser
addinitial release of org.pranaframework.puremvc package
addadded Parse port from the Fit framework
addadded HtmlUtils utility methods for working with html
addadded "isExplicitInstanceOf" method to ObjectUtils

Release 0.3.1 - 2007-12-26

TypeChangesByDate
updateimproved documentation
updatebuild file now handles releases
updateIMap and Map now have "get" and "put" methods to support data binding
updateIMap now implements ICollectionView
addadded MapViewCursor
removeAppSettings no longer implements IEventDispatcher because Map now does
addadded support for factory objects in ObjectContainer through IFactoryObject interface
addadded ObjectDefinitionScope enum
updateIObjectDefinition now has "scope" getter and setter
addadded "scope" getter and setter to ObjectDefinition
update"isSingleton" in ObjectDefinition now alters scope property instead of having a private member
updateObjectContainer.getObject() is now able to return singleton or prototype objects
addadded "isSingleton" getter to IFactoryObject
addadded AbstractFactoryObject base class for factory objects
addadded RandomNumberFactoryObject to return random numbers
addadded FieldRetrievingFactoryObject to retrieve static or non-static fields from an object
addadded scopeAttributePreprocessor to XmlObjectDefintionsParser to set up scope attributes on object definitions
addadded singleton and scope attributes to Constants
addadded Field as a base class for all fields
updateAccessor now extends Field instead of AbstractMember
updateConstant now extends Field instead of AbstractMember
updateType now extends Field instead of AbstractMember
updateVariable now extends Field instead of AbstractMember
updateTypeConverter.execute() can now return a class

Release 0.3 - 2007-11-24

TypeChangesByDate
addadded Movie sample application based on article by Martin Fowler
updateimproved documentation
updatemoved Cairngorm related classes to org.pranaframework.cairngorm
updateCairngorm Store sample now has different configuration of service locator
addadded support for event sequencing
updateCairngormFrontController now checks for commands implementing the ICommands interface
addimplementation of CairngormServiceLocator
addadded ClassNotFoundError for retrieving a class by name when class was not found
addadded serializer to create an application context from an object
addadded support for initializing object with IInitializingObject
addadded support for templates in application context
addadded support for definitions, parsed to Dictionary
addadded support for definitions, parsed to ArrayList
updatemade container spring context compliant
updateimproved error handling when creating object from object definitions
updaterewrote preprocessing of xml application context, now using chain of preprocessors
fixfixed creation of object without id, id is now auto generated
fixfixed order for object definitions so that they no longer need to be chronological
addadded metadata introspection
addadded "getFullName" method to Method class
updatechanged arguments in "invoke" method from ... to array
addadded "forName" method in ClassUtils for retrieving Class objects via class names
addadded "getParentClass" method in ClassUtils that returns the parent class of a given class
addadded "isSubclassOf" method in ClassUtils that returns if a class extends another class
addadded StringUtils
addadded DisplayObjectContainerUtils
addadded MethodInvoker to support initializing objects from application context
addadded "state" method to Assert class
updatechanged TypeConverter so that it can return Class objects

Release 0.2 - 2007-04-26

TypeChangesByDate
updatechanged general classpath from be.indiegroup.prana to org.pranaframework
addadded first implementation of a Reflection API
updateimproved documentation
addadded XMLSocketEvent with eventname enum
addadded SOSTarget for SOS console logging
addfirst implementation of the org.pranaframework.reflection package
addadded ClassUtils which provides general utilities for working with Class objects

Release 0.1.1 - 2007-04-10

TypeChangesByDate
updateimproved documentation
addadded IFactoryObject interface
addadded AbstractFactoryObject class
addadded CairngormFrontController

Release 0.1 - 2007-04-08

TypeChangesByDate
addinitial release: basic implementation of an Inversion of Control (IoC) container