You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2013/01/06 20:07:58 UTC

svn commit: r1429571 - in /openwebbeans/trunk/webbeans-impl/src: main/java/org/apache/webbeans/config/ main/java/org/apache/webbeans/container/ main/java/org/apache/webbeans/decorator/ main/java/org/apache/webbeans/portable/events/discovery/ test/java/...

Author: struberg
Date: Sun Jan  6 19:07:58 2013
New Revision: 1429571

URL: http://svn.apache.org/viewvc?rev=1429571&view=rev
Log:
OWB-344 move the Decorator list to the DecoratorManager

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DecoratorsManager.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.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=1429571&r1=1429570&r2=1429571&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 Sun Jan  6 19:07:58 2013
@@ -324,11 +324,10 @@ public class BeansDeployer
         webBeansContext.getDecoratorsManager().validateDecoratorClasses();
         webBeansContext.getInterceptorsManager().validateInterceptorClasses();
 
-        BeanManagerImpl manager = webBeansContext.getBeanManagerImpl();
         Set<Bean<?>> beans = new HashSet<Bean<?>>();
         
         //Adding decorators to validate
-        Set<Decorator<?>> decorators = manager.getDecorators();
+        Set<Decorator<?>> decorators = webBeansContext.getDecoratorsManager().getDecorators();
         for(Decorator decorator : decorators)
         {
             WebBeansDecorator wbDec = (WebBeansDecorator)decorator;
@@ -358,7 +357,7 @@ public class BeansDeployer
         
         beans.clear();
         
-        beans = manager.getBeans();
+        beans = webBeansContext.getBeanManagerImpl().getBeans();
         
         //Validate Others
         validate(beans);                

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=1429571&r1=1429570&r2=1429571&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java Sun Jan  6 19:07:58 2013
@@ -71,7 +71,6 @@ import org.apache.webbeans.config.WebBea
 import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.decorator.DecoratorComparator;
 import org.apache.webbeans.decorator.WebBeansDecorator;
-import org.apache.webbeans.decorator.WebBeansDecoratorConfig;
 import org.apache.webbeans.event.NotificationManager;
 import org.apache.webbeans.exception.WebBeansConfigurationException;
 import org.apache.webbeans.exception.definition.DuplicateDefinitionException;
@@ -133,9 +132,6 @@ public class BeanManagerImpl implements 
     /**Normal scoped cache proxies*/
     private Map<Contextual<?>, Object> cacheProxies = new ConcurrentHashMap<Contextual<?>, Object>();
 
-    /**Activity decorators*/
-    private Set<Decorator<?>> webBeansDecorators = new CopyOnWriteArraySet<Decorator<?>>();
-
     /**Event notification manager instance*/
     private NotificationManager notificationManager = null;
 
@@ -403,21 +399,6 @@ public class BeanManagerImpl implements 
         return deploymentBeans;
     }
     
-    
-    public BeanManager addDecorator(Decorator decorator)
-    {
-        webBeansDecorators.add(decorator);
-        if (decorator instanceof OwbBean)
-        {
-            OwbBean<?> owbBean = (OwbBean<?>)decorator;
-            
-            if(owbBean.isPassivationCapable())
-            {
-                addPassivationInfo((OwbBean)decorator);
-            }
-        }
-        return this;
-    }
 
     /**
      * {@inheritDoc}
@@ -425,7 +406,7 @@ public class BeanManagerImpl implements 
     public List<Decorator<?>> resolveDecorators(Set<Type> types, Annotation... bindingTypes)
     {
         webBeansContext.getAnnotationManager().checkDecoratorResolverParams(types, bindingTypes);
-        Set<Decorator<?>> intsSet = WebBeansDecoratorConfig.findDeployedWebBeansDecorator(this, types, bindingTypes);
+        Set<Decorator<?>> intsSet = webBeansContext.getDecoratorsManager().findDeployedWebBeansDecorator(types, bindingTypes);
         Iterator<Decorator<?>> itSet = intsSet.iterator();
 
         List<Decorator<?>> decoratorList = new ArrayList<Decorator<?>>();
@@ -474,12 +455,6 @@ public class BeanManagerImpl implements 
         return deploymentBeans;
     }
 
-    public Set<Decorator<?>> getDecorators()
-    {
-        return webBeansDecorators;
-    }
-
-
     private void addContext(Class<? extends Annotation> scopeType, javax.enterprise.context.spi.Context context)
     {
         Asserts.assertNotNull(scopeType, "scopeType parameter can not be null");
@@ -1010,7 +985,6 @@ public class BeanManagerImpl implements 
         errorStack.clear();
         producersForJavaEeComponents.clear();
         passivationBeans.clear();
-        webBeansDecorators.clear();
         webBeansContext.getInterceptorsManager().clear();
         webBeansContext.getDecoratorsManager().clear();
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DecoratorsManager.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DecoratorsManager.java?rev=1429571&r1=1429570&r2=1429571&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DecoratorsManager.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DecoratorsManager.java Sun Jan  6 19:07:58 2013
@@ -18,29 +18,45 @@
  */
 package org.apache.webbeans.decorator;
 
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CopyOnWriteArraySet;
 
 import javax.decorator.Decorator;
 
