You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2016/10/05 17:20:39 UTC

svn commit: r1763471 - /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java

Author: struberg
Date: Wed Oct  5 17:20:39 2016
New Revision: 1763471

URL: http://svn.apache.org/viewvc?rev=1763471&view=rev
Log:
OPENJPA-2670 improve support for createEnittyManager with SynchronizationType

Currently we support the 'old' SynchronizationType.SYNCHRONIZED behaviour at least.
UNSYNCHRONIZED still needs to be implemented.

Modified:
    openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java

Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java?rev=1763471&r1=1763470&r2=1763471&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java Wed Oct  5 17:20:39 2016
@@ -152,6 +152,17 @@ public class EntityManagerFactoryImpl
         return createEntityManager((Map) null);
     }
 
+    @Override
+    public OpenJPAEntityManagerSPI createEntityManager(SynchronizationType synchronizationType) {
+        return createEntityManager(synchronizationType, null);
+    }
+
+    @Override
+    public OpenJPAEntityManagerSPI createEntityManager(Map props) {
+        return createEntityManager(SynchronizationType.SYNCHRONIZED, props);
+    }
+
+
     /**
      * Creates and configures a entity manager with the given properties.
      *  
@@ -159,11 +170,21 @@ public class EntityManagerFactoryImpl
      * 
      * @return list of exceptions raised or empty list.
      */
-    public OpenJPAEntityManagerSPI createEntityManager(Map props) {
-        if (props == null)
+    public OpenJPAEntityManagerSPI createEntityManager(SynchronizationType synchronizationType, Map props) {
+        if (synchronizationType == null) {
+            throw new NullPointerException("SynchronizationType must not be null");
+        }
+        if (SynchronizationType.UNSYNCHRONIZED.equals(synchronizationType)) {
+            throw new UnsupportedOperationException("TODO - implement JPA 2.1 feature");
+        }
+
+        if (props == null) {
             props = Collections.EMPTY_MAP;
-        else if (!props.isEmpty())
+        }
+        else if (!props.isEmpty()) {
             props = new HashMap(props);
+        }
+
 
         OpenJPAConfiguration conf = getConfiguration();
         Log log = conf.getLog(OpenJPAConfiguration.LOG_RUNTIME);
@@ -242,16 +263,6 @@ public class EntityManagerFactoryImpl
         return em;
     }
 
-    @Override
-    public EntityManager createEntityManager(SynchronizationType synchronizationType) {
-        throw new UnsupportedOperationException("JPA 2.1");
-    }
-
-    @Override
-    public EntityManager createEntityManager(SynchronizationType synchronizationType, Map map) {
-        throw new UnsupportedOperationException("JPA 2.1");
-    }
-
     /**
      * Create a new entity manager around the given broker.
      */