This content has been marked as final.
Show 1 reply
-
1. Re: Injection into the custom interceptor
galder.zamarreno Dec 2, 2009 5:00 AM (in response to skabashnyuk)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 :)