lol oki, so now we have two impls of that :D
I'll wait with my commit, looking forward to check your version ;)

LieGrue,
strub

--- Gurkan Erdogdu <[email protected]> schrieb am Mi, 17.3.2010:

> Von: Gurkan Erdogdu <[email protected]>
> Betreff: Re: [jira] Created: (OWB-329) Interceptor instances get created each 
>  time the interceptor gets called
> An: [email protected]
> Datum: Mittwoch, 17. März, 2010 16:48 Uhr
> I have implemented it. I will commit
> this afternoon :)
> 
> 
> Thanks;
> 
> --Gurkan
> 
> 
> 
> 
> ________________________________
> From: Mark Struberg <[email protected]>
> To: [email protected]
> Sent: Wed, March 17, 2010 5:37:33 PM
> Subject: Re: [jira] Created: (OWB-329) Interceptor
> instances get created each  time the interceptor gets
> called
> 
> Hi!
> 
> I now looked at it the last few hours, and I have a pretty
> good gut feeling that we could split our problem in 2
> working tasks.
> 
> 1st task is to separate the proxies for the NormalScoped
> beans from the proxies we need for implementing interceptor
> and decorator logic.
> 
> 2nd task would be to fix the interceptor and decorators
> itself.
> 
> I will now try to do the 1st part by cutting the logic from
> the InterceptorHandler 1:1 and apply it as separate proxy to
> form the effective contextual instance to store inside the
> Context. Any NormalScopedBeanProxy will get applied on top
> of it and has a completely different logic on it's own.
> 
> Evaluating the interceptor/decorator stack will only be
> needed once per contextual instance (could even get further
> tuned to once per Bean<T> later) and stored in the
> InterceptorDecoratorMethodHandler. I will not change the
> logic of the interceptor handling currently, but will only
> move it into this own proxy!
> 
> LieGrue,
> strub
> 
> --- Gurkan Erdogdu <[email protected]>
> schrieb am Mi, 17.3.2010:
> 
> > Von: Gurkan Erdogdu <[email protected]>
> > Betreff: Re: [jira] Created: (OWB-329) Interceptor
> instances get created each  time the interceptor gets
> called
> > An: [email protected]
> > Datum: Mittwoch, 17. März, 2010 14:27 Uhr
> > I will dig into details today.
> > Discuss it on the irc. But it does not so
> > much hard to do without breaking something :)
> > 
> > Thanks;
> > 
> > 2010/3/17 Mark Struberg <[email protected]>
> > 
> > > Another idea:
> > >
> > > what if we split the
> Interceptor/DecoratorHandler
> > handling from the
> > > NormalScopedBeanInterceptor?
> > >
> > > My proposal:
> > >
> > > 1.) The NormalScopedBeanInterceptorHandler should
> not
> > derive from the
> > > InterceptorHandler anymore, but should form the
> parent
> > of an own tree (with
> > > ApplicationScopedBeanHandler,
> > SessionScopedBeanHandler, ... with caching
> > > functionality)
> > >
> > > 2.) The
> > Bean<T>#create(CreationalContext<T>)
> should
> > check whether a
> > > decorator or interceptor should get applied and
> then
> > return not only the
> > > pure contextual instance, but proxied with the
> filled
> > InterceptorHandler.
> > >
> > > We need to think a bit further about how to
> stack
> > interceptors, and also
> > > about methodfilters.
> > >
> > > wdyt?
> > >
> > > LieGrue,
> > > strub
> > >
> > > --- Mark Struberg <[email protected]>
> > schrieb am Mi, 17.3.2010:
> > >
> > > > Von: Mark Struberg <[email protected]>
> > > > Betreff: Re: [jira] Created: (OWB-329)
> > Interceptor instances get created
> > > each  time the interceptor gets called
> > > > An: [email protected]
> > > > Datum: Mittwoch, 17. März, 2010 10:44 Uhr
> > > > That comes pretty close to what I
> > > > thought off.
> > > >
> > > > There are imo 2 ways to solve this
> > > >
> > > > a) use the 'old' CreationalContext as you
> > proposed
> > > >
> > > > b) always create the full interceptor and
> > decorator stack
> > > > upfront when the contextual Instance gets
> > created.
> > > >
> > > > I'm not sure how we could implement a)
> because
> > there is no
> > > > method in
> javax.enterprise.context.spi.Context
> > for getting
> > > > the original CreationalContext of a
> contextual
> > instance
> > > > later.
> > > >
> > > > LieGrue,
> > > > strub
> > > >
> > > >
> > > > --- Gurkan Erdogdu <[email protected]>
> > > > schrieb am Mi, 17.3.2010:
> > > >
> > > > > Von: Gurkan Erdogdu <[email protected]>
> > > > > Betreff: Re: [jira] Created: (OWB-329)
> > Interceptor
> > > > instances get created each  time the
> > interceptor gets
> > > > called
> > > > > An: [email protected]
> > > > > Datum: Mittwoch, 17. März, 2010 09:35
> Uhr
> > > > > One more thing;
> > > > > -----------------------
> > > > >
> > > > > Currently in our
> > NormalScopedBeansInterceptorHandler,
> > > > we
> > > > > use the given
> > > > > "CreationalContext" to the
> constructor.
> > Seems that
> > > > this is
> > > > > not correct. If
> > > > > we have a save instance of bean in
> > AbstractContext, we
> > > > have
> > > > > to use the save
> > > > > CreationalContext instance in the
> > AbstractContext.
> > > > >
> > > > > Why?
> > > > > -----------------
> > > > >
> > > > > In a freshly created instance, we save
> the
> > dependent
> > > > > objects of the bean in
> > > > > the CreaitonalContext and save it into
> our
> > context
> > > > > instance. In later
> > > > > operations, if we use given
> > CreationalContext instead
> > > > of
> > > > > using saved
> > > > > version, we loose the dependent
> instances of
> > bean.
> > > > > Therefore below logic
> > > > > does not work as expected.
> > > > >
> > > > > For example;
> > > > > -----------------------
> > > > > We have an @ApplicatioScoped bean and
> client
> > calls
> > > > >
> manager.getReference(bean,type,creational)
> > and we
> > > > return a
> > > > > proxy. Client
> > > > > calls method on a proxy object, then
> we
> > create bean
> > > > > instance and all of its
> > > > > interceptor instances. We put all of
> its
> > interceptor
> > > > > instances into
> > > > > CreationalContextImpl.addDependent and
> mark
> > them as
> > > > > interceptor. Now, we
> > > > > have a "bean instance" and "its
> creational
> > context"
> > > > in
> > > > > AbstractContext.
> > > > >
> > > > > Client again calls
> > manager.getReference(bean,type,new
> > > > > creational). If we do
> > > > > not use saved creational context,
> whenever
> > we want to
> > > > get
> > > > > interceptors of
> > > > > the bean, it returns an empty set
> because
> > "new
> > > > creational"
> > > > > does not contain
> > > > > it. And container creates a new
> interceptor
> > instance
> > > > again
> > > > > that we do not
> > > > > want!
> > > > >
> > > > > But those are not applied for
> > DependentScoped beans
> > > > because
> > > > > they are created
> > > > > an each time client calls
> > manager.getReference() and
> > > > it
> > > > > creates a new
> > > > > instance of interceptor.
> > > > >
> > > > > Thanks;
> > > > >
> > > > > --Gurkan
> > > > >
> > > > > 2010/3/17 Gurkan Erdogdu <[email protected]>
> > > > >
> > > > > > Hello;
> > > > > >
> > > > > > I was thinking about to update
> our
> > interceptor
> > > > logic
> > > > > but not found time.
> > > > > > Indeed, our interceptor logic is
> not
> > correct.
> > > > > Currently, we setup
> > > > > > InterceptorStack for bean but
> this
> > interceptor
> > > > stack
> > > > > is shared by all
> > > > > > instances of this bean, this is
> not
> > correct. For
> > > > > example, @RequestScoped
> > > > > > beans may override each of thier
> > interceptor
> > > > > instances, because
> > > > > > InterceptorData uses interceptor
> > instance and
> > > > > InterceptorData is shared by
> > > > > > all beans (same InterceptorStack
> that
> > contains
> > > > > InterceptorData)
> > > > > >
> > > > > > We have to separate interceptor
> > instance from
> > > > > InterceptorStack(contains
> > > > > > InterceptorData). So, mapping
> should
> > be
> > > > > > - Bean --> InterceptorStack
> (also
> > remove
> > > > "Object
> > > > > interceptorInstance" from
> > > > > > InterceptorData)
> > > > > > - Bean Instance -->
> Interceptor
> > Instance
> > > > > >
> > > > > > We can use CreationalContextImpl
> to
> > save bean
> > > > > interceptor instances. We can
> > > > > > add another field into
> > DependentCreationalContext
> > > > to
> > > > > mark dependent instance
> > > > > > as "interceptor". After that we
> can
> > get
> > > > interceptor
> > > > > instance from there
> > > > > > whenever a intercepted method is
> > called.
> > > > > >
> > > > > > We have to do similar things for
> > decorator
> > > > instances.
> > > > > Currently, we call
> > > > > >
> > WebBeansDecoratorConfig#getDecoratorStack for
> > > > every
> > > > > invocation and it
> > > > > > creates a new instance of
> decorators.
> > > > > >
> > > > > > Thanks;
> > > > > >
> > > > > > --Gurkan
> > > > > >
> > > > > >
> > > > > > 2010/3/17 Mark Struberg (JIRA)
> <[email protected]>
> > > > > >
> > > > > > Interceptor instances get created
> each
> > time the
> > > > > interceptor gets called
> > > > > >>
> > > > >
> > > >
> >
> -----------------------------------------------------------------------
> > > > > >>
> > > > > >>
> > > > >    Key: OWB-329
> > > > > >>
> > > > >    URL: https://issues.apache.org/jira/browse/OWB-329
> > > > > >>
> > > > >    Project: OpenWebBeans
> > > > > >>     
>    
> > Issue Type: Bug
> > > > > >>     
>    
> > Components:
> > > > > Interceptor and Decorators
> > > > > >>    Affects Versions:
> M4
> > > > > >>     
>    
> >   Reporter:
> > > > > Mark Struberg
> > > > > >>     
>    
> >   Assignee:
> > > > > Mark Struberg
> > > > > >>     
>    
> >   Priority:
> > > > > Critical
> > > > > >>
> > > > >    Fix For: 1.0.0
> > > > > >>
> > > > > >>
> > > > > >> Interceptors are defined as
> being
> > @Dependent
> > > > > scoped. Thus, for one
> > > > > >> @ApplicationScoped contextual
> > instance, only
> > > > one
> > > > > interceptor instance of a
> > > > > >> certain type must exist. But
> we
> > currently
> > > > create a
> > > > > new instance for each and
> > > > > >> every method invocation which
> is
> > > > intercepted.
> > > > > >>
> > > > > >> This is not only terribly
> slow, but
> > also
> > > > doesn't
> > > > > work as expected from a
> > > > > >> portable perspective.
> > > > > >>
> > > > > >> --
> > > > > >> This message is automatically
> > generated by
> > > > JIRA.
> > > > > >> -
> > > > > >> You can reply to this email to
> add
> > a comment
> > > > to
> > > > > the issue online.
> > > > > >>
> > > > > >>
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Gurkan Erdogdu
> > > > > > http://gurkanerdogdu.blogspot.com
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Gurkan Erdogdu
> > > > > http://gurkanerdogdu.blogspot.com
> > > > >
> > > >
> > > >
> > __________________________________________________
> > > > Do You Yahoo!?
> > > > Sie sind Spam leid? Yahoo! Mail verfügt
> über
> > einen
> > > > herausragenden Schutz gegen Massenmails.
> > > > http://mail.yahoo.com
> > > >
> > >
> > >
> __________________________________________________
> > > Do You Yahoo!?
> > > Sie sind Spam leid? Yahoo! Mail verfügt über
> einen
> > herausragenden Schutz
> > > gegen Massenmails.
> > > http://mail.yahoo.com
> > >
> > 
> > 
> > 
> > -- 
> > Gurkan Erdogdu
> > http://gurkanerdogdu.blogspot.com
> > 
> 
> __________________________________________________
> Do You Yahoo!?
> Sie sind Spam leid? Yahoo! Mail verfügt über einen
> herausragenden Schutz gegen Massenmails. 
> http://mail.yahoo.com
> 
> 
> 
>      
> ___________________________________________________________________
> Yahoo! Türkiye açıldı!  http://yahoo.com.tr
> İnternet üzerindeki en iyi içeriği Yahoo! Türkiye
> sizlere sunuyor!

__________________________________________________
Do You Yahoo!?
Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen 
Massenmails. 
http://mail.yahoo.com

Reply via email to