Refactor group management

revert-70aa11f8
charithag 9 years ago
parent d22570dadb
commit f6d224a623

@ -43,10 +43,12 @@ public interface GroupDAO {
* *
* @param deviceGroup group to update. * @param deviceGroup group to update.
* @param oldGroupName of the group. * @param oldGroupName of the group.
* @param oldOwner of the group.
* @param tenantId of the group. * @param tenantId of the group.
* @throws GroupManagementDAOException * @throws GroupManagementDAOException
*/ */
void updateGroup(DeviceGroup deviceGroup, String oldGroupName, int tenantId) throws GroupManagementDAOException; void updateGroup(DeviceGroup deviceGroup, String oldGroupName, String oldOwner, int tenantId)
throws GroupManagementDAOException;
/** /**
* Delete an existing Device Group. * Delete an existing Device Group.

@ -67,20 +67,21 @@ public class GroupDAOImpl implements GroupDAO {
} }
@Override @Override
public void updateGroup(DeviceGroup deviceGroup, String oldGroupName, int tenantId) public void updateGroup(DeviceGroup deviceGroup, String oldGroupName, String oldOwner, int tenantId)
throws GroupManagementDAOException { throws GroupManagementDAOException {
PreparedStatement stmt = null; PreparedStatement stmt = null;
try { try {
Connection conn = GroupManagementDAOFactory.getConnection(); Connection conn = GroupManagementDAOFactory.getConnection();
String sql = "UPDATE DM_GROUP SET DESCRIPTION = ?, GROUP_NAME = ?, DATE_OF_LAST_UPDATE = ?, OWNER = ? " String sql = "UPDATE DM_GROUP SET DESCRIPTION = ?, GROUP_NAME = ?, DATE_OF_LAST_UPDATE = ?, OWNER = ? "
+ "WHERE GROUP_NAME = ? AND TENANT_ID = ?"; + "WHERE GROUP_NAME = ? AND OWNER = ? AND TENANT_ID = ?";
stmt = conn.prepareStatement(sql); stmt = conn.prepareStatement(sql);
stmt.setString(1, deviceGroup.getDescription()); stmt.setString(1, deviceGroup.getDescription());
stmt.setString(2, deviceGroup.getName()); stmt.setString(2, deviceGroup.getName());
stmt.setLong(3, deviceGroup.getDateOfLastUpdate()); stmt.setLong(3, deviceGroup.getDateOfLastUpdate());
stmt.setString(4, deviceGroup.getOwner()); stmt.setString(4, deviceGroup.getOwner());
stmt.setString(5, oldGroupName); stmt.setString(5, oldGroupName);
stmt.setInt(6, tenantId); stmt.setString(6, oldOwner);
stmt.setInt(7, tenantId);
stmt.executeUpdate(); stmt.executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
throw new GroupManagementDAOException("Error occurred while updating deviceGroup '" + throw new GroupManagementDAOException("Error occurred while updating deviceGroup '" +

@ -47,11 +47,12 @@ public interface GroupManagementProviderService {
/** /**
* Update existing device group. * Update existing device group.
* *
* @param deviceGroup to update. * @param deviceGroup to update.
* @param oldGroupName of the group. * @param oldGroupName of the group.
* @param oldOwner of the group.
* @throws GroupManagementException * @throws GroupManagementException
*/ */
void updateGroup(DeviceGroup deviceGroup, String oldGroupName) throws GroupManagementException; void updateGroup(DeviceGroup deviceGroup, String oldGroupName, String oldOwner) throws GroupManagementException;
/** /**
* Delete existing device group. * Delete existing device group.

@ -44,6 +44,7 @@ import org.wso2.carbon.user.core.util.UserCoreUtil;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -102,14 +103,16 @@ public class GroupManagementProviderServiceImpl implements GroupManagementProvid
* {@inheritDoc} * {@inheritDoc}
*/ */
@Override @Override
public void updateGroup(DeviceGroup deviceGroup, String oldGroupName) throws GroupManagementException { public void updateGroup(DeviceGroup deviceGroup, String oldGroupName, String oldOwner)
throws GroupManagementException {
if (deviceGroup == null) { if (deviceGroup == null) {
throw new GroupManagementException("DeviceGroup cannot be null.", new NullPointerException()); throw new GroupManagementException("DeviceGroup cannot be null.", new NullPointerException());
} }
try { try {
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
GroupManagementDAOFactory.beginTransaction(); GroupManagementDAOFactory.beginTransaction();
this.groupDAO.updateGroup(deviceGroup, oldGroupName, tenantId); deviceGroup.setDateOfLastUpdate(new Date().getTime());
this.groupDAO.updateGroup(deviceGroup, oldGroupName, oldOwner, tenantId);
GroupManagementDAOFactory.commitTransaction(); GroupManagementDAOFactory.commitTransaction();
} catch (GroupManagementDAOException e) { } catch (GroupManagementDAOException e) {
GroupManagementDAOFactory.rollbackTransaction(); GroupManagementDAOFactory.rollbackTransaction();

@ -197,7 +197,7 @@ public class GroupPersistTests extends BaseDeviceManagementTest {
try { try {
GroupManagementDAOFactory.beginTransaction(); GroupManagementDAOFactory.beginTransaction();
groupDAO.updateGroup(group, TestDataHolder.generateDummyGroupData().getName(), groupDAO.updateGroup(group, TestDataHolder.generateDummyGroupData().getName(),
TestDataHolder.SUPER_TENANT_ID); TestDataHolder.generateDummyGroupData().getOwner(), TestDataHolder.SUPER_TENANT_ID);
GroupManagementDAOFactory.commitTransaction(); GroupManagementDAOFactory.commitTransaction();
log.debug("Group updated"); log.debug("Group updated");
} catch (GroupManagementDAOException e) { } catch (GroupManagementDAOException e) {

Loading…
Cancel
Save