diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorPoint.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorPoint.java index 07c4e66f1df..c207516a4d9 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorPoint.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorPoint.java @@ -38,6 +38,8 @@ public interface PolicyAdministratorPoint { Policy updatePolicy(Policy policy) throws PolicyManagementException; + boolean updatePolicyPriorities(List policies) throws PolicyManagementException; + boolean deletePolicy(Policy policy) throws PolicyManagementException; boolean deletePolicy(int policyId) throws PolicyManagementException; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/PolicyDAOImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/PolicyDAOImpl.java index a01fada7727..3fd6cca1f79 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/PolicyDAOImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/impl/PolicyDAOImpl.java @@ -145,31 +145,28 @@ public class PolicyDAOImpl implements PolicyDAO { @Override public boolean updatePolicyPriorities(List policies) throws PolicyManagerDAOException { - /* Connection conn; + Connection conn; PreparedStatement stmt = null; try { conn = this.getConnection(); String query = "UPDATE DM_POLICY SET PRIORITY = ? WHERE ID = ?"; stmt = conn.prepareStatement(query); - stmt.setString(1, policy.getPolicyName()); - stmt.setInt(2, policy.getTenantId()); - stmt.setInt(3, policy.getProfile().getProfileId()); - stmt.setInt(4, policy.getPriorityId()); - stmt.setString(5, policy.getCompliance()); - stmt.setInt(6, policy.getId()); - stmt.executeUpdate(); + + for (Policy policy : policies) { + stmt.setInt(1, policy.getPriorityId()); + stmt.setInt(2, policy.getId()); + stmt.addBatch(); + } + stmt.executeBatch(); } catch (SQLException e) { - String msg = "Error occurred while updating policy (" + policy.getPolicyName() + ") in database."; + String msg = "Error occurred while updating policy priorities in database."; log.error(msg, e); throw new PolicyManagerDAOException(msg, e); } finally { PolicyManagementDAOUtil.cleanupResources(stmt, null); } - return policy;*/ - - - return false; + return true; } // @Override @@ -518,7 +515,7 @@ public class PolicyDAOImpl implements PolicyDAO { } stmt.executeBatch(); } - // stmt.executeUpdate(); + // stmt.executeUpdate(); } catch (SQLException e) { String msg = "Error occurred while inserting the criterion properties to database."; @@ -1146,7 +1143,7 @@ public class PolicyDAOImpl implements PolicyDAO { stmt.executeUpdate(); if (log.isDebugEnabled()) { - log.debug("Policy (" + policyId+ ") delete from database."); + log.debug("Policy (" + policyId + ") delete from database."); } return true; } catch (SQLException e) { diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/PolicyAdministratorPointImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/PolicyAdministratorPointImpl.java index 859f29bd1cb..2dad3095452 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/PolicyAdministratorPointImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/PolicyAdministratorPointImpl.java @@ -63,6 +63,11 @@ public class PolicyAdministratorPointImpl implements PolicyAdministratorPoint { return policyManager.updatePolicy(policy); } + @Override + public boolean updatePolicyPriorities(List policies) throws PolicyManagementException { + return policyManager.updatePolicyPriorities(policies); + } + @Override public boolean deletePolicy(Policy policy) throws PolicyManagementException { return policyManager.deletePolicy(policy); @@ -198,4 +203,6 @@ public class PolicyAdministratorPointImpl implements PolicyAdministratorPoint { public boolean deleteFeature(int featureId) throws FeatureManagementException { return featureManager.deleteFeature(featureId); } + + } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/PolicyManager.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/PolicyManager.java index dfe9ff7e9d8..f1d78cb1d30 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/PolicyManager.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/PolicyManager.java @@ -32,6 +32,8 @@ public interface PolicyManager { Policy updatePolicy(Policy policy) throws PolicyManagementException; + boolean updatePolicyPriorities(List policies) throws PolicyManagementException; + boolean deletePolicy(Policy policy) throws PolicyManagementException; boolean deletePolicy(int policyId) throws PolicyManagementException; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/PolicyManagerImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/PolicyManagerImpl.java index 18e832f8be6..bac0a22c7ee 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/PolicyManagerImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/mgt/impl/PolicyManagerImpl.java @@ -60,7 +60,7 @@ public class PolicyManagerImpl implements PolicyManager { try { PolicyManagementDAOFactory.beginTransaction(); if (policy.getProfile() != null && policy.getProfile().getProfileId() == 0) { - Profile profile = policy.getProfile(); + Profile profile = policy.getProfile(); Timestamp currentTimestamp = new Timestamp(Calendar.getInstance().getTime().getTime()); profile.setCreatedDate(currentTimestamp); @@ -210,6 +210,26 @@ public class PolicyManagerImpl implements PolicyManager { return policy; } + @Override + public boolean updatePolicyPriorities(List policies) throws PolicyManagementException { + boolean bool; + try { + PolicyManagementDAOFactory.beginTransaction(); + bool = policyDAO.updatePolicyPriorities(policies); + PolicyManagementDAOFactory.commitTransaction(); + } catch (PolicyManagerDAOException e) { + try { + PolicyManagementDAOFactory.rollbackTransaction(); + } catch (PolicyManagerDAOException e1) { + log.warn("Error occurred while roll backing the transaction."); + } + String msg = "Error occurred while updating the policy priorities"; + log.error(msg, e); + throw new PolicyManagementException(msg, e); + } + return bool; + } + @Override public boolean deletePolicy(Policy policy) throws PolicyManagementException { @@ -249,7 +269,7 @@ public class PolicyManagerImpl implements PolicyManager { log.warn("Error occurred while roll backing the transaction."); } String msg = "Error occurred while deleting the policy (" - + policyId +")"; + + policyId + ")"; log.error(msg, e); throw new PolicyManagementException(msg, e); }