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:26:23 UTC

svn commit: r1429574 - in /openwebbeans/trunk: webbeans-ee-common/src/main/java/org/apache/webbeans/ee/common/beans/ webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ webbeans-impl/src/main/java/org/apache/webbeans/component/ webbeans-impl/src/ma...

Author: arne
Date: Sun Jan  6 19:26:23 2013
New Revision: 1429574

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

Modified:
    openwebbeans/trunk/webbeans-ee-common/src/main/java/org/apache/webbeans/ee/common/beans/PrincipalBean.java
    openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/UserTransactionBean.java
    openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorBean.java
    openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorFactoryBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractOwbBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionPointBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/OwbBean.java
    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/AbstractProducerBeanCreator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ExtensionBeanCreatorImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/NewManagedBeanCreatorImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerFieldBeanCreator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerMethodBeanCreator.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
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/pfield/ProducerFieldComponentTest.java
    openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/component/JmsComponentFactory.java

Modified: openwebbeans/trunk/webbeans-ee-common/src/main/java/org/apache/webbeans/ee/common/beans/PrincipalBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ee-common/src/main/java/org/apache/webbeans/ee/common/beans/PrincipalBean.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ee-common/src/main/java/org/apache/webbeans/ee/common/beans/PrincipalBean.java (original)
+++ openwebbeans/trunk/webbeans-ee-common/src/main/java/org/apache/webbeans/ee/common/beans/PrincipalBean.java Sun Jan  6 19:26:23 2013
@@ -20,10 +20,10 @@ package org.apache.webbeans.ee.common.be
 
 import java.security.Principal;
 
+import javax.enterprise.context.Dependent;
 import javax.enterprise.context.spi.CreationalContext;
 
 import org.apache.webbeans.annotation.DefaultLiteral;
-import org.apache.webbeans.annotation.DependentScopeLiteral;
 import org.apache.webbeans.component.BuildInOwbBean;
 import org.apache.webbeans.component.WebBeansType;
 import org.apache.webbeans.spi.SecurityService;
@@ -37,7 +37,7 @@ public class PrincipalBean extends Build
         addApiType(Object.class);
         addApiType(Principal.class);
         addQualifier(new DefaultLiteral());
-        setImplScopeType(new DependentScopeLiteral());
+        setImplScopeType(Dependent.class);
     }
 
     @Override

Modified: openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/UserTransactionBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/UserTransactionBean.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/UserTransactionBean.java (original)
+++ openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/UserTransactionBean.java Sun Jan  6 19:26:23 2013
@@ -18,11 +18,11 @@
  */
 package org.apache.webbeans.ee.beans;
 
+import javax.enterprise.context.Dependent;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.transaction.UserTransaction;
 
 import org.apache.webbeans.annotation.DefaultLiteral;
-import org.apache.webbeans.annotation.DependentScopeLiteral;
 import org.apache.webbeans.component.BuildInOwbBean;
 import org.apache.webbeans.component.WebBeansType;
 import org.apache.webbeans.spi.TransactionService;
@@ -36,7 +36,7 @@ public class UserTransactionBean extends
         addApiType(Object.class);
         addApiType(UserTransaction.class);
         addQualifier(new DefaultLiteral());
-        setImplScopeType(new DependentScopeLiteral());
+        setImplScopeType(Dependent.class);
     }
 
     @Override

Modified: openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorBean.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorBean.java (original)
+++ openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorBean.java Sun Jan  6 19:26:23 2013
@@ -18,11 +18,11 @@
  */
 package org.apache.webbeans.ee.beans;
 
+import javax.enterprise.context.Dependent;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.validation.Validator;
 
 import org.apache.webbeans.annotation.DefaultLiteral;
-import org.apache.webbeans.annotation.DependentScopeLiteral;
 import org.apache.webbeans.component.BuildInOwbBean;
 import org.apache.webbeans.component.WebBeansType;
 import org.apache.webbeans.spi.ValidatorService;
@@ -36,7 +36,7 @@ public class ValidatorBean extends Build
         addApiType(Object.class);
         addApiType(Validator.class);
         addQualifier(new DefaultLiteral());
-        setImplScopeType(new DependentScopeLiteral());
+        setImplScopeType(Dependent.class);
     }
 
     @Override

Modified: openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorFactoryBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorFactoryBean.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorFactoryBean.java (original)
+++ openwebbeans/trunk/webbeans-ee/src/main/java/org/apache/webbeans/ee/beans/ValidatorFactoryBean.java Sun Jan  6 19:26:23 2013
@@ -18,11 +18,11 @@
  */
 package org.apache.webbeans.ee.beans;
 
+import javax.enterprise.context.Dependent;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.validation.ValidatorFactory;
 
 import org.apache.webbeans.annotation.DefaultLiteral;
