Well, that's the beauty of it.  The class implementation has a setter for an
object of type MethodInterceptor, so you can set that property however you
want.  I chose to use a service, because my interceptor relied upon other
services and I wanted to use BuilderFactory to autowire everything for me.
I wasn't familiar with object providers, so I just stuck with what I knew.
:-)

-----Original Message-----
From: Knut Wannheden [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, September 21, 2004 10:14 AM
To: [email protected]
Subject: Re: Reflection vs. Javassist

Can't this be simplified by using the HiveMind ObjectProviders? Then
you wouldn't need the first service anymore:

<service-point
  id="RollbackOnlyInterceptorFactory"
  interface="org.apache.hivemind.ServiceInterceptorFactory">
  <invoke-factory service-id="hivemind.BuilderFactory">
    <construct
      class="example.interceptor.factory.MethodInterceptorFactory">
      <set-object
        value="instance:example.interceptor.RollbackOnlyInterceptor"
        property="methodInterceptor"/>
    </construct>
  </invoke-factory>
</service-point>

--knut

On Tue, 21 Sep 2004 10:04:19 -0400, James Carman
<[EMAIL PROTECTED]> wrote:
> I can do you one better.  I can include the source code for a
> MethodInterceptorFactory class that I wrote.  Now, this class is dependent
> upon the AOP Alliance (http://sourceforge.net/projects/aopalliance) jar
> file, but it makes creating interceptors EASY!  All you have to do is
> implement the MethodInterceptor interface (from AOP Alliance).  This class
> (or some version similar to it) may make it into the hivemind-lib module
in
> version 1.1, so make sure you switch over to the "official" one once it
> arrives.
> 
> Here's an example of how to use it in a hivemodule.xml file...
> 
> <service-point
>   id="RollbackOnlyInterceptor"
>   interface="org.aopalliance.intercept.MethodInterceptor">
>   <invoke-factory service-id="hivemind.BuilderFactory">
>     <construct class="example.interceptor.RollbackOnlyInterceptor" />
>   </invoke-factory>
> </service-point>
> 
> <service-point
>   id="RollbackOnlyInterceptorFactory"
>   interface="org.apache.hivemind.ServiceInterceptorFactory">
>   <invoke-factory service-id="hivemind.BuilderFactory">
>     <construct
>       class="example.interceptor.factory.MethodInterceptorFactory">
>       <set-service
>         service-id="RollbackOnlyInterceptor"
>         property="methodInterceptor"/>
>     </construct>
>   </invoke-factory>
> </service-point>
> 
> <implementation service-id="ProjectServices">
>   <interceptor service-id="RollbackOnlyInterceptorFactory"/>
> </implementation>
> 
> Here, we declared the actual interceptor itself as a service and told the
> factory which service to call to intercept the methods.
>

---------------------------------------------------------------------
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