Repository: ambari Updated Branches: refs/heads/trunk 428329bf3 -> fae3fa56d
http://git-wip-us.apache.org/repos/asf/ambari/blob/fae3fa56/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/StageDAO.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/StageDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/StageDAO.java index c8c2fa8..900dbeb 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/StageDAO.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/StageDAO.java @@ -23,6 +23,7 @@ import com.google.inject.Provider; import com.google.inject.Singleton; import com.google.inject.persist.Transactional; import org.apache.ambari.server.actionmanager.HostRoleStatus; +import org.apache.ambari.server.orm.RequiresSession; import org.apache.ambari.server.orm.entities.StageEntity; import org.apache.ambari.server.orm.entities.StageEntityPK; import org.apache.ambari.server.utils.StageUtils; @@ -41,17 +42,17 @@ public class StageDAO { @Inject DaoUtils daoUtils; - @Transactional + @RequiresSession public StageEntity findByPK(StageEntityPK stageEntityPK) { return entityManagerProvider.get().find(StageEntity.class, stageEntityPK); } - @Transactional + @RequiresSession public List<StageEntity> findAll() { return daoUtils.selectAll(entityManagerProvider.get(), StageEntity.class); } - @Transactional + @RequiresSession public long getLastRequestId() { TypedQuery<Long> query = entityManagerProvider.get().createQuery("SELECT max(stage.requestId) FROM StageEntity stage", Long.class); Long result = daoUtils.selectSingle(query); @@ -62,7 +63,7 @@ public class StageDAO { } } - @Transactional + @RequiresSession public StageEntity findByActionId(String actionId) { long[] ids = StageUtils.getRequestStage(actionId); StageEntityPK pk = new StageEntityPK(); @@ -71,7 +72,7 @@ public class StageDAO { return findByPK(pk); } - @Transactional + @RequiresSession public List<StageEntity> findByRequestId(long requestId) { TypedQuery<StageEntity> query = entityManagerProvider.get().createQuery("SELECT stage " + "FROM StageEntity stage " + @@ -80,7 +81,7 @@ public class StageDAO { return daoUtils.selectList(query, requestId); } - @Transactional + @RequiresSession public List<StageEntity> findByCommandStatuses(Collection<HostRoleStatus> statuses) { TypedQuery<StageEntity> query = entityManagerProvider.get().createQuery("SELECT stage " + "FROM StageEntity stage WHERE stage.stageId IN (SELECT hrce.stageId FROM " + @@ -89,27 +90,7 @@ public class StageDAO { return daoUtils.selectList(query, statuses); } - @Transactional - public void create(StageEntity stageEntity) { - entityManagerProvider.get().persist(stageEntity); - } - - @Transactional - public StageEntity merge(StageEntity stageEntity) { - return entityManagerProvider.get().merge(stageEntity); - } - - @Transactional - public void remove(StageEntity stageEntity) { - entityManagerProvider.get().remove(merge(stageEntity)); - } - - @Transactional - public void removeByPK(StageEntityPK stageEntityPK) { - remove(findByPK(stageEntityPK)); - } - - @Transactional + @RequiresSession public Map<Long, String> findRequestContext(List<Long> requestIds) { Map<Long, String> resultMap = new HashMap<Long, String>(); if (requestIds != null && !requestIds.isEmpty()) { @@ -127,7 +108,7 @@ public class StageDAO { return resultMap; } - @Transactional + @RequiresSession public String findRequestContext(long requestId) { TypedQuery<String> query = entityManagerProvider.get().createQuery( "SELECT stage.requestContext " + "FROM StageEntity stage " + @@ -138,4 +119,24 @@ public class StageDAO { else return ""; // Since it is defined as empty string in the StageEntity } + + @Transactional + public void create(StageEntity stageEntity) { + entityManagerProvider.get().persist(stageEntity); + } + + @Transactional + public StageEntity merge(StageEntity stageEntity) { + return entityManagerProvider.get().merge(stageEntity); + } + + @Transactional + public void remove(StageEntity stageEntity) { + entityManagerProvider.get().remove(merge(stageEntity)); + } + + @Transactional + public void removeByPK(StageEntityPK stageEntityPK) { + remove(findByPK(stageEntityPK)); + } } http://git-wip-us.apache.org/repos/asf/ambari/blob/fae3fa56/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/UserDAO.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/UserDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/UserDAO.java index 8ea1877..96c7d77 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/UserDAO.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/UserDAO.java @@ -21,6 +21,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; import com.google.inject.persist.Transactional; +import org.apache.ambari.server.orm.RequiresSession; import org.apache.ambari.server.orm.entities.UserEntity; import javax.persistence.EntityManager; @@ -37,25 +38,25 @@ public class UserDAO { @Inject DaoUtils daoUtils; - @Transactional + @RequiresSession public UserEntity findByPK(Integer userPK) { return entityManagerProvider.get().find(UserEntity.class, userPK); } - @Transactional + @RequiresSession public List<UserEntity> findAll() { TypedQuery<UserEntity> query = entityManagerProvider.get().createQuery("SELECT user FROM UserEntity user", UserEntity.class); return daoUtils.selectList(query); } - @Transactional + @RequiresSession public List<UserEntity> findAllLocalUsersByRole(RoleEntity roleEntity) { TypedQuery<UserEntity> query = entityManagerProvider.get().createQuery("SELECT role.userEntities FROM RoleEntity role WHERE role = :roleEntity", UserEntity.class); query.setParameter("roleEntity", roleEntity); return query.getResultList(); } - - @Transactional + + @RequiresSession public UserEntity findLocalUserByName(String userName) { TypedQuery<UserEntity> query = entityManagerProvider.get().createNamedQuery("localUserByName", UserEntity.class); query.setParameter("username", userName.toLowerCase()); @@ -66,7 +67,7 @@ public class UserDAO { } } - @Transactional + @RequiresSession public UserEntity findLdapUserByName(String userName) { TypedQuery<UserEntity> query = entityManagerProvider.get().createNamedQuery("ldapUserByName", UserEntity.class); query.setParameter("username", userName.toLowerCase()); http://git-wip-us.apache.org/repos/asf/ambari/blob/fae3fa56/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java index 7d22584..42c7aa9 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java @@ -39,6 +39,7 @@ import org.apache.ambari.server.orm.entities.HostComponentStateEntity; import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntity; import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntityPK; import org.apache.ambari.server.state.cluster.ClusterImpl; +import org.apache.mina.util.CopyOnWriteMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -209,7 +210,7 @@ public class ServiceComponentImpl implements ServiceComponent { try { readWriteLock.readLock().lock(); try { - return Collections.unmodifiableMap(hostComponents); + return new HashMap<String, ServiceComponentHost>(hostComponents); } finally { readWriteLock.readLock().unlock(); } http://git-wip-us.apache.org/repos/asf/ambari/blob/fae3fa56/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java index 1225160..36aa65f 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java @@ -176,7 +176,7 @@ public class ServiceImpl implements Service { try { readWriteLock.readLock().lock(); try { - return Collections.unmodifiableMap(components); + return new HashMap<String, ServiceComponent>(components); } finally { readWriteLock.readLock().unlock(); } http://git-wip-us.apache.org/repos/asf/ambari/blob/fae3fa56/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java index fc5d222..377471b 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java @@ -843,7 +843,7 @@ public class ClusterImpl implements Cluster { try { readLock.lock(); try { - return Collections.unmodifiableMap(services); + return new HashMap<String, Service>(services); } finally { readLock.unlock(); } http://git-wip-us.apache.org/repos/asf/ambari/blob/fae3fa56/ambari-server/src/test/java/org/apache/ambari/server/agent/AgentResourceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/agent/AgentResourceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/agent/AgentResourceTest.java index 37766c6..3c663fa 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/agent/AgentResourceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/agent/AgentResourceTest.java @@ -27,7 +27,7 @@ import javax.ws.rs.core.MediaType; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.inject.assistedinject.FactoryModuleBuilder; -import com.google.inject.persist.jpa.JpaPersistModule; +import com.google.inject.persist.jpa.AmbariJpaPersistModule; import junit.framework.Assert; @@ -265,7 +265,7 @@ public class AgentResourceTest extends JerseyTest { } private void installDependencies() { - install(new JpaPersistModule("ambari-javadb")); + install(new AmbariJpaPersistModule("ambari-javadb")); install(new FactoryModuleBuilder().implement( Cluster.class, ClusterImpl.class).build(ClusterFactory.class)); install(new FactoryModuleBuilder().implement( http://git-wip-us.apache.org/repos/asf/ambari/blob/fae3fa56/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java index aa79883..7729874 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java @@ -21,6 +21,7 @@ package org.apache.ambari.server.orm; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.persist.PersistService; +import com.google.inject.persist.jpa.AmbariJpaPersistService; import org.apache.ambari.server.Role; import org.apache.ambari.server.actionmanager.HostRoleStatus; import org.apache.ambari.server.actionmanager.Stage; @@ -243,12 +244,15 @@ public class TestOrmImpl extends Assert { @Test public void testConcurrentModification() throws InterruptedException { final ClusterDAO clusterDAO = injector.getInstance(ClusterDAO.class); + final AmbariJpaPersistService ambariJpaPersistService = injector.getInstance(AmbariJpaPersistService.class); ClusterEntity clusterEntity = new ClusterEntity(); clusterEntity.setClusterName("cluster1"); clusterDAO.create(clusterEntity); +// assertFalse(ambariJpaPersistService.isWorking()); clusterEntity = clusterDAO.findById(clusterEntity.getClusterId()); assertEquals("cluster1", clusterEntity.getClusterName()); +// assertFalse(ambariJpaPersistService.isWorking()); Thread thread = new Thread(){ @Override @@ -256,6 +260,7 @@ public class TestOrmImpl extends Assert { ClusterEntity clusterEntity1 = clusterDAO.findByName("cluster1"); clusterEntity1.setClusterName("anotherName"); clusterDAO.merge(clusterEntity1); +// assertFalse(ambariJpaPersistService.isWorking()); } }; @@ -263,6 +268,7 @@ public class TestOrmImpl extends Assert { thread.join(); clusterEntity = clusterDAO.findById(clusterEntity.getClusterId()); +// assertFalse(ambariJpaPersistService.isWorking()); assertEquals("anotherName", clusterEntity.getClusterName()); thread = new Thread(){ http://git-wip-us.apache.org/repos/asf/ambari/blob/fae3fa56/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserDetailsServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserDetailsServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserDetailsServiceTest.java index 73e0a8d..4843a8f 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserDetailsServiceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserDetailsServiceTest.java @@ -20,9 +20,7 @@ package org.apache.ambari.server.security.authorization; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; -import com.google.inject.persist.jpa.JpaPersistModule; import org.apache.ambari.server.orm.GuiceJpaInitializer; -import org.apache.ambari.server.orm.InMemoryDefaultTestModule; import org.apache.ambari.server.orm.OrmTestHelper; import org.apache.ambari.server.orm.dao.UserDAO; import org.apache.ambari.server.orm.entities.UserEntity;
