Author: rmannibucau
Date: Wed Mar 28 09:02:16 2012
New Revision: 1306219

URL: http://svn.apache.org/viewvc?rev=1306219&view=rev
Log:
using a threadcontext when injecting in a test class (using OpenEJBContainer) 
to get an initialcontext (and be able to lookup validator for instance in cdi 
beans)

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java?rev=1306219&r1=1306218&r2=1306219&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
 Wed Mar 28 09:02:16 2012
@@ -25,6 +25,8 @@ import org.apache.openejb.config.EjbModu
 import org.apache.openejb.config.NewLoaderLogic;
 import org.apache.openejb.config.PersistenceModule;
 import org.apache.openejb.config.ValidationFailedException;
+import org.apache.openejb.core.Operation;
+import org.apache.openejb.core.ThreadContext;
 import org.apache.openejb.jee.Application;
 import org.apache.openejb.jee.Beans;
 import org.apache.openejb.jee.Connector;
@@ -140,12 +142,17 @@ public class OpenEjbContainer extends EJ
 
         final InjectionProcessor processor = new InjectionProcessor(object, 
context.getInjections(), context.getJndiContext());
 
+        final ThreadContext callContext = new ThreadContext(context, null, 
Operation.INJECTION);
+        final ThreadContext oldContext = ThreadContext.enter(callContext);
         try {
             final OWBInjector beanInjector = new OWBInjector(webBeanContext);
             beanInjector.inject(object);
         } catch (Throwable t) {
+            logger.warning("an error occured while injecting the class '" + 
clazz.getName() + "': " + t.getMessage());
             // TODO handle this differently
             // this is temporary till the injector can be rewritten
+        } finally {
+            ThreadContext.exit(oldContext);
         }
 
         try {


Reply via email to