Return-Path: X-Original-To: apmail-openwebbeans-commits-archive@www.apache.org Delivered-To: apmail-openwebbeans-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 86F87EDD6 for ; Sun, 6 Jan 2013 19:08:24 +0000 (UTC) Received: (qmail 33760 invoked by uid 500); 6 Jan 2013 19:08:24 -0000 Delivered-To: apmail-openwebbeans-commits-archive@openwebbeans.apache.org Received: (qmail 33730 invoked by uid 500); 6 Jan 2013 19:08:24 -0000 Mailing-List: contact commits-help@openwebbeans.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openwebbeans.apache.org Delivered-To: mailing list commits@openwebbeans.apache.org Received: (qmail 33722 invoked by uid 99); 6 Jan 2013 19:08:24 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 06 Jan 2013 19:08:24 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 06 Jan 2013 19:08:20 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id EC6912388993; Sun, 6 Jan 2013 19:07:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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/... Date: Sun, 06 Jan 2013 19:07:58 -0000 To: commits@openwebbeans.apache.org From: struberg@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130106190758.EC6912388993@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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> beans = new HashSet>(); //Adding decorators to validate - Set> decorators = manager.getDecorators(); + Set> 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, Object> cacheProxies = new ConcurrentHashMap, Object>(); - /**Activity decorators*/ - private Set> webBeansDecorators = new CopyOnWriteArraySet>(); - /**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> resolveDecorators(Set types, Annotation... bindingTypes) { webBeansContext.getAnnotationManager().checkDecoratorResolverParams(types, bindingTypes); - Set> intsSet = WebBeansDecoratorConfig.findDeployedWebBeansDecorator(this, types, bindingTypes); + Set> intsSet = webBeansContext.getDecoratorsManager().findDeployedWebBeansDecorator(types, bindingTypes); Iterator> itSet = intsSet.iterator(); List> decoratorList = new ArrayList>(); @@ -474,12 +455,6 @@ public class BeanManagerImpl implements return deploymentBeans; } - public Set> getDecorators() - { - return webBeansDecorators; - } - - private void addContext(Class 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> enabledDecorators = new CopyOnWriteArrayList>(); - private final BeanManagerImpl manager; + private final WebBeansContext webBeansContext; - /**Additional decorator class*/ + /** + * Additional decorator classes added by Extensions + */ private List> additionalDecoratorClasses = new ArrayList>(); + /** + * Active and enabled decorators + */ + private Set> webBeansDecorators = new CopyOnWriteArraySet>(); + + 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> 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> findDeployedWebBeansDecorator(Set apiTypes, Annotation... anns) + { + Set> set = new HashSet>(); + + Iterator> it = Collections.unmodifiableSet(getDecorators()).iterator(); + WebBeansDecorator decorator = null; + + List> bindingTypes = new ArrayList>(); + Set listAnnot = new HashSet(); + 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 decorator = new WebBeansDecorator(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> findDeployedWebBeansDecorator(BeanManagerImpl beanManagerImpl, Set apiTypes, Annotation... anns) - { - Set> set = new HashSet>(); - - Iterator> it = Collections.unmodifiableSet(beanManagerImpl.getDecorators()).iterator(); - WebBeansDecorator decorator = null; - - List> bindingTypes = new ArrayList>(); - Set listAnnot = new HashSet(); - 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);