Hi (again), i know this will likely make a bunch of TCK fail.
I just want to get the failing list then we can revert this; this is clearly a very big regression from pre-tomee times. I dont think we could get sthg for next release but at least we'll get the info and be able to work on Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau ---------- Forwarded message ---------- From: <rmannibu...@apache.org> Date: 2012/12/2 Subject: svn commit: r1416173 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java To: comm...@openejb.apache.org Author: rmannibucau Date: Sun Dec 2 13:20:57 2012 New Revision: 1416173 URL: http://svn.apache.org/viewvc?rev=1416173&view=rev Log: trying to make MergeWebappJndiContext deployment faster - main point: get regressions on TCKs to be able to work on Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java?rev=1416173&r1=1416172&r2=1416173&view=diff ============================================================================== --- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java (original) +++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java Sun Dec 2 13:20:57 2012 @@ -26,6 +26,7 @@ import org.apache.openejb.jee.Persistenc import org.apache.openejb.jee.PersistenceContextType; import org.apache.openejb.jee.ResourceEnvRef; import org.apache.openejb.jee.ResourceRef; +import org.apache.openejb.jee.SessionBean; import org.apache.openejb.jee.TransactionType; import javax.ejb.EJBContext; @@ -84,34 +85,38 @@ public class MergeWebappJndiContext impl mergeUserTransaction(webApp.getResourceEnvRefMap(), bean.getResourceEnvRefMap(), bean); } + final SessionBean aggregator = new SessionBean(); // easy way to get a JndiConsumer + for (EnterpriseBean a : ejbJar.getEnterpriseBeans()) { + aggregator.getEnvEntryMap().putAll(a.getEnvEntryMap()); + aggregator.getEjbRefMap().putAll(a.getEjbRefMap()); + aggregator.getEjbLocalRefMap().putAll(a.getEjbLocalRefMap()); + aggregator.getServiceRefMap().putAll(a.getServiceRefMap()); + aggregator.getResourceRefMap().putAll(a.getResourceRefMap()); + aggregator.getResourceEnvRefMap().putAll(a.getResourceEnvRefMap()); + aggregator.getMessageDestinationRefMap().putAll(a.getMessageDestinationRefMap()); + aggregator.getPersistenceContextRefMap().putAll(a.getPersistenceContextRefMap()); + aggregator.getPersistenceUnitRefMap().putAll(a.getPersistenceUnitRefMap()); + } - // Merge the bean namespaces together too - for (EnterpriseBean b : ejbJar.getEnterpriseBeans()) { - if (a == b) continue; - - merge(a.getEnvEntryMap(), b.getEnvEntryMap()); - merge(a.getEjbRefMap(), b.getEjbRefMap()); - merge(a.getEjbLocalRefMap(), b.getEjbLocalRefMap()); - merge(a.getServiceRefMap(), b.getServiceRefMap()); - merge(a.getResourceRefMap(), b.getResourceRefMap()); - merge(a.getResourceEnvRefMap(), b.getResourceEnvRefMap()); - merge(a.getMessageDestinationRefMap(), b.getMessageDestinationRefMap()); - merge(a.getPersistenceContextRefMap(), b.getPersistenceContextRefMap()); - merge(a.getPersistenceUnitRefMap(), b.getPersistenceUnitRefMap()); + for (EnterpriseBean a : ejbJar.getEnterpriseBeans()) { + merge(a.getEnvEntryMap(), aggregator.getEnvEntryMap()); + merge(a.getEjbRefMap(), aggregator.getEjbRefMap()); + merge(a.getEjbLocalRefMap(), aggregator.getEjbLocalRefMap()); + merge(a.getServiceRefMap(), aggregator.getServiceRefMap()); + merge(a.getResourceRefMap(), aggregator.getResourceRefMap()); + merge(a.getResourceEnvRefMap(), aggregator.getResourceEnvRefMap()); + merge(a.getMessageDestinationRefMap(), aggregator.getMessageDestinationRefMap()); + merge(a.getPersistenceContextRefMap(), aggregator.getPersistenceContextRefMap()); + merge(a.getPersistenceUnitRefMap(), aggregator.getPersistenceUnitRefMap()); - mergeUserTransaction(a.getResourceRefMap(), b.getResourceRefMap(), b); - mergeUserTransaction(a.getResourceEnvRefMap(), b.getResourceEnvRefMap(), b); - } + mergeUserTransaction(aggregator.getResourceRefMap(), a.getResourceRefMap(), a); + mergeUserTransaction(aggregator.getResourceEnvRefMap(), a.getResourceEnvRefMap(), a); } } /** * Bidirectional a-b merge - * - * @param a - * @param b - * @param <R> */ private <R extends JndiReference> void merge(Map<String, R> a, Map<String, R> b) { copy(a, b);