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/04 09:10:31 UTC

svn commit: r1428741 - in /openwebbeans/trunk: webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/ webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/ webbeans-impl/src/main/java/org/apache/webbeans/component/ webbeans-impl...

Author: arne
Date: Fri Jan  4 08:10:30 2013
New Revision: 1428741

URL: http://svn.apache.org/viewvc?rev=1428741&view=rev
Log:
OWB-745: made AnnotatedType required for OwbBean

Modified:
    openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/BaseEjbBean.java
    openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.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/InjectionTargetBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.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/AbstractInjectedTargetBeanCreator.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/config/BeansDeployer.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/apiTypes/tests/ApiTypeTest.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/exception/ExceptionComponentTest.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptorExceptionComponentTest.java

Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/BaseEjbBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/BaseEjbBean.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/BaseEjbBean.java (original)
+++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/BaseEjbBean.java Fri Jan  4 08:10:30 2013
@@ -57,7 +57,7 @@ public abstract class BaseEjbBean<T> ext
      */
     public BaseEjbBean(Class<T> ejbClassType, SessionBeanType type, WebBeansContext webBeansContext)
     {
-        super(WebBeansType.ENTERPRISE,ejbClassType, webBeansContext);
+        super(WebBeansType.ENTERPRISE, ejbClassType, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(ejbClassType), webBeansContext);
         
         //type of the ejb
         this.ejbType = type;

Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java (original)
+++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java Fri Jan  4 08:10:30 2013
@@ -82,7 +82,6 @@ public final class EjbUtility
         if(processAnnotatedEvent.isModifiedAnnotatedType())
         {
             ejbBeanCreator.setMetaDataProvider(MetaDataProvider.THIRDPARTY);
-            ejbBeanCreator.setAnnotatedType(annotatedType);
         }
         
         //Define meta-data

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java Fri Jan  4 08:10:30 2013
@@ -53,6 +53,7 @@ import org.apache.webbeans.intercept.web
 import org.apache.webbeans.logger.WebBeansLoggerFacade;
 import org.apache.webbeans.proxy.ProxyFactory;
 import org.apache.webbeans.spi.ResourceInjectionService;
+import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.WebBeansUtil;
 
 /**
@@ -100,9 +101,11 @@ public abstract class AbstractInjectionT
      * @param returnType bean class type
      * @param webBeansContext
      */
-    protected AbstractInjectionTargetBean(WebBeansType webBeansType, Class<T> returnType, WebBeansContext webBeansContext)
+    protected AbstractInjectionTargetBean(WebBeansType webBeansType, Class<T> returnType, AnnotatedType<T> annotatedType, WebBeansContext webBeansContext)
     {
         super(webBeansType, returnType, webBeansContext);
+        Asserts.assertNotNull(annotatedType, "AnnotatedType may not be null");
+        this.annotatedType = annotatedType;
     }
 
     /**
@@ -578,14 +581,6 @@ public abstract class AbstractInjectionT
         return annotatedType;
     }
     
-    /**
-     * {@inheritDoc}
-     */
-    public void setAnnotatedType(AnnotatedType<T> annotatedType)
-    {
-        this.annotatedType = annotatedType;
-    }
-    
     /* (non-Javadoc)
      * @see org.apache.webbeans.component.AbstractOwbBean#validatePassivationDependencies()
      */

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java Fri Jan  4 08:10:30 2013
@@ -38,7 +38,7 @@ public class ConversationBean extends Ab
      */
     public ConversationBean(WebBeansContext webBeansContext)
     {
-        super(WebBeansType.CONVERSATION, Conversation.class, webBeansContext);
+        super(WebBeansType.CONVERSATION, Conversation.class, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(Conversation.class), webBeansContext);
     }
 
     /**

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=1428741&r1=1428740&r2=1428741&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 Fri Jan  4 08:10:30 2013
@@ -41,7 +41,7 @@ public class ExtensionBean<T> extends Ab
      */
     public ExtensionBean(Class<T> returnType, WebBeansContext webBeansContext)
     {
-        super(WebBeansType.EXTENSION,returnType, webBeansContext);
+        super(WebBeansType.EXTENSION, returnType, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(returnType), webBeansContext);
         setImplScopeType(new ApplicationScopeLiteral());
     }
     

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java Fri Jan  4 08:10:30 2013
@@ -174,12 +174,6 @@ public interface InjectionTargetBean<T> 
     public void preDestroy(T instance, CreationalContext<T> creationalContext);    
     
     /**
-     * Sets annotated type.
-     * @param annotatedType annotated type
-     */
-    public void setAnnotatedType(AnnotatedType<T> annotatedType);    
-    
-    /**
      * Gets annotated type.
      * @return annotated type
      */

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java Fri Jan  4 08:10:30 2013
@@ -19,12 +19,13 @@
 package org.apache.webbeans.component;
 
 import java.io.Serializable;
-import java.lang.reflect.Constructor;
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
 
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.Any;
 import javax.enterprise.inject.Default;
+import javax.enterprise.inject.spi.AnnotatedType;
 import javax.enterprise.inject.spi.Decorator;
 
 import org.apache.webbeans.component.creation.ManagedBeanCreatorImpl;
@@ -56,9 +57,9 @@ public class ManagedBean<T> extends Abst
     private volatile boolean fullInit = true;
 
 
-    public ManagedBean(Class<T> returnType, WebBeansContext webBeansContext)
+    public ManagedBean(Class<T> returnType, AnnotatedType<T> annotatedType, WebBeansContext webBeansContext)
     {
-        this(returnType, WebBeansType.MANAGED, webBeansContext);
+        this(returnType, WebBeansType.MANAGED, annotatedType, webBeansContext);
     }
 
     /**
@@ -68,9 +69,9 @@ public class ManagedBean<T> extends Abst
      * @param type webbeans type
      * @param webBeansContext
      */
-    public ManagedBean(Class<T> returnType, WebBeansType type, WebBeansContext webBeansContext)
+    public ManagedBean(Class<T> returnType, WebBeansType type, AnnotatedType<T> annotatedType, WebBeansContext webBeansContext)
     {
-        super(type, returnType, webBeansContext);
+        super(type, returnType, annotatedType, webBeansContext);
         
         //Setting inherited meta data instance
         setInheritedMetaData();
@@ -108,7 +109,6 @@ public class ManagedBean<T> extends Abst
         {
             fullInit = true;
             ManagedBeanCreatorImpl<T> managedBeanCreator = new ManagedBeanCreatorImpl<T>(this);
-            managedBeanCreator.setAnnotatedType(getAnnotatedType());
 
             managedBeanCreator.lazyInitializeManagedBean(getBeanClass(), this);
         }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java Fri Jan  4 08:10:30 2013
@@ -19,6 +19,7 @@
 package org.apache.webbeans.component;
 
 import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.AnnotatedType;
 
 import org.apache.webbeans.config.WebBeansContext;
 
@@ -34,9 +35,9 @@ public class NewManagedBean<T> extends M
 {
     private WebBeansType definedType;
 
-    public NewManagedBean(Class<T> returnType, WebBeansType definedType, WebBeansContext webBeansContext)
+    public NewManagedBean(Class<T> returnType, WebBeansType definedType, AnnotatedType<T> annotatedType, WebBeansContext webBeansContext)
     {
-        super(returnType, webBeansContext);
+        super(returnType, annotatedType, webBeansContext);
         this.definedType = definedType;        
     }
 

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=1428741&r1=1428740&r2=1428741&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 Fri Jan  4 08:10:30 2013
@@ -18,7 +18,6 @@
  */
 package org.apache.webbeans.component.creation;
 
-import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 import java.util.Iterator;
 import java.util.Set;
@@ -45,9 +44,6 @@ public class AbstractBeanCreator<T> impl
     /**Default metadata provider*/
     private MetaDataProvider metadataProvider = MetaDataProvider.DEFAULT;
     
-    /**Bean annotations*/
-    private final Annotation[] beanAnnotations;
-    
     /**
      * If annotated type is set by ProcessAnnotatedType event, used this annotated type
      * to define bean instance instead of using class artifacts.
@@ -62,10 +58,10 @@ public class AbstractBeanCreator<T> impl
      * @param bean bean instance
      * @param beanAnnotations annotations
      */
-    public AbstractBeanCreator(AbstractOwbBean<T> bean, Annotation[] beanAnnotations)
+    public AbstractBeanCreator(AbstractOwbBean<T> bean, AnnotatedType<T> annotatedType)
     {
         this.bean = bean;
-        this.beanAnnotations = beanAnnotations;
+        this.annotatedType = annotatedType;
         definitionUtil = bean.getWebBeansContext().getDefinitionUtil();
     }
 
@@ -82,15 +78,8 @@ public class AbstractBeanCreator<T> impl
      */
     public void defineApiType()
     {
-        if(isDefaultMetaDataProvider())
-        {
-            DefinitionUtil.defineApiTypes(bean, bean.getReturnType());
-        }
-        else
-        {
-            Set<Type> types = annotatedType.getTypeClosure();
-            bean.getTypes().addAll(types);
-        }
+        Set<Type> types = annotatedType.getTypeClosure();
+        bean.getTypes().addAll(types);
         Set<String> ignored = bean.getWebBeansContext().getOpenWebBeansConfiguration().getIgnoredInterfaces();
         for (Iterator<Type> i = bean.getTypes().iterator(); i.hasNext();)
         {
@@ -107,15 +96,7 @@ public class AbstractBeanCreator<T> impl
      */
     public void defineQualifier()
     {
-        if(isDefaultMetaDataProvider())
-        {
-            definitionUtil.defineQualifiers(bean, beanAnnotations);
-        }
-        else
-        {
-            definitionUtil.defineQualifiers(bean, AnnotationUtil.getAnnotationsFromSet(annotatedType.getAnnotations()));
-        }
-        
+        definitionUtil.defineQualifiers(bean, AnnotationUtil.getAnnotationsFromSet(annotatedType.getAnnotations()));
     }
     
     /**
@@ -123,16 +104,8 @@ public class AbstractBeanCreator<T> impl
      */
     public void defineName(String defaultName)
     {
-        if(isDefaultMetaDataProvider())
-        {
-            definitionUtil.defineName(bean, beanAnnotations, defaultName);
-        }
-        else
-        {
-            definitionUtil.defineName(bean, AnnotationUtil.getAnnotationsFromSet(annotatedType.getAnnotations()),
+        definitionUtil.defineName(bean, AnnotationUtil.getAnnotationsFromSet(annotatedType.getAnnotations()),
                     WebBeansUtil.getManagedBeanDefaultName(annotatedType.getJavaClass().getSimpleName()));
-        }
-        
     }
 
     /**
@@ -140,14 +113,7 @@ public class AbstractBeanCreator<T> impl
      */
     public void defineScopeType(String errorMessage, boolean allowLazyInit)
     {
-        if(isDefaultMetaDataProvider())
-        {
-            definitionUtil.defineScopeType(bean, beanAnnotations, errorMessage, allowLazyInit);
-        }
-        else
-        {
-            definitionUtil.defineScopeType(bean, AnnotationUtil.getAnnotationsFromSet(annotatedType.getAnnotations()), errorMessage, false);
-        }
+        definitionUtil.defineScopeType(bean, AnnotationUtil.getAnnotationsFromSet(annotatedType.getAnnotations()), errorMessage, false);
     }
 
     /**
@@ -163,15 +129,7 @@ public class AbstractBeanCreator<T> impl
      */
     public void defineStereoTypes()
     {
-        if(isDefaultMetaDataProvider())
-        {
-            definitionUtil.defineStereoTypes(bean, beanAnnotations);
-        }
-        else
-        {
-            definitionUtil.defineStereoTypes(bean, AnnotationUtil.getAnnotationsFromSet(annotatedType.getAnnotations()));
-        }
-        
+        definitionUtil.defineStereoTypes(bean, AnnotationUtil.getAnnotationsFromSet(annotatedType.getAnnotations()));
     }
     
     /**
@@ -209,13 +167,8 @@ public class AbstractBeanCreator<T> impl
         return bean;
     }
 
-   protected AnnotatedType<T> getAnnotatedType()
+    protected AnnotatedType<T> getAnnotatedType()
     {
         return annotatedType;
     }
-    
-    public void setAnnotatedType(AnnotatedType<T> annotatedType)
-    {
-        this.annotatedType = annotatedType;
-    }
 }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.java Fri Jan  4 08:10:30 2013
@@ -43,7 +43,7 @@ public abstract class AbstractInjectedTa
      */
     public AbstractInjectedTargetBeanCreator(AbstractInjectionTargetBean<T> bean)
     {
-        super(bean, bean.getReturnType().getDeclaredAnnotations());
+        super(bean, bean.getAnnotatedType());
     }
     
  

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=1428741&r1=1428740&r2=1428741&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 Fri Jan  4 08:10:30 2013
@@ -336,7 +336,6 @@ public class ManagedBeanCreatorImpl<T> e
 
             if (delegate != null)
             {
-                delegate.setAnnotatedType(processInjectionTargetEvent.getAnnotatedType());
                 WebBeansDecoratorConfig.configureDecoratorClass(delegate);
             }
             else

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java Fri Jan  4 08:10:30 2013
@@ -834,15 +834,13 @@ public class BeansDeployer
             webBeansContext.getManagedBeanConfigurator().checkManagedBeanCondition(clazz);
 
             //Temporary managed bean instance creationa
-            ManagedBean<T> managedBean = new ManagedBean<T>(clazz, webBeansContext);
+            ManagedBean<T> managedBean = new ManagedBean<T>(clazz, annotatedType, webBeansContext);
             ManagedBeanCreatorImpl<T> managedBeanCreator = new ManagedBeanCreatorImpl<T>(managedBean);
 
             boolean annotationTypeSet = false;
             if(processAnnotatedEvent.isModifiedAnnotatedType())
             {
                 annotationTypeSet = true;
-                managedBean.setAnnotatedType(annotatedType);
-                managedBeanCreator.setAnnotatedType(annotatedType);
                 managedBeanCreator.setMetaDataProvider(MetaDataProvider.THIRDPARTY);
             }
 

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java Fri Jan  4 08:10:30 2013
@@ -1140,21 +1140,16 @@ public final class DefinitionUtil
             return;
         }
 
-        AnnotatedType<?> annotatedType;
-
         // If bean is not session bean
         if(!(bean instanceof EnterpriseBeanMarker))
         {
-            annotatedType = webBeansContext.getAnnotatedElementFactory().getAnnotatedType(bean.getReturnType());
-
-            bean.getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, bean.getInterceptorStack());
+            bean.getWebBeansContext().getEJBInterceptorConfig().configure(bean.getAnnotatedType(), bean.getInterceptorStack());
         }
         else
         {
             //Check for injected fields in EJB @Interceptors
             List<InterceptorData> stack = new ArrayList<InterceptorData>();
-            annotatedType = webBeansContext.getAnnotatedElementFactory().getAnnotatedType(bean.getBeanClass());
-            bean.getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, stack);
+            bean.getWebBeansContext().getEJBInterceptorConfig().configure(bean.getAnnotatedType(), stack);
 
             final OpenWebBeansEjbPlugin ejbPlugin = bean.getWebBeansContext().getPluginLoader().getEjbPlugin();
             final boolean isStateful = ejbPlugin.isStatefulBean(bean.getBeanClass());

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java Fri Jan  4 08:10:30 2013
@@ -24,6 +24,7 @@ import java.lang.reflect.Modifier;
 import java.util.Set;
 
 import javax.decorator.Decorator;
+import javax.enterprise.inject.spi.AnnotatedType;
 import javax.interceptor.Interceptor;
 
 import org.apache.webbeans.component.ManagedBean;
@@ -107,7 +108,7 @@ public final class ManagedBeanConfigurat
      * @deprecated
      */
     @SuppressWarnings("unchecked")
-    public <T> ManagedBean<T> define(Class<T> clazz, WebBeansType type) throws WebBeansConfigurationException
+    public <T> ManagedBean<T> define(Class<T> clazz, WebBeansType type, AnnotatedType<T> anntotatedType) throws WebBeansConfigurationException
     {
         BeanManagerImpl manager = webBeansContext.getBeanManagerImpl();
         DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil();
@@ -131,7 +132,7 @@ public final class ManagedBeanConfigurat
             throw new WebBeansConfigurationException("ManagedBean implementation class : " + clazz.getName() + " may not _defined as interface");
         }
 
-        ManagedBean<T> component = new ManagedBean<T>(clazz, type, webBeansContext);
+        ManagedBean<T> component = new ManagedBean<T>(clazz, type, anntotatedType, webBeansContext);
         manager.putProducer(component, new InjectionTargetProducer(component));
 
         webBeansContext.getWebBeansUtil().setInjectionTargetBeanEnableFlag(component);

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java Fri Jan  4 08:10:30 2013
@@ -91,7 +91,7 @@ public class WebBeansDecorator<T> extend
      */
     public WebBeansDecorator(AbstractInjectionTargetBean<T> wrappedBean, Decorator<T> customDecorator)
     {
-        super(WebBeansType.DECORATOR,wrappedBean.getReturnType(), wrappedBean.getWebBeansContext());
+        super(WebBeansType.DECORATOR, wrappedBean.getReturnType(), wrappedBean.getAnnotatedType(), wrappedBean.getWebBeansContext());
         this.wrappedBean = wrappedBean;
         this.customDecorator = customDecorator;
         ignoredDecoratorInterfaces = getIgnoredDecoratorInterfaces(wrappedBean);
@@ -104,7 +104,7 @@ public class WebBeansDecorator<T> extend
      */
     public WebBeansDecorator(AbstractInjectionTargetBean<T> wrappedBean)
     {
-        super(WebBeansType.DECORATOR,wrappedBean.getReturnType(), wrappedBean.getWebBeansContext());
+        super(WebBeansType.DECORATOR,wrappedBean.getReturnType(), wrappedBean.getAnnotatedType(), wrappedBean.getWebBeansContext());
         
         this.wrappedBean = wrappedBean;
         clazz = wrappedBean.getReturnType();

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java Fri Jan  4 08:10:30 2013
@@ -91,7 +91,7 @@ public class InterceptorsManager
     {
         for(Class<?> interceptorClass : enabledInterceptors)
         {
-            AnnotatedType<?> annotatedType = webBeansContext.getAnnotatedElementFactory().getAnnotatedType(interceptorClass);
+            AnnotatedType<?> annotatedType = webBeansContext.getAnnotatedElementFactory().newAnnotatedType(interceptorClass);
 
             //Validate decorator classes
             if(!annotatedType.isAnnotationPresent(Interceptor.class) && !manager.containsCustomInterceptorClass(interceptorClass))

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java Fri Jan  4 08:10:30 2013
@@ -141,24 +141,12 @@ public final class WebBeansInterceptorCo
     {
         Class<?> clazz = ((AbstractOwbBean<?>)component).getReturnType();
         AnnotatedType<?> annotatedType = component.getAnnotatedType();
-        Set<Annotation> annotations = null;
-
-        if(annotatedType != null)
-        {
-            annotations = annotatedType.getAnnotations();
-        }
+        Set<Annotation> annotations = annotatedType.getAnnotations();
 
         AnnotationManager annotationManager = webBeansContext.getAnnotationManager();
 
         Annotation[] typeAnns;
-        if(annotations != null)
-        {
-            typeAnns = annotations.toArray(new Annotation[annotations.size()]);
-        }
-        else
-        {
-            typeAnns = clazz.getDeclaredAnnotations();
-        }
+        typeAnns = annotations.toArray(new Annotation[annotations.size()]);
         Set<Annotation> bindingTypeSet = annotationManager.getInterceptorAnnotations(typeAnns);
 
         Annotation[] anns;
@@ -225,14 +213,7 @@ public final class WebBeansInterceptorCo
         }
 
         // Method level interceptors.
-        if(annotatedType == null)
-        {
-            addMethodInterceptors(component, clazz, stack, componentInterceptors, bindingTypeSet);
-        }
-        else
-        {
-            addMethodInterceptors(annotatedType, stack, componentInterceptors);
-        }
+        addMethodInterceptors(annotatedType, stack, componentInterceptors);
         filterInterceptorsPerBDA(component,stack);
 
         Collections.sort(stack, new InterceptorDataComparator(component.getWebBeansContext()));

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java Fri Jan  4 08:10:30 2013
@@ -19,7 +19,6 @@
 package org.apache.webbeans.intercept.ejb;
 
 import java.lang.reflect.Method;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
@@ -34,7 +33,6 @@ import javax.interceptor.Interceptors;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.intercept.InterceptorData;
 import org.apache.webbeans.util.Asserts;
-import org.apache.webbeans.util.ClassUtil;
 
 /**
  * Configures the EJB related interceptors.
@@ -70,7 +68,7 @@ public final class EJBInterceptorConfig
 
             for (Class<?> intClass : interceptorClasses)
             {
-                configureInterceptorAnnots(intClass, interceptorStack, false, null);
+                configureInterceptorAnnots(webBeansContext.getAnnotatedElementFactory().newAnnotatedType(intClass), interceptorStack, false, null);
             }
 
         }
@@ -87,23 +85,16 @@ public final class EJBInterceptorConfig
      * @param isMethod if interceptor definition is on the bean
      * @param m if isMethod true, then it is intercepted method
      */
-    private void configureInterceptorAnnots(Class<?> clazz, List<InterceptorData> stack, boolean isMethod, Method m)
+    private void configureInterceptorAnnots(AnnotatedType<?> annotatedType, List<InterceptorData> stack, boolean isMethod, Method m)
     {
-        // 1- Look interceptor class super class
-        // 2- Look interceptor class
-        Class<?> superClass = clazz.getSuperclass();
-        if (superClass != null && !superClass.equals(Object.class))
-        {
-            configureInterceptorAnnots(superClass, stack, false, null);
-        }
 
-        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz, AroundInvoke.class,
+        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, annotatedType, AroundInvoke.class,
                                                                       true, isMethod, stack, m, false);
-        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz, AroundTimeout.class,
+        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, annotatedType, AroundTimeout.class,
                                                                       true, isMethod, stack, m, false);
-        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz, PostConstruct.class,
+        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, annotatedType, PostConstruct.class,
                                                                       true, isMethod, stack, m, false);
-        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz, PreDestroy.class,
+        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, annotatedType, PreDestroy.class,
                                                                       true, isMethod, stack, m, false);
 
     }
@@ -132,57 +123,21 @@ public final class EJBInterceptorConfig
 
                 for (Class<?> intClass : intClasses)
                 {
-                    configureInterceptorAnnots(intClass, stack, true, method);
+                    configureInterceptorAnnots(webBeansContext.getAnnotatedElementFactory().newAnnotatedType(intClass), stack, true, method);
                 }
 
             }
         }
 
-        Class clazz = annotatedType.getJavaClass();
-        // 2- Super clazz
-        List<Class<?>> listSuperClazz = ClassUtil.getSuperClasses(clazz, new ArrayList<Class<?>>());
-        configureBeanSuperClassAnnots(listSuperClazz, stack);
-
         // 3- Bean itself
-        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz, AroundInvoke.class,
+        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, annotatedType, AroundInvoke.class,
                                                                       false, false, stack, null, false);
-        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz, AroundTimeout.class,
+        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, annotatedType, AroundTimeout.class,
                                                                       false, false, stack, null, false);
