Repository: ambari Updated Branches: refs/heads/trunk 67edc4079 -> f65486346
AMBARI-14249. Failing unit tests / Entity removal using the entity manager instead of named queries. (Laszlo Puskas via swagle) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f6548634 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f6548634 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f6548634 Branch: refs/heads/trunk Commit: f65486346807c7b5389fb4d6bd97f366f9f5d408 Parents: 67edc40 Author: Siddharth Wagle <swa...@hortonworks.com> Authored: Mon Dec 7 13:54:05 2015 -0800 Committer: Siddharth Wagle <swa...@hortonworks.com> Committed: Mon Dec 7 13:54:05 2015 -0800 ---------------------------------------------------------------------- .../ambari/server/orm/dao/AlertDispatchDAO.java | 11 +++++++---- .../org/apache/ambari/server/orm/dao/AlertsDAO.java | 16 +++++++++------- .../server/orm/entities/AlertHistoryEntity.java | 2 ++ .../server/orm/entities/AlertNoticeEntity.java | 1 + .../server/orm/dao/AlertDefinitionDAOTest.java | 3 ++- .../ambari/server/orm/dao/AlertDispatchDAOTest.java | 11 ++++++++++- .../apache/ambari/server/orm/dao/AlertsDAOTest.java | 12 ++++++++++++ .../ambari/server/orm/dao/RequestDAOTest.java | 3 +++ 8 files changed, 46 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/f6548634/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDispatchDAO.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDispatchDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDispatchDAO.java index 1f1aa45..d73c70e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDispatchDAO.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDispatchDAO.java @@ -684,12 +684,15 @@ public class AlertDispatchDAO { @Transactional public void removeNoticeByDefinitionId(long definitionId) { EntityManager entityManager = entityManagerProvider.get(); - TypedQuery<AlertNoticeEntity> currentQuery = entityManager.createNamedQuery( - "AlertNoticeEntity.removeByDefinitionId", AlertNoticeEntity.class); + TypedQuery<AlertNoticeEntity> currentQuery = entityManager.createNamedQuery( + "AlertNoticeEntity.findByDefinitionId", AlertNoticeEntity.class); currentQuery.setParameter("definitionId", definitionId); - currentQuery.executeUpdate(); - entityManager.clear(); + + for (AlertNoticeEntity alertNoticeEntity : currentQuery.getResultList()) { + entityManager.remove(alertNoticeEntity); + } + } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/f6548634/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertsDAO.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertsDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertsDAO.java index 145f841..1c7d0c1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertsDAO.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertsDAO.java @@ -736,18 +736,20 @@ public class AlertsDAO { public void removeByDefinitionId(long definitionId) { EntityManager entityManager = m_entityManagerProvider.get(); TypedQuery<AlertCurrentEntity> currentQuery = entityManager.createNamedQuery( - "AlertCurrentEntity.removeByDefinitionId", AlertCurrentEntity.class); - + "AlertCurrentEntity.findByDefinitionId", AlertCurrentEntity.class); currentQuery.setParameter("definitionId", definitionId); - currentQuery.executeUpdate(); - TypedQuery<AlertHistoryEntity> historyQuery = entityManager.createNamedQuery( - "AlertHistoryEntity.removeByDefinitionId", AlertHistoryEntity.class); + for (AlertCurrentEntity alertCurrentEntity : currentQuery.getResultList()) { + entityManager.remove(alertCurrentEntity); + } + TypedQuery<AlertHistoryEntity> historyQuery = entityManager.createNamedQuery( + "AlertHistoryEntity.findByDefinitionId", AlertHistoryEntity.class); historyQuery.setParameter("definitionId", definitionId); - historyQuery.executeUpdate(); - entityManager.clear(); + for (AlertHistoryEntity alertHistoryEntity : historyQuery.getResultList()) { + entityManager.remove(alertHistoryEntity); + } // if caching is enabled, invalidate the cache to force the latest values // back from the DB http://git-wip-us.apache.org/repos/asf/ambari/blob/f6548634/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertHistoryEntity.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertHistoryEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertHistoryEntity.java index 9091398..6963eeb 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertHistoryEntity.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertHistoryEntity.java @@ -51,6 +51,8 @@ import org.apache.ambari.server.state.AlertState; @NamedQuery(name = "AlertHistoryEntity.findAllInClusterBetweenDates", query = "SELECT alertHistory FROM AlertHistoryEntity alertHistory WHERE alertHistory.clusterId = :clusterId AND alertHistory.alertTimestamp BETWEEN :startDate AND :endDate"), @NamedQuery(name = "AlertHistoryEntity.findAllInClusterBeforeDate", query = "SELECT alertHistory FROM AlertHistoryEntity alertHistory WHERE alertHistory.clusterId = :clusterId AND alertHistory.alertTimestamp <= :beforeDate"), @NamedQuery(name = "AlertHistoryEntity.findAllInClusterAfterDate", query = "SELECT alertHistory FROM AlertHistoryEntity alertHistory WHERE alertHistory.clusterId = :clusterId AND alertHistory.alertTimestamp >= :afterDate"), + @NamedQuery(name = "AlertHistoryEntity.findByDefinitionId", query = "SELECT alertHistory FROM AlertHistoryEntity " + + "alertHistory WHERE alertHistory.alertDefinition.definitionId = :definitionId"), @NamedQuery(name = "AlertHistoryEntity.removeByDefinitionId", query = "DELETE FROM AlertHistoryEntity alertHistory WHERE alertHistory.alertDefinition.definitionId = :definitionId") }) public class AlertHistoryEntity { http://git-wip-us.apache.org/repos/asf/ambari/blob/f6548634/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertNoticeEntity.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertNoticeEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertNoticeEntity.java index c2f61b3..777321e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertNoticeEntity.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertNoticeEntity.java @@ -49,6 +49,7 @@ import org.apache.ambari.server.state.NotificationState; @NamedQuery(name = "AlertNoticeEntity.findAll", query = "SELECT notice FROM AlertNoticeEntity notice"), @NamedQuery(name = "AlertNoticeEntity.findByState", query = "SELECT notice FROM AlertNoticeEntity notice WHERE notice.notifyState = :notifyState"), @NamedQuery(name = "AlertNoticeEntity.findByUuid", query = "SELECT notice FROM AlertNoticeEntity notice WHERE notice.uuid = :uuid"), + @NamedQuery(name = "AlertNoticeEntity.findByDefinitionId", query = "SELECT notice FROM AlertNoticeEntity notice WHERE notice.alertHistory.alertDefinition.definitionId = :definitionId"), @NamedQuery(name = "AlertNoticeEntity.removeByDefinitionId", query = "DELETE FROM AlertNoticeEntity notice WHERE notice.alertHistory.alertDefinition.definitionId = :definitionId") }) public class AlertNoticeEntity { http://git-wip-us.apache.org/repos/asf/ambari/blob/f6548634/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAOTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAOTest.java index d0ad386..c7f1de9 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAOTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAOTest.java @@ -381,7 +381,8 @@ public class AlertDefinitionDAOTest { ClusterDAO clusterDAO = injector.getInstance(ClusterDAO.class); ClusterEntity clusterEntity = clusterDAO.findById(clusterId); clusterDAO.refresh(clusterEntity); - + injector.getInstance(UnitOfWork.class).end(); + injector.getInstance(UnitOfWork.class).begin(); Clusters clusters = injector.getInstance(Clusters.class); Cluster cluster = clusters.getClusterById(clusterId); cluster.delete(); http://git-wip-us.apache.org/repos/asf/ambari/blob/f6548634/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java index 9b269b4..f6b30ed 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java @@ -513,6 +513,8 @@ public class AlertDispatchDAOTest { target = m_dao.findTargetById(target.getTargetId()); assertNull(target); + m_dao.refresh(group); + group = m_dao.findGroupById(group.getGroupId()); assertNotNull(group); @@ -663,7 +665,9 @@ public class AlertDispatchDAOTest { public void testAlertNoticePredicate() throws Exception { Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); - + // end the UnitOfWork to clean the cache + m_injector.getInstance(UnitOfWork.class).end(); + m_injector.getInstance(UnitOfWork.class).begin(); m_alertHelper.populateData(cluster); Predicate clusterPredicate = null; @@ -742,6 +746,9 @@ public class AlertDispatchDAOTest { Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + m_injector.getInstance(UnitOfWork.class).end(); + m_injector.getInstance(UnitOfWork.class).begin(); + m_alertHelper.populateData(cluster); AlertNoticeRequest request = new AlertNoticeRequest(); @@ -782,6 +789,8 @@ public class AlertDispatchDAOTest { public void testAlertNoticeSorting() throws Exception { Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + m_injector.getInstance(UnitOfWork.class).end(); + m_injector.getInstance(UnitOfWork.class).begin(); m_alertHelper.populateData(cluster); http://git-wip-us.apache.org/repos/asf/ambari/blob/f6548634/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertsDAOTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertsDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertsDAOTest.java index 0bbe998..b224203 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertsDAOTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertsDAOTest.java @@ -1175,6 +1175,10 @@ public class AlertsDAOTest { public void testAlertHistoryPredicate() throws Exception { m_helper.installHdfsService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + + m_injector.getInstance(UnitOfWork.class).end(); + m_injector.getInstance(UnitOfWork.class).begin(); + m_alertHelper.populateData(m_cluster); Predicate clusterPredicate = null; @@ -1268,6 +1272,10 @@ public class AlertsDAOTest { public void testAlertHistoryPagination() throws Exception { m_helper.installHdfsService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + + m_injector.getInstance(UnitOfWork.class).end(); + m_injector.getInstance(UnitOfWork.class).begin(); + m_alertHelper.populateData(m_cluster); AlertHistoryRequest request = new AlertHistoryRequest(); @@ -1308,6 +1316,10 @@ public class AlertsDAOTest { public void testAlertHistorySorting() throws Exception { m_helper.installHdfsService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + + m_injector.getInstance(UnitOfWork.class).end(); + m_injector.getInstance(UnitOfWork.class).begin(); + m_alertHelper.populateData(m_cluster); List<SortRequestProperty> sortProperties = new ArrayList<SortRequestProperty>(); http://git-wip-us.apache.org/repos/asf/ambari/blob/f6548634/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RequestDAOTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RequestDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RequestDAOTest.java index 384ef31..0f23218 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RequestDAOTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RequestDAOTest.java @@ -49,6 +49,7 @@ import org.junit.Test; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.persist.PersistService; +import com.google.inject.persist.UnitOfWork; /** * RequestDAO unit tests @@ -72,11 +73,13 @@ public class RequestDAOTest { hostRoleCommandDAO = injector.getInstance(HostRoleCommandDAO.class); hostDAO = injector.getInstance(HostDAO.class); requestDAO = injector.getInstance(RequestDAO.class); + injector.getInstance(UnitOfWork.class).begin(); } @After public void teardown() throws AmbariException { + injector.getInstance(UnitOfWork.class).end(); injector.getInstance(PersistService.class).stop(); }