Guys this is a great discussion but it needs to move to 

www.jboss.org/forums in the Aspects on JBoss forums

marc f

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:jboss-development-admin@;lists.sourceforge.net] On 
> Behalf Of Bill Burke
> Sent: Tuesday, October 22, 2002 4:02 PM
> To: [EMAIL PROTECTED]
> Subject: RE: [JBoss-dev] JBoss 4.0 Entity Redesign
> 
> 
> 
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:jboss-development-admin@;lists.sourceforge.net]On Behalf Of 
> > David Jencks
> > Sent: Monday, October 21, 2002 4:52 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: [JBoss-dev] JBoss 4.0 Entity Redesign
> >
> >
> > On 2002.10.21 10:50:45 -0400 Bill Burke wrote:
> > > 1. Interceptors do not belong in the JMX layer.  JMX should
> > stay simple.
> > > If
> > > you want interceptors in front of an MBean, you should make the 
> > > MBean an aspect.  Let's gut out the JMX interceptors in favor of 
> > > using Hiram's Aspect stuff when its mature enough.
> >
> > I disagree.  Juha implemented the mbean server based on 
> interceptors 
> > for the same reason most of jboss is based on interceptors.
> >
> > I think there should only be one kind of interceptor stack, 
> used for 
> > mbeans, clients, aspects, ejbs.  In the server, what's on the top 
> > makes it an mbean.  In a client, it can be the proxy.  For aspects, 
> > maybe something else.  But we only need one kind of 
> interceptor (as in 
> > "interface that all interceptors implement" and "how do we 
> invoke each 
> > interceptor in the stack", not as in "they should all be 
> > stateless/ful).
> >
> 
> Yes there should be only one kind of interceptor stack.  This 
> is the Aspect framework (all aspects are, are interceptors anyways).
> 
> JMX worries about deployment, dependencies, management, 
> basically its a lightweight component framework.  Aspects 
> provide the interceptors.  If you implement an MBean as an 
> Aspect you can use the power of the Aspect framework.  
> Complete separation.  As you said, there only needs to be one 
> kind of interceptor stack.  This is the Aspect Framework.
> 
> So both POJOs and MBeans can have interceptors via the Aspect 
> Framework. Unified.
> 
> 
> > For ejbs, this will translate into a slightly odd kind of 
> mbean, since 
> > there won't exactly be one particular object at the end of 
> the stack, 
> > but rather the instance will get selected by one of the 
> interceptors.
> >
> 
> Its not odd at all.  The object at the end of the stack is 
> the Interceptor that invokes on the actual EJB.
> 
> 
> Bill
> 
> 
> >
> > >
> > > 2. I really don't like this idea of storing state in some 
> detached 
> > > hashmap somewhere.  You're getting back to functional programing 
> > > with structures and
> > > functions.  I agree with Marc, hashmap.getvalue is just 
> plain unreadable
> > > as
> > > well.
> > >
> > > Hiram, example of state?
> > > An example is the "Nuke" pattern for replicated SFSB.  
> The state of 
> > > the SFSB stays with the client in the vent of a total 
> destruction of 
> > > the server. The
> > > client provides the state in the event of a failover.
> > >
> > > Another is IDEMPOTENT methods.  Idenpotent methods return 
> the same 
> > > value no matter what.  An interceptor knowing this could 
> store the 
> > > state of the returned method call and avoid a remote invocation.
> > >
> > > The above are examples of state per instance.  Now I believe you 
> > > would have singleton interceptors that needed to maintain 
> state.  An 
> > > example is a client side interceptor that does clustering, 
> > > loadbalancing and
> > failover.
> > > It needs to maintain a list of available nodes.
> >
> >
> > There are kind of 3 kinds of state:
> >
> > Configuration of interceptor instances of the same class, 
> conceptually 
> > from some kind of interceptor factory.  This should 
> definitely be kept 
> > in the interceptor instance.  Related to this is "which 
> interceptors 
> > are in the stack".  Both of these are currently recorded in 
> jboss.xml 
> > as a config-name
> > for ejb stacks.
> >
> > State of interceptor instances depending not on stack name but on 
> > identity the "top of stack object".  This includes, for ejbs, stuff 
> > like local jndi environment, security proxy instances, tx-method 
> > associations.  I think this is what we are debating.  I 
> think it will 
> > lead to significantly simpler stack management and clearer thinking 
> > about interceptors to store this in a hashmap at the top of 
> the stack.  
> > If this state info is stored in the interceptors, you need 
> an instance 
> > of the interceptor for each "top of stack object".  If it 
> is store in 
> > the "top of stack object", you only need one instance of each 
> > interceptor for each stack definition.
> >
> > Currently, most interceptors are stateless in this way, 
> although many 
> > already are stateless because they store the state info in 
> the "top of 
> > stack object".  I'm proposing that we formalize this and make the 
> > remaining interceptors (such as security proxy) use this model as 
> > well.
> >
> > Thirdly, there is state from the method invocation.  I 
> think everyone 
> > agrees that this state should stay in the method invocation, and we 
> > should not create and configure a stack for each invocation.
> >
> > david jencks
> >
> >
> > >
> > > Bill
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: [EMAIL PROTECTED]
> > > > 
> [mailto:jboss-development-admin@;lists.sourceforge.net]On Behalf Of
> > > Hiram
> > > > Chirino
> > > > Sent: Sunday, October 20, 2002 11:25 PM
> > > > To: [EMAIL PROTECTED]
> > > > Subject: RE: [JBoss-dev] JBoss 4.0 Entity Redesign
> > > >
> > > >
> > > > > > I think for simplicity we should have only stateless 
> > > > > > interceptors, any interceptor can store per-stack 
> state in a 
> > > > > > the stack top in a hashmap.
> > > > > >
> > > > > > I rewrote the mbean interceptors this way, it works 
> fine, but 
> > > > > > then juha committed a completely different reimplementation.
> > > > >
> > > > > David there is no reason to enforce one. We need both coding 
> > > > > styles
> > > it
> > > > > is easier.  I don't think it is easier to always code
> > > > >
> > > > > invocation.getValue("COMMIT-OPTION");
> > > > >
> > > > > as opposed to
> > > > >
> > > > > commitOption
> > > > >
> > > > > when the commit option is configured at deployment.  
> Clearly we 
> > > > > can achieve the same result but there is we shouldn't enforce 
> > > > > one.
> > > > >
> > > >
> > > > When you guys talk about statefullness..  I get a little lost.  
> > > > Marc,
> > > is
> > > > that "commitOption" statefull:
> > > >
> > > > (1) per proxy interceptor instance.  1 interceptor instance is 
> > > > created
> > > for
> > > > each DP.
> > > > (2) per stack interceptor instance.  1 interceptor instance is 
> > > > created for a stack (shared by DP).
> > > >
> > > > Right now the aspect stuff does (2), but you can do the 
> > > > invocation.attachments.get("COMMIT-OPTION"); to get a 
> value that 
> > > > was attached to the DP.
> > > >
> > > > Regards,
> > > > Hiram
> > > >
> > > >
> > > >
> > > > -------------------------------------------------------
> > > > This sf.net email is sponsored by:
> > > > Access Your PC Securely with GoToMyPC. Try Free Now 
> > > > https://www.gotomypc.com/s/OSND/DD
> > > > _______________________________________________
> > > > Jboss-development mailing list 
> > > > [EMAIL PROTECTED]
> > > > https://lists.sourceforge.net/lists/listinfo/jboss-development
> > >
> > >
> > >
> > > -------------------------------------------------------
> > > This sf.net email is sponsored by:ThinkGeek
> > > Welcome to geek heaven.
> > > http://thinkgeek.com/sf 
> > > _______________________________________________
> > > Jboss-development mailing list 
> > > [EMAIL PROTECTED]
> > > https://lists.sourceforge.net/lists/listinfo/jboss-development
> > >
> > >
> >
> >
> > -------------------------------------------------------
> > This sf.net emial is sponsored by: Influence the future
> > of  Java(TM) technology. Join the Java Community
> > Process(SM) (JCP(SM)) program now. 
> > http://ad.doubleclick.net/clk;4699841;7576298;k?http://www.sun.com
> /javavote
> _______________________________________________
> Jboss-development mailing list [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development
> 
> 
> 
> -------------------------------------------------------
> This sf.net emial is sponsored by: Influence the future 
> of Java(TM) technology. Join the Java Community 
> Process(SM) (JCP(SM)) program now. 
> http://ad.doubleclick.net/clk;4699841;7576301;v?http://www.sun
.com/javavote
_______________________________________________
Jboss-development mailing list [EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



-------------------------------------------------------
This sf.net emial is sponsored by: Influence the future 
of Java(TM) technology. Join the Java Community 
Process(SM) (JCP(SM)) program now. 
http://ad.doubleclick.net/clk;4699841;7576301;v?http://www.sun.com/javavote
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to