>>ad 2.) the logic is really simple: If a bean defines interceptors or
decorators, we create a contextual instance which includes >>this
functionality. We do this by creating a proxy and 1:1 delegating to exactly
the one contextual instance it serves. So for >>each contextual instance
which needs to get intercepted/decorated, we create a single proxy to serve
this purpose

Actually this is more complex. This semantic can not be applied for
RequestScoped instances and you have to write new class(subclass) for each
different scoped beans. Also you have to think about DependentScoped beans.
Current implenetation just uses InterceptorHandler for all kind of beans.

2010/3/24 Mark Struberg <[email protected]>

> hi sven!
>
> yes and no :)
>
> ad 1.) yes, I aim for separating those concerns into 2 different
> MethodHandlers which will get manifested in 2 proxy objects.
>
> ad 2.) the logic is really simple: If a bean defines interceptors or
> decorators, we create a contextual instance which includes this
> functionality. We do this by creating a proxy and 1:1 delegating to exactly
> the one contextual instance it serves. So for each contextual instance which
> needs to get intercepted/decorated, we create a single proxy to serve this
> purpose
>
> For all @NormalScoped beans, I'll create a NormalScopedBeanProxy which only
> serves to resolve the correct contextual instance (with any interception
> already applied) and delegates all method invocations to this underlying
> contextual instance.
>
> So while the InterceptorProxy instance is 1:1 bound to the contextual
> instance, the NormalScopedBeanProxy is 1:1 bound to the injection point. But
> there is no 1:1 relation between those 2 proxies but a n:m. And that is what
> made the old code so complicated to read, because all the resolving needed
> to switch dynamically.
>
> ad 3.) Yes, if the context is a passivating one, then the contextual
> instance (including all it's interceptors/decorators) will get serialized to
> that passivation storage. This is now exactly as it is defined in the spec!
>
> ad 4.) exactly!
>
> LieGrue,
> strub
>
>
> --- Sven Linstaedt <[email protected]> schrieb am Di,
> 23.3.2010:
>
> > Von: Sven Linstaedt <[email protected]>
> > Betreff: Re: attention - danger zone ;)
> > An: [email protected]
> > Datum: Dienstag, 23. März, 2010 23:17 Uhr
> > Hi Mark,
> >
> > just for my personal understanding: The proposed changes
> > imply:
> >
> > 1. Introducing two seperate MethodHandler. One for
> > resolving NormalScope
> > beans to the actual instance. Another one for applying the
> > interception/decoration stack.
> >
> > 2. As only one MethodHandler can be attached to proxy class
> > instances, for
> > dependent scoped beans the interception/decoration handler
> > is attached. For
> > normal scope instances the resolving handler is attached.
> >
> > 3. The interception/decoration MethodHandler including the
> > actual
> > interceptor/decorator instances is part of the bean state
> > (?), so it is
> > serialized to a normal scope along with the bean instance.
> >
> > 4. This implies the scope receives not the concrete bean
> > instance, but
> > rather the proxy class instance with attached
> > MethodHandler, which in turn
> > contains of the bean instance and interceptor/decorator
> > instances?
> >
> >
> > br, Sven
> >
> >
> > 2010/3/23 Mark Struberg <[email protected]>
> >
> > > The current NormalScopedBeanInterceptorHandler is a
> > subclass of the
> > > InterceptorHandler.
> > >
> > > But while the InterceptorHandler is fixed 1:1 to a
> > contextual instance, the
> > > proxy we need to handle the NormalScoped behaviour is
> > different for each and
> > > every injection point. There is currently a lot code
> > to work around this
> > > logical separation, but I consider this to be what it
> > is - a workaround. See
> > > my comments on OWB-329. Maybe I was not clear enough
> > and should elaborate
> > > further?
> > >
> > > txs and LieGrue,
> > > strub
> > >
> > > --- Gurkan Erdogdu <[email protected]>
> > schrieb am Di, 23.3.2010:
> > >
> > > > Von: Gurkan Erdogdu <[email protected]>
> > > > Betreff: Re: attention - danger zone ;)
> > > > An: [email protected]
> > > > Datum: Dienstag, 23. März, 2010 19:51 Uhr
> > > > >>>I'm currently refactoring
> > > > the decorator / interceptor stuff by
> > > > splitting the Interceptor and Decorator
> > MethodHandlers from
> > > > the
> > > > >>>NormalScopedBeanMethodHandler.
> > > > Why? Interceptor/Decorator is handled in the
> > abstract class
> > > > InterceptorHandler not in
> > NormalScopedBeanMethodHandler.
> > > >
> > > > What is the problem with current approach?
> > Currently
> > > > InterceptorHandler performs interceptor/decorator
> > stack for
> > > > bean just one case.
> > > >
> > > > Thanks;
> > > >
> > > > --Gurkan
> > > >
> > > >
> > > >
> > > >
> > > > ________________________________
> > > > From: Mark Struberg <[email protected]>
> > > > To: [email protected]
> > > > Sent: Tue, March 23, 2010 8:09:49 PM
> > > > Subject: attention - danger zone ;)
> > > >
> > > > Hi!
> > > >
> > > > I'm currently refactoring the decorator /
> > interceptor stuff
> > > > by splitting the Interceptor and Decorator
> > MethodHandlers
> > > > from the NormalScopedBeanMethodHandler.
> > > >
> > > > This will also allow implementing those parts as
> > pure
> > > > subclasses later.
> > > >
> > > > I'm back to only 2 broken tests and my real world
> > app is
> > > > running again.
> > > >
> > > > Please do not checkin big changes into SVN in
> > > > webbeans-impl.
> > > >
> > > > txs and LieGrue,
> > > > strub
> > > >
> > > >
> > __________________________________________________
> > > > 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
> > >
> >
>
> __________________________________________________
> 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

Reply via email to