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();