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/07 09:22:01 UTC

svn commit: r1429701 - in /openwebbeans/trunk/webbeans-impl/src: main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java main/java/org/apache/webbeans/util/WebBeansUtil.java test/java/org/apache/webbeans/test/TestContext.java

Author: arne
Date: Mon Jan  7 08:22:01 2013
New Revision: 1429701

URL: http://svn.apache.org/viewvc?rev=1429701&view=rev
Log:
OWB-745: Delayed setting of full init

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java

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=1429701&r1=1429700&r2=1429701&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 Mon Jan  7 08:22:01 2013
@@ -70,6 +70,8 @@ import org.apache.webbeans.util.WebBeans
 public class ManagedBeanCreatorImpl<T> extends AbstractInjecionTargetBeanCreator<T>
 {
     private final WebBeansContext webBeansContext;
+    
+    private boolean fullInit = true;
 
     /**
      * Creates a new creator.
@@ -92,7 +94,7 @@ public class ManagedBeanCreatorImpl<T> e
     public void checkCreateConditions()
     {
         webBeansContext.getWebBeansUtil().checkManagedBeanCondition(getAnnotated());
-        WebBeansUtil.checkGenericType(getBean());
+        WebBeansUtil.checkGenericType(getBeanType(), getScope());
         //Check Unproxiable
         checkUnproxiableApiType();
     }
@@ -111,7 +113,9 @@ public class ManagedBeanCreatorImpl<T> e
      */
     public ManagedBean<T> getBean()
     {
-        return (ManagedBean<T>)super.getBean();
+        ManagedBean<T> bean = (ManagedBean<T>)super.getBean();
+        bean.setFullInit(fullInit);
+        return bean;
     }
 
     public static <T> void lazyInitializeManagedBean(ManagedBean<T> bean)
@@ -381,7 +385,7 @@ public class ManagedBeanCreatorImpl<T> e
 
     public void addConstructorInjectionPointMetaData(Constructor<T> constructor)
     {
-        List<InjectionPoint> injectionPoints = getBean().getWebBeansContext().getInjectionPointFactory().getConstructorInjectionPointData(getBean(), constructor);
+        List<InjectionPoint> injectionPoints = webBeansContext.getInjectionPointFactory().getConstructorInjectionPointData(getBean(), constructor);
         for (InjectionPoint injectionPoint : injectionPoints)
         {
             addImplicitComponentForInjectionPoint(injectionPoint);
@@ -426,7 +430,7 @@ public class ManagedBeanCreatorImpl<T> e
     @Override
     protected void defineLazyInit()
     {
-        getBean().setFullInit(false);
+        fullInit = false;
     }
 
     private ManagedBean<T> defineAbstractDecorator(ProcessInjectionTarget<T> processInjectionTargetEvent)

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=1429701&r1=1429700&r2=1429701&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Mon Jan  7 08:22:01 2013
@@ -231,15 +231,13 @@ public final class WebBeansUtil
      *
      * @param bean managed bean instance
      */
-    public static void checkGenericType(Bean<?> bean)
+    public static void checkGenericType(Class<?> clazz, Class<? extends Annotation> scope)
     {
-        Asserts.assertNotNull(bean);
-
-        Class<?> clazz = bean.getBeanClass();
+        Asserts.assertNotNull(clazz);
 
         if (ClassUtil.isDefinitionContainsTypeVariables(clazz))
         {
-            if(!bean.getScope().equals(Dependent.class))
+            if(!scope.equals(Dependent.class))
             {
                 throw new WebBeansConfigurationException("Generic type may only defined with scope @Dependent " +
                         "for ManagedBean class : " + clazz.getName());

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java?rev=1429701&r1=1429700&r2=1429701&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java Mon Jan  7 08:22:01 2013
@@ -539,7 +539,8 @@ public abstract class TestContext implem
         // we fully initialize the bean in this case.
         component.setFullInit(true);
 
-        WebBeansUtil.checkGenericType(managedBeanCreator.getBean());
+        ManagedBean<T> bean = managedBeanCreator.getBean();
+        WebBeansUtil.checkGenericType(bean.getReturnType(), bean.getScope());
         managedBeanCreator.defineName();
         managedBeanCreator.defineQualifiers();