Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 56203 invoked from network); 22 Oct 2003 15:02:35 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 22 Oct 2003 15:02:35 -0000 Received: (qmail 83582 invoked by uid 500); 22 Oct 2003 15:02:26 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 83554 invoked by uid 500); 22 Oct 2003 15:02:25 -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 83541 invoked from network); 22 Oct 2003 15:02:25 -0000 Received: from unknown (HELO mail.s-und-n.de) (212.8.217.2) by daedalus.apache.org with SMTP; 22 Oct 2003 15:02:25 -0000 Received: from notes.sundn.de (ntsrv5.sundn.de [10.10.2.10]) by mail.s-und-n.de (postfix) with ESMTP id 45FFBD3ED8 for ; Wed, 22 Oct 2003 17:02:27 +0200 (CEST) Received: from hw0386 ([10.10.2.46]) by notes.sundn.de (Lotus Domino Release 5.0.8) with SMTP id 2003102217022669:56842 ; Wed, 22 Oct 2003 17:02:26 +0200 From: "Carsten Ziegeler" To: Subject: RE: RequestLifecycle components Date: Wed, 22 Oct 2003 17:05:13 +0200 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) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 In-Reply-To: <84F0A43A4248CE45B5C0E20F4C40779C6008EF@naomi.webworks.nl> Importance: Normal X-MIMETrack: Itemize by SMTP Server on PBSN1/Systeme und Netzwerke(Release 5.0.8 |June 18, 2001) at 22.10.2003 17:02:26, Serialize by Router on PBSN1/Systeme und Netzwerke(Release 5.0.8 |June 18, 2001) at 22.10.2003 17:02:27 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable 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 Unico Hommes wrote: > > Carsten Ziegeler wrote: > > > > Berin Loritsch wrote: > > > > > > I'm running into an issue here with RequestLifecycle components. > > > I want to > > > write the handler and such, and we can assume one handler to one > > > component definition (configuration, etc.). Right now the helper > > > classes assume we have access to a Role. This is not the case. > > > > > > I believe we can simplify things a little, but we cannot assume we > > > have acess to the role. I will let you know when I am done > > with this > > > issue, but if someone has any hints, help to offer, etc. > > let me know. > > > > > If you need help, just let me know. > > > > 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. > > You can achieve the same thing now by using the > > o.a.c.components.persistence.RequestDataStore which is imho a > > cleaner solution. > > > > Now, the advantage of the RequestLifecycleComponent is performance. > > If you have several places during a request where this > > component is used, only one instance of a RLC is used, which > > means the data it acts on is only fetched once as well. > > > > If you use a Poolable component with the RequestDataStore, > > this component is retrieved several times and several times > > the data is fetched from the store. And exactly this last > > point, fetching the data from the request is a little bit > > more costly. Hmm. > > > > What about transactional components? I have a situation where I > use a GRL to wrap a session fa=E7ade type object and rely on > recycle() being called at the end of the request in order to > commit/rollback work done. How would I achieve this without GRL lifecycle? > Good question! Actually, I don't know and I'm wondering if it is a good idea to rely on this behaviour of the component container. Hmm, don't know. Ok, anyway, we could keep the GRL which can be modelled in fortress using a thread component (one component per thread), but skip the RLC which caused a lot of trouble to get it working and which might still cause us more trouble than it's worth. Carsten