-        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz, PostConstruct.class,
+        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, annotatedType, PostConstruct.class,
                                                                       false, false, stack, null, false);
-        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz, PreDestroy.class,
+        webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, annotatedType, PreDestroy.class,
                                                                       false, false, stack, null, false);
 
     }
-
-    /**
-     * Configures super classes interceptors.
-     * @param list super classes
-     * @param stack interceptor stack
-     */
-    private void configureBeanSuperClassAnnots(List<Class<?>> list, List<InterceptorData> stack)
-    {
-        int i = list.size();
-
-        for (int j = i - 1; j >= 0; j--)
-        {
-            Class<?> clazz = list.get(j);
-            if (!clazz.equals(Object.class))
-            {
-                webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz,
-                                                                              AroundInvoke.class, false,
-                                                                              false, stack, null, false);
-                webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz,
-                                                                              AroundTimeout.class, false,
-                                                                              false, stack, null, false);
-                webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz,
-                                                                              PostConstruct.class, false,
-                                                                              false, stack, null, false);
-                webBeansContext.getWebBeansUtil().configureInterceptorMethods(null, clazz,
-                                                                              PreDestroy.class, false,
-                                                                              false, stack, null, false);
-            }
-        }
-    }
-
 }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.java Fri Jan  4 08:10:30 2013
