You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2014/12/20 10:18:36 UTC

svn commit: r1646933 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: config/BeansDeployer.java portable/events/discovery/AfterTypeDiscoveryImpl.java

Author: rmannibucau
Date: Sat Dec 20 09:18:36 2014
New Revision: 1646933

URL: http://svn.apache.org/r1646933
Log:
ensuring we add new AnnotatedType added through fterTypeDiscovery

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java

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=1646933&r1=1646932&r2=1646933&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 Sat Dec 20 09:18:36 2014
@@ -110,6 +110,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -228,11 +229,11 @@ public class BeansDeployer
                 List<AnnotatedType<?>> annotatedTypes = annotatedTypesFromClassPath(scanner);
 
                 //Deploy additional Annotated Types
-                addAdditionalAnnotatedTypes(annotatedTypes);
+                addAdditionalAnnotatedTypes(webBeansContext.getBeanManagerImpl().getAdditionalAnnotatedTypes(), annotatedTypes);
 
                 registerAlternativesDecoratorsAndInterceptorsWithPriority(annotatedTypes);
 
-                fireAfterTypeDiscoveryEvent();
+                addAdditionalAnnotatedTypes(fireAfterTypeDiscoveryEvent(), annotatedTypes);
 
                 // Handle Specialization
                 removeSpecializedTypes(annotatedTypes);
@@ -586,11 +587,13 @@ public class BeansDeployer
     /**
      * Fires event after bean discovery.
      */
-    private void fireAfterTypeDiscoveryEvent()
+    private final List<AnnotatedType<?>> fireAfterTypeDiscoveryEvent()
     {
         final BeanManagerImpl manager = webBeansContext.getBeanManagerImpl();
+        final List<AnnotatedType<?>> newAt = new LinkedList<AnnotatedType<?>>();
         manager.fireLifecycleEvent(new AfterTypeDiscoveryImpl(
                 webBeansContext,
+                newAt,
                 webBeansContext.getInterceptorsManager().getPrioritizedInterceptors(),
                 webBeansContext.getDecoratorsManager().getPrioritizedDecorators(),
                 webBeansContext.getAlternativesManager().getPrioritizedAlternatives()));
@@ -599,6 +602,7 @@ public class BeansDeployer
 
         webBeansContext.getWebBeansUtil().inspectErrorStack(
             "There are errors that are added by AfterTypeDiscovery event observers. Look at logs for further details");
+        return newAt;
     }
 
     /**
@@ -943,14 +947,11 @@ public class BeansDeployer
      * Process any AnnotatedTypes which got added by BeforeBeanDiscovery#addAnnotatedType
      * @param annotatedTypes
      */
-    private void addAdditionalAnnotatedTypes(List<AnnotatedType<?>> annotatedTypes)
+    private void addAdditionalAnnotatedTypes(Collection<AnnotatedType<?>> toDeploy, List<AnnotatedType<?>> annotatedTypes)
     {
         BeanManagerImpl beanManager = webBeansContext.getBeanManagerImpl();
 
-
-        Collection<AnnotatedType<?>> additionalAnnotatedTypes = beanManager.getAdditionalAnnotatedTypes();
-
-        for (AnnotatedType<?> annotatedType : additionalAnnotatedTypes)
+        for (AnnotatedType<?> annotatedType : toDeploy)
         {
             // Fires ProcessAnnotatedType
             ProcessSyntheticAnnotatedTypeImpl<?> processAnnotatedEvent = !annotatedType.getJavaClass().isAnnotation() ?

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java?rev=1646933&r1=1646932&r2=1646933&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java Sat Dec 20 09:18:36 2014
@@ -34,14 +34,17 @@ public class AfterTypeDiscoveryImpl impl
     private final List<Class<?>> sortedAlternatives;
     private final List<Class<?>> sortedInterceptors;
     private final List<Class<?>> sortedDecorators;
+    private final List<AnnotatedType<?>> newAt;
     private Object extension;
 
     public AfterTypeDiscoveryImpl(WebBeansContext webBeansContext,
+                                  List<AnnotatedType<?>> newAt,
                                   List<Class<?>> sortedInterceptors,
                                   List<Class<?>> sortedDecorators,
                                   List<Class<?>> sortedAlternatives)
     {
         this.webBeansContext = webBeansContext;
+        this.newAt = newAt;
         this.sortedAlternatives = sortedAlternatives;
         this.sortedInterceptors = sortedInterceptors;
         this.sortedDecorators = sortedDecorators;
@@ -68,8 +71,8 @@ public class AfterTypeDiscoveryImpl impl
     @Override
     public void addAnnotatedType(AnnotatedType<?> type, String id)
     {
-        //X TODO evaluate and file Extension
         webBeansContext.getBeanManagerImpl().addAdditionalAnnotatedType(extension, type, id);
+        newAt.add(type);
     }
 
     @Override