Model-Glue has come on in leaps and bounds - the rearchitecture based on ColdSpring, the scaffolding infrastructure, the integrated support for Reactor and Transfer for "generic database messages". It's very impressive. And now we're got the beginnings of a Flex version, which is very promising.
Now that I'm consulting and have a number of clients, I'm encountering Mach-II quite a bit and looking at the 1.5 release. I've mentioned in the past that I think 1.5 looked quite impressive (when Peter Farrell gave the "what's new?" talk at cf.Objective(), for example). Recently, I've been making recommendations for frameworks for clients and finding myself recommending Mach-II for some clients, mostly due to the new features in 1.5. For some of the sites my clients are trying to build, the modules, includes and subroutines really do allow you to build much larger, much more modular sites than earlier versions of Mach-II.
The extended property semantics in Mach-II 1.5 are also very nice, allowing you to specify structured configuration data - including full-on CFCs - as well as allowing property values to be dynamically substituted into parameter values throughout the configuration.
I still don't really like the direct invocation model (with <notify>) compared to Model-Glue's broadcast / listener mechanism, but the other features are pretty compelling.
One thing I have seen mentioned, but cannot find, is Peter Farrell's new ColdSpringProperty CFC, to replace the old ColdSpringPlugin. Anyone know where to get a copy?
The parameter configFilePropertyName no longer exists and instead the parameter configFile is required (and contains the value that was originally in the property named by the configFilePropertyName property).
That's a nice change, in my opinion.
Could you explain what the placeInApplicationScope and placeInServerScope parameters are for?
I agree that indicating a property name that holds the path to the config file was a bit cumbersome. However, I believe it was done so you could programmatically substitute a difference config file via by having another plugin set the value of that property. With parameter value binding (via the ${} syntax) that we introduced in 1.5 -- it's really a moot point thus the change.
If you want to do parent bean factories, then you need to place it in a location that another ColdspringProperty can find. So in your parent factory parameters you need to flip placeInApplicationScope to true (the key is based off the value of the beanFactoryPropertyName parameter). In your child bean factories (usually a module in Mach-II), you need to use the parentBeanFactoryScope and parentBeanFactoryKey parameters to reference the parent bean factory to inherit from. It needs some refinement at the moment, but it's what I inherited from the ColdspringPlugin and I didn't think to change them yet since it works...


