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;

Reply via email to