SPRING ACTIONSCRIPT CHANGELOG ============================= Note: dates are in DD.MM.YYYY format Changes in version 0.8 (16.07.2009) ----------------------------------- General * new website at www.springactionscript.org * factored out common functionality into the AS3Commons projects (http://www.as3commons.org) * major update to the documentation * added autowire support * added custom namespace handler support * restructured subversion repository * updated samples * various performance improvements Package org.springextensions.actionscript.cairngorm * added IDataTranslator and IDataTranslatorAware interfaces * added AbstractDataTranslatorAwareBusinessDelegate base class * added 'batch command' support to CairngormFrontController Package org.springextensions.actionscript.context.support.mxml * added entire package for MXML support for application contexts Package org.springextensions.actionscript.domain * moved Enum to AS3Commons-Lang * moved ICloneable to AS3Commons-Lang * moved IEquals to AS3Commons-Lang Package org.springextensions.actionscript.errors * moved IllegalArgumentError to AS3Commons-Lang * moved IllegalStateError to AS3Commons-Lang * removed RuntimeError Package org.springextensions.actionscript.ioc * added "factoryObjectName" property to IObjectDefinition and ObjectDefinition Package org.springextensions.actionscript.ioc.factory * added ObjectDefinitionStoreError Package org.springextensions.actionscript.ioc.factory.config * added StageComponentInterceptionPostProcessor * fixed e4x query to select nodes with Required metadata in RequiredMetadataObjectPostProcessor * changed "getObject" and "getObjectType" so we can also return Function references from methods in FieldRetrievingFactoryObject * added "getObjectDefinition" in IConfigurableListableObjectFactory Package org.springextensions.actionscript.ioc.factory.config.flex * added ApplicationPropertiesResolver Package org.springextensions.actionscript.ioc.factory.support * removed "allowObjectDefinitionOverriding" getter and setter from IObjectDefinitionRegistry * error is now thrown when overriding an object definition while it is not allowed in DefaultListableObjectFactory * added support for retrieving factory objects and autowiring in AbstractObjectFactory * added ObjectDefinitionBuilder * fixed bug with caching of factory objects in AbstractObjectFactory Package org.springextensions.actionscript.ioc.factory.xml * added StageInterceptionNamespaceHandler * added spring-actionscript-stageinterception-1.0.xsd * added spring_actionscript_stageinterception namespace * added RPCNamespaceHandler * added spring-actionscript-rpc-1.0.xsd * added spring_actionscript_rpc namespace * added UtilNamespaceHandler * added spring-actionscript-util-1.0.xsd * added spring_actionscript_util namespace * added MessagingNamespaceHandler * added spring-actionscript-messaging-1.0.xsd * added spring_actionscript_messaging namespace * added "resolveID" to AbstractObjectDefinitionParser method that allow object name lookup and generation Package org.springextensions.actionscript.ioc.factory.xml.parser.support * fixed XMLObjectDefinitionsParser so that abstract definitions are no longer parsed * fixed XMLObjectDefinitionsParser to support nested custom nodes Package org.springextensions.actionscript.ioc.factory.xml.parser.support.nodeparsers * fixed ObjectNodeParser to support nested custom nodes Package org.springextensions.actionscript.ioc.factory.xml.parser.support.nodeparsers.stageinterception * added StageInterceptorNodeParser Package org.springextensions.actionscript.ioc.factory.xml.preprocessors * fixed parent properties not being overridden by child properties in ParentAttributePreprocessor * fixed bug with properties replacement Package org.springextensions.actionscript.mvcs * removed AbstractService * added IApplicationController * added AbstractApplicationController * added ApplicationEvent * added ApplicationEventDispatcher * added IApplicationEventListener Package org.springextensions.actionscript.utils * added ApplicationUtils * moved ArrayUtils to AS3Commons-Lang * moved Assert to AS3Commons-Lang * moved DictionaryUtils to AS3Commons-Lang * moved ObjectUtils to AS3Commons-Lang * moved StringUtils to AS3Commons-Lang * moved XMLUtils to AS3Commons-Lang * removed TypedProxy Samples * added object-definition-parser-builder project 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 definitions, parsed to Dictionary * added support for definitions, parsed to ArrayList * made container spring context compliant * improved error handling when creating object from object definitions * rewrote preprocessing of xml application context, now using chain of preprocessors * fixed creation of object without id, id is now auto generated * fixed order for object definitions so that they no longer need to be chronological Package org.pranaframework.reflection * added metadata introspection * added "getFullName" method to Method class * changed arguments in "invoke" method from ... to array Package org.pranaframework.utils * added "forName" method in ClassUtils for retrieving Class objects via class names * added "getParentClass" method in ClassUtils that returns the parent class of a given class * added "isSubclassOf" method in ClassUtils that returns if a class extends another class * added StringUtils * added DisplayObjectContainerUtils * added MethodInvoker to support initializing objects from application context * added "state" method to Assert class * changed TypeConverter so that it can return Class objects Changes in version 0.2 (26.04.2007) ----------------------------------- General * changed general classpath from be.indiegroup.prana to org.pranaframework * added first implementation of a Reflection API * improved documentation Package org.pranaframework.events * added XMLSocketEvent with eventname enum Package org.pranaframework.logging * added SOSTarget for SOS console logging Package org.pranaframework.reflection * first implementation Package org.pranaframework.utils * added ClassUtils which provides general utilities for working with Class objects Changes in version 0.1.1 (10.4.2007) ------------------------------------ General * improved documentation Package be.indiegroup.prana.ioc.factory * added IFactoryObject interface * added AbstractFactoryObject class Package be.indiegroup.prana.ioc.util * added CairngormFrontController Changes in version 0.1 (8.4.2007) --------------------------------- General * initial release: basic implementation of an Inversion of Control (IoC) container