Refactored policy

4.x.x
mharindu 10 years ago
commit ffaccbe371

@ -349,18 +349,7 @@ public class OperationManagerImpl implements OperationManager {
PolicyOperation policyOperation;
for (org.wso2.carbon.device.mgt.core.dto.operation.mgt.Operation dtoOperation : dtoOperationList) {
if (dtoOperation instanceof org.wso2.carbon.device.mgt.core.dto.operation.mgt.PolicyOperation){
policyOperation = (PolicyOperation)dtoOperation;
for(org.wso2.carbon.device.mgt.core.dto.operation.mgt.ProfileOperation
profileOperation:policyOperation.getProfileOperations()){
operation = OperationDAOUtil.convertOperation(profileOperation);
}
}else{
operation = OperationDAOUtil.convertOperation(dtoOperation);
}
operation = OperationDAOUtil.convertOperation(dtoOperation);
operations.add(operation);
}
return operations;

@ -277,11 +277,7 @@ public class OperationDAOImpl implements OperationDAO {
operationDetails = rs.getBytes("OPERATION_DETAILS");
bais = new ByteArrayInputStream(operationDetails);
ois = new ObjectInputStream(bais);
if (ois.readObject() instanceof PolicyOperation){
operation = (PolicyOperation) ois.readObject();
}else{
operation = (PolicyOperation) ois.readObject();
}
operation = (ProfileOperation) ois.readObject();
} else {
operation = new Operation();
operation.setId(rs.getInt("ID"));

@ -38,6 +38,8 @@ public interface PolicyAdministratorPoint {
Policy updatePolicy(Policy policy) throws PolicyManagementException;
boolean updatePolicyPriorities(List<Policy> policies) throws PolicyManagementException;
boolean deletePolicy(Policy policy) throws PolicyManagementException;
boolean deletePolicy(int policyId) throws PolicyManagementException;

@ -22,6 +22,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.Feature;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.core.operation.mgt.PolicyOperation;
import org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation;
@ -93,27 +94,23 @@ public class PolicyManagerServiceImpl implements PolicyManagerService {
getEffectivePolicy(deviceIdentifier);
if (policy != null) {
List<DeviceIdentifier> deviceIdentifiers = new ArrayList<DeviceIdentifier>();
deviceIdentifiers.add(deviceIdentifier);
List<ProfileFeature> effectiveFeatures = policy.getProfile().getProfileFeaturesList();
ProfileOperation policyOperation = new ProfileOperation();
List<ProfileOperation> profileOperationList = new ArrayList<ProfileOperation>();
for (ProfileFeature feature : effectiveFeatures) {
ProfileOperation operation = new ProfileOperation();
operation.setCode(feature.getFeatureCode());
operation.setEnabled(true);
operation.setStatus(Operation.Status.PENDING);
operation.setType(Operation.Type.PROFILE);
operation.setPayLoad(feature.getContent());
profileOperationList.add(operation);
PolicyManagementDataHolder.getInstance().getDeviceManagementService().
addOperation(operation, deviceIdentifiers);
}
policyOperation.setPayLoad(profileOperationList);
policyOperation.setCode(PolicyManagementConstants.POLICY_BUNDLE);
List<DeviceIdentifier> deviceIdentifiers = new ArrayList<DeviceIdentifier>();
deviceIdentifiers.add(deviceIdentifier);
PolicyManagementDataHolder.getInstance().getDeviceManagementService().
addOperation(policyOperation, deviceIdentifiers);
} else {
return null;
}
@ -140,25 +137,23 @@ public class PolicyManagerServiceImpl implements PolicyManagerService {
List<ProfileFeature> effectiveFeatures = PolicyManagementDataHolder.getInstance().getPolicyEvaluationPoint().
getEffectiveFeatures(deviceIdentifier);
if (!effectiveFeatures.isEmpty()) {
ProfileOperation profileOperation = new ProfileOperation();
List<DeviceIdentifier> deviceIdentifiers = new ArrayList<DeviceIdentifier>();
deviceIdentifiers.add(deviceIdentifier);
List<ProfileOperation> profileOperationList = new ArrayList<ProfileOperation>();
List<ProfileOperation> profileOperationList = new ArrayList<ProfileOperation>();
if (!effectiveFeatures.isEmpty()) {
for (ProfileFeature feature : effectiveFeatures) {
ProfileOperation operation = new ProfileOperation();
operation.setCode(feature.getFeatureCode());
operation.setPayLoad(feature.getContent());
operation.setStatus(Operation.Status.PENDING);
operation.setType(Operation.Type.PROFILE);
operation.setEnabled(true);
profileOperationList.add(operation);
PolicyManagementDataHolder.getInstance().getDeviceManagementService().
addOperation(operation, deviceIdentifiers);
}
profileOperation.setPayLoad(profileOperationList);
profileOperation.setCode(PolicyManagementConstants.POLICY_BUNDLE);
List<DeviceIdentifier> deviceIdentifiers = new ArrayList<DeviceIdentifier>();
deviceIdentifiers.add(deviceIdentifier);
PolicyManagementDataHolder.getInstance().getDeviceManagementService().
addOperation(profileOperation, deviceIdentifiers);
} else {
return null;
}

@ -145,31 +145,28 @@ public class PolicyDAOImpl implements PolicyDAO {
@Override
public boolean updatePolicyPriorities(List<Policy> 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) {

@ -63,6 +63,11 @@ public class PolicyAdministratorPointImpl implements PolicyAdministratorPoint {
return policyManager.updatePolicy(policy);
}
@Override
public boolean updatePolicyPriorities(List<Policy> policies) throws PolicyManagementException {
return policyManager.updatePolicyPriorities(policies);
}
@Override
public boolean deletePolicy(Policy policy) throws PolicyManagementException {
return policyManager.deletePolicy(policy);
@ -203,4 +208,5 @@ public class PolicyAdministratorPointImpl implements PolicyAdministratorPoint {
public int getPolicyCount() throws PolicyManagementException {
return policyManager.getPolicyCount();
}
}

@ -32,6 +32,8 @@ public interface PolicyManager {
Policy updatePolicy(Policy policy) throws PolicyManagementException;
boolean updatePolicyPriorities(List<Policy> policies) throws PolicyManagementException;
boolean deletePolicy(Policy policy) throws PolicyManagementException;
boolean deletePolicy(int policyId) throws PolicyManagementException;

@ -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<Policy> 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);
}

Loading…
Cancel
Save