[jboss-svn-commits] JBoss Common SVN: r4568 - arquillian/trunk/testenrichers/cdi/src/main/java/org/jboss/arquillian/testenricher/cdi.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 28 00:48:09 EDT 2010
Author: dan.j.allen
Date: 2010-06-28 00:48:09 -0400 (Mon, 28 Jun 2010)
New Revision: 4568
Modified:
arquillian/trunk/testenrichers/cdi/src/main/java/org/jboss/arquillian/testenricher/cdi/CDIInjectionEnricher.java
Log:
servlet containers can only bind to java:comp/env, so look for the BeanManager at java:comp/env/BeanManager
Modified: arquillian/trunk/testenrichers/cdi/src/main/java/org/jboss/arquillian/testenricher/cdi/CDIInjectionEnricher.java
===================================================================
--- arquillian/trunk/testenrichers/cdi/src/main/java/org/jboss/arquillian/testenricher/cdi/CDIInjectionEnricher.java 2010-06-28 04:43:32 UTC (rev 4567)
+++ arquillian/trunk/testenrichers/cdi/src/main/java/org/jboss/arquillian/testenricher/cdi/CDIInjectionEnricher.java 2010-06-28 04:48:09 UTC (rev 4568)
@@ -17,6 +17,7 @@
package org.jboss.arquillian.testenricher.cdi;
import java.lang.reflect.Method;
+import java.util.logging.Logger;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.BeanManager;
@@ -34,9 +35,12 @@
*/
public class CDIInjectionEnricher implements TestEnricher
{
- private static final String JNDI_BEAN_MANAGER = "java:comp/BeanManager";
- private static final String JNDI_BEAN_MANAGER_JBOSS = "java:global/test/arquillian-protocol/BeanManager";
+ private static final String STANDARD_BEAN_MANAGER_JNDI_NAME = "java:comp/BeanManager";
+ private static final String SERVLET_BEAN_MANAGER_JNDI_NAME = "java:comp/env/BeanManager";
+ private static final String JBOSSAS_BEAN_MANAGER_JNDI_NAME = "java:global/test/arquillian-protocol/BeanManager";
private static final String ANNOTATION_NAME = "javax.inject.Inject";
+
+ private static final Logger log = Logger.getLogger(CDIInjectionEnricher.class.getName());
/* (non-Javadoc)
* @see org.jboss.arquillian.spi.TestEnricher#enrich(org.jboss.arquillian.spi.Context, java.lang.Object)
@@ -88,6 +92,11 @@
if(beanManager != null) {
injectNonContextualInstance(beanManager, testCase);
}
+ else
+ {
+ // Better would be to raise an exception if @Inject is present in class and BeanManager cannot be found
+ log.info("Skipping CDI injections. Either beans.xml is not present or the BeanManager could not be located in JNDI.");
+ }
}
catch (Exception e)
{
@@ -108,16 +117,22 @@
{
try
{
- return (BeanManager)new InitialContext().lookup(JNDI_BEAN_MANAGER);
+ return (BeanManager) new InitialContext().lookup(STANDARD_BEAN_MANAGER_JNDI_NAME);
}
catch (Exception e)
{
- // TODO: hack until JBoss fix BeanManager binding
+ try
+ {
+ return (BeanManager) new InitialContext().lookup(SERVLET_BEAN_MANAGER_JNDI_NAME);
+ }
+ catch (Exception se) {}
+
+ // TODO: hack until BeanManager binding fixed in JBoss AS
try
{
- return (BeanManager)new InitialContext().lookup(JNDI_BEAN_MANAGER_JBOSS);
+ return (BeanManager) new InitialContext().lookup(JBOSSAS_BEAN_MANAGER_JNDI_NAME);
}
- catch (Exception e2)
+ catch (Exception je)
{
return null;
}
More information about the jboss-svn-commits
mailing list