From commits-return-tylertodd@example.com Wed Jun 1 02:04:07 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 792426D6E for <tylertodd@example.com>; Wed, 1 Jun 2011 02:04:07 +0000 (UTC) Received: (qmail 52275 invoked by uid 500); 1 Jun 2011 02:04:07 -0000 Delivered-To: tylertodd@example.com Received: (qmail 52254 invoked by uid 500); 1 Jun 2011 02:04:07 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 52246 invoked by uid 99); 1 Jun 2011 02:04:07 -0000 Received: from athena.apache.org (HELO athena.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 02:04:07 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 02:04:06 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 7354C23888BD; Wed, 1 Jun 2011 02:03:46 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1129984 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java Date: Wed, 01 Jun 2011 02:03:46 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> Author: djencks Date: Wed Jun 1 02:03:46 2011 New Revision: 1129984 URL: http://svn.apache.org/viewvc?rev=1129984&view=rev Log: a little input validation Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java?rev=1129984&r1=1129983&r2=1129984&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java Wed Jun 1 02:03:46 2011 @@ -47,7 +47,7 @@ abstract class AbstractAnnotated impleme /**Set of annotations*/ private Set<Annotation> annotations = new HashSet<Annotation>(); - private WebBeansContext webBeansContext; + private final WebBeansContext webBeansContext; /** * Createa a new annotated element. @@ -57,6 +57,14 @@ abstract class AbstractAnnotated impleme */ protected AbstractAnnotated(WebBeansContext webBeansContext, Type baseType) { + if (webBeansContext == null) + { + throw new NullPointerException("no WebBeansContext"); + } + if (baseType == null) + { + throw new NullPointerException("no base type"); + } this.baseType = baseType; this.webBeansContext = webBeansContext; } From commits-return-tylertodd@example.com Wed Jun 1 02:04:49 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 8C3E26E8B for <tylertodd@example.com>; Wed, 1 Jun 2011 02:04:49 +0000 (UTC) Received: (qmail 52990 invoked by uid 500); 1 Jun 2011 02:04:49 -0000 Delivered-To: tylertodd@example.com Received: (qmail 52968 invoked by uid 500); 1 Jun 2011 02:04:49 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 52960 invoked by uid 99); 1 Jun 2011 02:04:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 02:04:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 02:04:47 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 5CA9023888C2; Wed, 1 Jun 2011 02:04:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1129985 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java Date: Wed, 01 Jun 2011 02:04:26 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> X-Virus-Checked: Checked by ClamAV on apache.org Author: djencks Date: Wed Jun 1 02:04:26 2011 New Revision: 1129985 URL: http://svn.apache.org/viewvc?rev=1129985&view=rev Log: more accurate description Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java?rev=1129985&r1=1129984&r2=1129985&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java Wed Jun 1 02:04:26 2011 @@ -24,8 +24,7 @@ import org.apache.webbeans.spi.Singleton import org.apache.webbeans.util.WebBeansUtil; /** - * Holds singletons based on the deployment - * class loader. + * Holds the SingletonService that tracks WebBeansContext instances * * @version $Rev$ $Date$ * From commits-return-tylertodd@example.com Wed Jun 1 02:08:15 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 5041B6F05 for <tylertodd@example.com>; Wed, 1 Jun 2011 02:08:15 +0000 (UTC) Received: (qmail 56106 invoked by uid 500); 1 Jun 2011 02:08:15 -0000 Delivered-To: tylertodd@example.com Received: (qmail 56071 invoked by uid 500); 1 Jun 2011 02:08:15 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 56063 invoked by uid 99); 1 Jun 2011 02:08:15 -0000 Received: from athena.apache.org (HELO athena.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 02:08:15 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 02:08:13 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2AE5D23888BD; Wed, 1 Jun 2011 02:07:53 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1129986 - in /openwebbeans/trunk: webbeans-impl/src/main/java/org/apache/webbeans/config/ webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/ webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/ Date: Wed, 01 Jun 2011 02:07:53 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> Author: djencks Date: Wed Jun 1 02:07:52 2011 New Revision: 1129986 URL: http://svn.apache.org/viewvc?rev=1129986&view=rev Log: OWB-578 alternate DI constructor for OpenWebBeansConfiguration Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/StandaloneLifeCycle.java openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java?rev=1129986&r1=1129985&r2=1129986&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java Wed Jun 1 02:07:52 2011 @@ -118,6 +118,16 @@ public class OpenWebBeansConfiguration public static final String USE_BDA_BEANSXML_SCANNER = "org.apache.webbeans.useBDABeansXMLScanner"; /** + * you can configure this externally as well. + * + * @param properties + */ + public OpenWebBeansConfiguration(Properties properties) + { + configProperties.putAll(properties); + } + + /** * Parse configuration. */ public OpenWebBeansConfiguration() Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java?rev=1129986&r1=1129985&r2=1129986&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java Wed Jun 1 02:07:52 2011 @@ -23,6 +23,7 @@ import java.lang.reflect.InvocationTarge import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Properties; import org.apache.webbeans.annotation.AnnotationManager; import org.apache.webbeans.container.BeanManagerImpl; @@ -31,9 +32,6 @@ import org.apache.webbeans.container.Ser import org.apache.webbeans.context.ContextFactory; import org.apache.webbeans.context.creational.CreationalContextFactory; import org.apache.webbeans.conversation.ConversationManager; -//import org.apache.webbeans.corespi.se.DefaultContextsService; -//import org.apache.webbeans.corespi.se.DefaultJndiService; -//import org.apache.webbeans.corespi.se.DefaultScannerService; import org.apache.webbeans.decorator.DecoratorsManager; import org.apache.webbeans.deployment.StereoTypeManager; import org.apache.webbeans.exception.WebBeansException; @@ -65,35 +63,58 @@ public class WebBeansContext private final Map<Class<?>, Object> serviceMap = new HashMap<Class<?>, Object>(); - private WebBeansUtil webBeansUtil = new WebBeansUtil(this); - private ContextFactory contextFactory = new ContextFactory(this); - private AlternativesManager alternativesManager = new AlternativesManager(this); - private AnnotatedElementFactory annotatedElementFactory = new AnnotatedElementFactory(this); - private BeanManagerImpl beanManagerImpl = new BeanManagerImpl(this); - private ConversationManager conversationManager = new ConversationManager(this); - private CreationalContextFactory creationalContextFactory = new CreationalContextFactory(this); - private DecoratorsManager decoratorsManager = new DecoratorsManager(this); - private EJBInterceptorConfig ejbInterceptorConfig = new EJBInterceptorConfig(this); - private ExtensionLoader extensionLoader = new ExtensionLoader(this); - private InterceptorsManager interceptorsManager = new InterceptorsManager(this); - private WebBeansInterceptorConfig webBeansInterceptorConfig = new WebBeansInterceptorConfig(this); - private JMSManager jmsManager = new JMSManager(); - private JavassistProxyFactory javassistProxyFactory = new JavassistProxyFactory(); - private OpenWebBeansConfiguration openWebBeansConfiguration = new OpenWebBeansConfiguration(); - private PluginLoader pluginLoader = new PluginLoader(); - private SerializableBeanVault serializableBeanVault = new SerializableBeanVault(); - private StereoTypeManager stereoTypeManager = new StereoTypeManager(); - private AnnotationManager annotationManager = new AnnotationManager(this); - private ResolutionUtil resolutionUtil = new ResolutionUtil(this); - private InjectionPointFactory injectionPointFactory = new InjectionPointFactory(this); - private InterceptorUtil interceptorUtil = new InterceptorUtil(this); - private DefinitionUtil definitionUtil = new DefinitionUtil(this); - private WebBeansAnnotatedTypeUtil annotatedTypeUtil = new WebBeansAnnotatedTypeUtil(this); - private ManagedBeanConfigurator managedBeanConfigurator = new ManagedBeanConfigurator(this); - private SecurityService securityService = getService(SecurityService.class); + private final WebBeansUtil webBeansUtil = new WebBeansUtil(this); + private final ContextFactory contextFactory = new ContextFactory(this); + private final AlternativesManager alternativesManager = new AlternativesManager(this); + private final AnnotatedElementFactory annotatedElementFactory = new AnnotatedElementFactory(this); + private final BeanManagerImpl beanManagerImpl = new BeanManagerImpl(this); + private final ConversationManager conversationManager = new ConversationManager(this); + private final CreationalContextFactory creationalContextFactory = new CreationalContextFactory(this); + private final DecoratorsManager decoratorsManager = new DecoratorsManager(this); + private final EJBInterceptorConfig ejbInterceptorConfig = new EJBInterceptorConfig(this); + private final ExtensionLoader extensionLoader = new ExtensionLoader(this); + private final InterceptorsManager interceptorsManager = new InterceptorsManager(this); + private final WebBeansInterceptorConfig webBeansInterceptorConfig = new WebBeansInterceptorConfig(this); + private final JMSManager jmsManager = new JMSManager(); + private final JavassistProxyFactory javassistProxyFactory = new JavassistProxyFactory(); + private final OpenWebBeansConfiguration openWebBeansConfiguration; + private final PluginLoader pluginLoader = new PluginLoader(); + private final SerializableBeanVault serializableBeanVault = new SerializableBeanVault(); + private final StereoTypeManager stereoTypeManager = new StereoTypeManager(); + private final AnnotationManager annotationManager = new AnnotationManager(this); + private final ResolutionUtil resolutionUtil = new ResolutionUtil(this); + private final InjectionPointFactory injectionPointFactory = new InjectionPointFactory(this); + private final InterceptorUtil interceptorUtil = new InterceptorUtil(this); + private final DefinitionUtil definitionUtil = new DefinitionUtil(this); + private final WebBeansAnnotatedTypeUtil annotatedTypeUtil = new WebBeansAnnotatedTypeUtil(this); + private final ManagedBeanConfigurator managedBeanConfigurator = new ManagedBeanConfigurator(this); + private final SecurityService securityService; public WebBeansContext() { + this(null, new OpenWebBeansConfiguration()); + } + + public WebBeansContext(Map<Class<?>, Object> initialServices, Properties properties) + { + this(initialServices, new OpenWebBeansConfiguration(properties)); + } + + private WebBeansContext(Map<Class<?>, Object> initialServices, OpenWebBeansConfiguration openWebBeansConfiguration) + { + this.openWebBeansConfiguration = openWebBeansConfiguration; + if (initialServices != null) + { + for (Map.Entry<Class<?>, Object> entry: initialServices.entrySet()) + { + if (!entry.getKey().isAssignableFrom(entry.getValue().getClass())) + { + throw new IllegalArgumentException("Initial service claiming to be of type " + entry.getKey() + " is a " + entry.getValue().getClass()); + } + serviceMap.put(entry.getKey(), entry.getValue()); + } + } + this.securityService = getService(SecurityService.class); WebBeansUtil.initProxyFactoryClassLoaderProvider(); // Allow the WebBeansContext itself to be looked up Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java?rev=1129986&r1=1129985&r2=1129986&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java Wed Jun 1 02:07:52 2011 @@ -70,16 +70,21 @@ public abstract class AbstractLifeCycle protected AbstractLifeCycle(Properties properties) { + this(properties, WebBeansContext.getInstance()); + } + + protected AbstractLifeCycle(Properties properties, WebBeansContext webBeansContext) + { beforeInitApplication(properties); - webBeansContext = WebBeansContext.getInstance(); - this.beanManager = webBeansContext.getBeanManagerImpl(); + this.webBeansContext = webBeansContext; + this.beanManager = this.webBeansContext.getBeanManagerImpl(); this.xmlDeployer = new WebBeansXMLConfigurator(); - this.deployer = new BeansDeployer(xmlDeployer, webBeansContext); - this.jndiService = webBeansContext.getService(JNDIService.class); + this.deployer = new BeansDeployer(xmlDeployer, this.webBeansContext); + this.jndiService = this.webBeansContext.getService(JNDIService.class); this.beanManager.setXMLConfigurator(this.xmlDeployer); - this.scannerService = webBeansContext.getScannerService(); - this.contextsService = webBeansContext.getService(ContextsService.class); + this.scannerService = this.webBeansContext.getScannerService(); + this.contextsService = this.webBeansContext.getService(ContextsService.class); initApplication(properties); } @@ -197,14 +202,6 @@ public abstract class AbstractLifeCycle } /** - * @return the scannerService - */ -// protected ScannerService getScannerService() -// { -// return scannerService; -// } - - /** * @return the contextsService */ public ContextsService getContextService() @@ -212,30 +209,6 @@ public abstract class AbstractLifeCycle return contextsService; } - /** - * @return the deployer - */ -// protected BeansDeployer getDeployer() -// { -// return deployer; -// } - - /** - * @return the xmlDeployer - */ -// protected WebBeansXMLConfigurator getXmlDeployer() -// { -// return xmlDeployer; -// } - - /** - * @return the jndiService - */ -// protected JNDIService getJndiService() -// { -// return jndiService; -// } - @Override public void initApplication(Properties properties) { Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/StandaloneLifeCycle.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/StandaloneLifeCycle.java?rev=1129986&r1=1129985&r2=1129986&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/StandaloneLifeCycle.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/StandaloneLifeCycle.java Wed Jun 1 02:07:52 2011 @@ -44,7 +44,7 @@ public class StandaloneLifeCycle extends @Override public void beforeInitApplication(Properties properties) { - WebBeansFinder.clearInstances(WebBeansUtil.getCurrentClassLoader()); +// WebBeansFinder.clearInstances(WebBeansUtil.getCurrentClassLoader()); } @Override @@ -74,5 +74,10 @@ public class StandaloneLifeCycle extends elStore.destroyELContextStore(); } } - + + @Override + protected void afterStopApplication(Object stopObject) + { + WebBeansFinder.clearInstances(WebBeansUtil.getCurrentClassLoader()); + } } \ No newline at end of file Modified: openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java?rev=1129986&r1=1129985&r2=1129986&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java (original) +++ openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java Wed Jun 1 02:07:52 2011 @@ -66,6 +66,16 @@ public final class WebContainerLifecycle this.logger = WebBeansLogger.getLogger(WebContainerLifecycle.class); } + /** + * Creates a new lifecycle instance and initializes + * the instance variables. + */ + public WebContainerLifecycle(WebBeansContext webBeansContext) + { + super(null, webBeansContext); + this.logger = WebBeansLogger.getLogger(WebContainerLifecycle.class); + } + /** * {@inheritDoc} From commits-return-tylertodd@example.com Thu Jun 2 03:16:04 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 837C847C6 for <tylertodd@example.com>; Thu, 2 Jun 2011 03:16:04 +0000 (UTC) Received: (qmail 20038 invoked by uid 500); 2 Jun 2011 03:16:04 -0000 Delivered-To: tylertodd@example.com Received: (qmail 20029 invoked by uid 500); 2 Jun 2011 03:16:01 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 20015 invoked by uid 99); 2 Jun 2011 03:15:58 -0000 Received: from athena.apache.org (HELO athena.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Jun 2011 03:15:58 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Jun 2011 03:15:56 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B5D3623888DD; Thu, 2 Jun 2011 03:15:36 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1130394 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util: ClassUtil.java WebBeansUtil.java Date: Thu, 02 Jun 2011 03:15:36 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> Author: djencks Date: Thu Jun 2 03:15:36 2011 New Revision: 1130394 URL: http://svn.apache.org/viewvc?rev=1130394&view=rev Log: OWB-579 ignore synthetic final methods when checking for proxyiability. Also mention final method names Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java?rev=1130394&r1=1130393&r2=1130394&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java Thu Jun 2 03:15:36 2011 @@ -157,7 +157,7 @@ public final class ClassUtil { Asserts.nullCheckForModifier(modifier); - return Modifier.isFinal(modifier); + return Modifier.isFinal(modifier) && ((modifier & 4096) == 0); } /** 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=1130394&r1=1130393&r2=1130394&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 Thu Jun 2 03:15:36 2011 @@ -1831,9 +1831,13 @@ public final class WebBeansUtil { violationMessage.addLine(beanClass.getName(), " is a final class! CDI doesn't allow that."); } - if (ClassUtil.hasFinalMethod(beanClass)) + Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(beanClass); + for (Method m : methods) { - violationMessage.addLine(beanClass.getName(), " has final methods! CDI doesn't allow that."); + if (ClassUtil.isFinal(m.getModifiers())) + { + violationMessage.addLine(beanClass.getName(), " has final method "+ m + " CDI doesn't allow that."); + } } if (cons == null) { From commits-return-tylertodd@example.com Fri Jun 3 06:46:39 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 97D6B6A01 for <tylertodd@example.com>; Fri, 3 Jun 2011 06:46:39 +0000 (UTC) Received: (qmail 62117 invoked by uid 500); 3 Jun 2011 06:46:39 -0000 Delivered-To: tylertodd@example.com Received: (qmail 62072 invoked by uid 500); 3 Jun 2011 06:46:34 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 61833 invoked by uid 99); 3 Jun 2011 06:46:29 -0000 Received: from athena.apache.org (HELO athena.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Jun 2011 06:46:29 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Jun 2011 06:46:28 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A8E5323888FD; Fri, 3 Jun 2011 06:46:07 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1130915 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java Date: Fri, 03 Jun 2011 06:46:07 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> Author: djencks Date: Fri Jun 3 06:46:07 2011 New Revision: 1130915 URL: http://svn.apache.org/viewvc?rev=1130915&view=rev Log: OWB-579 revert change, fix the final synthetic method on the aries side by not marking them final. (ARIES-668) Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java?rev=1130915&r1=1130914&r2=1130915&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java Fri Jun 3 06:46:07 2011 @@ -157,7 +157,7 @@ public final class ClassUtil { Asserts.nullCheckForModifier(modifier); - return Modifier.isFinal(modifier) && ((modifier & 4096) == 0); + return Modifier.isFinal(modifier); } /** From commits-return-tylertodd@example.com Sat Jun 4 01:11:16 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id C0076699A for <tylertodd@example.com>; Sat, 4 Jun 2011 01:11:16 +0000 (UTC) Received: (qmail 60100 invoked by uid 500); 4 Jun 2011 01:11:16 -0000 Delivered-To: tylertodd@example.com Received: (qmail 60066 invoked by uid 500); 4 Jun 2011 01:11:16 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 60058 invoked by uid 99); 4 Jun 2011 01:11:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 04 Jun 2011 01:11:16 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 04 Jun 2011 01:11:15 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id EEA27238897D; Sat, 4 Jun 2011 01:10:54 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1131301 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Date: Sat, 04 Jun 2011 01:10:54 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> Author: djencks Date: Sat Jun 4 01:10:54 2011 New Revision: 1131301 URL: http://svn.apache.org/viewvc?rev=1131301&view=rev Log: OWB-579 don't consider synthetic or bridge final methods when deciding if we can proxy Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java 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=1131301&r1=1131300&r2=1131301&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 Sat Jun 4 01:10:54 2011 @@ -1834,7 +1834,7 @@ public final class WebBeansUtil Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(beanClass); for (Method m : methods) { - if (ClassUtil.isFinal(m.getModifiers())) + if (ClassUtil.isFinal(m.getModifiers()) && !m.isSynthetic() && !m.isBridge()) { violationMessage.addLine(beanClass.getName(), " has final method "+ m + " CDI doesn't allow that."); } From commits-return-tylertodd@example.com Sat Jun 4 01:20:20 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id DD9E76FE0 for <tylertodd@example.com>; Sat, 4 Jun 2011 01:20:20 +0000 (UTC) Received: (qmail 65813 invoked by uid 500); 4 Jun 2011 01:20:20 -0000 Delivered-To: tylertodd@example.com Received: (qmail 65788 invoked by uid 500); 4 Jun 2011 01:20:20 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 65780 invoked by uid 99); 4 Jun 2011 01:20:20 -0000 Received: from athena.apache.org (HELO athena.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 04 Jun 2011 01:20:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 04 Jun 2011 01:20:19 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 3D35B23888BD; Sat, 4 Jun 2011 01:19:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1131302 - in /openwebbeans/trunk: webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/ webbeans-impl/src/main/java/org/apache/webbeans/config/ webbeans-impl/src/main/java/org/apache/webbeans/decorator/ webbeans-impl/src/m... Date: Sat, 04 Jun 2011 01:19:59 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> Author: djencks Date: Sat Jun 4 01:19:58 2011 New Revision: 1131302 URL: http://svn.apache.org/viewvc?rev=1131302&view=rev Log: OWB-581 allow configuration of ignored Decorator interfaces with a configuration property Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.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/InterceptorHandler.java Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java?rev=1131302&r1=1131301&r2=1131302&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java (original) +++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java Sat Jun 4 01:19:58 2011 @@ -551,7 +551,10 @@ public class OpenWebBeansEjbInterceptor WebBeansDecoratorInterceptor lastInterceptor = new WebBeansDecoratorInterceptor(delegateHandler, instance); decoratorInterceptorDataImpl = new InterceptorDataImpl(true, lastInterceptor, webBeansContext); decoratorInterceptorDataImpl.setDefinedInInterceptorClass(true); - decoratorInterceptorDataImpl.setAroundInvoke(webBeansContext.getSecurityService().doPrivilegedGetDeclaredMethods(lastInterceptor.getClass())[0]); + decoratorInterceptorDataImpl.setAroundInvoke( + webBeansContext.getSecurityService().doPrivilegedGetDeclaredMethod(lastInterceptor.getClass(), + "invokeDecorators", + new Class[] {InvocationContext.class})); filteredInterceptorStack.add(decoratorInterceptorDataImpl); } Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java?rev=1131302&r1=1131301&r2=1131302&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java Sat Jun 4 01:19:58 2011 @@ -118,6 +118,13 @@ public class OpenWebBeansConfiguration public static final String USE_BDA_BEANSXML_SCANNER = "org.apache.webbeans.useBDABeansXMLScanner"; /** + * a comma-separated list of fully qualified class names that should be ignored + * when determining if a decorator matches its delegate. These are typically added by + * weaving or bytecode modification. + */ + public static final String IGNORED_DECORATOR_INTERFACES = "org.apache.webbeans.ignoredDecoratorInterfaces"; + + /** * you can configure this externally as well. * * @param properties 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=1131302&r1=1131301&r2=1131302&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 Sat Jun 4 01:19:58 2011 @@ -23,6 +23,7 @@ import org.apache.webbeans.component.Abs import org.apache.webbeans.component.ManagedBean; import org.apache.webbeans.component.WebBeansType; import org.apache.webbeans.config.OWBLogConst; +import org.apache.webbeans.config.OpenWebBeansConfiguration; import org.apache.webbeans.config.WebBeansContext; import org.apache.webbeans.exception.WebBeansConfigurationException; import org.apache.webbeans.exception.WebBeansException; @@ -46,7 +47,10 @@ import java.lang.reflect.Field; import java.lang.reflect.Member; import java.lang.reflect.Method; import java.lang.reflect.Type; +import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; /** @@ -79,20 +83,23 @@ public class WebBeansDecorator<T> extend /**Custom Decorator*/ private Decorator<T> customDecorator = null; + + private final Set<String> ignoredDecoratorInterfaces; /** - * Creates a new decorator bean instance with the given wrapped bean. + * Creates a new decorator bean instance with the given wrapped bean and custom decorator bean. * @param wrappedBean wrapped bean instance + * @param customDecorator custom decorator */ public WebBeansDecorator(AbstractInjectionTargetBean<T> wrappedBean, Decorator<T> customDecorator) { super(WebBeansType.DECORATOR,wrappedBean.getReturnType(), wrappedBean.getWebBeansContext()); this.wrappedBean = wrappedBean; this.customDecorator = customDecorator; + this.ignoredDecoratorInterfaces = getIgnoredDecoratorInterfaces(wrappedBean); initDelegate(); } - /** * Creates a new decorator bean instance with the given wrapped bean. * @param wrappedBean wrapped bean instance @@ -103,17 +110,36 @@ public class WebBeansDecorator<T> extend this.wrappedBean = wrappedBean; this.clazz = wrappedBean.getReturnType(); + this.ignoredDecoratorInterfaces = getIgnoredDecoratorInterfaces(wrappedBean); init(); } - + + private static <T> Set<String> getIgnoredDecoratorInterfaces(AbstractInjectionTargetBean<T> wrappedBean) + { + OpenWebBeansConfiguration config = wrappedBean.getWebBeansContext().getOpenWebBeansConfiguration(); + String ignoredDecoratorInterfacesString = config.getProperty(OpenWebBeansConfiguration.IGNORED_DECORATOR_INTERFACES); + if (ignoredDecoratorInterfacesString != null) + { + return new HashSet<String>(Arrays.asList(ignoredDecoratorInterfacesString.split("[,\\p{javaWhitespace}]"))); + } + else + { + return Collections.singleton(Serializable.class.getName()); + } + } + protected void init() { ClassUtil.setInterfaceTypeHierarchy(this.decoratedTypes, this.clazz); - if (this.decoratedTypes.contains(Serializable.class)) + for (Iterator<Type> i = this.decoratedTypes.iterator(); i.hasNext(); ) { - this.decoratedTypes.remove(Serializable.class); + Type t = i.next(); + if (t instanceof Class<?> && ignoredDecoratorInterfaces.contains(((Class) t).getName())) + { + i.remove(); + } } initDelegate(); Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java?rev=1131302&r1=1131301&r2=1131302&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java Sat Jun 4 01:19:58 2011 @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import javax.interceptor.InvocationContext; import javassist.util.proxy.MethodHandler; import javassist.util.proxy.ProxyFactory; import javassist.util.proxy.ProxyObject; @@ -234,7 +235,10 @@ public abstract class InterceptorHandler WebBeansDecoratorInterceptor lastInterceptor = new WebBeansDecoratorInterceptor(delegateHandler, instance); decoratorInterceptorDataImpl = new InterceptorDataImpl(true, lastInterceptor, webBeansContext); decoratorInterceptorDataImpl.setDefinedInInterceptorClass(true); - decoratorInterceptorDataImpl.setAroundInvoke(webBeansContext.getSecurityService().doPrivilegedGetDeclaredMethods(lastInterceptor.getClass())[0]); + decoratorInterceptorDataImpl.setAroundInvoke( + webBeansContext.getSecurityService().doPrivilegedGetDeclaredMethod(lastInterceptor.getClass(), + "invokeDecorators", + new Class[] {InvocationContext.class})); } List<InterceptorData> interceptorMethods = this.interceptedMethodMap.get(method); From commits-return-tylertodd@example.com Sun Jun 5 21:49:50 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id B012066F7 for <tylertodd@example.com>; Sun, 5 Jun 2011 21:49:50 +0000 (UTC) Received: (qmail 78942 invoked by uid 500); 5 Jun 2011 21:49:50 -0000 Delivered-To: tylertodd@example.com Received: (qmail 78921 invoked by uid 500); 5 Jun 2011 21:49:50 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 78913 invoked by uid 99); 5 Jun 2011 21:49:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jun 2011 21:49:50 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jun 2011 21:49:48 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 40E3D2388903; Sun, 5 Jun 2011 21:49:27 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1132497 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java Date: Sun, 05 Jun 2011 21:49:27 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> X-Virus-Checked: Checked by ClamAV on apache.org Author: djencks Date: Sun Jun 5 21:49:26 2011 New Revision: 1132497 URL: http://svn.apache.org/viewvc?rev=1132497&view=rev Log: OWB-579 More generally ignore synthetic fields, methods, and constructors Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java?rev=1132497&r1=1132496&r2=1132497&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java Sun Jun 5 21:49:26 2011 @@ -79,20 +79,29 @@ class AnnotatedTypeImpl<X> extends Abstr Constructor<?>[] decCtxs = getWebBeansContext().getSecurityService().doPrivilegedGetDeclaredConstructors(annotatedClass); for(Field f : decFields) { - AnnotatedField<X> af = new AnnotatedFieldImpl<X>(getWebBeansContext(), f, this); - fields.add(af); + if (!f.isSynthetic()) + { + AnnotatedField<X> af = new AnnotatedFieldImpl<X>(getWebBeansContext(), f, this); + fields.add(af); + } } for(Method m : decMethods) { - AnnotatedMethod<X> am = new AnnotatedMethodImpl<X>(getWebBeansContext(), m,this); - methods.add(am); + if (!m.isSynthetic() && !m.isBridge()) + { + AnnotatedMethod<X> am = new AnnotatedMethodImpl<X>(getWebBeansContext(), m,this); + methods.add(am); + } } for(Constructor<?> ct : decCtxs) { - AnnotatedConstructor<X> ac = new AnnotatedConstructorImpl<X>(getWebBeansContext(), (Constructor<X>) ct,this); - constructors.add(ac); + if (!ct.isSynthetic()) + { + AnnotatedConstructor<X> ac = new AnnotatedConstructorImpl<X>(getWebBeansContext(), (Constructor<X>) ct,this); + constructors.add(ac); + } } } } From commits-return-tylertodd@example.com Sun Jun 5 21:51:49 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id B7BAC671E for <tylertodd@example.com>; Sun, 5 Jun 2011 21:51:49 +0000 (UTC) Received: (qmail 80048 invoked by uid 500); 5 Jun 2011 21:51:49 -0000 Delivered-To: tylertodd@example.com Received: (qmail 80026 invoked by uid 500); 5 Jun 2011 21:51:49 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 80018 invoked by uid 99); 5 Jun 2011 21:51:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jun 2011 21:51:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jun 2011 21:51:45 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 15C922388903; Sun, 5 Jun 2011 21:51:24 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1132498 - in /openwebbeans/trunk/webbeans-impl/src: main/java/org/apache/webbeans/component/creation/ main/java/org/apache/webbeans/config/ main/java/org/apache/webbeans/decorator/ main/java/org/apache/webbeans/portable/ main/java/org/apac... Date: Sun, 05 Jun 2011 21:51:23 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> X-Virus-Checked: Checked by ClamAV on apache.org Author: djencks Date: Sun Jun 5 21:51:23 2011 New Revision: 1132498 URL: http://svn.apache.org/viewvc?rev=1132498&view=rev Log: OWB-581 Use the excluded interface check in a lot more places. Also fix a few typos Modified: 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/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/config/OpenWebBeansConfiguration.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.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/AbstractAnnotated.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java 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=1132498&r1=1132497&r2=1132498&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java Sun Jun 5 21:51:23 2011 @@ -20,6 +20,7 @@ package org.apache.webbeans.component.cr import java.lang.annotation.Annotation; import java.lang.reflect.Type; +import java.util.Iterator; import java.util.Set; import javax.enterprise.inject.spi.AnnotatedType; @@ -92,6 +93,15 @@ public class AbstractBeanCreator<T> impl Set<Type> types = this.annotatedType.getTypeClosure(); this.bean.getTypes().addAll(types); } + Set<String> ignored = bean.getWebBeansContext().getOpenWebBeansConfiguration().getIgnoredInterfaces(); + for (Iterator<Type> i = bean.getTypes().iterator(); i.hasNext();) + { + Type t = i.next(); + if (t instanceof Class && ignored.contains(((Class<?>)t).getName())) + { + i.remove(); + } + } } /** 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=1132498&r1=1132497&r2=1132498&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 Sun Jun 5 21:51:23 2011 @@ -128,7 +128,7 @@ public abstract class AbstractInjectedTa AbstractInjectionTargetBean bean = getBean(); if(isDefaultMetaDataProvider()) { - return bean.getWebBeansContext().getDefinitionUtil().defineProduerFields(bean); + return bean.getWebBeansContext().getDefinitionUtil().defineProducerFields(bean); } else { 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=1132498&r1=1132497&r2=1132498&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 Sun Jun 5 21:51:23 2011 @@ -29,6 +29,7 @@ import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import java.util.ArrayList; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Set; @@ -112,10 +113,24 @@ public final class DefinitionUtil else { defineNormalApiTypes(bean, clazz); - } + } + removeIgnoredInterfaces(bean); } - - + + private static <T> void removeIgnoredInterfaces(AbstractOwbBean<T> bean) + { + Set<String> ignoredInterfaces = bean.getWebBeansContext().getOpenWebBeansConfiguration().getIgnoredInterfaces(); + for (Iterator<Type> i = bean.getTypes().iterator(); i.hasNext(); ) + { + Type t = i.next(); + if (t instanceof Class && ignoredInterfaces.contains(((Class<?>) t).getName())) + { + i.remove(); + } + } + } + + private static <T> void defineNormalApiTypes(AbstractOwbBean<T> bean, Class<T> clazz) { bean.getTypes().add(Object.class); @@ -189,7 +204,8 @@ public final class DefinitionUtil else { defineNormalProducerMethodApi(producerBean, type); - } + } + removeIgnoredInterfaces(producerBean); } private static <T> void defineNormalProducerMethodApi(AbstractProducerBean<T> producerBean, Type type) @@ -675,7 +691,7 @@ public final class DefinitionUtil * @param component producer field owner component * @return the set of producer field components */ - public Set<ProducerFieldBean<?>> defineProduerFields(InjectionTargetBean<?> component) + public Set<ProducerFieldBean<?>> defineProducerFields(InjectionTargetBean<?> component) { Set<ProducerFieldBean<?>> producerFields = new HashSet<ProducerFieldBean<?>>(); Field[] fields = webBeansContext.getSecurityService().doPrivilegedGetDeclaredFields(component.getReturnType()); @@ -1193,7 +1209,7 @@ public final class DefinitionUtil */ public void defineDecoratorStack(AbstractInjectionTargetBean<?> bean) { - WebBeansDecoratorConfig.configureDecarotors(bean); + WebBeansDecoratorConfig.configureDecorators(bean); } public <T> Set<ObserverMethod<?>> defineObserverMethods(InjectionTargetBean<T> component, Class<T> clazz) 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=1132498&r1=1132497&r2=1132498&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 Sun Jun 5 21:51:23 2011 @@ -167,7 +167,7 @@ public final class ManagedBeanConfigurat manager.putInjectionTargetWrapper(producerMethod, new InjectionTargetWrapper(new ProducerBeansProducer(producerMethod))); } - Set<ProducerFieldBean<?>> producerFields = definitionUtil.defineProduerFields(component); + Set<ProducerFieldBean<?>> producerFields = definitionUtil.defineProducerFields(component); for (ProducerFieldBean<?> producerField : producerFields) { // add them one after the other to enable serialization handling et al Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java?rev=1132498&r1=1132497&r2=1132498&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java Sun Jun 5 21:51:23 2011 @@ -20,7 +20,11 @@ package org.apache.webbeans.config; import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; import java.util.Properties; +import java.util.Set; import org.apache.webbeans.exception.WebBeansConfigurationException; import org.apache.webbeans.logger.WebBeansLogger; @@ -122,7 +126,9 @@ public class OpenWebBeansConfiguration * when determining if a decorator matches its delegate. These are typically added by * weaving or bytecode modification. */ - public static final String IGNORED_DECORATOR_INTERFACES = "org.apache.webbeans.ignoredDecoratorInterfaces"; + public static final String IGNORED_INTERFACES = "org.apache.webbeans.ignoredDecoratorInterfaces"; + + private Set<String> ignoredInterfaces; /** * you can configure this externally as well. @@ -344,4 +350,22 @@ public class OpenWebBeansConfiguration return Boolean.valueOf(value); } + + public synchronized Set<String> getIgnoredInterfaces() + { + if (ignoredInterfaces == null) + { + String ignoredInterfacesString = getProperty(IGNORED_INTERFACES); + if (ignoredInterfacesString != null) + { + ignoredInterfaces = new HashSet<String>(Arrays.asList(ignoredInterfacesString.split("[,\\p{javaWhitespace}]"))); + } + else + { + ignoredInterfaces = Collections.emptySet(); + } + } + return ignoredInterfaces; + } + } 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=1132498&r1=1132497&r2=1132498&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 Sun Jun 5 21:51:23 2011 @@ -23,7 +23,6 @@ import org.apache.webbeans.component.Abs import org.apache.webbeans.component.ManagedBean; import org.apache.webbeans.component.WebBeansType; import org.apache.webbeans.config.OWBLogConst; -import org.apache.webbeans.config.OpenWebBeansConfiguration; import org.apache.webbeans.config.WebBeansContext; import org.apache.webbeans.exception.WebBeansConfigurationException; import org.apache.webbeans.exception.WebBeansException; @@ -47,8 +46,6 @@ import java.lang.reflect.Field; import java.lang.reflect.Member; import java.lang.reflect.Method; import java.lang.reflect.Type; -import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.Set; @@ -117,16 +114,9 @@ public class WebBeansDecorator<T> extend private static <T> Set<String> getIgnoredDecoratorInterfaces(AbstractInjectionTargetBean<T> wrappedBean) { - OpenWebBeansConfiguration config = wrappedBean.getWebBeansContext().getOpenWebBeansConfiguration(); - String ignoredDecoratorInterfacesString = config.getProperty(OpenWebBeansConfiguration.IGNORED_DECORATOR_INTERFACES); - if (ignoredDecoratorInterfacesString != null) - { - return new HashSet<String>(Arrays.asList(ignoredDecoratorInterfacesString.split("[,\\p{javaWhitespace}]"))); - } - else - { - return Collections.singleton(Serializable.class.getName()); - } + Set<String> result = new HashSet<String>(wrappedBean.getWebBeansContext().getOpenWebBeansConfiguration().getIgnoredInterfaces()); + result.add(Serializable.class.getName()); + return result; } protected void init() 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=1132498&r1=1132497&r2=1132498&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 Jun 5 21:51:23 2011 @@ -85,7 +85,7 @@ public final class WebBeansDecoratorConf delegate.getWebBeansContext().getBeanManagerImpl().addDecorator(decorator); } - public static void configureDecarotors(AbstractInjectionTargetBean<?> component) + public static void configureDecorators(AbstractInjectionTargetBean<?> component) { if (!component.getDecoratorStack().isEmpty()) { Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java?rev=1132498&r1=1132497&r2=1132498&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java Sun Jun 5 21:51:23 2011 @@ -21,6 +21,7 @@ package org.apache.webbeans.portable; import java.lang.annotation.Annotation; import java.lang.reflect.Type; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; import javax.enterprise.inject.Typed; @@ -155,6 +156,15 @@ abstract class AbstractAnnotated impleme typeClosures = new HashSet<Type>(); this.typeClosures.add(Object.class); ClassUtil.setTypeHierarchy(this.typeClosures, this.baseType); + Set<String> ignoredInterfaces = webBeansContext.getOpenWebBeansConfiguration().getIgnoredInterfaces(); + for (Iterator<Type> i = this.typeClosures.iterator(); i.hasNext(); ) + { + Type t = i.next(); + if (t instanceof Class && ignoredInterfaces.contains(((Class<?>)t).getName())) + { + i.remove(); + } + } Annotation[] anns = annotations.toArray(new Annotation[annotations.size()]); if(AnnotationUtil.hasAnnotation(anns, Typed.class)) 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=1132498&r1=1132497&r2=1132498&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Sun Jun 5 21:51:23 2011 @@ -768,7 +768,7 @@ public final class WebBeansUtil conversationComp.addQualifier(new AnyLiteral()); conversationComp.setName("javax.enterprise.context.conversation"); - WebBeansDecoratorConfig.configureDecarotors(conversationComp); + WebBeansDecoratorConfig.configureDecorators(conversationComp); return conversationComp; } 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=1132498&r1=1132497&r2=1132498&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java (original) +++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java Sun Jun 5 21:51:23 2011 @@ -305,7 +305,7 @@ public abstract class TestContext implem { manager.addBean(WebBeansUtil.createNewBean(bean)); DecoratorUtil.checkManagedBeanDecoratorConditions(bean,null); - WebBeansDecoratorConfig.configureDecarotors(bean); + WebBeansDecoratorConfig.configureDecorators(bean); webBeansContext.getDefinitionUtil().defineBeanInterceptorStack(bean); getComponents().add((AbstractOwbBean<?>) bean); From commits-return-tylertodd@example.com Wed Jun 8 08:53:43 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id A7C8A418C for <tylertodd@example.com>; Wed, 8 Jun 2011 08:53:43 +0000 (UTC) Received: (qmail 65596 invoked by uid 500); 8 Jun 2011 08:53:43 -0000 Delivered-To: tylertodd@example.com Received: (qmail 65578 invoked by uid 500); 8 Jun 2011 08:53:43 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 65570 invoked by uid 99); 8 Jun 2011 08:53:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Jun 2011 08:53:43 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Jun 2011 08:53:41 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 385B72388900; Wed, 8 Jun 2011 08:53:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1133291 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java Date: Wed, 08 Jun 2011 08:53:20 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> X-Virus-Checked: Checked by ClamAV on apache.org Author: dblevins Date: Wed Jun 8 08:53:19 2011 New Revision: 1133291 URL: http://svn.apache.org/viewvc?rev=1133291&view=rev Log: Allow the respective classloader to be passed in for extension loading Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java?rev=1133291&r1=1133290&r2=1133291&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java Wed Jun 8 08:53:19 2011 @@ -77,7 +77,16 @@ public class ExtensionLoader */ public void loadExtensionServices() { - ServiceLoader<Extension> loader = ServiceLoader.load(Extension.class, WebBeansUtil.getCurrentClassLoader()); + loadExtensionServices(WebBeansUtil.getCurrentClassLoader()); + } + + /** + * Load extension services. + * @param classLoader + */ + public void loadExtensionServices(ClassLoader classLoader) + { + ServiceLoader<Extension> loader = ServiceLoader.load(Extension.class, classLoader); Iterator<Extension> iterator = loader.iterator(); while(iterator.hasNext()) { From commits-return-tylertodd@example.com Sat Jun 11 19:48:27 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 626D36E67 for <tylertodd@example.com>; Sat, 11 Jun 2011 19:48:27 +0000 (UTC) Received: (qmail 13268 invoked by uid 500); 11 Jun 2011 19:48:27 -0000 Delivered-To: tylertodd@example.com Received: (qmail 13235 invoked by uid 500); 11 Jun 2011 19:48:27 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 13227 invoked by uid 99); 11 Jun 2011 19:48:26 -0000 Received: from nike.apache.org (HELO nike.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 11 Jun 2011 19:48:26 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 11 Jun 2011 19:48:24 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B643D23889E1; Sat, 11 Jun 2011 19:48:02 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1134733 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Date: Sat, 11 Jun 2011 19:48:02 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> X-Virus-Checked: Checked by ClamAV on apache.org Author: djencks Date: Sat Jun 11 19:48:02 2011 New Revision: 1134733 URL: http://svn.apache.org/viewvc?rev=1134733&view=rev Log: clarify the reason for the nonstandard bean name Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java 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=1134733&r1=1134732&r2=1134733&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 Sat Jun 11 19:48:02 2011 @@ -754,6 +754,7 @@ public final class WebBeansUtil /** * Returns new conversation bean instance. + * The name is explicitly specified in 6.7.2 and is not the normal default name. * @return new conversation bean */ public ConversationBean getConversationBean() From commits-return-tylertodd@example.com Sat Jun 11 20:01:18 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 6A5716916 for <tylertodd@example.com>; Sat, 11 Jun 2011 20:01:18 +0000 (UTC) Received: (qmail 29205 invoked by uid 500); 11 Jun 2011 20:01:18 -0000 Delivered-To: tylertodd@example.com Received: (qmail 29187 invoked by uid 500); 11 Jun 2011 20:01:18 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 29179 invoked by uid 99); 11 Jun 2011 20:01:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 11 Jun 2011 20:01:18 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 11 Jun 2011 20:01:14 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 59C232388900; Sat, 11 Jun 2011 20:00:53 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1134736 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: config/ event/ portable/events/ portable/events/generics/ Date: Sat, 11 Jun 2011 20:00:53 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> X-Virus-Checked: Checked by ClamAV on apache.org Author: djencks Date: Sat Jun 11 20:00:52 2011 New Revision: 1134736 URL: http://svn.apache.org/viewvc?rev=1134736&view=rev Log: CDI-TCK-215 generic type parameter value may depend on the kind of event we are considering Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeanTypeSetResolver.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessSessionBeanImpl.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessBean.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessInjectionTarget.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessManagedBean.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSessionBean.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GenericBeanEvent.java Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeanTypeSetResolver.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeanTypeSetResolver.java?rev=1134736&r1=1134735&r2=1134736&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeanTypeSetResolver.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeanTypeSetResolver.java Sat Jun 11 20:00:52 2011 @@ -44,7 +44,7 @@ public class BeanTypeSetResolver */ public void startConfiguration() { - if(this.beanType == Object.class) + if(this.beanType == Object.class || (beanType instanceof Class && ((Class)beanType).isSynthetic())) { return; } Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java?rev=1134736&r1=1134735&r2=1134736&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java Sat Jun 11 20:00:52 2011 @@ -202,7 +202,7 @@ public final class NotificationManager if(WebBeansUtil.isDefaultExtensionBeanEventType(observerClass)) { GenericBeanEvent genericBeanEvent = (GenericBeanEvent)event; - beanClass = genericBeanEvent.getBeanClass(); + beanClass = genericBeanEvent.getBeanClassFor(observerClass); if(ClassUtil.isParametrizedType(type)) { Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessSessionBeanImpl.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessSessionBeanImpl.java?rev=1134736&r1=1134735&r2=1134736&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessSessionBeanImpl.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessSessionBeanImpl.java Sat Jun 11 20:00:52 2011 @@ -30,7 +30,7 @@ import javax.enterprise.inject.spi.Sessi * * @param <X> ejb class info */ -public class ProcessSessionBeanImpl<X> extends ProcessBeanImpl<Object> implements ProcessSessionBean<Object> +public class ProcessSessionBeanImpl<X> extends ProcessBeanImpl<Object> implements ProcessSessionBean<X> { /**Session bean annotated type*/ private final AnnotatedType<Object> annotatedBeanClass; Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java?rev=1134736&r1=1134735&r2=1134736&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java Sat Jun 11 20:00:52 2011 @@ -31,7 +31,7 @@ public class GProcessAnnotatedType exten } @Override - public Class<?> getBeanClass() + public Class<?> getBeanClassFor(Class<?> eventClass) { return getAnnotatedType().getJavaClass(); } Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessBean.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessBean.java?rev=1134736&r1=1134735&r2=1134736&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessBean.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessBean.java Sat Jun 11 20:00:52 2011 @@ -32,7 +32,7 @@ public class GProcessBean extends Proces } @Override - public Class<?> getBeanClass() + public Class<?> getBeanClassFor(Class<?> eventClass) { return getBean().getBeanClass(); } Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessInjectionTarget.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessInjectionTarget.java?rev=1134736&r1=1134735&r2=1134736&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessInjectionTarget.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessInjectionTarget.java Sat Jun 11 20:00:52 2011 @@ -32,7 +32,7 @@ public class GProcessInjectionTarget ext } @Override - public Class<?> getBeanClass() + public Class<?> getBeanClassFor(Class<?> eventClass) { return getAnnotatedType().getJavaClass(); } Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessManagedBean.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessManagedBean.java?rev=1134736&r1=1134735&r2=1134736&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessManagedBean.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessManagedBean.java Sat Jun 11 20:00:52 2011 @@ -32,7 +32,7 @@ public class GProcessManagedBean extends } @Override - public Class<?> getBeanClass() + public Class<?> getBeanClassFor(Class<?> eventClass) { return getBean().getBeanClass(); } Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSessionBean.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSessionBean.java?rev=1134736&r1=1134735&r2=1134736&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSessionBean.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSessionBean.java Sat Jun 11 20:00:52 2011 @@ -20,6 +20,7 @@ package org.apache.webbeans.portable.eve import javax.enterprise.inject.spi.AnnotatedType; import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.ProcessSessionBean; import javax.enterprise.inject.spi.SessionBeanType; import org.apache.webbeans.portable.events.ProcessSessionBeanImpl; @@ -32,9 +33,27 @@ public class GProcessSessionBean extends super(bean, annotatedType, name, type); } + /** + * This is an exceptional case due to the definition + * ProcessSessionBean<X> extends ProcessManagedBean<Object> + * + * If we are thinking of this event as a ProcessSessionBean then the bean class is X + * but if we are thinking of it as a ProcessManagedBean or superclass then the bean class + * is Object. See https://issues.jboss.org/browse/CDITCK-215 + * + * @param eventClass the class of event we are treating this event as + * @return X.class or Object.class + */ @Override - public Class<?> getBeanClass() + public Class<?> getBeanClassFor(Class<?> eventClass) { - return getBean().getBeanClass(); + if (ProcessSessionBean.class.isAssignableFrom(eventClass)) + { + return getBean().getBeanClass(); + } + else + { + return Object.class; + } } } Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GenericBeanEvent.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GenericBeanEvent.java?rev=1134736&r1=1134735&r2=1134736&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GenericBeanEvent.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GenericBeanEvent.java Sat Jun 11 20:00:52 2011 @@ -20,5 +20,13 @@ package org.apache.webbeans.portable.eve public interface GenericBeanEvent { - public Class<?> getBeanClass(); + + /** + * If this is a Foo<X> event and we are considering it as a Bar<Y> event, + * returns the generic type of Foo as a Bar. Normally this is X, but in at least one case + * (ProcessSessionBean) the generic type is different. + * @param eventClass the class of event we are treating this event as + * @return the generic type parameter of this event considered as an "eventClass" + */ + public Class<?> getBeanClassFor(Class<?> eventClass); } From commits-return-tylertodd@example.com Tue Jun 14 23:46:21 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 6BC826C1D for <tylertodd@example.com>; Tue, 14 Jun 2011 23:46:21 +0000 (UTC) Received: (qmail 77029 invoked by uid 500); 14 Jun 2011 23:46:21 -0000 Delivered-To: tylertodd@example.com Received: (qmail 76990 invoked by uid 500); 14 Jun 2011 23:46:21 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 76982 invoked by uid 99); 14 Jun 2011 23:46:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jun 2011 23:46:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jun 2011 23:46:17 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 25CFC23889F7; Tue, 14 Jun 2011 23:45:56 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1135853 - in /openwebbeans/trunk: webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/ webbeans-impl/src/main/java/org/apache/webbeans/component/ webbeans-impl/src/main/java/org/apache/webbeans/util/ Date: Tue, 14 Jun 2011 23:45:56 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> X-Virus-Checked: Checked by ClamAV on apache.org Author: bergmark Date: Tue Jun 14 23:45:55 2011 New Revision: 1135853 URL: http://svn.apache.org/viewvc?rev=1135853&view=rev Log: [OWB-574] Fix NewBean for EJB's by allowing OpenWebBeansEjbPlugin to add a NewBean implementing bean during defineSessionBean Added: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java - copied, changed from r1135819, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java Modified: 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/NewBean.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java 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=1135853&r1=1135852&r2=1135853&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 Tue Jun 14 23:45:55 2011 @@ -170,14 +170,8 @@ public final class EjbUtility "There are errors that are added by ProcessObserverMethod event observers for observer methods. Look at logs for further details"); manager.addBean(ejbBean); - try - { - manager.addBean(WebBeansUtil.createNewBean(ejbBean)); - } - catch (DuplicateDefinitionException ignore) - { - } + // Let the plugin handle adding the new bean instance as it knows more about its EJB Bean manager.getBeans().addAll(producerMethodBeans); ejbBeanCreator.defineDisposalMethods(); Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java?rev=1135853&r1=1135852&r2=1135853&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java Tue Jun 14 23:45:55 2011 @@ -18,55 +18,10 @@ */ package org.apache.webbeans.component; -import javax.enterprise.context.spi.CreationalContext; - -import org.apache.webbeans.config.WebBeansContext; - /** - * Component definition with {@link javax.enterprise.inject.New} binding annotation. - * - * <p> - * It is defined as concrete java class component. - * </p> - * + * Marker interface for @New based beans */ -public class NewBean<T> extends ManagedBean<T> +public interface NewBean<T> { - private WebBeansType definedType; - - public NewBean(Class<T> returnType, WebBeansType definedType, WebBeansContext webBeansContext) - { - super(returnType, webBeansContext); - this.definedType = definedType; - } - - @Override - protected T createInstance(CreationalContext<T> creationalContext) - { - return super.createInstance(creationalContext); - } - - @Override - protected void destroyInstance(T instance, CreationalContext<T> creationalContext) - { - super.destroyInstance(instance, creationalContext); - } - - /** - * @return the definedType - */ - public WebBeansType getDefinedType() - { - return definedType; - } - - /** - * always true for New qualifier - */ - @Override - public boolean isDependent() - { - return true; - } -} +} \ No newline at end of file Copied: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java (from r1135819, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java) URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java?p2=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java&p1=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java&r1=1135819&r2=1135853&rev=1135853&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java Tue Jun 14 23:45:55 2011 @@ -30,11 +30,11 @@ import org.apache.webbeans.config.WebBea * </p> * */ -public class NewBean<T> extends ManagedBean<T> +public class NewManagedBean<T> extends ManagedBean<T> implements NewBean { private WebBeansType definedType; - public NewBean(Class<T> returnType, WebBeansType definedType, WebBeansContext webBeansContext) + public NewManagedBean(Class<T> returnType, WebBeansType definedType, WebBeansContext webBeansContext) { super(returnType, webBeansContext); this.definedType = definedType; 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=1135853&r1=1135852&r2=1135853&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 Tue Jun 14 23:45:55 2011 @@ -111,6 +111,7 @@ import org.apache.webbeans.component.Inj import org.apache.webbeans.component.InstanceBean; import org.apache.webbeans.component.ManagedBean; import org.apache.webbeans.component.NewBean; +import org.apache.webbeans.component.NewManagedBean; import org.apache.webbeans.component.OwbBean; import org.apache.webbeans.component.ProducerFieldBean; import org.apache.webbeans.component.ProducerMethodBean; @@ -571,17 +572,17 @@ public final class WebBeansUtil * @param clazz impl. class * @return the new component */ - public <T> NewBean<T> createNewComponent(Class<T> clazz, Type apiType) + public <T> NewManagedBean<T> createNewComponent(Class<T> clazz, Type apiType) { Asserts.nullCheckForClass(clazz); - NewBean<T> comp; + NewManagedBean<T> comp; DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil(); if (webBeansContext.getManagedBeanConfigurator().isManagedBean(clazz)) { - comp = new NewBean<T>(clazz, WebBeansType.MANAGED, webBeansContext); + comp = new NewManagedBean<T>(clazz, WebBeansType.MANAGED, webBeansContext); comp.setImplScopeType(new DependentScopeLiteral()); comp.setConstructor(defineConstructor(clazz)); definitionUtil.addConstructorInjectionPointMetaData(comp, comp.getConstructor()); @@ -591,7 +592,7 @@ public final class WebBeansUtil } else if (EJBWebBeansConfigurator.isSessionBean(clazz, webBeansContext)) { - comp = new NewBean<T>(clazz, WebBeansType.ENTERPRISE, webBeansContext); + comp = new NewManagedBean<T>(clazz, WebBeansType.ENTERPRISE, webBeansContext); comp.setImplScopeType(new DependentScopeLiteral()); } else @@ -650,13 +651,13 @@ public final class WebBeansUtil * @param bean bean instance * @return the new bean from given managed bean */ - public static <T> NewBean<T> createNewBean(AbstractInjectionTargetBean<T> bean) + public static <T> NewManagedBean<T> createNewBean(AbstractInjectionTargetBean<T> bean) { Asserts.assertNotNull(bean, "bean argument can not be null"); - NewBean<T> comp = null; + NewManagedBean<T> comp = null; - comp = new NewBean<T>(bean.getReturnType(), WebBeansType.NEW, bean.getWebBeansContext()); + comp = new NewManagedBean<T>(bean.getReturnType(), WebBeansType.NEW, bean.getWebBeansContext()); comp.getTypes().addAll(bean.getTypes()); From commits-return-tylertodd@example.com Tue Jun 14 23:48:04 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 3FEFF66F2 for <tylertodd@example.com>; Tue, 14 Jun 2011 23:48:04 +0000 (UTC) Received: (qmail 81084 invoked by uid 500); 14 Jun 2011 23:48:04 -0000 Delivered-To: tylertodd@example.com Received: (qmail 81059 invoked by uid 500); 14 Jun 2011 23:48:04 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 81051 invoked by uid 99); 14 Jun 2011 23:48:04 -0000 Received: from nike.apache.org (HELO nike.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jun 2011 23:48:04 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jun 2011 23:48:01 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id D73422388A64; Tue, 14 Jun 2011 23:47:40 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1135856 - /openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java Date: Tue, 14 Jun 2011 23:47:40 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> X-Virus-Checked: Checked by ClamAV on apache.org Author: bergmark Date: Tue Jun 14 23:47:40 2011 New Revision: 1135856 URL: http://svn.apache.org/viewvc?rev=1135856&view=rev Log: [OWB-574] remove unused import Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java 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=1135856&r1=1135855&r2=1135856&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 Tue Jun 14 23:47:40 2011 @@ -44,7 +44,6 @@ import org.apache.webbeans.ejb.common.co import org.apache.webbeans.event.ObserverMethodImpl; import org.apache.webbeans.exception.WebBeansConfigurationException; import org.apache.webbeans.exception.WebBeansException; -import org.apache.webbeans.exception.definition.DuplicateDefinitionException; import org.apache.webbeans.portable.AnnotatedElementFactory; import org.apache.webbeans.portable.events.ProcessAnnotatedTypeImpl; import org.apache.webbeans.portable.events.ProcessInjectionTargetImpl; From commits-return-tylertodd@example.com Tue Jun 14 23:56:16 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 2CE8A6A13 for <tylertodd@example.com>; Tue, 14 Jun 2011 23:56:16 +0000 (UTC) Received: (qmail 88762 invoked by uid 500); 14 Jun 2011 23:56:16 -0000 Delivered-To: tylertodd@example.com Received: (qmail 88741 invoked by uid 500); 14 Jun 2011 23:56:16 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 88732 invoked by uid 99); 14 Jun 2011 23:56:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jun 2011 23:56:16 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jun 2011 23:56:15 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 205852388A64; Tue, 14 Jun 2011 23:55:55 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1135860 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java Date: Tue, 14 Jun 2011 23:55:55 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> Author: bergmark Date: Tue Jun 14 23:55:54 2011 New Revision: 1135860 URL: http://svn.apache.org/viewvc?rev=1135860&view=rev Log: [OWB-574] Added NewBean<T> to NewManagedBean implements rather than just NewBean. Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java 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=1135860&r1=1135859&r2=1135860&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 Tue Jun 14 23:55:54 2011 @@ -30,7 +30,7 @@ import org.apache.webbeans.config.WebBea * </p> * */ -public class NewManagedBean<T> extends ManagedBean<T> implements NewBean +public class NewManagedBean<T> extends ManagedBean<T> implements NewBean<T> { private WebBeansType definedType; From commits-return-tylertodd@example.com Wed Jun 15 00:21:06 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id 4D6306820 for <tylertodd@example.com>; Wed, 15 Jun 2011 00:21:06 +0000 (UTC) Received: (qmail 13059 invoked by uid 500); 15 Jun 2011 00:21:06 -0000 Delivered-To: tylertodd@example.com Received: (qmail 13036 invoked by uid 500); 15 Jun 2011 00:21:06 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 13027 invoked by uid 99); 15 Jun 2011 00:21:06 -0000 Received: from athena.apache.org (HELO athena.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Jun 2011 00:21:06 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Jun 2011 00:21:04 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 92EAE2388906; Wed, 15 Jun 2011 00:20:44 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1135868 - in /openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb: EjbPlugin.java component/NewOpenEjbBean.java Date: Wed, 15 Jun 2011 00:20:44 -0000 To: tylertodd@example.com From: tylertodd@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <tylertodd@example.com> Author: bergmark Date: Wed Jun 15 00:20:44 2011 New Revision: 1135868 URL: http://svn.apache.org/viewvc?rev=1135868&view=rev Log: [OWB-574] First pass at NewBean code for openwebbeans-openejb Added: openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/component/NewOpenEjbBean.java (with props) Modified: openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/EjbPlugin.java Modified: openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/EjbPlugin.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/EjbPlugin.java?rev=1135868&r1=1135867&r2=1135868&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/EjbPlugin.java (original) +++ openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/EjbPlugin.java Wed Jun 15 00:20:44 2011 @@ -18,18 +18,21 @@ */ package org.apache.webbeans.ejb; +import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArraySet; import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.InjectionPoint; import javax.enterprise.inject.spi.ProcessAnnotatedType; import javax.enterprise.inject.spi.SessionBeanType; @@ -49,14 +52,19 @@ import org.apache.openejb.core.stateful. import org.apache.openejb.core.stateless.StatelessContainer; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.spi.ContainerSystem; +import org.apache.webbeans.annotation.DependentScopeLiteral; +import org.apache.webbeans.annotation.NewLiteral; import org.apache.webbeans.config.WebBeansContext; +import org.apache.webbeans.container.BeanManagerImpl; import org.apache.webbeans.ejb.common.util.EjbDefinitionUtility; import org.apache.webbeans.ejb.common.util.EjbUtility; +import org.apache.webbeans.ejb.component.NewOpenEjbBean; import org.apache.webbeans.ejb.component.OpenEjbBean; import org.apache.webbeans.ejb.resource.EJBInstanceProxy; import org.apache.webbeans.ejb.service.OpenEJBSecurityService; import org.apache.webbeans.ejb.service.OpenEJBTransactionService; import org.apache.webbeans.exception.WebBeansConfigurationException; +import org.apache.webbeans.intercept.InterceptorData; import org.apache.webbeans.logger.WebBeansLogger; import org.apache.webbeans.spi.SecurityService; import org.apache.webbeans.spi.TransactionService; @@ -322,6 +330,11 @@ public class EjbPlugin extends AbstractO bean.setDeploymentInfo(info); EjbUtility.fireEvents(clazz, bean, processAnnotatedTypeEvent); + + //Add the @New Bean as we are temporarily bypassing this in EJBUtility.fireEvents + WebBeansContext webBeansContext = bean.getWebBeansContext(); + BeanManagerImpl manager = webBeansContext.getBeanManagerImpl(); + manager.addBean(createNewBean(bean)); return bean; } @@ -584,5 +597,48 @@ public class EjbPlugin extends AbstractO return bindings; } + + /** + * Creates a version of the OpenEjbBean that implements the NewBean + * interface and has the properties of a NewBean + */ + public <T> OpenEjbBean<T> createNewBean(OpenEjbBean<T> ejbBean) + { + + OpenEjbBean<T> atNewEjb = new NewOpenEjbBean<T>((Class<T>) ejbBean.getBeanClass(), ejbBean.getEjbType()); + + Class clazz = ejbBean.getBeanClass(); + + atNewEjb.setImplScopeType(new DependentScopeLiteral()); + atNewEjb.addQualifier(new NewLiteral(clazz)); + + atNewEjb.getTypes().addAll(ejbBean.getTypes()); + + for (Field injectedField : ejbBean.getInjectedFields()) + { + atNewEjb.addInjectedField(injectedField); + } + + for (Method injectedMethod : ejbBean.getInjectedMethods()) + { + atNewEjb.addInjectedMethod(injectedMethod); + } + + List<InterceptorData> interceptorList = ejbBean.getInterceptorStack(); + if (!interceptorList.isEmpty()) + { + atNewEjb.getInterceptorStack().addAll(interceptorList); + } + + Set<InjectionPoint> injectionPoints = ejbBean.getInjectionPoints(); + for (InjectionPoint injectionPoint : injectionPoints) + { + atNewEjb.addInjectionPoint(injectionPoint); + } + + atNewEjb.setDeploymentInfo(ejbBean.getDeploymentInfo()); + + return atNewEjb; + } } Added: openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/component/NewOpenEjbBean.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/component/NewOpenEjbBean.java?rev=1135868&view=auto ============================================================================== --- openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/component/NewOpenEjbBean.java (added) +++ openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/component/NewOpenEjbBean.java Wed Jun 15 00:20:44 2011 @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.webbeans.ejb.component; + +import javax.enterprise.inject.spi.SessionBeanType; + +import org.apache.webbeans.component.NewBean; + +public class NewOpenEjbBean<T> extends OpenEjbBean<T> implements NewBean<T> +{ + /** + * Creates a new instance of the session bean. + * @param ejbClassType ebj class type + */ + public NewOpenEjbBean(Class<T> ejbClassType, SessionBeanType type) + { + super(ejbClassType, type); + } + + /** + * always true for New qualifier + */ + @Override + public boolean isDependent() + { + return true; + } +} Propchange: openwebbeans/trunk/webbeans-openejb/src/main/java/org/apache/webbeans/ejb/component/NewOpenEjbBean.java ------------------------------------------------------------------------------ svn:eol-style = native From commits-return-tylertodd@example.com Sun Jun 19 10:03:25 2011 Return-Path: <commits-return-tylertodd@example.com> X-Original-To: tylertodd@example.com Delivered-To: tylertodd@example.com Received: from mail.apache.org (hermes.apache.org [83.161.120.155]) by minotaur.apache.org (Postfix) with SMTP id CCA694BE4 for <tylertodd@example.com>; Sun, 19 Jun 2011 10:03:25 +0000 (UTC) Received: (qmail 38285 invoked by uid 500); 19 Jun 2011 10:03:25 -0000 Delivered-To: tylertodd@example.com Received: (qmail 38269 invoked by uid 500); 19 Jun 2011 10:03:25 -0000 Mailing-List: contact tylertodd@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:tylertodd@example.com> List-Unsubscribe: <mailto:tylertodd@example.com> List-Post: <mailto:tylertodd@example.com> List-Id: <commits.openwebbeans.apache.org> Reply-To: tylertodd@example.com Delivered-To: mailing list tylertodd@example.com Received: (qmail 38261 invoked by uid 99); 19 Jun 2011 10:03:25 -0000 Received: from nike.apache.org (HELO nike.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 19 Jun 2011 10:03:25 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org
{'source': 'Apache Software Foundation Public Mail Archives'}