hi mark,

that sounds reasonable.

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces


2010/7/23 Mark Struberg <[email protected]>

> Hi Gerhard!
>
> I thought about this, but since we are only caching Contextual References
> (our
> proxies!), this should not make any problems.
> Because even if the Contextual Instance behind changes (e.g. a @ViewScoped
> bean
> points to another instance after the forward), the proxy will simply pickup
> the
> new instance.
>
> I also thought about returning the Contextual Instance directly, but there
> are 2
> arguments against this
>
> a) the one you mentioned in your mail. We would need to detect any
> 'instance
> changes' on a page. or cleanup the ELContextStore after a page/tree got
> rendered.
>
> b) if you use this bean in a EL method call e.g. #{a.setUser(user)} and a
> stores
> the User internally, this might be problematic
>
> I'm thinking about introducing a mechanism to better support request scoped
> (or
> 'bigger' scoped) beans via a RequestScopedBeanProxyHandler (like we already
> do
> for @ApplicationScoped beans). + a property which allows adding of own 3rd
> party
> scopes.
>
> But I need to profile this first, to see if it's really worth it.
>
> LieGrue,
> strub
>
>
>
> ----- Original Message ----
> > From: Gerhard Petracek <[email protected]>
> > To: [email protected]
> > Sent: Fri, July 23, 2010 1:10:22 PM
> > Subject: Re: ELContextStore Question
> >
> > hi mark,
> >
> > if you cache normal scope beans as well, please just cache the  standard
> > scopes.
> > in special cases a cache for all normal scoped beans  would cause
> > side-effects.
> >
> > e.g. in case of an immediate destruction or  reset of conversations
> provided
> > by myfaces codi.
> > the same might be true if  you end the session  manually.
> >
> > regards,
> > gerhard
> >
> > http://www.irian.at
> >
> > Your JSF  powerhouse -
> > JSF Consulting, Development and
> > Courses in English and  German
> >
> > Professional Support for Apache MyFaces
> >
> >
> > 2010/7/23  Gerhard Petracek <[email protected]>
> >
> > >  hi mark,
> > >
> > > yes - i agree with you!
> > >
> > > ok - sounds  great!
> > > i also planned to optimize it today.
> > > so i'll just have a  look at your improvements.
> > >
> > > regards,
> > >  gerhard
> > >
> > > http://www.irian.at
> > >
> > > Your JSF powerhouse -
> > > JSF  Consulting, Development and
> > > Courses in English and  German
> > >
> > > Professional Support for Apache  MyFaces
> > >
> > >
> > > 2010/7/23 Mark Struberg <[email protected]>
> > >
> > >>  Yes, what did confuse me first was the fact that half of the
> > >>  bean.getScope().equals(Dependent.class) was coded in the ELResolver
>  (the
> > >> 'get'
> > >> part), and half of it in ELContextStore (the  'put' part).
> > >>
> > >>
> > >> So the logic per se was just  fine. I cleaned it up a bit, added
> > >> documentation
> > >> and  also added a cache for name resolvements. This speeds up a
> typical
> JSF
> > >> application with lots of EL about 30% :)
> > >>
> > >>  I hope it's a bit easier to read now. Please let me know if I forgot
>  /
> > >> misinterpreted something.
> > >>
> > >>  LieGrue,
> > >> strub
> > >>
> > >>
> > >>
> > >> -----  Original Message ----
> > >> > From: Gerhard Petracek <[email protected]>
> > >>  > To: [email protected]
> > >>  > Sent: Fri, July 23, 2010 10:43:48 AM
> > >> > Subject: Re:  ELContextStore Question
> > >> >
> > >> > hi mark,
> > >>  >
> > >> > as i see - the ELContextStore is just for dependent   beans.
> > >> > @NormalScoped beans aren't affected (see
> ELContextStore#addDependent).
> > >> >
> > >> >  regards,
> > >> > gerhard
> > >> >
> > >> > http://www.irian.at
> > >>  >
> > >> > Your  JSF powerhouse -
> > >> > JSF  Consulting, Development and
> > >> > Courses in English and   German
> > >> >
> > >> > Professional Support for Apache  MyFaces
> > >> >
> > >> >
> > >> >
> > >> >  2010/7/23  Mark Struberg <[email protected]>
> > >>  >
> > >> > >  Hi!
> > >> > >
> > >> > >  I don't really understand the ELContextStore which is used  in
>  the
> > >> > > WebBeansELResolver.
> > >> > >
> > >>  > > It seems to cache all beans  which are invoked via EL. So far so
>  good
> > >> (but
> > >> > > the
> > >> > >  algorithm  needs improvement).
> > >> > > But what I absolutely  not understand is why it  releases all
> those
> > >> beans  at
> > >> > > the
> > >> > > end of each request. This  leads  to invoking @PreDestroy to those
> > >> beans
> > >> >  > after
> > >> > > every EL  encapsulation
> > >> >  >
> > >> > >
> > >> > > My first bet is that this was  an attempt  to resolve 6.4.3.
> Dependent
> > >> > > pseudo-scope  and Unified EL,  isn't?
> > >> > >
> > >> > > This  defines that in a complex EL statement, multiple  references
> to
> > >>  the
> > >> > > same
> > >> > > @Dependent scoped bean must  always get  the same Contextual
> instance
> > >> of this
> > >>  > > very
> > >> > > bean. And for those  @Dependent scoped  beans it is also ok to
> destroy
> > >> them,
> > >> > > because  they  don't 'hang' on some NormalScoped bean.
> > >> >  >
> > >> > > But we must not treat  @NormalScoped beans this  very way!
> > >> > >
> > >> > > wdyt?
> > >> >  >
> > >> > >  LieGrue,
> > >> > >  strub
> > >> > >
> > >> > >
> > >> >  >
> > >> > >
> > >> > >
> > >>  >
> > >>
> > >>
> > >>
> > >>
> > >
> >
>
>
>
>

Reply via email to