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 2011/09/22 17:37:31 UTC
svn commit: r1174211 -
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java
Author: dblevins
Date: Thu Sep 22 15:37:31 2011
New Revision: 1174211
URL: http://svn.apache.org/viewvc?rev=1174211&view=rev
Log:
Merge UserTransaction references from beans into the webapp
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java?rev=1174211&r1=1174210&r2=1174211&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java Thu Sep 22 15:37:31 2011
@@ -24,7 +24,7 @@ import org.apache.openejb.jee.InjectionT
import org.apache.openejb.jee.JndiConsumer;
import org.apache.openejb.jee.JndiReference;
import org.apache.openejb.jee.ResourceEnvRef;
-import org.apache.openejb.jee.sun.ResourceRef;
+import org.apache.openejb.jee.ResourceRef;
import javax.ejb.EJBContext;
import javax.ejb.EntityContext;
@@ -99,6 +99,11 @@ public class MergeWebappJndiContext impl
}
}
+ for (EnterpriseBean bean : ejbJar.getEnterpriseBeans()) {
+ mergeUserTransaction(bean.getResourceRefMap(), webApp.getResourceRefMap());
+ mergeUserTransaction(bean.getResourceEnvRefMap(), webApp.getResourceEnvRefMap());
+ }
+
}
/**
@@ -162,4 +167,25 @@ public class MergeWebappJndiContext impl
private <R extends JndiReference> boolean isResourceRef(R a) {
return a instanceof ResourceRef || a instanceof ResourceEnvRef;
}
+
+ private <R extends JndiReference> void mergeUserTransaction(Map<String, R> from, Map<String, R> to) {
+ for (R a : from.values()) {
+
+ if (!UserTransaction.class.getName().equals(a.getType())) continue;
+
+ final R b = to.get(a.getKey());
+
+ // New entry
+ if (b == null) {
+ to.put(a.getKey(), a);
+ continue;
+ }
+
+ // Update existing entry
+ // merge injection points
+ b.getInjectionTarget().addAll(a.getInjectionTarget());
+ }
+ }
+
+
}