Author: dblevins
Date: Thu Aug 25 07:38:23 2011
New Revision: 1161423

URL: http://svn.apache.org/viewvc?rev=1161423&view=rev
Log:
OPENEJB-1243: Automatically override eclipselink.target-server for all 
EclipseLink persistence units

Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1161423&r1=1161422&r2=1161423&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
 Thu Aug 25 07:38:23 2011
@@ -42,7 +42,6 @@ import org.apache.openejb.jee.Connection
 import org.apache.openejb.jee.Connector;
 import org.apache.openejb.jee.EnterpriseBean;
 import org.apache.openejb.jee.InboundResourceadapter;
-import org.apache.openejb.jee.MessageDrivenBean;
 import org.apache.openejb.jee.MessageListener;
 import org.apache.openejb.jee.OutboundResourceAdapter;
 import org.apache.openejb.jee.PortComponent;
@@ -65,6 +64,7 @@ import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.MakeTxLookup;
 import org.apache.openejb.util.Messages;
 import org.apache.openejb.util.References;
+import sun.tools.jconsole.Plotter;
 
 import javax.xml.bind.JAXBException;
 import java.io.File;
@@ -78,7 +78,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
-import java.util.TreeMap;
 
 import static org.apache.openejb.util.URLs.toFile;
 
@@ -541,18 +540,6 @@ class AppInfoBuilder {
                 // Handle Properties
                 info.properties.putAll(persistenceUnit.getProperties());
 
-                Properties overrides = 
ConfigurationFactory.getSystemProperties(info.name, "PersistenceUnit");
-                for (Map.Entry<Object, Object> entry : overrides.entrySet()) {
-                    Object property = entry.getKey();
-                    Object value = entry.getValue();
-                    if (info.properties.contains(property)){
-                        logger.debug("Overriding persistence-unit "+info.name 
+" property " + property + "="+value);
-                    } else {
-                        logger.debug("Adding persistence-unit "+info.name +" 
property " + property + "="+value);
-                    }
-                    info.properties.put(property, value);
-                }
-
                 PersistenceProviderProperties.apply(info);
 
 
@@ -562,7 +549,6 @@ class AppInfoBuilder {
         }
     }
 
-
     public static class PersistenceProviderProperties {
         public static final String OPENJPA_RUNTIME_UNENHANCED_CLASSES = 
"openjpa.RuntimeUnenhancedClasses";
         public static final String DEFAULT_RUNTIME_UNENHANCED_CLASSES = 
"supported";
@@ -581,6 +567,9 @@ class AppInfoBuilder {
             // providers listed.
             if 
("org.hibernate.ejb.HibernatePersistence".equals(info.provider)){
 
+                // Apply the overrides that apply to all persistence units of 
this provider
+                override(info, "hibernate");
+
                 String lookupProperty = 
"hibernate.transaction.manager_lookup_class";
                 String openejbLookupClass = MakeTxLookup.HIBERNATE_FACTORY;
 
@@ -593,6 +582,9 @@ class AppInfoBuilder {
             } else if 
("oracle.toplink.essentials.PersistenceProvider".equals(info.provider) ||
                     
"oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider".equals(info.provider)
 ){
 
+                // Apply the overrides that apply to all persistence units of 
this provider
+                override(info, "toplink");
+
                 String lookupProperty = "toplink.target-server";
                 String openejbLookupClass = MakeTxLookup.TOPLINK_FACTORY;
 
@@ -604,6 +596,9 @@ class AppInfoBuilder {
                 }
             } else if 
("org.eclipse.persistence.jpa.PersistenceProvider".equals(info.provider) || 
"org.eclipse.persistence.jpa.osgi.PersistenceProvider".equals(info.provider)){
 
+                // Apply the overrides that apply to all persistence units of 
this provider
+                override(info, "eclipselink");
+
                 String lookupProperty = "eclipselink.target-server";
                 String openejbLookupClass = MakeTxLookup.ECLIPSELINK_FACTORY;
 
@@ -615,6 +610,9 @@ class AppInfoBuilder {
                 }
             }  else if (info.provider == null || 
"org.apache.openjpa.persistence.PersistenceProviderImpl".equals(info.provider)){
 
+                // Apply the overrides that apply to all persistence units of 
this provider
+                override(info, "openjpa");
+
                 String existing = 
info.properties.getProperty(OPENJPA_RUNTIME_UNENHANCED_CLASSES);
 
                 if (existing == null){
@@ -643,6 +641,31 @@ class AppInfoBuilder {
                     }
                 }
             }
+
+            // Apply the overrides that apply to just this persistence unit
+            override(info);
+        }
+
+        private static void override(PersistenceUnitInfo info) {
+            override(info, info.name);
+        }
+
+        private static void override(PersistenceUnitInfo info, String prefix) {
+
+            Properties overrides = 
ConfigurationFactory.getSystemProperties(prefix, "PersistenceUnit");
+
+            for (Map.Entry<Object, Object> entry : overrides.entrySet()) {
+
+                final Object property = (prefix.equalsIgnoreCase(info.name)) ? 
entry.getKey() : prefix + "." + entry.getKey();
+                final Object value = entry.getValue();
+
+                if (info.properties.contains(property)){
+                    logger.debug("Overriding persistence-unit "+info.name +" 
property " + property + "="+value);
+                } else {
+                    logger.debug("Adding persistence-unit "+info.name +" 
property " + property + "="+value);
+                }
+                info.properties.put(property, value);
+            }
         }
     }
 


Reply via email to