-import org.apache.webbeans.annotation.DependentScopeLiteral;
 import org.apache.webbeans.component.BuildInOwbBean;
 import org.apache.webbeans.component.WebBeansType;
 import org.apache.webbeans.spi.ValidatorService;
@@ -36,7 +36,7 @@ public class ValidatorFactoryBean extend
         addApiType(Object.class);
         addApiType(ValidatorFactory.class);
         addQualifier(new DefaultLiteral());
-        setImplScopeType(new DependentScopeLiteral());
+        setImplScopeType(Dependent.class);
     }
 
     @Override

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractOwbBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractOwbBean.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractOwbBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractOwbBean.java Sun Jan  6 19:26:23 2013
@@ -357,10 +357,13 @@ public abstract class AbstractOwbBean<T>
      * 
      * @param scopeType scope type
      */
-    public void setImplScopeType(Annotation scopeType)
+    public void setImplScopeType(Class<? extends Annotation> scopeType)
     {
-        scopeClass = scopeType.annotationType();
-        cachedHashCode = 0;
+        if (scopeType != null)
+        {
+            scopeClass = scopeType;
+            cachedHashCode = 0;
+        }
     }
 
     /**

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java Sun Jan  6 19:26:23 2013
@@ -18,10 +18,10 @@
  */
 package org.apache.webbeans.component;
 
+import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.BeanManager;
 
-import org.apache.webbeans.annotation.ApplicationScopeLiteral;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.container.InjectableBeanManager;
 
@@ -32,7 +32,7 @@ public class BeanManagerBean extends Abs
     public BeanManagerBean(WebBeansContext webBeansContext)
     {
         super(WebBeansType.MANAGER, BeanManager.class, webBeansContext);
-        setImplScopeType(new ApplicationScopeLiteral());
+        setImplScopeType(ApplicationScoped.class);
     }
 
     @Override

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java Sun Jan  6 19:26:23 2013
@@ -20,7 +20,6 @@ package org.apache.webbeans.component;
 
 import javax.enterprise.context.spi.CreationalContext;
 
-import org.apache.webbeans.annotation.ApplicationScopeLiteral;
 import org.apache.webbeans.annotation.DefaultLiteral;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.portable.events.ExtensionLoader;
@@ -44,7 +43,6 @@ public class ExtensionBean<T> extends Ab
     {
         super(WebBeansType.EXTENSION, returnType, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(returnType), webBeansContext);
         setEnabled(true);
-        setImplScopeType(new ApplicationScopeLiteral());
         getTypes().addAll(getAnnotatedType().getTypeClosure());
         addQualifier(new DefaultLiteral());
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionPointBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionPointBean.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionPointBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionPointBean.java Sun Jan  6 19:26:23 2013
@@ -19,10 +19,11 @@
 package org.apache.webbeans.component;
 
 import java.util.Stack;
+
+import javax.enterprise.context.Dependent;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.InjectionPoint;
 import org.apache.webbeans.annotation.DefaultLiteral;
-import org.apache.webbeans.annotation.DependentScopeLiteral;
 import org.apache.webbeans.config.WebBeansContext;
 
 public class InjectionPointBean extends AbstractOwbBean<InjectionPoint>
@@ -67,7 +68,7 @@ public class InjectionPointBean extends 
         super(WebBeansType.INJECTIONPOINT,InjectionPoint.class, webBeansContext);
         
         addQualifier(new DefaultLiteral());
-        setImplScopeType(new DependentScopeLiteral());
+        setImplScopeType(Dependent.class);
         addApiType(InjectionPoint.class);
         addApiType(Object.class);
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/OwbBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/OwbBean.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/OwbBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/OwbBean.java Sun Jan  6 19:26:23 2013
@@ -48,7 +48,7 @@ public interface OwbBean<T> extends Bean
      * 
      * @param scopeType bean scope type annotation
      */
-    public void setImplScopeType(Annotation scopeType);    
+    public void setImplScopeType(Class<? extends Annotation> scopeType);    
 
     /**
      * Returns bean type.

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=1429574&r1=1429573&r2=1429574&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:26:23 2013
@@ -18,15 +18,20 @@
  */
 package org.apache.webbeans.component.creation;
 
+import static org.apache.webbeans.util.InjectionExceptionUtils.throwUnproxyableResolutionException;
+
 import java.io.Serializable;
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
 import java.lang.reflect.Type;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
+import javax.enterprise.context.Dependent;
 import javax.enterprise.context.NormalScope;
 import javax.enterprise.inject.Any;
 import javax.enterprise.inject.spi.Annotated;
@@ -39,7 +44,6 @@ import javax.inject.Scope;
 import org.apache.webbeans.annotation.AnnotationManager;
 import org.apache.webbeans.annotation.AnyLiteral;
 import org.apache.webbeans.annotation.DefaultLiteral;
-import org.apache.webbeans.annotation.DependentScopeLiteral;
 import org.apache.webbeans.annotation.NamedLiteral;
 import org.apache.webbeans.component.AbstractOwbBean;
 import org.apache.webbeans.component.InjectionTargetBean;
@@ -49,9 +53,11 @@ import org.apache.webbeans.config.inheri
 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;
 
 /**
@@ -61,7 +67,7 @@ import org.apache.webbeans.util.WebBeans
  *
  * @param <T> bean class info
  */
-public class AbstractBeanCreator<T>
+public abstract class AbstractBeanCreator<T>
 {
     /**Bean instance*/
     private final AbstractOwbBean<T> bean;    
@@ -71,29 +77,32 @@ public class AbstractBeanCreator<T>
     private WebBeansContext webBeansContext;
     
     private String beanName;
+    
+    private Class<? extends Annotation> scope;
 
     private Set<Annotation> qualifiers = new HashSet<Annotation>();
     
     private Set<Class<? extends Annotation>> stereotypes = new HashSet<Class<? extends Annotation>>();
-    
+
+    public AbstractBeanCreator(AbstractOwbBean<T> bean, Annotated annotated)
+    {
+        this(bean, annotated, null);
+    }
+
     /**
      * Creates a bean instance.
      * 
      * @param bean bean instance
      * @param annotated
      */
-    public AbstractBeanCreator(AbstractOwbBean<T> bean, Annotated annotated)
+    public AbstractBeanCreator(AbstractOwbBean<T> bean, Annotated annotated, Class<? extends Annotation> scopeType)
     {
         this.bean = bean;
         this.annotated = annotated;
+        this.scope = scopeType;
         this.webBeansContext = bean.getWebBeansContext();
     }
 
-    protected Set<Annotation> getQualifiers()
-    {
-        return qualifiers;
-    }
-
     /**
      * {@inheritDoc}
      */
@@ -204,7 +213,7 @@ public class AbstractBeanCreator<T>
             }
         }
         
