Author: rmannibucau Date: Thu Jan 24 20:29:54 2013 New Revision: 1438163 URL: http://svn.apache.org/viewvc?rev=1438163&view=rev Log: TOMEE-750 @Context for cdi interceptors when added on ejb
Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java?rev=1438163&r1=1438162&r2=1438163&view=diff ============================================================================== --- tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java (original) +++ tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java Thu Jan 24 20:29:54 2013 @@ -20,9 +20,10 @@ import org.apache.cxf.jaxrs.JAXRSInvoker import org.apache.cxf.message.Exchange; import org.apache.openejb.BeanContext; import org.apache.openejb.InvalidateReferenceException; +import org.apache.openejb.cdi.CdiInterceptor; import org.apache.openejb.core.interceptor.InterceptorData; +import org.apache.openejb.monitoring.StatsInterceptor; import org.apache.openejb.rest.ThreadLocalContextManager; -import org.apache.openejb.server.rest.EJBRestServiceInfo; import org.apache.openejb.util.proxy.BeanContextInvocationHandler; import org.apache.openejb.util.proxy.LocalBeanProxyFactory; import org.apache.openejb.util.proxy.ProxyManager; @@ -31,6 +32,7 @@ import java.lang.reflect.InvocationHandl import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.rmi.RemoteException; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -44,11 +46,17 @@ public class OpenEJBEJBInvoker extends J for (BeanContext context : restEjbs) { final Collection<Class<?>> classes = new HashSet<Class<?>>(); Contexts.findContextFields(context.getBeanClass(), classes); - for (InterceptorData id : context.getInterceptorData()) { - Contexts.findContextFields(id.getInterceptorClass(), classes); - } - for (InterceptorData id : context.getCallbackInterceptors()) { - Contexts.findContextFields(id.getInterceptorClass(), classes); + for (Collection<InterceptorData> list : + Arrays.asList( + context.getInterceptorData(), + context.getInstanceScopedInterceptors(), + context.getCallbackInterceptors())) { + for (InterceptorData id : list) { + final Class<?> interceptorClass = id.getInterceptorClass(); + if (!StatsInterceptor.class.equals(interceptorClass) && !CdiInterceptor.class.equals(interceptorClass)) { + Contexts.findContextFields(interceptorClass, classes); + } + } } contextTypes.put(context.getBeanClass(), classes); }