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