-        configureInheritedQualifiers();
+        defineInheritedQualifiers(qualifiers);
 
         // No-binding annotation
         if (qualifiers.size() == 0 )
@@ -228,9 +237,15 @@ public class AbstractBeanCreator<T>
         
     }
 
-    protected void configureInheritedQualifiers()
+    protected void defineInheritedQualifiers(Set<Annotation> qualifiers)
+    {
+        // hook for subclasses
+    }
+    
+    protected Class<? extends Annotation> defineInheritedScope()
     {
         // hook for subclasses
+        return null;
     }
 
     /**
@@ -289,7 +304,7 @@ public class AbstractBeanCreator<T>
             {
                 if(pseudo != null)
                 {
-                    throw new WebBeansConfigurationException("Not to define both @Scope and @NormalScope on bean : " + getBean());
+                    throw new WebBeansConfigurationException("Not to define both @Scope and @NormalScope on bean : " + getBeanType().getName());
                 }
                 
                 if (found)
@@ -298,7 +313,7 @@ public class AbstractBeanCreator<T>
                 }
 
                 found = true;
-                getBean().setImplScopeType(annotation);
+                scope = annotation.annotationType();
             }
             else
             {
@@ -310,7 +325,7 @@ public class AbstractBeanCreator<T>
                     }
 
                     found = true;
-                    getBean().setImplScopeType(annotation);
+                    scope = annotation.annotationType();
                 }
             }
         }
@@ -324,29 +339,14 @@ public class AbstractBeanCreator<T>
 
     private void defineDefaultScopeType(String exceptionMessage, boolean allowLazyInit)
     {
-        // Frist look for inherited scope
-        IBeanInheritedMetaData metaData = null;
-        if(getBean() instanceof InjectionTargetBean)
-        {
-            metaData = ((InjectionTargetBean<?>)getBean()).getInheritedMetaData();
-        }
-        boolean found = false;
-        if (metaData != null)
-        {
-            Annotation inheritedScope = metaData.getInheritedScopeType();
-            if (inheritedScope != null)
-            {
-                found = true;
-                getBean().setImplScopeType(inheritedScope);
-            }
-        }
-
-        if (!found)
+        scope = defineInheritedScope();
+        
+        if (scope == null)
         {
             Set<Class<? extends Annotation>> stereos = stereotypes;
             if (stereos.size() == 0)
             {
-                getBean().setImplScopeType(new DependentScopeLiteral());
+                scope = Dependent.class;
 
                 if (allowLazyInit && getBean() instanceof ManagedBean && isPurePojoBean(webBeansContext, getBean().getBeanClass()))
                 {
@@ -393,13 +393,13 @@ public class AbstractBeanCreator<T>
 
                 if (defined != null)
                 {
-                    getBean().setImplScopeType(defined);
+                    scope = defined.annotationType();
                 }
                 else
                 {
-                    getBean().setImplScopeType(new DependentScopeLiteral());
+                    scope = Dependent.class;
 
-                    if (allowLazyInit && getBean() instanceof ManagedBean && isPurePojoBean(webBeansContext, getBean().getBeanClass()))
+                    if (allowLazyInit && getBean() instanceof ManagedBean && isPurePojoBean(webBeansContext, getBeanType()))
                     {
                         // take the bean as Dependent but we could lazily initialize it
                         // because the bean doesn't contains any CDI feature
@@ -445,6 +445,73 @@ public class AbstractBeanCreator<T>
     }
 
     /**
+     * Checks the unproxiable condition.
+     * @param bean managed bean
+     * @param scopeType scope type
+     * @throws WebBeansConfigurationException if
+     *  bean is not proxied by the container
+     */
+    protected void checkUnproxiableApiType()
+    {
+        //Unproxiable test for NormalScoped beans
+        if (webBeansContext.getWebBeansUtil().isScopeTypeNormal(scope))
+        {
+            ViolationMessageBuilder violationMessage = ViolationMessageBuilder.newViolation();
+
+            Class<?> beanClass = getBean().getReturnType();
+            
+            if(!beanClass.isInterface() && beanClass != Object.class)
+            {
+                if(beanClass.isPrimitive())
+                {
+                    violationMessage.addLine("It isn't possible to proxy a primitive type (" + beanClass.getName(), ")");
+                }
+
+                if(beanClass.isArray())
+                {
+                    violationMessage.addLine("It isn't possible to proxy an array type (", beanClass.getName(), ")");
+                }
+
+                if(!violationMessage.containsViolation())
+                {
+                    if (Modifier.isFinal(beanClass.getModifiers()))
+                    {
+                        violationMessage.addLine(beanClass.getName(), " is a final class! CDI doesn't allow to proxy that.");
+                    }
+
+                    Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(beanClass);
+                    for (Method m : methods)
+                    {
+                        int modifiers = m.getModifiers();
+                        if (Modifier.isFinal(modifiers) && !Modifier.isPrivate(modifiers) &&
+                            !m.isSynthetic() && !m.isBridge())
+                        {
+                            violationMessage.addLine(beanClass.getName(), " has final method "+ m + " CDI doesn't allow to proxy that.");
+                        }
+                    }
+
+                    Constructor<?> cons = webBeansContext.getWebBeansUtil().getNoArgConstructor(beanClass);
+                    if (cons == null)
+                    {
+                        violationMessage.addLine(beanClass.getName(), " has no explicit no-arg constructor!",
+                                "A public or protected constructor without args is required!");
+                    }
+                    else if (Modifier.isPrivate(cons.getModifiers()))
+                    {
+                        violationMessage.addLine(beanClass.getName(), " has a >private< no-arg constructor! CDI doesn't allow to proxy that.");
+                    }
+                }
+
+                //Throw Exception
+                if(violationMessage.containsViolation())
+                {
+                    throwUnproxyableResolutionException(violationMessage);
+                }
+            }
+        }
+    }
+
+    /**
      * {@inheritDoc}
      */
     public void defineSerializable()