@@ -256,23 +256,22 @@ public class WebBeansInterceptorBean<T> 
         
         if(type.equals(InterceptionType.AROUND_INVOKE))
         {
-            method = webBeansContext.getWebBeansUtil().checkAroundInvokeAnnotationCriterias(getClazz(), AroundInvoke.class)
-                    .iterator().next();
+            Set<Method> methods = webBeansContext.getWebBeansUtil().checkAroundInvokeAnnotationCriterias(getClazz(), AroundInvoke.class);
+            method = methods == null ? null : methods.iterator().next();
         }
 
         else if(type.equals(InterceptionType.AROUND_TIMEOUT))
         {
-            method = webBeansContext.getWebBeansUtil().checkAroundInvokeAnnotationCriterias(getClazz(), AroundTimeout.class)
-                    .iterator().next();
+            Set<Method> methods = webBeansContext.getWebBeansUtil().checkAroundInvokeAnnotationCriterias(getClazz(), AroundTimeout.class);
+            method = methods == null ? null : methods.iterator().next();
         }
         
         else
         {
             Class<? extends Annotation> interceptorTypeAnnotationClazz =
                 webBeansContext.getInterceptorUtil().getInterceptorAnnotationClazz(type);
-            method
-                = getWebBeansContext().getWebBeansUtil().checkCommonAnnotationCriterias(getClazz(), interceptorTypeAnnotationClazz, true)
-                    .iterator().next();
+            Set<Method> methods = getWebBeansContext().getWebBeansUtil().checkCommonAnnotationCriterias(getClazz(), interceptorTypeAnnotationClazz, true);
+            method = methods == null ? null : methods.iterator().next();
         }
         
         return method;

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java Fri Jan  4 08:10:30 2013
@@ -717,12 +717,10 @@ public final class WebBeansAnnotatedType
                 Class<T> clazz = type.getJavaClass();
                 
                 //Just creating temporary for getting injected fields
