EJB design: Permanent interceptor
Scenario: A JBoss server with several beans deployed. Several client access these beans. Goal: Intercept EVERY call from a client to a bean, and process some global information, before letting the call proceed or terminate. The objects/class intercepting the call to the various bean must be able to communicate with each other, OR be a common object. Problem: What is the best and possible approaches to this? I've thought about adding a new AOP layer, and let each bean ie. add a notation. However, each bean would then have it's own instance fo the aop class, right? I want the aop interceptor to make decisions based on all incoming calls.
Alexander, We are in the process of developing a J2EE Application Server called Carbon AS, http://sourceforge.net/projects/carbonas/ . We are inviting talented developers to be a part of our team. If you like to be a part of our development kindly drop me a mail : carbon_developers at yahoo dot com.
I had similar problem: I had to do something both on server and client side. I have done it with adding interceptors in standardjboss.xml. First in section that starts with: stateless-rmi-invoker jboss:service=invoker,type=jrmp I added class LogAllIn: org.jboss.proxy.ejb.StatelessSessionInterceptor org.jboss.proxy.SecurityInterceptor myclass.LogAllIn and second in section : Standard Stateless SessionBean false stateless-rmi-invoker org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor org.jboss.ejb.plugins.LogInterceptor myclass.LogAllOut org.jboss.ejb.plugins.SecurityInterceptor One has to be carful coding this classes - but it is enough to carefully examine original org.jboss.ejb.plugins.LogInterceptor or org.jboss.ejb.plugins.SecurityInterceptor