> Cool... what's a picocontainer? :-) PicoContainer is an implementation of the inversion of control (or IoC) pattern. PicoContainer developers call it IoC type 3 (that is constructor managed dependencies). PicoContainer is just a container that can be populated with components (components are just plain old java objects). Components can have dependencies on other components. For example UserManager component might depend on DataSource or Hibernate Session component (some might not call these components, but I think that they work as components as well as any other self made pojos) etc. Or some service ie. imaginary JMS Service might depend on configuration component or configuration parameters like Strings and other basic stuff that it needs for it's initialization.
What PicoContainer does is that it manages these dependecies for you (and Lifecycle - by implementing some or all the lifecycle methods - if needed). You just register components to your PicoContainer and PicoContainer then initializes them whenever they are needed. It's not any magic, it's just a simple component management system (management can be seen as a big word, but in this case is just component initialization that is constructing components with some constructor parameter(s) and automatic handling of that construction and dependencies) (you do not need to know the order of component construction, PicoContainer does it for you). PicoContainer can be then stored to whatever context you like, for example in ServletContext or JNDI. Users can then request these components (or sometimes called as Services) from PicoContainer and use them. To make things pluggable and configurable, interface based design is a plus. You can then change your implementation and let your Maverick Controllers use the interface. You just create components that are usually reusable in many context (not only in maverick or some other framework). With PicoContainer it's easy to decouple you "business logic" from Maverick controllers. This decoupling leads to a benefit that these components are not depended on anything other than maybe other components and sometimes some parameters. You can definately do everything I mentioned without PicoContainer or any other IoC implementation by yourself, but PicoContainer or Sping IoC (or some other) makes it a little bit more simple. I do no see how this should be integrated in maverick as any user can just make their own implemenation of for example Servlet and then just place this container in whatever context they like. I see there is possibility to integrate it with controllers so that controllers are like components and get their dependencies from PicoContainer but I do no see that much added value in that as users can always request the container from servlet/session/request context (or maybe you can use static singleton) and then just use PicoContainer to retrieve the needed components and use them. Infact this integration just ties components with maverick. What maverick needs is something that helps you with Web development. Ie. Velocity macro libraries, Java tag libraries, and something that helps you with input parameter validation. I know that Ted has worked with FormProc implementation, but maybe FormProc is not what users are looking at. It's a good library, but something more tightly integrated with maverick would be nice. Regards Aapo ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ [INVALID FOOTER]