-                ManagedBean<T> managedBean = new ManagedBean<T>(clazz,WebBeansType.MANAGED, webBeansContext);
+                ManagedBean<T> managedBean = new ManagedBean<T>(clazz,WebBeansType.MANAGED, type, webBeansContext);
                 managedBean.setImplScopeType(new DependentScopeLiteral());
-                managedBean.setAnnotatedType(type);
                             
                 AnnotatedTypeBeanCreatorImpl<T> managedBeanCreator = new AnnotatedTypeBeanCreatorImpl<T>(managedBean);            
-                managedBeanCreator.setAnnotatedType(type);
                 
                 //Just define injections
                 managedBeanCreator.defineInjectedFields();

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=1428741&r1=1428740&r2=1428741&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 Fri Jan  4 08:10:30 2013
@@ -580,7 +580,7 @@ public final class WebBeansUtil
 
         if (webBeansContext.getManagedBeanConfigurator().isManagedBean(clazz))
         {
-            comp = new NewManagedBean<T>(clazz, WebBeansType.MANAGED, webBeansContext);
+            comp = new NewManagedBean<T>(clazz, WebBeansType.MANAGED, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz), webBeansContext);
             comp.setImplScopeType(new DependentScopeLiteral());
             comp.setConstructor(defineConstructor(clazz));
             definitionUtil.addConstructorInjectionPointMetaData(comp, comp.getConstructor());
