Some folks on the list asked (understandably) for a "what's new" list for ColdSpring 1.2, so I put this together. We should get it up on the site shortly as well:
- Bean Aliases: Allows you to define additional bean IDs for existing beans. i.e.:
<bean id = "myBean" class="com.myBean" /> <alias name="myBean" alias="anotherIDForMyBean" />
- Abstract / Parent Beans: Allows you to reduce XML duplication by defining common properties and settings in a parent bean that can be used by multiple child beans. See Quickstart Guide for full details and examples.
- Collection Factory Beans (ListFactoryBean and MapFactoryBean): Factory beans that will create collections. ListFactoryBean creates an Array, MapFactoryBean creates a structure.
<bean id="myList" class="coldspring.beans.factory.config.ListFactoryBean"> <property name="sourceList"> <list> <value>Array Element 1</value> <value>Array Element 2</value> <value>Array Element 3</value> </list> </property> </bean> <bean id="myList" class="coldspring.beans.factory.config.MapFactoryBean"> <property name="sourceMap"> <map> <entry key="keyA"><value>keyA value</value></entry> <entry key="keyB"><value>keyB value</value></entry> <entry key="keyC"><value>keyC value</value></entry> </map> </property> </bean>
- Import XML directive: Allows you to include the contents of a separate ColdSpring XML file into another ColdSpring XML file:
<beans> <import resource="/myotherxmlfile.xml" /> </beans>
- Bean Factory Postprocessors: Allows you to specify a component that will run after all beans have been processed and apply additional processing on the bean definitions. ColdSpring will call postProcessBeanFactory() on each postprocessor, and you can then run any additional processing you would like to. For an example, look at /beans/factory/config/PropertyPlaceholderConfigurer.cfc.
- coldspring.cfcunit.AbstractAutowireTests and coldspring.cfcunit.AbstractAutowireTransactionalTests: Both of these allow you to provide the location of your applications bean config file and then simply define setters for any beans you want to test. The transactional version automatically rolls back database transactions. You can read Chris Scott's blog entry about both of these.
- Numerous bug fixes and improvements: Over 30 bug or enhancement tickets have been resolved, with critical improvements in thread safety, having ColdSpring call inherited methods and constructors during autowiring and bean creation, automatic support for creating any beans marked with lazy-init="false" at bean factory creation, and many others.