+import org.apache.webbeans.annotation.DefaultLiteral;
+import org.apache.webbeans.component.OwbBean;
 import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.exception.WebBeansConfigurationException;
 import org.apache.webbeans.util.Asserts;
 
 public class DecoratorsManager
 {
     private List<Class<?>> enabledDecorators = new CopyOnWriteArrayList<Class<?>>();
-    private final BeanManagerImpl manager;
+    private final WebBeansContext webBeansContext;
 
-    /**Additional decorator class*/
+    /**
+     * Additional decorator classes added by Extensions
+     */
     private List<Class<?>> additionalDecoratorClasses = new ArrayList<Class<?>>();
 
+    /**
+     * Active and enabled decorators
+     */
+    private Set<javax.enterprise.inject.spi.Decorator<?>> webBeansDecorators = new CopyOnWriteArraySet<javax.enterprise.inject.spi.Decorator<?>>();
+
+
 
     public DecoratorsManager(WebBeansContext webBeansContext)
     {
-        manager = webBeansContext.getBeanManagerImpl();
+        this.webBeansContext = webBeansContext;
     }
 
     public void addNewDecorator(Class<?> decoratorClazz)
@@ -99,7 +115,6 @@ public class DecoratorsManager
         }                
     }
 
-
     public void addCustomDecoratorClass(Class<?> clazz)
     {
         Asserts.nullCheckForClass(clazz);
@@ -112,8 +127,63 @@ public class DecoratorsManager
         return additionalDecoratorClasses.contains(clazz);
     }
 
+    public Set<javax.enterprise.inject.spi.Decorator<?>> getDecorators()
+    {
+        return webBeansDecorators;
+    }
+
+    public void addDecorator(javax.enterprise.inject.spi.Decorator decorator)
+    {
+        webBeansDecorators.add(decorator);
+        if (decorator instanceof OwbBean)
+        {
+            OwbBean<?> owbBean = (OwbBean<?>)decorator;
+
+            if(owbBean.isPassivationCapable())
+            {
+                webBeansContext.getBeanManagerImpl().addPassivationInfo((OwbBean)decorator);
+            }
+        }
+    }
+
+    public  Set<javax.enterprise.inject.spi.Decorator<?>> findDeployedWebBeansDecorator(Set<Type> apiTypes, Annotation... anns)
+    {
+        Set<javax.enterprise.inject.spi.Decorator<?>> set = new HashSet<javax.enterprise.inject.spi.Decorator<?>>();
+
+        Iterator<javax.enterprise.inject.spi.Decorator<?>> it = Collections.unmodifiableSet(getDecorators()).iterator();
+        WebBeansDecorator<?> decorator = null;
+
+        List<Class<? extends Annotation>> bindingTypes = new ArrayList<Class<? extends Annotation>>();
+        Set<Annotation> listAnnot = new HashSet<Annotation>();
+        for (Annotation ann : anns)
+        {
+            bindingTypes.add(ann.annotationType());
+            listAnnot.add(ann);
+        }
+
+        if (listAnnot.isEmpty())
+        {
+            listAnnot.add(new DefaultLiteral());
+        }
+
+        while (it.hasNext())
+        {
+            decorator = (WebBeansDecorator<?>) it.next();
+
+            if (decorator.isDecoratorMatch(apiTypes, listAnnot))
+            {
+                set.add(decorator);
+            }
+        }
+
+        return set;
+
+    }
+
+
     public void clear()
     {
         additionalDecoratorClasses.clear();
+        webBeansDecorators.clear();
     }
 }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java?rev=1429571&r1=1429570&r2=1429571&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java Sun Jan  6 19:07:58 2013
