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 2013/02/22 14:47:26 UTC

svn commit: r1449038 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java

Author: rmannibucau
Date: Fri Feb 22 13:47:26 2013
New Revision: 1449038

URL: http://svn.apache.org/r1449038
Log:
TOMEE-779 ability to configure is global jpa provider should override everything or not

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

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1449038&r1=1449037&r2=1449038&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java Fri Feb 22 13:47:26 2013
@@ -693,6 +693,7 @@ class AppInfoBuilder {
         public static final String JTADATASOURCE_PROP = "javax.persistence.jtaDataSource";
         public static final String NON_JTADATASOURCE_PROP = "javax.persistence.nonJtaDataSource";
         private static final String DEFAULT_PERSISTENCE_PROVIDER = "org.apache.openjpa.persistence.PersistenceProviderImpl";
+        public static final String FORCE_PROVIDER_ENV = "openejb.jpa.force." + PROVIDER_PROP;
 
         public static final String HIBERNATE_TRANSACTION_MANAGER_LOOKUP_CLASS = "hibernate.transaction.manager_lookup_class";
         public static final String HIBERNATE_JTA_PLATFORM = "hibernate.transaction.jta.platform";
@@ -703,12 +704,14 @@ class AppInfoBuilder {
         private static final String PREFIX_SESSION_CUSTOMIZER = "org.apache.openejb.jpa.integration.eclipselink.PrefixSessionCustomizer";
 
         private static String providerEnv;
+        private static boolean forceProviderEnv;
         private static String transactionTypeEnv;
         private static String jtaDataSourceEnv;
         private static String nonJtaDataSourceEnv;
 
         static {
             providerEnv = SystemInstance.get().getOptions().get(PROVIDER_PROP, (String) null);
+            forceProviderEnv = SystemInstance.get().getOptions().get(FORCE_PROVIDER_ENV, true);
             transactionTypeEnv = SystemInstance.get().getOptions().get(TRANSACTIONTYPE_PROP, (String) null);
             jtaDataSourceEnv = SystemInstance.get().getOptions().get(JTADATASOURCE_PROP, (String) null);
             nonJtaDataSourceEnv = SystemInstance.get().getOptions().get(NON_JTADATASOURCE_PROP, (String) null);
@@ -874,7 +877,7 @@ class AppInfoBuilder {
         }
 
         private static void overrideFromSystemProp(final PersistenceUnitInfo info) {
-            if (providerEnv != null) {
+            if (providerEnv != null && (info.provider == null || forceProviderEnv)) {
                 info.provider = providerEnv;
             }
             if (info.provider == null) {