@@ -590,7 +590,7 @@ public final class WebBeansUtil
         }
         else if (EJBWebBeansConfigurator.isSessionBean(clazz, webBeansContext))
         {
-            comp = new NewManagedBean<T>(clazz, WebBeansType.ENTERPRISE, webBeansContext);
+            comp = new NewManagedBean<T>(clazz, WebBeansType.ENTERPRISE, webBeansContext.getAnnotatedElementFactory().getAnnotatedType(clazz), webBeansContext);
             comp.setImplScopeType(new DependentScopeLiteral());
         }
         else
@@ -1044,7 +1044,7 @@ public final class WebBeansUtil
      * Configures the interceptor stack of the web beans component.
      *
      * @param interceptorClass interceptor class
-     * @param interceptionType annotation type
+     * @param annotation annotation type
      * @param definedInInterceptorClass check if annotation is defined in
      *            interceptor class (as opposed to bean class)
      * @param definedInMethod check if the interceptor is defined in the comp.
@@ -1057,7 +1057,7 @@ public final class WebBeansUtil
      */
     public void configureInterceptorMethods(Interceptor<?> webBeansInterceptor,
                                              Class<?> interceptorClass,
-                                             Class<? extends Annotation> interceptionType,
+                                             Class<? extends Annotation> annotation,
                                              boolean definedInInterceptorClass,
                                              boolean definedInMethod,
                                              List<InterceptorData> stack,
@@ -1091,14 +1091,14 @@ public final class WebBeansUtil
             }
         }
 