@@ -529,6 +596,7 @@ public class AbstractBeanCreator<T>
     public AbstractOwbBean<T> getBean()
     {
         bean.setName(beanName);
+        bean.setImplScopeType(scope);
         bean.getQualifiers().addAll(qualifiers);
         bean.getStereotypes().addAll(stereotypes);
         return bean;
@@ -538,4 +606,6 @@ public class AbstractBeanCreator<T>
     {
         return annotated;
     }
+    
+    protected abstract Class<?> getBeanType();
 }

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=1429574&r1=1429573&r2=1429574&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:26:23 2013
@@ -48,7 +48,6 @@ import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.apache.webbeans.annotation.AnnotationManager;
-import org.apache.webbeans.annotation.DependentScopeLiteral;
 import org.apache.webbeans.component.AbstractInjectionTargetBean;
 import org.apache.webbeans.component.ProducerFieldBean;
 import org.apache.webbeans.component.ProducerMethodBean;
@@ -80,12 +79,17 @@ public abstract class AbstractInjecionTa
      * 
      * @param bean bean instance
      */
-    public AbstractInjecionTargetBeanCreator(AbstractInjectionTargetBean<T> bean)
+    public AbstractInjecionTargetBeanCreator(AbstractInjectionTargetBean<T> bean, Class<? extends Annotation> scopeType)
     {
-        super(bean, bean.getAnnotatedType());
+        super(bean, bean.getAnnotatedType(), scopeType);
         webBeansContext = bean.getWebBeansContext();
     }
         
