Author: rmannibucau
Date: Sat Aug 16 15:50:11 2014
New Revision: 1618377

URL: http://svn.apache.org/r1618377
Log:
TOMEE-1295 support openjpa.EntityManagerFactoryPool, we can think to support 
more properties but that's the first one which is really particular so waiting 
for real use case

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java?rev=1618377&r1=1618376&r2=1618377&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
 Sat Aug 16 15:50:11 2014
@@ -29,6 +29,7 @@ import java.util.concurrent.Callable;
 
 public class EntityManagerFactoryCallable implements 
Callable<EntityManagerFactory> {
     public static final String OPENEJB_JPA_INIT_ENTITYMANAGER = 
"openejb.jpa.init-entitymanager";
+    public static final String OPENJPA_ENTITY_MANAGER_FACTORY_POOL = 
"openjpa.EntityManagerFactoryPool";
 
     private final String persistenceProviderClassName;
     private final PersistenceUnitInfoImpl unitInfo;
@@ -53,6 +54,9 @@ public class EntityManagerFactoryCallabl
             if (!ValidationMode.NONE.equals(unitInfo.getValidationMode())) {
                 properties.put("javax.persistence.validator.ValidatorFactory", 
new ValidatorFactoryWrapper());
             }
+
+            customizeProperties(properties);
+
             final EntityManagerFactory emf = 
persistenceProvider.createContainerEntityManagerFactory(unitInfo, properties);
 
             if (unitInfo.getProperties() != null
@@ -75,6 +79,14 @@ public class EntityManagerFactoryCallabl
         }
     }
 
+    // properties that have to be passed to properties parameters and not unit 
properties
+    private void customizeProperties(final Map<String, Object> properties) {
+        final String pool = 
SystemInstance.get().getProperty(OPENJPA_ENTITY_MANAGER_FACTORY_POOL);
+        if (pool != null) {
+            properties.put(OPENJPA_ENTITY_MANAGER_FACTORY_POOL, pool);
+        }
+    }
+
     public PersistenceUnitInfoImpl getUnitInfo() {
         return unitInfo;
     }


Reply via email to