You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ar...@apache.org on 2013/01/06 20:38:25 UTC

svn commit: r1429577 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation: AbstractBeanCreator.java AbstractInjecionTargetBeanCreator.java ManagedBeanCreatorImpl.java

Author: arne
Date: Sun Jan  6 19:38:25 2013
New Revision: 1429577

URL: http://svn.apache.org/viewvc?rev=1429577&view=rev
Log:
OWB-745: Moved setting of inherited stereotypes

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjecionTargetBeanCreator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java?rev=1429577&r1=1429576&r2=1429577&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java Sun Jan  6 19:38:25 2013
@@ -46,16 +46,12 @@ import org.apache.webbeans.annotation.An
 import org.apache.webbeans.annotation.DefaultLiteral;
 import org.apache.webbeans.annotation.NamedLiteral;
 import org.apache.webbeans.component.AbstractOwbBean;
-import org.apache.webbeans.component.InjectionTargetBean;
-import org.apache.webbeans.component.ManagedBean;
 import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.config.inheritance.IBeanInheritedMetaData;
 import org.apache.webbeans.container.ExternalScope;
 import org.apache.webbeans.event.EventUtil;
 import org.apache.webbeans.exception.WebBeansConfigurationException;
 import org.apache.webbeans.exception.helper.ViolationMessageBuilder;
 import org.apache.webbeans.util.AnnotationUtil;
-import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.ClassUtil;
 import org.apache.webbeans.util.SecurityUtil;
 import org.apache.webbeans.util.WebBeansUtil;
@@ -83,6 +79,8 @@ public abstract class AbstractBeanCreato
     private Set<Annotation> qualifiers = new HashSet<Annotation>();
     
     private Set<Class<? extends Annotation>> stereotypes = new HashSet<Class<? extends Annotation>>();
+    
+    private boolean serializable = false;
 
     public AbstractBeanCreator(AbstractOwbBean<T> bean, Annotated annotated)
     {
@@ -242,12 +240,22 @@ public abstract class AbstractBeanCreato
         // hook for subclasses
     }
     
+    protected void defineInheritedStereotypes(Set<Class<? extends Annotation>> stereotypes)
+    {
+        // hook for subclasses
+    }
+    
     protected Class<? extends Annotation> defineInheritedScope()
     {
         // hook for subclasses
         return null;
     }
 
+    protected void defineLazyInit()
+    {
+        // hook for subclasses
+    }
+
     /**
      * Returns true if any binding exist
      * 
@@ -348,11 +356,11 @@ public abstract class AbstractBeanCreato
             {
                 scope = Dependent.class;
 
-                if (allowLazyInit && getBean() instanceof ManagedBean && isPurePojoBean(webBeansContext, getBean().getBeanClass()))
+                if (allowLazyInit && isPurePojoBean(webBeansContext, getBeanType()))
                 {
                     // take the bean as Dependent but we could lazily initialize it
                     // because the bean doesn't contains any CDI feature
-                    ((ManagedBean) getBean()).setFullInit(false);
+                    defineLazyInit();
                 }
             }
             else
@@ -399,11 +407,11 @@ public abstract class AbstractBeanCreato
                 {
                     scope = Dependent.class;
 
-                    if (allowLazyInit && getBean() instanceof ManagedBean && isPurePojoBean(webBeansContext, getBeanType()))
+                    if (allowLazyInit && isPurePojoBean(webBeansContext, getBeanType()))
                     {
                         // take the bean as Dependent but we could lazily initialize it
                         // because the bean doesn't contains any CDI feature
-                        ((ManagedBean) getBean()).setFullInit(false);
+                        defineLazyInit();
                     }
                 }
             }
@@ -458,7 +466,7 @@ public abstract class AbstractBeanCreato
         {
             ViolationMessageBuilder violationMessage = ViolationMessageBuilder.newViolation();
 
-            Class<?> beanClass = getBean().getReturnType();
+            Class<?> beanClass = getBeanType();
             
             if(!beanClass.isInterface() && beanClass != Object.class)
             {
@@ -516,10 +524,9 @@ public abstract class AbstractBeanCreato
      */
     public void defineSerializable()
     {
-        Asserts.assertNotNull(getBean(), "component parameter can not be null");
-        if (ClassUtil.isClassAssignable(Serializable.class, getBean().getReturnType()))
+        if (ClassUtil.isClassAssignable(Serializable.class, getBeanType()))
         {
-            getBean().setSerializable(true);
+            serializable = true;
         }
     }
 
