Browse Source

AMBARI-760. Fix injection in data access objects to use guice provider. (mahadev)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/branches/AMBARI-666@1387831 13f79535-47bb-0310-9956-ffa450edef68
Mahadev Konar 12 năm trước cách đây
mục cha
commit
34e735d9f4
17 tập tin đã thay đổi với 99 bổ sung77 xóa
  1. 3 0
      AMBARI-666-CHANGES.txt
  2. 4 0
      ambari-server/pom.xml
  3. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ActionStatusDAO.java
  4. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterDAO.java
  5. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterServiceDAO.java
  6. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterStateDAO.java
  7. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ComponentHostDesiredStateDAO.java
  8. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentMappingDAO.java
  9. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java
  10. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostDAO.java
  11. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostStateDAO.java
  12. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentConfigDAO.java
  13. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentHostConfigDAO.java
  14. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentStateDAO.java
  15. 8 7
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceConfigDAO.java
  16. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceDesiredStateDAO.java
  17. 6 5
      ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceStateDAO.java

+ 3 - 0
AMBARI-666-CHANGES.txt

@@ -12,6 +12,9 @@ AMBARI-666 branch (unreleased changes)
 
   NEW FEATURES
 
+  AMBARI-760. Fix injection in data access objects to use guice provider.
+  (mahadev)
+
   AMBARI-759. Add puppet scripts to the agent for configuring/installing
   various services and add security aspects to api's and server/agent.
   (mahadev)

+ 4 - 0
ambari-server/pom.xml

@@ -72,6 +72,10 @@
       <groupId>com.google.inject.extensions</groupId>
       <artifactId>guice-persist</artifactId>
     </dependency>
+    <dependency>
+      <groupId>com.google.inject.extensions</groupId>
+      <artifactId>guice-servlet</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.apache.derby</groupId>
       <artifactId>derby</artifactId>

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ActionStatusDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ActionStatusEntity;
 import org.apache.ambari.server.orm.entities.ActionStatusEntityPK;
