You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/03/13 13:45:36 UTC

svn commit: r517670 - /incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java

Author: dblevins
Date: Tue Mar 13 05:45:35 2007
New Revision: 517670

URL: http://svn.apache.org/viewvc?view=rev&rev=517670
Log:
OPENEJB-249: javax.interceptor.ExcludeClassInterceptors
OPENEJB-250: javax.interceptor.ExcludeDefaultInterceptors

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?view=diff&rev=517670&r1=517669&r2=517670
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Tue Mar 13 05:45:35 2007
@@ -51,6 +51,8 @@
 import javax.persistence.PersistenceUnit;
 import javax.persistence.PersistenceUnits;
 import javax.interceptor.Interceptors;
+import javax.interceptor.ExcludeDefaultInterceptors;
+import javax.interceptor.ExcludeClassInterceptors;
 import javax.xml.ws.WebServiceRef;
 import javax.xml.ws.WebServiceRefs;
 import java.io.File;
@@ -309,14 +311,59 @@
                         }
                     }
 
-                    InterceptorBinding binding = new InterceptorBinding();
+                    InterceptorBinding binding = assemblyDescriptor.addInterceptorBinding(new InterceptorBinding());
                     binding.setEjbName(bean.getEjbName());
-                    InterceptorOrder order = binding.setInterceptorOrder(new InterceptorOrder());
+
                     for (Class interceptor : interceptors.value()) {
-                        order.addInterceptorClass(interceptor.getName());
+                        binding.getInterceptorClass().add(interceptor.getName());
                     }
                 }
 
+                for (Method method : classFinder.findAnnotatedMethods(Interceptors.class)) {
+                    interceptors = method.getAnnotation(Interceptors.class);
+                    if (interceptors != null){
+                        EjbJar ejbJar = ejbModule.getEjbJar();
+                        for (Class interceptor : interceptors.value()) {
+                            if (ejbJar.getInterceptor(interceptor.getName()) == null){
+                                ejbJar.addInterceptor(new Interceptor(interceptor.getName()));
+                            }
+                        }
+
+                        InterceptorBinding binding = assemblyDescriptor.addInterceptorBinding(new InterceptorBinding());
+                        binding.setEjbName(bean.getEjbName());
+
+                        for (Class interceptor : interceptors.value()) {
+                            binding.getInterceptorClass().add(interceptor.getName());
+                        }
+
+                        binding.setMethod(new NamedMethod(method));
+                    }
+                }
+
+                ExcludeDefaultInterceptors excludeDefaultInterceptors = clazz.getAnnotation(ExcludeDefaultInterceptors.class);
+                if (excludeDefaultInterceptors != null){
+                    InterceptorBinding binding = assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(bean));
+                    binding.setExcludeDefaultInterceptors(true);
+                }
+
+                for (Method method : classFinder.findAnnotatedMethods(ExcludeDefaultInterceptors.class)) {
+                    InterceptorBinding binding = assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(bean));
+                    binding.setExcludeDefaultInterceptors(true);
+                    binding.setMethod(new NamedMethod(method));
+                }
+
+                ExcludeClassInterceptors excludeClassInterceptors = clazz.getAnnotation(ExcludeClassInterceptors.class);
+                if (excludeClassInterceptors != null){
+                    InterceptorBinding binding = assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(bean));
+                    binding.setExcludeClassInterceptors(true);
+                }
+
+                for (Method method : classFinder.findAnnotatedMethods(ExcludeClassInterceptors.class)) {
+                    InterceptorBinding binding = assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(bean));
+                    binding.setExcludeClassInterceptors(true);
+                    binding.setMethod(new NamedMethod(method));
+                }
+                
                 if (bean instanceof RemoteBean) {
                     RemoteBean remoteBean = (RemoteBean) bean;