> 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]

Reply via email to