[jboss-user] [JBoss Cache Users] - Re: Injection into the custom interceptor

galder.zamarreno@jboss.com do-not-reply at jboss.com
Wed Dec 2 05:00:51 EST 2009


That looks pretty hacky. You shouldn't be fiddling with the component registry.

Looks to me the following would be much simpler to do:
public class MyInterceptor extends CommandInterceptor {
  |    private final InterceptorParameter ip;
  |    public MyInterceptor(InterceptorParameter ip) {
  |       this.ip = ip;
  |    }
  | }
And then do:
InterceptorParameter ip = new InterceptorParameter();
  | MyInterceptor mi = new MyInterceptor(ip);
  | ((CacheSPI<Serializable, Object>)cache).addInterceptor(mi, org.jboss.cache.interceptors.CacheStoreInterceptor.class);
Bottom line, if your interceptor does not take any parameters, use the XML way to configure the interecetor. Otherwise, use the programatic way of shown in this comment. 

Another benefit of the approach I suggested is that InterceptorParameter in MyInterceptor becomes final and so, baring other params or exposure of InterceptorParameter, MyInterceptor becomes immutable, which is a good programming practice.

You can find examples like this and more in the JBoss Cache testsuite :)

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4268455#4268455

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4268455



More information about the jboss-user mailing list