+    public AbstractInjecionTargetBeanCreator(AbstractInjectionTargetBean<T> bean)
+    {
+        this(bean, null);
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -471,7 +475,7 @@ public abstract class AbstractInjecionTa
                         
                         resourceBean.getTypes().addAll(annotatedField.getTypeClosure());
                         resourceBeanCreator.defineQualifiers();
-                        resourceBean.setImplScopeType(new DependentScopeLiteral());
+                        resourceBean.setImplScopeType(Dependent.class);
                         resourceBean.setProducerField(field);
                         
                         producerBeans.add(resourceBean);                                            
@@ -502,8 +506,7 @@ public abstract class AbstractInjecionTa
                         producerFieldBean.getTypes().addAll(annotatedField.getTypeClosure());
                     }
                     producerFieldBeanCreator.defineScopeType("Annotated producer field: " + annotatedField +  "must declare default @Scope annotation", false);
-                    webBeansContext.getWebBeansUtil().checkUnproxiableApiType(producerFieldBean,
-                                                                                             producerFieldBean.getScope());
+                    producerFieldBeanCreator.checkUnproxiableApiType();
                     WebBeansUtil.checkProducerGenericType(producerFieldBean,annotatedField.getJavaMember());
                     producerFieldBeanCreator.defineQualifiers();
                     producerFieldBeanCreator.defineName(WebBeansUtil.getProducerDefaultName(annotatedField.getJavaMember().getName()));
@@ -572,9 +575,8 @@ public abstract class AbstractInjecionTa
                 }
                 producerMethodBeanCreator.defineScopeType("Annotated producer method : " + annotatedMethod
                                                           +  "must declare default @Scope annotation", false);
-                webBeansContext.getWebBeansUtil().checkUnproxiableApiType(producerMethodBean,
-                                                                                         producerMethodBean.getScope());
-                WebBeansUtil.checkProducerGenericType(producerMethodBean,annotatedMethod.getJavaMember());
+                producerMethodBeanCreator.checkUnproxiableApiType();
+                WebBeansUtil.checkProducerGenericType(producerMethodBeanCreator.getBean(), annotatedMethod.getJavaMember());
                 producerMethodBeanCreator.defineName(WebBeansUtil.getProducerDefaultName(annotatedMethod.getJavaMember().getName()));
                 producerMethodBeanCreator.defineQualifiers();
                 
@@ -629,7 +631,8 @@ public abstract class AbstractInjecionTa
         return (AnnotatedType<T>) super.getAnnotated();
     }
 
-    protected void configureInheritedQualifiers()
+    @Override
+    protected void defineInheritedQualifiers(Set<Annotation> qualifiers)
     {
         // Adding inherited qualifiers
         IBeanInheritedMetaData inheritedMetaData = getBean().getInheritedMetaData();
@@ -640,7 +643,7 @@ public abstract class AbstractInjecionTa
             for (Annotation inherited : inheritedTypes)
             {
                 boolean found = false;
-                for (Annotation existQualifier : getQualifiers())
+                for (Annotation existQualifier : qualifiers)
                 {
                     if (existQualifier.annotationType().equals(inherited.annotationType()))
                     {
@@ -650,9 +653,30 @@ public abstract class AbstractInjecionTa
                 }
                 if (!found)
                 {
-                    getQualifiers().add(inherited);
+                    qualifiers.add(inherited);
                 }
             }
         }
     }
+
+    @Override
+    protected Class<? extends Annotation> defineInheritedScope()
+    {
+        IBeanInheritedMetaData metaData = getBean().getInheritedMetaData();
+        if (metaData != null)
+        {
+            Annotation inheritedScope = metaData.getInheritedScopeType();
+            if (inheritedScope != null)
+            {
+                return inheritedScope.annotationType();
+            }
+        }
+        return null;
+    }
+
+    @Override
+    protected Class<?> getBeanType()
+    {
+        return getAnnotated().getJavaClass();
+    }
 }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractProducerBeanCreator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractProducerBeanCreator.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractProducerBeanCreator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractProducerBeanCreator.java Sun Jan  6 19:26:23 2013
@@ -22,7 +22,7 @@ import javax.enterprise.inject.spi.Annot
 
 import org.apache.webbeans.component.AbstractProducerBean;
 
