>>>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.
I am not the same here! I do not think that old code is so complex! It creates interceptor/decorator stack once in the first method call and saves it into creational context for later use. This must not be the sole reason to change all logic completely. --Gurkan 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
