commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Costin Manolache <>
Subject Re: [general][lang] monolithic components considered harmful
Date Wed, 01 Jan 2003 18:57:19 GMT
Rodney Waldhoff wrote:

> Try this: fill in the blanks in the following
>   If you want to ___, you may want to use ___.
> For example:
> * interact with JavaBeans via reflection and introspection; beanutils
> * translate between JavaBeans and XML; betwixt
> * parse command line arguments; cli
> * work with abstract data structures; collections
> * parse xml configuration files; digester
> * discover services that have been externally configured; discovery
> * pool database connections; dbcp
> * implement an XML scripting language; jelly
> * process multipart/form-data HTTP requests; fileupload
> * interact with HTTP servers; httpclient
> * work with XPath expresssions in java; jxpath
> * functional test HTTP applications; latka
> * write debugging and logging messages; logging
> * support JMX via Model MBeans; modeler
> * pool objects; pool
> * validate user input; validator
> Now try it with [lang], [util] or [pattern] and any scope signficantly
> different from "develop software in Java".

If you define "functor" the way Craig did - an interface that 
could be used as a common hook mechanism - I would gladly change my vote
to +1.

And it will be: "if you want a hook mechanism, use commons-functor"

There are few requirements I have:

1. You must be well aware that this is an interface package. 
It just won't work with 3 +1 votes as a regular commons interface.
You need buy-in and participation from significant apache projects.

2. It shouldn't get too much into implementing functors, just define
the interface and tools ( and maybe wrappers for existing hook
mechanisms ).

3. It should be able to support existing patterns:
- iterative invocation of functors as well as recursive ( 
- be able to replace existing mechanisms
- JDK1.1 compat ( so it could be used someday in Ant ).

It could go the same way as logging and define adapters and wrappers
for other interfaces used for this ( in tomcat, ant, axis, etc ). 
It would be ideal if bidirectional wrappers would be provided so
that functors are useable in existing systems.

This must be config-neutral and support regular bean patterns ( so
it can be managed by modeler and integrated in existing apps ).

I also have a problem with the name "functor". I would rather have
"callback", "hook", "extension point", "plugin" ( if this is what you
have in mind ).

In other words: one hook mechanism to rule them all :-)


To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message