It would be nice to scrap the current interceptors guide (which is not
only heavy on Javassist, but completely out of date) and replace it
with a similar example that used JDK proxies and discussed more
powerful techniques.

Any volunteers? I'm maxxed out.

On Wed, 30 Jun 2004 14:07:04 -0400, James Carman
<[EMAIL PROTECTED]> wrote:
> I wasn't suggesting USING CGLIB (but I can see where a new
> CglibServiceInterceptorFactory could be useful for those who are familiar
> with it) or any of the classes in it, but just to borrow some ideas from it.
> We could re-use the InvocationDecorator classes that I presented in my
> JavaWorld article
> (http://www.javaworld.com/javaworld/jw-07-2003/jw-0718-factory.html).  It
> does essentially the same thing.  I REALLY think if you want HiveMind to be
> accepted by the general java developer that this interceptor process needs
> to be simplified.  That's not to say that we get rid of the Javassist stuff,
> but it shouldn't be the only mechanism supported by HiveMind
> "out-of-the-box", nor should it (IMHO) be the only approach demonstrated in
> the documentation.  I would think that a pure Java approach should be given
> in the documentation and put the Javassist/CGLIB like approaches in an
> "Advanced Concepts" section or something.  My $0.02, the pure Java approach
> should be just as much of the core framework as the Javassist one.
> 
> 
> 
> 
> -----Original Message-----
> From: Howard Lewis Ship [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, June 30, 2004 12:10 PM
> To: [email protected]
> Subject: Re: JDK Proxy Example...
> 
> It's all accoding to taste and HiveMind doesn't care. I believe the
> Javassist approach is more performant, but you have to wrap your mind
> around meta- (and meta-meta-) coding.
> 
> Perhaps we should create an "examples" library (hivemind.examples) to
> contain these types of things?  I'd also like to get a "contributions"
> library (hivemind.contrib) to contain useful stuff.  However, there's
> the issue of getting a CLA for any contribution, and the necessity of
> avoiding dependencies on GPL/LGPL code (BSD, MPL, etc. are ok).
> 
> ----- Original Message -----
> From: Pablo Lalloni <[EMAIL PROTECTED]>
> Date: Wed, 30 Jun 2004 12:42:13 -0300
> Subject: RE: JDK Proxy Example...
> To: [email protected]
> 
> I fully agree with James here, I've been writing some intercetpor
> stuff and it has been quite annoying compared with previous work I've
> done using Nanning and/or AspectWerkz...
> 
> I think Nanning's way to do things is very pleasant, maybe we can
> borrow some idioms from there.
> 
> I haven't used CGLIB directly but seems to be in the same direction.
> 
> El mi�, 30-06-2004 a las 11:57, James Carman escribi�:
> 
> Maybe we could include a factory for creating JDK proxy-like interceptors.
> Maybe borrow an idea from CGLIB (MethodInterceptor and MethodProxy for
> example).  That's how I implemented mine.  I got VERY confused when trying
> to write that javassist stuff and I'm quite an adept Java
> developer/architect.  I just don't think it's going to be an easy sell for
> people when they see that they have to write that javassist stuff when
> writing interceptors.  If they could write it in pure Java and let the
> compiler/IDE help them along, it'd be much easier, IMHO.  Right now, there's
> nothing "baked in" that facilitates this.  I'll send you my stuff once I get
> it working.  I'm still trying to get my contribution rules working the way I
> want them, so you can set properties on your MethodInterceptor
> implementation.  Here's kind of what I had in mind so far...
> 
> public interface MethodInterceptor
> {
>    public Object intercept( Method method,
>                             Object[] args,
>                             MethodProxy chain ) throws Throwable;
> }
> 
> public class MethodProxy
> {
>    private final Object target;
> 
>    MethodProxy( Object target )
>    {
>        this.target = target;
>    }
> 
>    public Object invoke( Method method, Object[] args ) throws Throwable
>    {
>        return method.invoke( target, args );
>    }
> }
> 
> I want to be able to create an interceptor by doing...
> 
> interceptor (service-id="MethodInterceptor")
> {
>  method-interceptor (class="mypackage.MyInterceptorImplementation")
>  {
>    set-property (name="foo" value="bar")
>  }
> }
> 
> or something along those lines.  How does this sound?
> 
> -----Original Message-----
> From: Howard Lewis Ship [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 29, 2004 10:55 PM
> To: [email protected]
> Subject: Re: JDK Proxy Example...
> 
> I think some of the unit tests make use of JDK proxy instead of Javassist.
> 
> On Tue, 29 Jun 2004 22:21:03 -0400, James Carman
> <[EMAIL PROTECTED]> wrote:
> >
> > Is there a good example of how to use a JDK proxy (or an
> InvocationHandler)
> > as an interceptor?  I couldn't find anything in the download that I have.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> --
> Howard M. Lewis Ship
> Independent J2EE / Open-Source Java Consultant
> Creator, Jakarta Tapestry
> Creator, Jakarta HiveMind
> http://howardlewisship.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


-- 
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to