@@ -19,10 +19,7 @@
 package org.apache.webbeans.decorator;
 
 import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
@@ -32,11 +29,9 @@ import java.util.logging.Logger;
 import javax.enterprise.context.Dependent;
 import javax.enterprise.inject.spi.BeanManager;
 import javax.enterprise.inject.spi.Decorator;
-import org.apache.webbeans.annotation.DefaultLiteral;
 import org.apache.webbeans.component.AbstractInjectionTargetBean;
 import org.apache.webbeans.component.InjectionTargetBean;
 import org.apache.webbeans.config.OWBLogConst;
-import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.logger.WebBeansLoggerFacade;
 import org.apache.webbeans.spi.BDABeansXmlScanner;
@@ -83,7 +78,7 @@ public final class WebBeansDecoratorConf
             logger.log(Level.FINE, "Configuring decorator class : [{0}]", delegate.getReturnType());
         }
         WebBeansDecorator<T> decorator = new WebBeansDecorator<T>(delegate);
-        delegate.getWebBeansContext().getBeanManagerImpl().addDecorator(decorator);
+        delegate.getWebBeansContext().getDecoratorsManager().addDecorator(decorator);
     }
 
     public static void configureDecorators(AbstractInjectionTargetBean<?> component)
@@ -175,38 +170,5 @@ public final class WebBeansDecoratorConf
         }
     }
 
-    public static Set<Decorator<?>> findDeployedWebBeansDecorator(BeanManagerImpl beanManagerImpl, Set<Type> apiTypes, Annotation... anns)
-    {
-        Set<Decorator<?>> set = new HashSet<Decorator<?>>();
-
-        Iterator<Decorator<?>> it = Collections.unmodifiableSet(beanManagerImpl.getDecorators()).iterator();
-        WebBeansDecorator<?> decorator = null;
-
-        List<Class<? extends Annotation>> bindingTypes = new ArrayList<Class<? extends Annotation>>();
-        Set<Annotation> listAnnot = new HashSet<Annotation>();
-        for (Annotation ann : anns)
-        {
-            bindingTypes.add(ann.annotationType());
-            listAnnot.add(ann);
-        }
-
-        if (listAnnot.isEmpty())
-        {
-            listAnnot.add(new DefaultLiteral());
-        }
-
-        while (it.hasNext())
-        {
-            decorator = (WebBeansDecorator<?>) it.next();
-
-            if (decorator.isDecoratorMatch(apiTypes, listAnnot))
-            {
-                set.add(decorator);
-            }
-        }
-
-        return set;
-
-    }
 
 }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java?rev=1429571&r1=1429570&r2=1429571&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java Sun Jan  6 19:07:58 2013
@@ -143,7 +143,7 @@ public class AfterBeanDiscoveryImpl impl
             }
 
 
-            beanManager.addDecorator(new WebBeansDecorator(managedBean, (Decorator) bean));
+            webBeansContext.getDecoratorsManager().addDecorator(new WebBeansDecorator(managedBean, (Decorator) bean));
             webBeansContext.getDecoratorsManager().addCustomDecoratorClass(bean.getBeanClass());
         }
         else

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java?rev=1429571&r1=1429570&r2=1429571&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java Sun Jan  6 19:07:58 2013
@@ -103,11 +103,6 @@ public class MockManager implements Bean
         return manager.addContext(context);
     }
 
-    public BeanManager addDecorator(Decorator<?> decorator)
-    {
-        return manager.addDecorator(decorator);
-    }
-
     public void fireEvent(Object event, Annotation... bindings)
     {
         manager.fireEvent(event, bindings);