avalon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <dona...@apache.org>
Subject RE: Off Topic: FSF makes peace with rest of open source world (not)
Date Mon, 04 Jun 2001 08:16:31 GMT
At 12:41 AM 6/4/01 -0700, David Duddleston wrote:
>I will try and explain the basic component flow for one part of my
>application which is a data miner / search engine. First the classes, there
>is a URI, ConnectionHandler (protocol based), ContentHandler (MIME based)
>and a CookieManager. A simple flow would be, a ConnectionHandler is
>determined based on the URI protocol, lets say HTTP for this one. The URI is
>passed to the HttpConnectionHandler and the handler grabs a CookieManager
>and uses it to deal with any cookie related processing. Next it checks the
>content type and gets a ContentHandler, lets say HtmlContentHandler, and
>passes off the input stream to the ContentHandler... a few steps are skipped
>in this description but I will assume you get the idea.

This is almost exactly the design of Cocoon2. It also has a pipeline design
with multiple stages (in it's case it has generators, transformers and
serializers). 

* Each stage can have multiple different types of component to handle it
(ie There is generators such as FileGenerator, PHPGenerator, JSPGenerator,
VelocityGenerator etc). 

* In each stage you can have multiple instances of same "type" but
different parameters supplied (ie multiple FileGenerators with different
parameters).

* Some of these components are ThreadSafe, others are Poolable and some
must be recreated with each use. Thus they have a specialized
ComponentManager that pools Poolable components, caches the ThreadSafe
components and creates the other components.

So in many ways the use case it alsmost identical (except Cocoon has 3
stages where you only have 2).

>I hope this makes sense... I have a feeling it does, sense I think this is
>the kind of stuff Avalon was created for and you people are doing this
>extact thing already. Am I on the right track here?

It makes sense ;) You definetly want to have a look
org.apache.avalon.excalibur.component.* which has a ComponentManager that
already does the Pooling et al. I think Berins whitepaper actually
describes it in more detail and how it is used in Cocoon2.

Cheers,

Pete

*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof."                   |
|              - John Kenneth Galbraith               |
*-----------------------------------------------------*


---------------------------------------------------------------------
To unsubscribe, e-mail: avalon-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: avalon-dev-help@jakarta.apache.org


Mime
View raw message