@@ -540,41 +547,12 @@ public abstract class AbstractBeanCreato
                 stereotypes.add(stereo.annotationType());
             }
         }
-        
-        // Adding inherited qualifiers
-        IBeanInheritedMetaData inheritedMetaData = null;
-        
-        if(getBean() instanceof InjectionTargetBean)
-        {
-            inheritedMetaData = ((InjectionTargetBean<?>) getBean()).getInheritedMetaData();
-        }
-        
-        if (inheritedMetaData != null)
-        {
-            Set<Annotation> inheritedTypes = inheritedMetaData.getInheritedStereoTypes();        
-            for (Annotation inherited : inheritedTypes)
-            {
-                Set<Class<? extends Annotation>> qualifiers = stereotypes;
-                boolean found = false;
-                for (Class<? extends Annotation> existQualifier : qualifiers)
-                {
-                    if (existQualifier.equals(inherited.annotationType()))
-                    {
-                        found = true;
-                        break;
-                    }
-                }
-                if (!found)
-                {
-                    stereotypes.add(inherited.annotationType());
-                }
-            }
-        }
+        defineInheritedStereotypes(stereotypes);
     }
     
     protected <X> void addMethodInjectionPointMetaData(AnnotatedMethod<X> method)
     {
-        List<InjectionPoint> injectionPoints = getBean().getWebBeansContext().getInjectionPointFactory().getMethodInjectionPointData(getBean(), method);
+        List<InjectionPoint> injectionPoints = webBeansContext.getInjectionPointFactory().getMethodInjectionPointData(getBean(), method);
         for (InjectionPoint injectionPoint : injectionPoints)
         {
             addImplicitComponentForInjectionPoint(injectionPoint);
@@ -599,6 +577,7 @@ public abstract class AbstractBeanCreato
         bean.setImplScopeType(scope);
         bean.getQualifiers().addAll(qualifiers);
         bean.getStereotypes().addAll(stereotypes);
+        bean.setSerializable(serializable);
         return bean;
     }
 

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjecionTargetBeanCreator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjecionTargetBeanCreator.java?rev=1429577&r1=1429576&r2=1429577&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjecionTargetBeanCreator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjecionTargetBeanCreator.java Sun Jan  6 19:38:25 2013
@@ -660,6 +660,35 @@ public abstract class AbstractInjecionTa
     }
 
     @Override
+    protected void defineInheritedStereotypes(Set<Class<? extends Annotation>> stereotypes)
+    {
+        // Adding inherited qualifiers
+        IBeanInheritedMetaData inheritedMetaData = getBean().getInheritedMetaData();
+        
+        if (inheritedMetaData != null)
+        {
+            Set<Annotation> inheritedTypes = inheritedMetaData.getInheritedStereoTypes();        
+            for (Annotation inherited : inheritedTypes)
+            {
+                Set<Class<? extends Annotation>> qualifiers = stereotypes;
+                boolean found = false;
+                for (Class<? extends Annotation> existQualifier : qualifiers)
+                {
+                    if (existQualifier.equals(inherited.annotationType()))
+                    {
+                        found = true;
+                        break;
+                    }
+                }
+                if (!found)
+                {
+                    stereotypes.add(inherited.annotationType());
+                }
+            }
+        }
+    }
+    
+    @Override
     protected Class<? extends Annotation> defineInheritedScope()
     {
         IBeanInheritedMetaData metaData = getBean().getInheritedMetaData();

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java?rev=1429577&r1=1429576&r2=1429577&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java Sun Jan  6 19:38:25 2013
@@ -425,6 +425,12 @@ public class ManagedBeanCreatorImpl<T> e
         }
     }
 
+    @Override
+    protected void defineLazyInit()
+    {
+        getBean().setFullInit(false);
+    }
+
     private ManagedBean<T> defineAbstractDecorator(ProcessInjectionTarget<T> processInjectionTargetEvent)
     {