-        if (interceptionType.equals(AroundInvoke.class) || interceptionType.equals(AroundTimeout.class))
+        if (annotation.equals(AroundInvoke.class) || annotation.equals(AroundTimeout.class))
         {
-            methods = checkAroundInvokeAnnotationCriterias(interceptorClass, interceptionType);
+            methods = checkAroundInvokeAnnotationCriterias(interceptorClass, annotation);
         }
-        else if (interceptionType.equals(PostConstruct.class) || ((postActivateClass != null) && (interceptionType.equals(postActivateClass)))
-                 || interceptionType.equals(PreDestroy.class) || ((prePassivateClass != null) && (interceptionType.equals(prePassivateClass))))
+        else if (annotation.equals(PostConstruct.class) || ((postActivateClass != null) && (annotation.equals(postActivateClass)))
+                 || annotation.equals(PreDestroy.class) || ((prePassivateClass != null) && (annotation.equals(prePassivateClass))))
         {
-            methods = checkCommonAnnotationCriterias(interceptorClass, interceptionType, definedInInterceptorClass);
+            methods = checkCommonAnnotationCriterias(interceptorClass, annotation, definedInInterceptorClass);
         }
 
         if (methods != null && !methods.isEmpty())
@@ -1116,7 +1116,7 @@ public final class WebBeansUtil
                     intData.setInterceptorClass(interceptorClass);
                 }
 
