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 2012/12/02 14:20:57 UTC

svn commit: r1416173 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java

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);



Fwd: svn commit: r1416173 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MergeWebappJndiContext.java

Posted by Romain Manni-Bucau <rm...@gmail.com>.
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:  <rm...@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: commits@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);