@@ -27,25 +28,25 @@ import javax.persistence.EntityManager;
 
 public class ActionStatusDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ActionStatusEntity findByPK(ActionStatusEntityPK actionStatusEntityPK) {
-    return entityManager.find(ActionStatusEntity.class, actionStatusEntityPK);
+    return entityManagerProvider.get().find(ActionStatusEntity.class, actionStatusEntityPK);
   }
 
   @Transactional
   public void create(ActionStatusEntity actionStatusEntity) {
-    entityManager.persist(actionStatusEntity);
+    entityManagerProvider.get().persist(actionStatusEntity);
   }
 
   @Transactional
   public ActionStatusEntity merge(ActionStatusEntity actionStatusEntity) {
-    return entityManager.merge(actionStatusEntity);
+    return entityManagerProvider.get().merge(actionStatusEntity);
   }
 
   @Transactional
   public void remove(ActionStatusEntity actionStatusEntity) {
-    entityManager.remove(actionStatusEntity);
+    entityManagerProvider.get().remove(actionStatusEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ClusterEntity;
 import org.apache.commons.logging.Log;
@@ -30,24 +31,24 @@ public class ClusterDAO {
   private static final Log log = LogFactory.getLog(ClusterDAO.class);
 
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ClusterEntity findByName(String clusterName) {
-    return entityManager.find(ClusterEntity.class, clusterName);
+    return entityManagerProvider.get().find(ClusterEntity.class, clusterName);
   }
 
   public void create(ClusterEntity clusterEntity) {
-    entityManager.persist(clusterEntity);
+    entityManagerProvider.get().persist(clusterEntity);
   }
 
   @Transactional
   public ClusterEntity merge(ClusterEntity clusterEntity) {
-    return entityManager.merge(clusterEntity);
+    return entityManagerProvider.get().merge(clusterEntity);
   }
 
   @Transactional
   public void remove(ClusterEntity clusterEntity) {
-    entityManager.remove(clusterEntity);
+    entityManagerProvider.get().remove(clusterEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterServiceDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ClusterServiceEntity;
 import org.apache.ambari.server.orm.entities.ClusterServiceEntityPK;
@@ -27,10 +28,10 @@ import javax.persistence.EntityManager;
 
 public class ClusterServiceDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ClusterServiceEntity findByPK(ClusterServiceEntityPK clusterServiceEntityPK) {
-    return entityManager.find(ClusterServiceEntity.class, clusterServiceEntityPK);
+    return entityManagerProvider.get().find(ClusterServiceEntity.class, clusterServiceEntityPK);
   }
 
   public ClusterServiceEntity findByClusterAndServiceNames(String clusterName, String serviceName) {
@@ -42,17 +43,17 @@ public class ClusterServiceDAO {
 
   @Transactional
   public void create(ClusterServiceEntity clusterServiceEntity) {
-    entityManager.persist(clusterServiceEntity);
+    entityManagerProvider.get().persist(clusterServiceEntity);
   }
 
   @Transactional
   public ClusterServiceEntity merge(ClusterServiceEntity clusterServiceEntity) {
-    return entityManager.merge(clusterServiceEntity);
+    return entityManagerProvider.get().merge(clusterServiceEntity);
   }
 
   @Transactional
   public void remove(ClusterServiceEntity clusterServiceEntity) {
-    entityManager.remove(clusterServiceEntity);
+    entityManagerProvider.get().remove(clusterServiceEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterStateDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ClusterStateEntity;
 
@@ -26,25 +27,25 @@ import javax.persistence.EntityManager;
 
 public class ClusterStateDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ClusterStateEntity findByPK(String clusterName) {
-    return entityManager.find(ClusterStateEntity.class, clusterName);
+    return entityManagerProvider.get().find(ClusterStateEntity.class, clusterName);
   }
 
   @Transactional
   public void create(ClusterStateEntity clusterStateEntity) {
-    entityManager.persist(clusterStateEntity);
+    entityManagerProvider.get().persist(clusterStateEntity);
   }
 
   @Transactional
   public ClusterStateEntity merge(ClusterStateEntity clusterStateEntity) {
-    return entityManager.merge(clusterStateEntity);
+    return entityManagerProvider.get().merge(clusterStateEntity);
   }
 
   @Transactional
   public void remove(ClusterStateEntity clusterStateEntity) {
-    entityManager.remove(clusterStateEntity);
+    entityManagerProvider.get().remove(clusterStateEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ComponentHostDesiredStateDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ComponentHostDesiredStateEntity;
 import org.apache.ambari.server.orm.entities.ComponentHostDesiredStateEntityPK;
@@ -27,25 +28,25 @@ import javax.persistence.EntityManager;
 
 public class ComponentHostDesiredStateDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ComponentHostDesiredStateEntity findByPK(ComponentHostDesiredStateEntityPK primaryKey) {
-    return entityManager.find(ComponentHostDesiredStateEntity.class, primaryKey);
+    return entityManagerProvider.get().find(ComponentHostDesiredStateEntity.class, primaryKey);
   }
 
   @Transactional
   public void create(ComponentHostDesiredStateEntity componentHostDesiredStateEntity) {
-    entityManager.persist(componentHostDesiredStateEntity);
+    entityManagerProvider.get().persist(componentHostDesiredStateEntity);
   }
 
   @Transactional
   public ComponentHostDesiredStateEntity merge(ComponentHostDesiredStateEntity componentHostDesiredStateEntity) {
-    return entityManager.merge(componentHostDesiredStateEntity);
+    return entityManagerProvider.get().merge(componentHostDesiredStateEntity);
   }
 
   @Transactional
   public void remove(ComponentHostDesiredStateEntity componentHostDesiredStateEntity) {
-    entityManager.remove(componentHostDesiredStateEntity);
+    entityManagerProvider.get().remove(componentHostDesiredStateEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentMappingDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.HostComponentMappingEntity;
 import org.apache.ambari.server.orm.entities.HostComponentStateEntityPK;
@@ -27,25 +28,25 @@ import javax.persistence.EntityManager;
 
 public class HostComponentMappingDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public HostComponentMappingEntity findByPK(HostComponentStateEntityPK primaryKey) {
-    return entityManager.find(HostComponentMappingEntity.class, primaryKey);
+    return entityManagerProvider.get().find(HostComponentMappingEntity.class, primaryKey);
   }
 
   @Transactional
   public void create(HostComponentMappingEntity hostComponentMappingEntity) {
-    entityManager.persist(hostComponentMappingEntity);
+    entityManagerProvider.get().persist(hostComponentMappingEntity);
   }
 
   @Transactional
   public HostComponentMappingEntity merge(HostComponentMappingEntity hostComponentMappingEntity) {
-    return entityManager.merge(hostComponentMappingEntity);
+    return entityManagerProvider.get().merge(hostComponentMappingEntity);
   }
 
   @Transactional
   public void remove(HostComponentMappingEntity hostComponentMappingEntity) {
-    entityManager.remove(hostComponentMappingEntity);
+    entityManagerProvider.get().remove(hostComponentMappingEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.HostComponentStateEntity;
 import org.apache.ambari.server.orm.entities.HostComponentStateEntityPK;
@@ -27,25 +28,25 @@ import javax.persistence.EntityManager;
 
 public class HostComponentStateDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public HostComponentStateEntity findByPK(HostComponentStateEntityPK primaryKey) {
-    return entityManager.find(HostComponentStateEntity.class, primaryKey);
+    return entityManagerProvider.get().find(HostComponentStateEntity.class, primaryKey);
   }
 
   @Transactional
   public void create(HostComponentStateEntity hostComponentStateEntity) {
-    entityManager.persist(hostComponentStateEntity);
+    entityManagerProvider.get().persist(hostComponentStateEntity);
   }
 
   @Transactional
   public HostComponentStateEntity merge(HostComponentStateEntity hostComponentStateEntity) {
-    return entityManager.merge(hostComponentStateEntity);
+    return entityManagerProvider.get().merge(hostComponentStateEntity);
   }
 
   @Transactional
   public void remove(HostComponentStateEntity hostComponentStateEntity) {
-    entityManager.remove(hostComponentStateEntity);
+    entityManagerProvider.get().remove(hostComponentStateEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.HostEntity;
 
@@ -27,25 +28,25 @@ import javax.persistence.EntityManager;
 public class HostDAO {
 
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public HostEntity findByName(String hostName) {
-    return entityManager.find(HostEntity.class, hostName);
+    return entityManagerProvider.get().find(HostEntity.class, hostName);
   }
 
   @Transactional
   public void create(HostEntity hostEntity) {
-    entityManager.persist(hostEntity);
+    entityManagerProvider.get().persist(hostEntity);
   }
 
   @Transactional
   public HostEntity merge(HostEntity hostEntity) {
-    return entityManager.merge(hostEntity);
+    return entityManagerProvider.get().merge(hostEntity);
   }
 
   @Transactional
   public void remove(HostEntity hostEntity) {
-    entityManager.remove(hostEntity);
+    entityManagerProvider.get().remove(hostEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostStateDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.HostStateEntity;
 
@@ -26,25 +27,25 @@ import javax.persistence.EntityManager;
 
 public class HostStateDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public HostStateEntity findByHostName(String hostName) {
-    return entityManager.find(HostStateEntity.class, hostName);
+    return entityManagerProvider.get().find(HostStateEntity.class, hostName);
   }
 
   @Transactional
   public void create(HostStateEntity hostStateEntity) {
-    entityManager.persist(hostStateEntity);
+    entityManagerProvider.get().persist(hostStateEntity);
   }
 
   @Transactional
   public HostStateEntity merge(HostStateEntity hostStateEntity) {
-    return entityManager.merge(hostStateEntity);
+    return entityManagerProvider.get().merge(hostStateEntity);
   }
 
   @Transactional
   public void remove(HostStateEntity hostStateEntity) {
-    entityManager.remove(hostStateEntity);
+    entityManagerProvider.get().remove(hostStateEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentConfigDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ServiceComponentConfigEntity;
 
@@ -26,25 +27,25 @@ import javax.persistence.EntityManager;
 
 public class ServiceComponentConfigDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ServiceComponentConfigEntity findByPK(Integer primaryKey) {
-    return entityManager.find(ServiceComponentConfigEntity.class, primaryKey);
+    return entityManagerProvider.get().find(ServiceComponentConfigEntity.class, primaryKey);
   }
 
   @Transactional
   public void create(ServiceComponentConfigEntity serviceComponentConfigEntity) {
-    entityManager.persist(serviceComponentConfigEntity);
+    entityManagerProvider.get().persist(serviceComponentConfigEntity);
   }
 
   @Transactional
   public ServiceComponentConfigEntity merge(ServiceComponentConfigEntity serviceComponentConfigEntity) {
-    return entityManager.merge(serviceComponentConfigEntity);
+    return entityManagerProvider.get().merge(serviceComponentConfigEntity);
   }
 
   @Transactional
   public void remove(ServiceComponentConfigEntity serviceComponentConfigEntity) {
-    entityManager.remove(serviceComponentConfigEntity);
+    entityManagerProvider.get().remove(serviceComponentConfigEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentHostConfigDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ServiceComponentHostConfigEntity;
 
@@ -26,25 +27,25 @@ import javax.persistence.EntityManager;
 
 public class ServiceComponentHostConfigDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ServiceComponentHostConfigEntity findByPK(Integer primaryKey) {
-    return entityManager.find(ServiceComponentHostConfigEntity.class, primaryKey);
+    return entityManagerProvider.get().find(ServiceComponentHostConfigEntity.class, primaryKey);
   }
 
   @Transactional
   public void create(ServiceComponentHostConfigEntity serviceComponentHostConfigEntity) {
-    entityManager.persist(serviceComponentHostConfigEntity);
+    entityManagerProvider.get().persist(serviceComponentHostConfigEntity);
   }
 
   @Transactional
   public ServiceComponentHostConfigEntity merge(ServiceComponentHostConfigEntity serviceComponentHostConfigEntity) {
-    return entityManager.merge(serviceComponentHostConfigEntity);
+    return entityManagerProvider.get().merge(serviceComponentHostConfigEntity);
   }
 
   @Transactional
   public void remove(ServiceComponentHostConfigEntity serviceComponentHostConfigEntity) {
-    entityManager.remove(serviceComponentHostConfigEntity);
+    entityManagerProvider.get().remove(serviceComponentHostConfigEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentStateDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ServiceComponentStateEntity;
 import org.apache.ambari.server.orm.entities.ServiceComponentStateEntityPK;
@@ -27,25 +28,25 @@ import javax.persistence.EntityManager;
 
 public class ServiceComponentStateDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ServiceComponentStateEntity findByPK(ServiceComponentStateEntityPK primaryKey) {
-    return entityManager.find(ServiceComponentStateEntity.class, primaryKey);
+    return entityManagerProvider.get().find(ServiceComponentStateEntity.class, primaryKey);
   }
 
   @Transactional
   public void create(ServiceComponentStateEntity serviceComponentStateEntity) {
-    entityManager.persist(serviceComponentStateEntity);
+    entityManagerProvider.get().persist(serviceComponentStateEntity);
   }
 
   @Transactional
   public ServiceComponentStateEntity merge(ServiceComponentStateEntity serviceComponentStateEntity) {
-    return entityManager.merge(serviceComponentStateEntity);
+    return entityManagerProvider.get().merge(serviceComponentStateEntity);
   }
 
   @Transactional
   public void remove(ServiceComponentStateEntity serviceComponentStateEntity) {
-    entityManager.remove(serviceComponentStateEntity);
+    entityManagerProvider.get().remove(serviceComponentStateEntity);
   }
 
   @Transactional

+ 8 - 7
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceConfigDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ClusterServiceEntity;
 import org.apache.ambari.server.orm.entities.ServiceConfigEntity;
@@ -29,14 +30,14 @@ import java.util.List;
 
 public class ServiceConfigDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ServiceConfigEntity findByPK(Integer primaryKey) {
-    return entityManager.find(ServiceConfigEntity.class, primaryKey);
+    return entityManagerProvider.get().find(ServiceConfigEntity.class, primaryKey);
   }
 
   public List<ServiceConfigEntity> findByClusterService(ClusterServiceEntity clusterServiceEntity) {
-    TypedQuery<ServiceConfigEntity> query = entityManager.createQuery("select config " +
+    TypedQuery<ServiceConfigEntity> query = entityManagerProvider.get().createQuery("select config " +
             "from ServiceConfigEntity config " +
             "join config.clusterServiceEntity clusterService " +
             "where clusterService = :service", ServiceConfigEntity.class);
@@ -45,24 +46,24 @@ public class ServiceConfigDAO {
   }
 
   public List<ServiceConfigEntity> findAll() {
-    TypedQuery<ServiceConfigEntity> query = entityManager.createQuery("select c from ServiceConfigEntity c"
+    TypedQuery<ServiceConfigEntity> query = entityManagerProvider.get().createQuery("select c from ServiceConfigEntity c"
             , ServiceConfigEntity.class);
     return query.getResultList();
   }
 
   @Transactional
   public void create(ServiceConfigEntity serviceConfigEntity) {
-    entityManager.persist(serviceConfigEntity);
+    entityManagerProvider.get().persist(serviceConfigEntity);
   }
 
   @Transactional
   public ServiceConfigEntity merge(ServiceConfigEntity serviceConfigEntity) {
-    return entityManager.merge(serviceConfigEntity);
+    return entityManagerProvider.get().merge(serviceConfigEntity);
   }
 
   @Transactional
   public void remove(ServiceConfigEntity serviceConfigEntity) {
-    entityManager.remove(serviceConfigEntity);
+    entityManagerProvider.get().remove(serviceConfigEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceDesiredStateDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntity;
 import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntityPK;
@@ -27,25 +28,25 @@ import javax.persistence.EntityManager;
 
 public class ServiceDesiredStateDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ServiceDesiredStateEntity findByPK(ServiceDesiredStateEntityPK primaryKey) {
-    return entityManager.find(ServiceDesiredStateEntity.class, primaryKey);
+    return entityManagerProvider.get().find(ServiceDesiredStateEntity.class, primaryKey);
   }
 
   @Transactional
   public void create(ServiceDesiredStateEntity serviceDesiredStateEntity) {
-    entityManager.persist(serviceDesiredStateEntity);
+    entityManagerProvider.get().persist(serviceDesiredStateEntity);
   }
 
   @Transactional
   public ServiceDesiredStateEntity merge(ServiceDesiredStateEntity serviceDesiredStateEntity) {
-    return entityManager.merge(serviceDesiredStateEntity);
+    return entityManagerProvider.get().merge(serviceDesiredStateEntity);
   }
 
   @Transactional
   public void remove(ServiceDesiredStateEntity serviceDesiredStateEntity) {
-    entityManager.remove(serviceDesiredStateEntity);
+    entityManagerProvider.get().remove(serviceDesiredStateEntity);
   }
 
   @Transactional

+ 6 - 5
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceStateDAO.java

@@ -19,6 +19,7 @@
 package org.apache.ambari.server.orm.dao;
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.persist.Transactional;
 import org.apache.ambari.server.orm.entities.ServiceStateEntity;
 import org.apache.ambari.server.orm.entities.ServiceStateEntityPK;
@@ -27,25 +28,25 @@ import javax.persistence.EntityManager;
 
 public class ServiceStateDAO {
   @Inject
-  EntityManager entityManager;
+  Provider<EntityManager> entityManagerProvider;
 
   public ServiceStateEntity findByPK(ServiceStateEntityPK primaryKey) {
-    return entityManager.find(ServiceStateEntity.class, primaryKey);
+    return entityManagerProvider.get().find(ServiceStateEntity.class, primaryKey);
   }
 
   @Transactional
   public void create(ServiceStateEntity serviceStateEntity) {
-    entityManager.persist(serviceStateEntity);
+    entityManagerProvider.get().persist(serviceStateEntity);
   }
 
   @Transactional
   public ServiceStateEntity merge(ServiceStateEntity serviceStateEntity) {
-    return entityManager.merge(serviceStateEntity);
+    return entityManagerProvider.get().merge(serviceStateEntity);
   }
 
   @Transactional
   public void remove(ServiceStateEntity serviceStateEntity) {
-    entityManager.remove(serviceStateEntity);
+    entityManagerProvider.get().remove(serviceStateEntity);
   }
 
   @Transactional