Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 42492 invoked from network); 8 Jan 2004 10:15:44 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 8 Jan 2004 10:15:44 -0000 Received: (qmail 10715 invoked by uid 500); 8 Jan 2004 10:15:14 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 10661 invoked by uid 500); 8 Jan 2004 10:15:14 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: dev@cocoon.apache.org Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 10647 invoked from network); 8 Jan 2004 10:15:13 -0000 Received: from unknown (HELO mail.s-und-n.de) (212.8.217.2) by daedalus.apache.org with SMTP; 8 Jan 2004 10:15:13 -0000 Received: from notes.sundn.de (ntsrv5.sundn.de [10.10.2.10]) by mail.s-und-n.de (postfix) with ESMTP id 78A0119F5A8 for ; Thu, 8 Jan 2004 11:15:26 +0100 (CET) Received: from hw0386 ([10.10.2.46]) by notes.sundn.de (Lotus Domino Release 5.0.8) with SMTP id 2004010811152509:15262 ; Thu, 8 Jan 2004 11:15:25 +0100 From: "Carsten Ziegeler" To: "Cocoon-Dev" Subject: [RT] The future of our lifecycle extensions in 2.2 Date: Thu, 8 Jan 2004 11:16:47 +0100 Message-ID: MIME-Version: 1.0 X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-MIMETrack: Itemize by SMTP Server on PBSN1/Systeme und Netzwerke(Release 5.0.8 |June 18, 2001) at 08.01.2004 11:15:25, Serialize by Router on PBSN1/Systeme und Netzwerke(Release 5.0.8 |June 18, 2001) at 08.01.2004 11:15:26, Serialize complete at 08.01.2004 11:15:26 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="iso-8859-1" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N We added in 2.1 several lifecycle extensions to the ones already provided by Avalon: The request lifecycle, the global request lifecycle and parent aware. While it seems to be possible to support the two request lifecycles in 2.2 (with fortress), I currently see no real way to support parent aware (but perhaps there is a way). However, I think we should avoid adding our own lifecycle interfaces whereever possible. So, let's think about them: ParentAware ----------- Has been introduced to have a cleaner implementation for the selectors used in the sitemaps. I think/hope this is not an issue with fortress anymore. So, unless ParentAware is needed somewhere else, we could remove it. The implementation is always tied to a specific container which makes moving to another one more difficult. RequestLifecycle ---------------- I'm really thinking more and more that we simply should drop RequestLifecycle and GlobalRequestLifecycle. Why? In most cases they are not used for the lifecycle of the component but for the lifecycle of the data the component acts on. This was basically the initial use case. In fact, the implementation is a little bit tricky or someone might call it even hacky. The implementation is tied to a specific container. You can achieve the same thing now by using the o.a.c.components.persistence.RequestDataStore which is imho a cleaner solution as it doesn't require to change the container. So with this solution we are container independent. Currently, you look up during the request the RequestLifecycleComponent whereever you need it and get the data from this component. So, this is one lookup per data access. With the RequestDataStore it's basically the same. You lookup the store once (it's thread safe) and look up during the request the data object from the store. So again, this is one lookup per data access. So, I'm in favour of deprecating this in 2.1 now and removing it in 2.2. WDYT? Carsten Carsten Ziegeler Open Source Group, S&N AG http://www.osoco.net/weblogs/rael/