-                intData.setInterceptorMethod(method, interceptionType);
+                intData.setInterceptorMethod(method, annotation);
 
                 stack.add(intData);
             }
@@ -2526,10 +2526,8 @@ public final class WebBeansUtil
     {
         Class<T> clazz = type.getJavaClass();
 
-        ManagedBean<T> managedBean = new ManagedBean<T>(clazz,WebBeansType.MANAGED, webBeansContext);
-        managedBean.setAnnotatedType(type);
+        ManagedBean<T> managedBean = new ManagedBean<T>(clazz,WebBeansType.MANAGED, type, webBeansContext);
         ManagedBeanCreatorImpl<T> managedBeanCreator = new ManagedBeanCreatorImpl<T>(managedBean);
-        managedBeanCreator.setAnnotatedType(type);
 
         managedBeanCreator.defineApiType();
 
@@ -2688,10 +2686,8 @@ public final class WebBeansUtil
     {
         Class<T> clazz = type.getJavaClass();
 
-        ManagedBean<T> managedBean = new ManagedBean<T>(clazz,WebBeansType.MANAGED, webBeansContext);
-        managedBean.setAnnotatedType(type);
+        ManagedBean<T> managedBean = new ManagedBean<T>(clazz,WebBeansType.MANAGED, type, webBeansContext);
         AnnotatedTypeBeanCreatorImpl<T> managedBeanCreator = new AnnotatedTypeBeanCreatorImpl<T>(managedBean);
-        managedBeanCreator.setAnnotatedType(type);
 
         managedBeanCreator.defineApiType();
 

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/apiTypes/tests/ApiTypeTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/apiTypes/tests/ApiTypeTest.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/apiTypes/tests/ApiTypeTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/apiTypes/tests/ApiTypeTest.java Fri Jan  4 08:10:30 2013
@@ -40,7 +40,7 @@ public class ApiTypeTest extends Abstrac
     @Test
     public void testApiType()
     {
-        ManagedBean<ApiTypeBean> bean = new ManagedBean<ApiTypeBean>(ApiTypeBean.class, WebBeansContext.getInstance());
+        ManagedBean<ApiTypeBean> bean = new ManagedBean<ApiTypeBean>(ApiTypeBean.class, WebBeansContext.currentInstance().getAnnotatedElementFactory().newAnnotatedType(ApiTypeBean.class), WebBeansContext.currentInstance());
         DefinitionUtil.defineApiTypes(bean, ApiTypeBean.class);
         
         Set<Type> type = bean.getTypes();

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=1428741&r1=1428740&r2=1428741&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 Fri Jan  4 08:10:30 2013
@@ -263,7 +263,7 @@ public abstract class TestContext implem
         ManagedBean<T> bean;
 
         WebBeansContext webBeansContext = WebBeansContext.getInstance();
-        bean = webBeansContext.getManagedBeanConfigurator().define(clazz, WebBeansType.MANAGED);
+        bean = webBeansContext.getManagedBeanConfigurator().define(clazz, WebBeansType.MANAGED, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz));
         if (bean != null)
         {
             DecoratorUtil.checkManagedBeanDecoratorConditions(bean,null);
@@ -297,7 +297,7 @@ public abstract class TestContext implem
         webBeansContext.getInterceptorsManager().addNewInterceptor(clazz);
         AnnotatedType annotatedType = webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz);
         webBeansContext.getInterceptorUtil().checkInterceptorConditions(annotatedType);
-        component = webBeansContext.getManagedBeanConfigurator().define(clazz, WebBeansType.INTERCEPTOR);
+        component = webBeansContext.getManagedBeanConfigurator().define(clazz, WebBeansType.INTERCEPTOR, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz));
         webBeansContext.getWebBeansInterceptorConfig().configureInterceptorClass((ManagedBean<Object>) component,
                                                             webBeansContext.getAnnotationManager().getInterceptorBindingMetaAnnotations(
                                                                 clazz.getDeclaredAnnotations()));
@@ -321,7 +321,7 @@ public abstract class TestContext implem
         if (webBeansContext.getDecoratorsManager().isDecoratorEnabled(clazz))
         {
             DecoratorUtil.checkDecoratorConditions(clazz);
-            component = webBeansContext.getManagedBeanConfigurator().define(clazz, WebBeansType.DECORATOR);
+            component = webBeansContext.getManagedBeanConfigurator().define(clazz, WebBeansType.DECORATOR, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz));
 
             if (component != null)
             {

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/exception/ExceptionComponentTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/exception/ExceptionComponentTest.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/exception/ExceptionComponentTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/exception/ExceptionComponentTest.java Fri Jan  4 08:10:30 2013
@@ -210,7 +210,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<MoreThanOnePostConstructComponent> component = defineManagedBean(MoreThanOnePostConstructComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -228,7 +228,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<PostContructMethodHasParameterComponent> component = defineManagedBean(PostContructMethodHasParameterComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -246,7 +246,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(PostContructMethodHasReturnTypeComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -264,7 +264,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(PostContructMethodHasCheckedExceptionComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -282,7 +282,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(PostContructMethodHasStaticComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -300,7 +300,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(MoreThanOneAroundInvokeComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -328,7 +328,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(AroundInvokeWithoutParameterComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -346,7 +346,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(AroundInvokeWithoutReturnTypeComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -364,7 +364,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(AroundInvokeWithWrongReturnTypeComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -382,7 +382,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(AroundInvokeWithStaticMethodComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -400,7 +400,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(AroundInvokeWithFinalMethodComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)
@@ -418,7 +418,7 @@ public class ExceptionComponentTest exte
         {
             clear();
             AbstractInjectionTargetBean<?> component = defineManagedBean(NoArgConstructorInterceptorComponent.class);
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptorExceptionComponentTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptorExceptionComponentTest.java?rev=1428741&r1=1428740&r2=1428741&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptorExceptionComponentTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptorExceptionComponentTest.java Fri Jan  4 08:10:30 2013
@@ -50,7 +50,7 @@ public class EJBInterceptorExceptionComp
         {
             AbstractInjectionTargetBean<MultpleInterceptor> component = defineManagedBean(MultpleInterceptor.class);
 
-            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().getAnnotatedType(component.getReturnType());
+            AnnotatedType annotatedType = getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(component.getReturnType());
             getWebBeansContext().getEJBInterceptorConfig().configure(annotatedType, component.getInterceptorStack());
         }
         catch (WebBeansConfigurationException e)