-public class AbstractProducerBeanCreator<T> extends AbstractBeanCreator<T>
+public abstract class AbstractProducerBeanCreator<T> extends AbstractBeanCreator<T>
 {
 
     public AbstractProducerBeanCreator(AbstractProducerBean<T> bean, Annotated annotated)

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ExtensionBeanCreatorImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ExtensionBeanCreatorImpl.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ExtensionBeanCreatorImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ExtensionBeanCreatorImpl.java Sun Jan  6 19:26:23 2013
@@ -18,6 +18,8 @@
  */
 package org.apache.webbeans.component.creation;
 
+import javax.enterprise.context.ApplicationScoped;
+
 import org.apache.webbeans.component.ExtensionBean;
 import org.apache.webbeans.config.WebBeansContext;
 
@@ -26,7 +28,7 @@ public class ExtensionBeanCreatorImpl<T>
 
     public ExtensionBeanCreatorImpl(Class<T> type, WebBeansContext webBeansContext)
     {
-        super(new ExtensionBean<T>(type, webBeansContext));
+        super(new ExtensionBean<T>(type, webBeansContext), ApplicationScoped.class);
     }
 
     /**

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=1429574&r1=1429573&r2=1429574&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:26:23 2013
@@ -76,12 +76,12 @@ public class ManagedBeanCreatorImpl<T> e
      */
     public ManagedBeanCreatorImpl(AnnotatedType<T> annotatedType, WebBeansContext webBeansContext)
     {
-        this(new ManagedBean<T>(annotatedType.getJavaClass(), annotatedType, webBeansContext));
+        this(new ManagedBean<T>(annotatedType.getJavaClass(), annotatedType, webBeansContext), null);
     }
-    
-    protected ManagedBeanCreatorImpl(ManagedBean<T> managedBean)
+
+    protected ManagedBeanCreatorImpl(ManagedBean<T> managedBean, Class<? extends Annotation> scopeType)
     {
-        super(managedBean);
+        super(managedBean, scopeType);
         webBeansContext = managedBean.getWebBeansContext();
     }
 
@@ -94,7 +94,7 @@ public class ManagedBeanCreatorImpl<T> e
         webBeansContext.getWebBeansUtil().checkManagedBeanCondition(getAnnotated());
         WebBeansUtil.checkGenericType(getBean());
         //Check Unproxiable
-        webBeansContext.getWebBeansUtil().checkUnproxiableApiType(getBean(), getBean().getScope());
+        checkUnproxiableApiType();
     }
 
 
@@ -116,7 +116,7 @@ public class ManagedBeanCreatorImpl<T> e
 
     public static <T> void lazyInitializeManagedBean(ManagedBean<T> bean)
     {
-        ManagedBeanCreatorImpl<T> managedBeanCreator = new ManagedBeanCreatorImpl<T>(bean);
+        ManagedBeanCreatorImpl<T> managedBeanCreator = new ManagedBeanCreatorImpl<T>(bean, bean.getScope());
 
         managedBeanCreator.lazyInitializeManagedBean(bean.getBeanClass(), bean);
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/NewManagedBeanCreatorImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/NewManagedBeanCreatorImpl.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/NewManagedBeanCreatorImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/NewManagedBeanCreatorImpl.java Sun Jan  6 19:26:23 2013
@@ -18,6 +18,7 @@
  */
 package org.apache.webbeans.component.creation;
 
+import javax.enterprise.context.Dependent;
 import javax.enterprise.inject.spi.AnnotatedType;
 
 import org.apache.webbeans.component.NewManagedBean;
@@ -29,7 +30,7 @@ public class NewManagedBeanCreatorImpl<T
 
     public NewManagedBeanCreatorImpl(AnnotatedType<T> annotatedType, WebBeansContext webBeansContext)
     {
-        super(new NewManagedBean<T>(annotatedType.getJavaClass(), WebBeansType.MANAGED, annotatedType, webBeansContext));
+        super(new NewManagedBean<T>(annotatedType.getJavaClass(), WebBeansType.MANAGED, annotatedType, webBeansContext), Dependent.class);
     }
 
     /**

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerFieldBeanCreator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerFieldBeanCreator.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerFieldBeanCreator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerFieldBeanCreator.java Sun Jan  6 19:26:23 2013
@@ -44,4 +44,10 @@ public class ProducerFieldBeanCreator<T>
     {
         return (ProducerFieldBean<T>) super.getBean();
     }
+
+    @Override
+    protected Class<?> getBeanType()
+    {
+        return ((AnnotatedField<T>)getAnnotated()).getJavaMember().getType();
+    }
 }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerMethodBeanCreator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerMethodBeanCreator.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerMethodBeanCreator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ProducerMethodBeanCreator.java Sun Jan  6 19:26:23 2013
@@ -87,4 +87,10 @@ public class ProducerMethodBeanCreator<T
         
         getBean().setSpecializedBean(true);        
     }
+
+    @Override
+    protected Class<?> getBeanType()
+    {
+        return ((AnnotatedMethod<T>)getAnnotated()).getJavaMember().getReturnType();
+    }
 }

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=1429574&r1=1429573&r2=1429574&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 Sun Jan  6 19:26:23 2013
@@ -18,8 +18,6 @@
  */
 package org.apache.webbeans.util;
 
-import static org.apache.webbeans.util.InjectionExceptionUtils.throwUnproxyableResolutionException;
-
 import java.io.Serializable;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
@@ -47,6 +45,7 @@ import javax.decorator.Decorator;
 import javax.enterprise.context.Conversation;
 import javax.enterprise.context.Dependent;
 import javax.enterprise.context.NormalScope;
+import javax.enterprise.context.RequestScoped;
 import javax.enterprise.context.spi.Contextual;
 import javax.enterprise.event.Event;
 import javax.enterprise.event.Observes;
@@ -94,9 +93,7 @@ import javax.interceptor.InvocationConte
 import org.apache.webbeans.annotation.AnnotationManager;
 import org.apache.webbeans.annotation.AnyLiteral;
 import org.apache.webbeans.annotation.DefaultLiteral;
-import org.apache.webbeans.annotation.DependentScopeLiteral;
 import org.apache.webbeans.annotation.NewLiteral;
-import org.apache.webbeans.annotation.RequestedScopeLiteral;
 import org.apache.webbeans.component.AbstractInjectionTargetBean;
 import org.apache.webbeans.component.AbstractOwbBean;
 import org.apache.webbeans.component.AbstractProducerBean;
@@ -131,7 +128,6 @@ import org.apache.webbeans.container.Inj
 import org.apache.webbeans.conversation.ConversationImpl;
 import org.apache.webbeans.decorator.WebBeansDecoratorConfig;
 import org.apache.webbeans.exception.WebBeansConfigurationException;
-import org.apache.webbeans.exception.helper.ViolationMessageBuilder;
 import org.apache.webbeans.exception.inject.DefinitionException;
 import org.apache.webbeans.exception.inject.InconsistentSpecializationException;
 import org.apache.webbeans.inject.AlternativesManager;
@@ -601,7 +597,7 @@ public final class WebBeansUtil
             NewManagedBeanCreatorImpl<T> newBeanCreator
                 = new NewManagedBeanCreatorImpl<T>(webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz), webBeansContext);
             comp = newBeanCreator.getBean();
