Return-Path: Delivered-To: apmail-jakarta-avalon-dev-archive@jakarta.apache.org Received: (qmail 35689 invoked by uid 500); 4 Jun 2001 08:10:45 -0000 Mailing-List: contact avalon-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Reply-To: "Avalon Development" Delivered-To: mailing list avalon-dev@jakarta.apache.org Received: (qmail 35678 invoked from network); 4 Jun 2001 08:10:43 -0000 Message-Id: <3.0.6.32.20010604181631.00994ce0@mail.alphalink.com.au> X-Sender: gdonald@mail.alphalink.com.au X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.6 (32) Date: Mon, 04 Jun 2001 18:16:31 +1000 To: "Avalon Development" From: Peter Donald Subject: RE: Off Topic: FSF makes peace with rest of open source world (not) Cc: "Avalon Development" In-Reply-To: References: <3.0.6.32.20010604144142.00a1b7b0@mail.alphalink.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N 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