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.
*/