You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/02/22 14:41:37 UTC
svn commit: r1449037 -
/tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java
Author: rmannibucau
Date: Fri Feb 22 13:41:37 2013
New Revision: 1449037
URL: http://svn.apache.org/r1449037
Log:
trying to enrich test classes in a bit more clever way (we can now enrich classes which are not test classes :)
Modified:
tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java
Modified: tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java?rev=1449037&r1=1449036&r2=1449037&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java (original)
+++ tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/OpenEJBEnricher.java Fri Feb 22 13:41:37 2013
@@ -28,6 +28,7 @@ import org.apache.openejb.loader.SystemI
import org.apache.openejb.spi.ContainerSystem;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
+import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.inject.AbstractInjectable;
import org.apache.webbeans.inject.OWBInjector;
@@ -42,18 +43,14 @@ public final class OpenEJBEnricher {
}
public static void enrich(final Object testInstance, final AppContext ctx) {
- if (ctx == null) { // deployment exception
- return;
- }
-
// don't rely on arquillian since this enrichment should absolutely be done before the following ones
new MockitoEnricher().enrich(testInstance);
final BeanContext context = SystemInstance.get().getComponent(ContainerSystem.class)
.getBeanContext(testInstance.getClass().getName());
- final BeanManagerImpl bm = ctx.getWebBeansContext().getBeanManagerImpl();
- if (bm.isInUse()) {
+ final BeanManagerImpl bm = findBeanManager(ctx);
+ if (bm != null && bm.isInUse()) {
try {
final Set<Bean<?>> beans = bm.getBeans(testInstance.getClass());
final Bean<?> bean = bm.resolve(beans);
@@ -92,4 +89,19 @@ public final class OpenEJBEnricher {
}
}
}
+
+ private static BeanManagerImpl findBeanManager(final AppContext ctx) {
+ if (ctx != null) {
+ return ctx.getWebBeansContext().getBeanManagerImpl();
+ }
+
+ try { // else try to find it from tccl through our SingletonService
+ return WebBeansContext.currentInstance().getBeanManagerImpl();
+ } catch (final Exception e) { // if not found IllegalStateException or a NPE can be thrown
+ // no-op
+ }
+
+ return null;
+ }
+
}