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]

Reply via email to