-            comp.setImplScopeType(new DependentScopeLiteral());
+            comp.setImplScopeType(Dependent.class);
             comp.setConstructor(defineConstructor(clazz));
             newBeanCreator.addConstructorInjectionPointMetaData(comp.getConstructor());
 
@@ -611,7 +607,7 @@ public final class WebBeansUtil
         else if (EJBWebBeansConfigurator.isSessionBean(clazz, webBeansContext))
         {
             comp = new NewManagedBean<T>(clazz, WebBeansType.ENTERPRISE, webBeansContext.getAnnotatedElementFactory().getAnnotatedType(clazz), webBeansContext);
-            comp.setImplScopeType(new DependentScopeLiteral());
+            comp.setImplScopeType(Dependent.class);
         }
         else
         {
@@ -659,7 +655,7 @@ public final class WebBeansUtil
     {
         BeanManagerBean managerComponent = new BeanManagerBean(webBeansContext);
 
-        managerComponent.setImplScopeType(new DependentScopeLiteral());
+        managerComponent.setImplScopeType(Dependent.class);
         managerComponent.addQualifier(new DefaultLiteral());
         managerComponent.addQualifier(new AnyLiteral());
         managerComponent.addApiType(BeanManager.class);
@@ -682,7 +678,7 @@ public final class WebBeansUtil
         instanceBean.addApiType(Object.class);
 
         instanceBean.addQualifier(new AnyLiteral());
-        instanceBean.setImplScopeType(new DependentScopeLiteral());
+        instanceBean.setImplScopeType(Dependent.class);
         instanceBean.setName(null);
 
         return instanceBean;
@@ -701,7 +697,7 @@ public final class WebBeansUtil
         eventBean.addApiType(Object.class);
 
         eventBean.addQualifier(new AnyLiteral());
-        eventBean.setImplScopeType(new DependentScopeLiteral());
+        eventBean.setImplScopeType(Dependent.class);
         eventBean.setName(null);
 
         return eventBean;
@@ -720,7 +716,7 @@ public final class WebBeansUtil
         conversationComp.addApiType(Conversation.class);
         conversationComp.addApiType(ConversationImpl.class);
         conversationComp.addApiType(Object.class);
-        conversationComp.setImplScopeType(new RequestedScopeLiteral());
+        conversationComp.setImplScopeType(RequestScoped.class);
         conversationComp.addQualifier(new DefaultLiteral());
         conversationComp.addQualifier(new AnyLiteral());
         conversationComp.setName("javax.enterprise.context.conversation");
@@ -1701,85 +1697,7 @@ public final class WebBeansUtil
         return beans;
     }
 
-    /**
-     * Checks the unproxiable condition.
-     * @param bean managed bean
-     * @param scopeType scope type
-     * @throws WebBeansConfigurationException if
-     *  bean is not proxied by the container
-     */
-    public void checkUnproxiableApiType(Bean<?> bean, Class<? extends Annotation> scopeType)
-    {
-        Asserts.assertNotNull("bean", "bean parameter can not be null");
-        Asserts.assertNotNull(scopeType, "scopeType parameter can not be null");
-
-        //Unproxiable test for NormalScoped beans
-        if (isScopeTypeNormal(scopeType))
-        {
-            ViolationMessageBuilder violationMessage = ViolationMessageBuilder.newViolation();
-
-            Class<?> beanClass;
-            if (bean instanceof OwbBean) 
-            {
-                beanClass = ((OwbBean)bean).getReturnType();
-            }
-            else 
-            {
-                beanClass = bean.getBeanClass();
-            }
-            
-            if(!beanClass.isInterface() && beanClass != Object.class)
-            {
-                if(beanClass.isPrimitive())
-                {
-                    violationMessage.addLine("It isn't possible to proxy a primitive type (" + beanClass.getName(), ")");
-                }
-
-                if(beanClass.isArray())
-                {
-                    violationMessage.addLine("It isn't possible to proxy an array type (", beanClass.getName(), ")");
-                }
-
-                if(!violationMessage.containsViolation())
-                {
-                    if (Modifier.isFinal(beanClass.getModifiers()))
-                    {
-                        violationMessage.addLine(beanClass.getName(), " is a final class! CDI doesn't allow to proxy that.");
-                    }
-
-                    Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(beanClass);
-                    for (Method m : methods)
-                    {
-                        int modifiers = m.getModifiers();
-                        if (Modifier.isFinal(modifiers) && !Modifier.isPrivate(modifiers) &&
-                            !m.isSynthetic() && !m.isBridge())
-                        {
-                            violationMessage.addLine(beanClass.getName(), " has final method "+ m + " CDI doesn't allow to proxy that.");
-                        }
-                    }
-
-                    Constructor<?> cons = getNoArgConstructor(beanClass);
-                    if (cons == null)
-                    {
-                        violationMessage.addLine(beanClass.getName(), " has no explicit no-arg constructor!",
-                                "A public or protected constructor without args is required!");
-                    }
-                    else if (Modifier.isPrivate(cons.getModifiers()))
-                    {
-                        violationMessage.addLine(beanClass.getName(), " has a >private< no-arg constructor! CDI doesn't allow to proxy that.");
-                    }
-                }
-
-                //Throw Exception
-                if(violationMessage.containsViolation())
-                {
-                    throwUnproxyableResolutionException(violationMessage);
-                }
-            }
-        }
-    }
-
-    private <T> Constructor<T> getNoArgConstructor(Class<T> clazz)
+    public <T> Constructor<T> getNoArgConstructor(Class<T> clazz)
     {
         return webBeansContext.getSecurityService().doPrivilegedGetDeclaredConstructor(clazz);
     }

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=1429574&r1=1429573&r2=1429574&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 Sun Jan  6 19:26:23 2013
@@ -539,7 +539,7 @@ public abstract class TestContext implem
         // we fully initialize the bean in this case.
         component.setFullInit(true);
 
-        WebBeansUtil.checkGenericType(component);
+        WebBeansUtil.checkGenericType(managedBeanCreator.getBean());
         managedBeanCreator.defineName();
         managedBeanCreator.defineQualifiers();
 

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/pfield/ProducerFieldComponentTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/pfield/ProducerFieldComponentTest.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/pfield/ProducerFieldComponentTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/pfield/ProducerFieldComponentTest.java Sun Jan  6 19:26:23 2013
@@ -110,6 +110,7 @@ public class ProducerFieldComponentTest 
             defineManagedBean(TypeVariableProducerField.class);
         }
         catch(Exception caught){
+            caught.printStackTrace();
             System.out.println(caught.getMessage());
             expected = caught;
         }

Modified: openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/component/JmsComponentFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/component/JmsComponentFactory.java?rev=1429574&r1=1429573&r2=1429574&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/component/JmsComponentFactory.java (original)
+++ openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/component/JmsComponentFactory.java Sun Jan  6 19:26:23 2013
@@ -20,6 +20,7 @@ package org.apache.webbeans.jms.componen
 
 import java.lang.annotation.Annotation;
 
+import javax.enterprise.context.Dependent;
 import javax.jms.Queue;
 import javax.jms.QueueConnection;
 import javax.jms.QueueReceiver;
@@ -31,7 +32,6 @@ import javax.jms.TopicPublisher;
 import javax.jms.TopicSession;
 import javax.jms.TopicSubscriber;
 
-import org.apache.webbeans.annotation.DependentScopeLiteral;
 import org.apache.webbeans.jms.JMSModel;
 import org.apache.webbeans.jms.JMSModel.JMSType;
 import org.apache.webbeans.util.Asserts;
@@ -73,7 +73,7 @@ public final class JmsComponentFactory
             component.addApiType(TopicSubscriber.class);
         }
         
-        component.setImplScopeType(new DependentScopeLiteral());
+        component.setImplScopeType(Dependent.class);
         
         Annotation[] anns = model.getBindings();