Author: rmannibucau
Date: Wed May  9 12:41:12 2012
New Revision: 1336146

URL: http://svn.apache.org/viewvc?rev=1336146&view=rev
Log:
with testing the same thing in the loop to skip the loop processing?

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1336146&r1=1336145&r2=1336146&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
 Wed May  9 12:41:12 2012
@@ -226,53 +226,55 @@ public class OpenEJBLifecycle implements
             //Discover classpath classes
             deployManagedBeans(scannerService.getBeanClasses(), 
stuff.getBeanContexts());
 
-            for (BeanContext beanContext : stuff.getBeanContexts()) {
-                if (!beanContext.getComponentType().isCdiCompatible() || 
stuff.getWebContext() != null) continue;
-
-                final Class implClass = beanContext.getManagedClass();
-
-                //Define annotation type
-                AnnotatedType<?> annotatedType = 
webBeansContext.getAnnotatedElementFactory().newAnnotatedType(implClass);
-
-                //Fires ProcessAnnotatedType
-                ProcessAnnotatedTypeImpl<?> processAnnotatedEvent = 
webBeansContext.getWebBeansUtil().fireProcessAnnotatedTypeEvent(annotatedType);
-
-                // TODO Can you really veto an EJB?
-                //if veto() is called
-                if (processAnnotatedEvent.isVeto()) {
-                    continue;
-                }
+            if (stuff.getWebContext() == null) { // otherwise we are in an ear 
and we already fired ejbs
+                for (BeanContext beanContext : stuff.getBeanContexts()) {
+                    if (!beanContext.getComponentType().isCdiCompatible()) 
continue;
+
+                    final Class implClass = beanContext.getManagedClass();
+
+                    //Define annotation type
+                    AnnotatedType<?> annotatedType = 
webBeansContext.getAnnotatedElementFactory().newAnnotatedType(implClass);
+
+                    //Fires ProcessAnnotatedType
+                    ProcessAnnotatedTypeImpl<?> processAnnotatedEvent = 
webBeansContext.getWebBeansUtil().fireProcessAnnotatedTypeEvent(annotatedType);
+
+                    // TODO Can you really veto an EJB?
+                    //if veto() is called
+                    if (processAnnotatedEvent.isVeto()) {
+                        continue;
+                    }
 
-                CdiEjbBean<Object> bean = new CdiEjbBean<Object>(beanContext, 
webBeansContext);
+                    CdiEjbBean<Object> bean = new 
CdiEjbBean<Object>(beanContext, webBeansContext);
 
-                beanContext.set(CdiEjbBean.class, bean);
-                beanContext.set(CurrentCreationalContext.class, new 
CurrentCreationalContext());
-                beanContext.addSystemInterceptor(new CdiInterceptor(bean, 
beanManager, cdiPlugin.getContexsServices()));
+                    beanContext.set(CdiEjbBean.class, bean);
+                    beanContext.set(CurrentCreationalContext.class, new 
CurrentCreationalContext());
+                    beanContext.addSystemInterceptor(new CdiInterceptor(bean, 
beanManager, cdiPlugin.getContexsServices()));
 
-                EjbUtility.fireEvents((Class<Object>) implClass, bean, 
(ProcessAnnotatedTypeImpl<Object>) processAnnotatedEvent);
+                    EjbUtility.fireEvents((Class<Object>) implClass, bean, 
(ProcessAnnotatedTypeImpl<Object>) processAnnotatedEvent);
 
-                
webBeansContext.getWebBeansUtil().setInjectionTargetBeanEnableFlag(bean);
+                    
webBeansContext.getWebBeansUtil().setInjectionTargetBeanEnableFlag(bean);
 
-                Class clazz = beanContext.getBeanClass();
-                while (clazz.isAnnotationPresent(Specializes.class)) {
-                    clazz = clazz.getSuperclass();
+                    Class clazz = beanContext.getBeanClass();
+                    while (clazz.isAnnotationPresent(Specializes.class)) {
+                        clazz = clazz.getSuperclass();
 
-                    if (clazz == null || Object.class.equals(clazz)) break;
+                        if (clazz == null || Object.class.equals(clazz)) break;
 
-                    final CdiEjbBean<Object> superBean = new 
CdiEjbBean<Object>(beanContext, webBeansContext, clazz);
+                        final CdiEjbBean<Object> superBean = new 
CdiEjbBean<Object>(beanContext, webBeansContext, clazz);
 
-                    EjbBeanCreatorImpl<?> ejbBeanCreator = new 
EjbBeanCreatorImpl(superBean);
+                        EjbBeanCreatorImpl<?> ejbBeanCreator = new 
EjbBeanCreatorImpl(superBean);
 
-                    //Define meta-data
-                    ejbBeanCreator.defineSerializable();
-                    ejbBeanCreator.defineStereoTypes();
-                    ejbBeanCreator.defineScopeType("Session Bean 
implementation class : " + clazz.getName() + " stereotypes must declare same 
@ScopeType annotations", false);
-                    ejbBeanCreator.defineQualifier();
-                    
ejbBeanCreator.defineName(WebBeansUtil.getManagedBeanDefaultName(clazz.getSimpleName()));
+                        //Define meta-data
+                        ejbBeanCreator.defineSerializable();
+                        ejbBeanCreator.defineStereoTypes();
+                        ejbBeanCreator.defineScopeType("Session Bean 
implementation class : " + clazz.getName() + " stereotypes must declare same 
@ScopeType annotations", false);
+                        ejbBeanCreator.defineQualifier();
+                        
ejbBeanCreator.defineName(WebBeansUtil.getManagedBeanDefaultName(clazz.getSimpleName()));
 
-                    bean.specialize(superBean);
+                        bean.specialize(superBean);
 
-                    EjbUtility.defineSpecializedData(clazz, bean);
+                        EjbUtility.defineSpecializedData(clazz, bean);
+                    }
                 }
             }
 


Reply via email to