I have a question. Whenever we have EJB jars
<ejb-jar
xmlns = "http://java.sun.com/xml/ns/javaee"
version = "3.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
>
<interceptors>
<interceptor>
<interceptor-class>net.bull.javamelody.MonitoringInterceptor</interceptor-class>
</interceptor>
</interceptors>
<assembly-descriptor>
<interceptor-binding>
<ejb-name>*</ejb-name>
<interceptor-class>net.bull.javamelody.MonitoringInterceptor</interceptor-class>
</interceptor-binding>
</assembly-descriptor>
</ejb-jar>
Now my MonitoringInterceptor Intercept all EJBs. Here comes a question: can I do something similar with CDI Interceptors?
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
<interceptors>
<class>net.bull.javamelody.MonitoringInterceptor</class>
</interceptors>
</beans>
I would like to have MonitoringInterceptor set by default to all CDI Beans injected to application. How can I acquire that?
I don't think there is a declarative way to do it - with good reason as "all beans" is a rather vague concept in the world of CDI. Beans come and go even after deployment time. This article describes a way to do it programmatically for all beans which are registered with the manager, which will possibly net you your desired result: byteslounge.com/tutorials/…