You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/03/06 02:37:44 UTC

svn commit: r514947 - /incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceFactory.java

Author: dblevins
Date: Mon Mar  5 17:37:43 2007
New Revision: 514947

URL: http://svn.apache.org/viewvc?view=rev&rev=514947
Log:
Added in injection code

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceFactory.java

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceFactory.java?view=diff&rev=514947&r1=514946&r2=514947
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceFactory.java Mon Mar  5 17:37:43 2007
@@ -22,6 +22,7 @@
 import org.apache.openejb.core.Operation;
 import org.apache.openejb.core.ThreadContext;
 import org.apache.openejb.spi.SecurityService;
+import org.apache.openejb.Injection;
 import org.apache.xbean.recipe.ObjectRecipe;
 import org.apache.xbean.recipe.Option;
 import org.apache.xbean.recipe.StaticRecipe;
@@ -172,6 +173,22 @@
             } catch (NamingException e) {
                 mdbContext = new MdbContext(transactionManager, securityService);
                 ctx.bind("java:comp/EJBContext",mdbContext);
+            }
+            for (Injection injection : deploymentInfo.getInjections()) {
+                try {
+                    String jndiName = injection.getJndiName();
+                    Object object = ctx.lookup("java:comp/env/" + jndiName);
+                    if (object instanceof String) {
+                        String string = (String) object;
+                        // Pass it in raw so it could be potentially converted to
+                        // another data type by an xbean-reflect property editor
+                        objectRecipe.setProperty(injection.getName(), string);
+                    } else {
+                        objectRecipe.setProperty(injection.getName(), new StaticRecipe(object));
+                    }
+                } catch (NamingException e) {
+                    logger.warn("Injection data not found in enc: jndiName='"+injection.getJndiName()+"', target="+injection.getTarget()+"/"+injection.getName());
+                }
             }
             // only in this case should the callback be used
             callContext.setCurrentOperation(Operation.INJECTION);