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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
