Improving policy management functionalities to use deviceType in place of deviceTypeId for persisting policy information

revert-70aa11f8
prabathabey 9 years ago
parent 0125310440
commit 9aa54f2ead

@ -40,7 +40,7 @@ public class Profile {
private int tenantId;
@ApiModelProperty(name = "deviceType", value = "Contains the device type details the policy was created "
+ "for", required = true)
private DeviceType deviceType;
private String deviceType;
@ApiModelProperty(name = "createdDate", value = "The date the policy was created", required = true)
private Timestamp createdDate;
@ApiModelProperty(name = "updatedDate", value = "The date the changes made to the policy was published to"
@ -50,11 +50,11 @@ public class Profile {
+ "in the policy", required = true)
private List<ProfileFeature> profileFeaturesList; // Features included in the policies.
public DeviceType getDeviceType() {
public String getDeviceType() {
return deviceType;
}
public void setDeviceType(DeviceType deviceType) {
public void setDeviceType(String deviceType) {
this.deviceType = deviceType;
}
@XmlElement

@ -37,7 +37,7 @@ public class ProfileFeature implements Serializable {
private int profileId;
@ApiModelProperty(name = "deviceTypeId", value = "The ID used to define the type of the device platform",
required = true)
private int deviceTypeId;
private String deviceType;
@ApiModelProperty(name = "content", value = "The list of parameters that define the policy",
required = true)
private Object content;
@ -69,12 +69,12 @@ public class ProfileFeature implements Serializable {
this.profileId = profileId;
}
public int getDeviceTypeId() {
return deviceTypeId;
public String getDeviceTypeId() {
return deviceType;
}
public void setDeviceTypeId(int deviceTypeId) {
this.deviceTypeId = deviceTypeId;
public void setDeviceType(String deviceType) {
this.deviceType = deviceType;
}

@ -28,7 +28,7 @@ import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@API(name = "Device Type Management", version = "1.0.0", context = "/devicemgt_admin/configuration", tags = {"devicemgt_admin"})
@API(name = "Device Type Management", version = "1.0.0", context = "/admin/device-types", tags = {"devicemgt_admin"})
@Path("/admin/device-types")
@Api(value = "Device Type Management", description = "This API corresponds to all tasks related to device " +

@ -26,14 +26,18 @@ import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.DeviceTypeManagementService;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import java.util.List;
@Path("/admin/device-types")
public class DeviceTypeManagementServiceImpl implements DeviceTypeManagementService {
private static Log log = LogFactory.getLog(DeviceTypeManagementServiceImpl.class);
@GET
@Override
public Response getDeviceTypes(@HeaderParam("If-Modified-Since") String ifModifiedSince) {
List<String> deviceTypes;

@ -52,7 +52,7 @@ public class DeviceMgtUtil {
new org.wso2.carbon.policy.mgt.common.ProfileFeature();
profileFeature.setProfileId(mdmProfileFeature.getProfileId());
profileFeature.setContent(mdmProfileFeature.getPayLoad());
profileFeature.setDeviceTypeId(mdmProfileFeature.getDeviceTypeId());
profileFeature.setDeviceType(mdmProfileFeature.getDeviceTypeId());
profileFeature.setFeatureCode(mdmProfileFeature.getFeatureCode());
profileFeature.setId(mdmProfileFeature.getId());
return profileFeature;

@ -981,4 +981,13 @@
<method>GET</method>
</Permission>
<!-- End of Dashboard related APIs -->
<!-- Permissions of Device Type Management related resources -->
<Permission>
<name>Get device types registered in the system</name>
<path>/device-mgt/admin/device-types</path>
<url>/admin/device-types</url>
<method>GET</method>
</Permission>
<!-- End of permissions of Device Type Management related resources -->
</PermissionConfiguration>

@ -36,7 +36,7 @@ public class PolicyFilterImpl implements PolicyFilter {
@Override
public List<Policy> extractPoliciesRelatedToRoles(List<Policy> policyList, List<String> roles) {
List<Policy> policies = new ArrayList<Policy>();
List<Policy> policies = new ArrayList<>();
for (Policy policy : policyList) {
List<String> roleList = policy.getRoles();
@ -60,10 +60,10 @@ public class PolicyFilterImpl implements PolicyFilter {
*/
@Override
public List<Policy> extractPoliciesRelatedToDeviceType(List<Policy> policyList, String deviceType) {
List<Policy> policies = new ArrayList<Policy>();
List<Policy> policies = new ArrayList<>();
for (Policy policy : policyList) {
if (policy.getProfile().getDeviceType().getName().equalsIgnoreCase(deviceType)) {
if (policy.getProfile().getDeviceType().equalsIgnoreCase(deviceType)) {
policies.add(policy);
}
}

@ -33,17 +33,17 @@ public class Profile implements Serializable {
private int profileId;
private String profileName;
private int tenantId;
private DeviceType deviceType;
private String deviceType;
private Timestamp createdDate;
private Timestamp updatedDate;
// private List<Feature> featuresList; // Features included in the policies.
private List<ProfileFeature> profileFeaturesList; // Features included in the policies.
public DeviceType getDeviceType() {
public String getDeviceType() {
return deviceType;
}
public void setDeviceType(DeviceType deviceType) {
public void setDeviceType(String deviceType) {
this.deviceType = deviceType;
}
@XmlElement

@ -38,7 +38,7 @@ public class ProfileFeature implements Serializable {
private int profileId;
@ApiModelProperty(name = "deviceTypeId", value = "The ID used to define the type of the device platform",
required = true)
private int deviceTypeId;
private String deviceType;
@ApiModelProperty(name = "content", value = "The list of parameters that define the policy",
required = true)
private Object content;
@ -67,12 +67,12 @@ public class ProfileFeature implements Serializable {
this.profileId = profileId;
}
public int getDeviceTypeId() {
return deviceTypeId;
public String getDeviceType() {
return deviceType;
}
public void setDeviceTypeId(int deviceTypeId) {
this.deviceTypeId = deviceTypeId;
public void setDeviceType(String deviceType) {
this.deviceType = deviceType;
}
public Object getContent() {

@ -31,7 +31,7 @@ public interface PolicyDAO {
Policy addPolicy(Policy policy) throws PolicyManagerDAOException;
Policy addPolicy(String deviceType, Policy policy) throws PolicyManagerDAOException;
// Policy addPolicyToDeviceType(String deviceType, Policy policy) throws PolicyManagerDAOException;
/**
* This method is used to add/update the roles associated with the policy.

@ -85,6 +85,6 @@ public interface ProfileDAO {
* @return retruns list of profiles.
* @throws ProfileManagerDAOException
*/
List<Profile> getProfilesOfDeviceType(DeviceType deviceType) throws ProfileManagerDAOException;
List<Profile> getProfilesOfDeviceType(String deviceType) throws ProfileManagerDAOException;
}

@ -66,14 +66,14 @@ public class FeatureDAOImpl implements FeatureDAO {
try {
conn = this.getConnection();
String query = "INSERT INTO DM_PROFILE_FEATURES (PROFILE_ID, FEATURE_CODE, DEVICE_TYPE_ID, CONTENT, " +
String query = "INSERT INTO DM_PROFILE_FEATURES (PROFILE_ID, FEATURE_CODE, DEVICE_TYPE, CONTENT, " +
"TENANT_ID) VALUES (?, ?, ?, ?, ?)";
stmt = conn.prepareStatement(query, new String[] {"id"});
for (ProfileFeature feature : features) {
stmt.setInt(1, profileId);
stmt.setString(2, feature.getFeatureCode());
stmt.setInt(3, feature.getDeviceTypeId());
stmt.setString(3, feature.getDeviceType());
// if (conn.getMetaData().getDriverName().contains("H2")) {
// stmt.setBytes(4, PolicyManagerUtil.getBytes(feature.getContent()));
// } else {
@ -145,10 +145,7 @@ public class FeatureDAOImpl implements FeatureDAO {
stmt = conn.prepareStatement(query);
stmt.setInt(1, profile.getProfileId());
stmt.setInt(2, tenantId);
if (stmt.executeUpdate() > 0) {
return true;
}
return false;
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
throw new FeatureManagerDAOException("Error occurred while deleting the feature related to a profile.", e);
} finally {
@ -211,7 +208,7 @@ public class FeatureDAOImpl implements FeatureDAO {
try {
conn = this.getConnection();
String query = "SELECT ID, PROFILE_ID, FEATURE_CODE, DEVICE_TYPE_ID, CONTENT FROM DM_PROFILE_FEATURES " +
String query = "SELECT ID, PROFILE_ID, FEATURE_CODE, DEVICE_TYPE, CONTENT FROM DM_PROFILE_FEATURES " +
"WHERE TENANT_ID = ?";
stmt = conn.prepareStatement(query);
stmt.setInt(1, tenantId);
@ -221,7 +218,7 @@ public class FeatureDAOImpl implements FeatureDAO {
ProfileFeature profileFeature = new ProfileFeature();
profileFeature.setFeatureCode(resultSet.getString("FEATURE_CODE"));
profileFeature.setDeviceTypeId(resultSet.getInt("DEVICE_TYPE_ID"));
profileFeature.setDeviceType(resultSet.getString("DEVICE_TYPE"));
profileFeature.setId(resultSet.getInt("ID"));
profileFeature.setProfileId(resultSet.getInt("PROFILE_ID"));
@ -272,9 +269,9 @@ public class FeatureDAOImpl implements FeatureDAO {
List<Feature> featureList = new ArrayList<Feature>();
try {
conn = this.getConnection();
String query = "SELECT f.ID ID, f.NAME NAME, f.CODE CODE, f.DEVICE_TYPE_ID DEVICE_TYPE_ID," +
String query = "SELECT f.ID ID, f.NAME NAME, f.CODE CODE, f.DEVICE_TYPE DEVICE_TYPE," +
" f.EVALUATION_RULE EVALUATION_RULE FROM DM_FEATURES f INNER JOIN DM_DEVICE_TYPE d " +
"ON d.ID=f.DEVICE_TYPE_ID WHERE d.NAME = ?";
"ON d.ID=f.DEVICE_TYPE WHERE d.NAME = ?";
stmt = conn.prepareStatement(query);
stmt.setString(1, deviceType);
resultSet = stmt.executeQuery();
@ -306,7 +303,7 @@ public class FeatureDAOImpl implements FeatureDAO {
try {
conn = this.getConnection();
String query = "SELECT ID, FEATURE_CODE, DEVICE_TYPE_ID, CONTENT FROM DM_PROFILE_FEATURES " +
String query = "SELECT ID, FEATURE_CODE, DEVICE_TYPE, CONTENT FROM DM_PROFILE_FEATURES " +
"WHERE PROFILE_ID = ? AND TENANT_ID = ?";
stmt = conn.prepareStatement(query);
stmt.setInt(1, profileId);
@ -317,7 +314,7 @@ public class FeatureDAOImpl implements FeatureDAO {
ProfileFeature profileFeature = new ProfileFeature();
profileFeature.setId(resultSet.getInt("ID"));
profileFeature.setFeatureCode(resultSet.getString("FEATURE_CODE"));
profileFeature.setDeviceTypeId(resultSet.getInt("DEVICE_TYPE_ID"));
profileFeature.setDeviceType(resultSet.getString("DEVICE_TYPE"));
ByteArrayInputStream bais = null;
ObjectInputStream ois = null;

@ -48,25 +48,25 @@ public class PolicyDAOImpl implements PolicyDAO {
return persistPolicy(policy);
}
@Override
public Policy addPolicy(String deviceType, Policy policy) throws PolicyManagerDAOException {
Connection conn;
PreparedStatement stmt = null;
try {
conn = this.getConnection();
String query = "INSERT INTO DM_DEVICE_TYPE_POLICY (DEVICE_TYPE_ID, POLICY_ID) VALUES (?, ?)";
stmt = conn.prepareStatement(query);
stmt.setInt(1, getDeviceTypeId(deviceType));
stmt.setInt(2, policy.getId());
stmt.executeQuery();
} catch (SQLException e) {
throw new PolicyManagerDAOException("Error occurred while adding the device type policy to database.", e);
} finally {
PolicyManagementDAOUtil.cleanupResources(stmt, null);
}
return policy;
}
// @Override
// public Policy addPolicyToDeviceType(String deviceType, Policy policy) throws PolicyManagerDAOException {
// Connection conn;
// PreparedStatement stmt = null;
// try {
// conn = this.getConnection();
// String query = "INSERT INTO DM_DEVICE_TYPE_POLICY (DEVICE_TYPE_ID, POLICY_ID) VALUES (?, ?)";
// stmt = conn.prepareStatement(query);
// stmt.setInt(1, getDeviceTypeId(deviceType));
// stmt.setInt(2, policy.getId());
// stmt.executeQuery();
// } catch (SQLException e) {
// throw new PolicyManagerDAOException("Error occurred while adding the device type policy to database.", e);
// } finally {
// PolicyManagementDAOUtil.cleanupResources(stmt, null);
// }
// return policy;
//
// }
@Override
public Policy addPolicyToRole(List<String> rolesToAdd, Policy policy) throws PolicyManagerDAOException {
@ -831,10 +831,10 @@ public class PolicyDAOImpl implements PolicyDAO {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
try {
conn = this.getConnection();
String query = "INSERT INTO DM_POLICY_CHANGE_MGT (POLICY_ID, DEVICE_TYPE_ID, TENANT_ID) VALUES (?, ?, ?)";
String query = "INSERT INTO DM_POLICY_CHANGE_MGT (POLICY_ID, DEVICE_TYPE, TENANT_ID) VALUES (?, ?, ?)";
stmt = conn.prepareStatement(query);
stmt.setInt(1, policy.getId());
stmt.setInt(2, policy.getProfile().getDeviceType().getId());
stmt.setString(2, policy.getProfile().getDeviceType());
stmt.setInt(3, tenantId);
stmt.executeUpdate();
@ -855,11 +855,11 @@ public class PolicyDAOImpl implements PolicyDAO {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
try {
conn = this.getConnection();
String query = "INSERT INTO DM_POLICY_CHANGE_MGT (POLICY_ID, DEVICE_TYPE_ID, TENANT_ID) VALUES (?, ?, ?)";
String query = "INSERT INTO DM_POLICY_CHANGE_MGT (POLICY_ID, DEVICE_TYPE, TENANT_ID) VALUES (?, ?, ?)";
stmt = conn.prepareStatement(query);
for (Policy policy : policies) {
stmt.setInt(1, policy.getId());
stmt.setInt(2, policy.getProfile().getDeviceType().getId());
stmt.setString(2, policy.getProfile().getDeviceType());
stmt.setInt(3, tenantId);
stmt.addBatch();
}

@ -50,12 +50,12 @@ public class ProfileDAOImpl implements ProfileDAO {
try {
conn = this.getConnection();
String query = "INSERT INTO DM_PROFILE " +
"(PROFILE_NAME,TENANT_ID, DEVICE_TYPE_ID, CREATED_TIME, UPDATED_TIME) VALUES (?, ?, ?, ?, ?)";
"(PROFILE_NAME, TENANT_ID, DEVICE_TYPE, CREATED_TIME, UPDATED_TIME) VALUES (?, ?, ?, ?, ?)";
stmt = conn.prepareStatement(query, new String[] {"id"});
stmt.setString(1, profile.getProfileName());
stmt.setInt(2, tenantId);
stmt.setLong(3, profile.getDeviceType().getId());
stmt.setString(3, profile.getDeviceType());
stmt.setTimestamp(4, profile.getCreatedDate());
stmt.setTimestamp(5, profile.getUpdatedDate());
@ -95,11 +95,11 @@ public class ProfileDAOImpl implements ProfileDAO {
try {
conn = this.getConnection();
String query = "UPDATE DM_PROFILE SET PROFILE_NAME = ? , DEVICE_TYPE_ID = ? , UPDATED_TIME = ? " +
String query = "UPDATE DM_PROFILE SET PROFILE_NAME = ? , DEVICE_TYPE = ? , UPDATED_TIME = ? " +
"WHERE ID = ? AND TENANT_ID = ?";
stmt = conn.prepareStatement(query);
stmt.setString(1, profile.getProfileName());
stmt.setLong(2, profile.getDeviceType().getId());
stmt.setString(2, profile.getDeviceType());
stmt.setTimestamp(3, profile.getUpdatedDate());
stmt.setInt(4, profile.getProfileId());
stmt.setInt(5, tenantId);
@ -183,8 +183,6 @@ public class ProfileDAOImpl implements ProfileDAO {
PreparedStatement stmt = null;
ResultSet resultSet = null;
Profile profile = new Profile();
DeviceType deviceType = new DeviceType();
try {
conn = this.getConnection();
String query = "SELECT * FROM DM_PROFILE WHERE ID = ?";
@ -194,11 +192,10 @@ public class ProfileDAOImpl implements ProfileDAO {
while (resultSet.next()) {
deviceType.setId(resultSet.getInt("DEVICE_TYPE_ID"));
profile.setProfileId(profileId);
profile.setProfileName(resultSet.getString("PROFILE_NAME"));
profile.setTenantId(resultSet.getInt("TENANT_ID"));
profile.setDeviceType(deviceType);
profile.setDeviceType(resultSet.getString("DEVICE_TYPE"));
profile.setCreatedDate(resultSet.getTimestamp("CREATED_TIME"));
profile.setUpdatedDate(resultSet.getTimestamp("UPDATED_TIME"));
}
@ -236,11 +233,7 @@ public class ProfileDAOImpl implements ProfileDAO {
profile.setTenantId(resultSet.getInt("TENANT_ID"));
profile.setCreatedDate(resultSet.getTimestamp("CREATED_TIME"));
profile.setUpdatedDate(resultSet.getTimestamp("UPDATED_TIME"));
DeviceType deviceType = new DeviceType();
deviceType.setId(resultSet.getInt("DEVICE_TYPE_ID"));
profile.setDeviceType(deviceType);
profile.setDeviceType(resultSet.getString("DEVICE_TYPE"));
profileList.add(profile);
}
@ -256,16 +249,16 @@ public class ProfileDAOImpl implements ProfileDAO {
}
@Override
public List<Profile> getProfilesOfDeviceType(DeviceType deviceType) throws ProfileManagerDAOException {
public List<Profile> getProfilesOfDeviceType(String deviceType) throws ProfileManagerDAOException {
Connection conn;
PreparedStatement stmt = null;
ResultSet resultSet = null;
List<Profile> profileList = new ArrayList<>();
try {
conn = this.getConnection();
String query = "SELECT * FROM DM_PROFILE WHERE DEVICE_TYPE_ID = ?";
String query = "SELECT * FROM DM_PROFILE WHERE DEVICE_TYPE = ?";
stmt = conn.prepareStatement(query);
stmt.setInt(1, deviceType.getId());
stmt.setString(1, deviceType);
resultSet = stmt.executeQuery();
while (resultSet.next()) {
@ -273,7 +266,7 @@ public class ProfileDAOImpl implements ProfileDAO {
profile.setProfileId(resultSet.getInt("ID"));
profile.setProfileName(resultSet.getString("PROFILE_NAME"));
profile.setTenantId(resultSet.getInt("TENANT_ID"));
profile.setDeviceType(deviceType);
profile.setDeviceType(resultSet.getString("DEVICE_TYPE"));
profile.setCreatedDate(resultSet.getTimestamp("CREATED_TIME"));
profile.setUpdatedDate(resultSet.getTimestamp("UPDATED_TIME"));

@ -54,7 +54,7 @@ public class DelegationTask implements Task {
try {
PolicyManager policyManager = new PolicyManagerImpl();
List<DeviceType> deviceTypes = policyManager.applyChangesMadeToPolicies();
List<String> deviceTypes = policyManager.applyChangesMadeToPolicies();
PolicyCacheManagerImpl.getInstance().rePopulateCache();
@ -65,9 +65,9 @@ public class DelegationTask implements Task {
DeviceManagementProviderService service = PolicyManagementDataHolder.getInstance()
.getDeviceManagementService();
List<Device> devices = new ArrayList<>();
for (DeviceType deviceType : deviceTypes) {
for (String deviceType : deviceTypes) {
try {
devices.addAll(service.getAllDevices(deviceType.getName()));
devices.addAll(service.getAllDevices(deviceType));
} catch (DeviceManagementException e) {
throw new PolicyManagementException("Error occurred while taking the devices", e);
}

@ -179,7 +179,7 @@ public class PolicyFilterImpl implements PolicyFilter {
List<Policy> temp = new ArrayList<Policy>();
for (Policy policy : policies) {
if (deviceType.equalsIgnoreCase(policy.getProfile().getDeviceType().getName())) {
if (deviceType.equalsIgnoreCase(policy.getProfile().getDeviceType())) {
temp.add(policy);
}
}

@ -68,7 +68,7 @@ public interface PolicyManager {
void addAppliedPolicyFeaturesToDevice(DeviceIdentifier deviceIdentifier, Policy policy)
throws PolicyManagementException;
List<DeviceType> applyChangesMadeToPolicies() throws PolicyManagementException;
List<String> applyChangesMadeToPolicies() throws PolicyManagementException;
void addAppliedPolicyToDevice(DeviceIdentifier deviceIdentifier, Policy policy) throws PolicyManagementException;

@ -681,7 +681,7 @@ public class PolicyManagerImpl implements PolicyManager {
List<Policy> allPolicies = PolicyCacheManagerImpl.getInstance().getAllPolicies();
for (Policy policy : allPolicies) {
if (policy.getProfile().getDeviceType().getName().equalsIgnoreCase(deviceTypeName)) {
if (policy.getProfile().getDeviceType().equalsIgnoreCase(deviceTypeName)) {
policies.add(policy);
}
}
@ -843,9 +843,9 @@ public class PolicyManagerImpl implements PolicyManager {
}
@Override
public List<DeviceType> applyChangesMadeToPolicies() throws PolicyManagementException {
public List<String> applyChangesMadeToPolicies() throws PolicyManagementException {
List<DeviceType> changedDeviceTypes = new ArrayList<>();
List<String> changedDeviceTypes = new ArrayList<>();
try {
//HashMap<Integer, Integer> map = policyDAO.getUpdatedPolicyIdandDeviceTypeId();
List<Policy> updatedPolicies = new ArrayList<>();

@ -144,8 +144,6 @@ public class ProfileManagerImpl implements ProfileManager {
public Profile getProfile(int profileId) throws ProfileManagementException {
Profile profile;
List<ProfileFeature> featureList;
DeviceType deviceType = null;
try {
PolicyManagementDAOFactory.openConnection();
profile = profileDAO.getProfile(profileId);
@ -161,41 +159,12 @@ public class ProfileManagerImpl implements ProfileManager {
} finally {
PolicyManagementDAOFactory.closeConnection();
}
try {
DeviceManagementDAOFactory.openConnection();
deviceType = deviceTypeDAO.getDeviceType(profile.getDeviceType().getId());
} catch (DeviceManagementDAOException e) {
throw new ProfileManagementException("Error occurred while getting features related profile id (" +
profileId + ")", e);
} catch (SQLException e) {
throw new ProfileManagementException("SQL exception occurred while getting features related profile id (" +
profileId + ")", e);
} finally {
DeviceManagementDAOFactory.closeConnection();
}
profile.setDeviceType(deviceType);
return profile;
}
@Override
public List<Profile> getAllProfiles() throws ProfileManagementException {
List<Profile> profileList;
List<DeviceType> deviceTypes;
try {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
DeviceManagementDAOFactory.openConnection();
deviceTypes = deviceTypeDAO.getDeviceTypes(tenantId);
} catch (SQLException e) {
throw new ProfileManagementException("Error occurred while opening a connection to the data source", e);
} catch (DeviceManagementDAOException e) {
throw new ProfileManagementException("Error occurred while retrieving device type information", e);
} finally {
DeviceManagementDAOFactory.closeConnection();
}
try {
PolicyManagementDAOFactory.openConnection();
profileList = profileDAO.getAllProfiles();
@ -210,12 +179,6 @@ public class ProfileManagerImpl implements ProfileManager {
}
}
profile.setProfileFeaturesList(list);
for (DeviceType deviceType : deviceTypes) {
if (profile.getDeviceType().getId() == deviceType.getId()) {
profile.setDeviceType(deviceType);
}
}
}
} catch (ProfileManagerDAOException e) {
throw new ProfileManagementException("Error occurred while getting profiles", e);
@ -225,29 +188,14 @@ public class ProfileManagerImpl implements ProfileManager {
throw new ProfileManagementException("Error occurred while opening a connection to the data source", e);
} finally {
PolicyManagementDAOFactory.closeConnection();
// DeviceManagementDAOFactory.closeConnection();
}
return profileList;
}
@Override
public List<Profile> getProfilesOfDeviceType(String deviceTypeName) throws ProfileManagementException {
public List<Profile> getProfilesOfDeviceType(String deviceType) throws ProfileManagementException {
List<Profile> profileList;
List<ProfileFeature> featureList;
DeviceType deviceType;
try {
DeviceManagementDAOFactory.openConnection();
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
deviceType = deviceTypeDAO.getDeviceType(deviceTypeName, tenantId);
} catch (DeviceManagementDAOException e) {
throw new ProfileManagementException("Error occurred while retrieving device type information", e);
} catch (SQLException e) {
throw new ProfileManagementException("Error occurred while opening a connection to the data source", e);
} finally {
DeviceManagementDAOFactory.closeConnection();
}
try {
PolicyManagementDAOFactory.openConnection();

@ -59,13 +59,25 @@ public class MonitoringTestCase extends BasePolicyManagementDAOTest {
}
@Test
public void testMonitorDao() throws PolicyManagementException, DeviceManagementException {
public void testMonitorDao() {
DeviceManagementProviderService service = new DeviceManagementProviderServiceImpl();
PolicyManagerService policyManagerService = new PolicyManagerServiceImpl();
List<Policy> policies = policyManagerService.getPolicies(ANDROID);
List<Device> devices = service.getAllDevices(ANDROID);
List<Policy> policies = null;
List<Device> devices = null;
try {
policies = policyManagerService.getPolicies(ANDROID);
devices = service.getAllDevices(ANDROID);
} catch (PolicyManagementException e) {
log.error("Error occurred while retrieving the list of policies defined against the device type '" +
ANDROID + "'", e);
Assert.fail();
} catch (DeviceManagementException e) {
log.error("Error occurred while retrieving the list of devices pertaining to the type '" +
ANDROID + "'", e);
Assert.fail();
}
for (Policy policy : policies) {
log.debug("Policy Name : " + policy.getPolicyName());

@ -17,6 +17,7 @@
*/
package org.wso2.carbon.policy.mgt.core;
import junit.framework.Assert;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.testng.annotations.BeforeClass;
@ -63,10 +64,11 @@ public class PolicyDAOTestCase extends BasePolicyManagementDAOTest {
deviceTypeDAO.addDeviceType(DeviceTypeCreator.getDeviceType(), -1234, true);
} catch (DeviceManagementDAOException e) {
DeviceManagementDAOFactory.rollbackTransaction();
throw new DeviceManagementDAOException("Error occurred while adding dummy device type", e);
log.error("Error occurred while adding dummy device type", e);
Assert.fail();
} catch (TransactionManagementException e) {
throw new DeviceManagementDAOException("Error occurred while initiating a transaction to add dummy " +
"device type", e);
log.error("Error occurred while initiating a transaction to add dummy device type", e);
Assert.fail();
} finally {
DeviceManagementDAOFactory.closeConnection();
}
@ -94,10 +96,12 @@ public class PolicyDAOTestCase extends BasePolicyManagementDAOTest {
enrollmentDAO.addEnrollment(id, device.getEnrolmentInfo(), -1234);
}
} catch (TransactionManagementException e) {
throw new PolicyManagementException("Error occurred while adding device enrolment", e);
log.error("Error occurred while adding device enrolment", e);
Assert.fail();
} catch (DeviceManagementDAOException e) {
DeviceManagementDAOFactory.rollbackTransaction();
throw new PolicyManagementException("Error occurred while adding device information", e);
log.error("Error occurred while adding device information", e);
Assert.fail();
} finally {
DeviceManagementDAOFactory.closeConnection();
}
@ -107,7 +111,9 @@ public class PolicyDAOTestCase extends BasePolicyManagementDAOTest {
PolicyManagementDataHolder.getInstance().setDeviceManagementService(service);
log.debug("Printing device taken by calling the service layer with device type.");
if (log.isDebugEnabled()) {
log.debug("Printing device taken by calling the service layer with device type.");
}
List<Device> devices3 = service.getAllDevices("android");
log.debug("Device list size ...! " + devices3.size());
@ -141,14 +147,19 @@ public class PolicyDAOTestCase extends BasePolicyManagementDAOTest {
}
@Test(dependsOnMethods = ("addProfileFeatures"))
public void addPolicy() throws PolicyManagementException, ProfileManagementException {
public void addPolicy() {
// ProfileManager profileManager = new ProfileManagerImpl();
Profile profile = ProfileCreator.getProfile5(FeatureCreator.getFeatureList5());
try {
Profile profile = ProfileCreator.getProfile5(FeatureCreator.getFeatureList5());
// profileManager.addProfile(profile);
PolicyAdministratorPoint pap = new PolicyAdministratorPointImpl();
policy = PolicyCreator.createPolicy(profile);
policy = pap.addPolicy(policy);
pap.activatePolicy(policy.getId());
PolicyAdministratorPoint pap = new PolicyAdministratorPointImpl();
policy = PolicyCreator.createPolicy(profile);
policy = pap.addPolicy(policy);
pap.activatePolicy(policy.getId());
} catch (PolicyManagementException e) {
log.error("Error occurred while adding the policy", e);
Assert.fail();
}
}
@Test(dependsOnMethods = ("addPolicy"))
@ -205,9 +216,15 @@ public class PolicyDAOTestCase extends BasePolicyManagementDAOTest {
}
@Test(dependsOnMethods = ("addNewPolicy"))
public void getPolicies() throws PolicyManagementException {
public void getPolicies() {
PolicyAdministratorPoint policyAdministratorPoint = new PolicyAdministratorPointImpl();
List<Policy> policyList = policyAdministratorPoint.getPolicies();
List<Policy> policyList = null;
try {
policyList = policyAdministratorPoint.getPolicies();
} catch (PolicyManagementException e) {
log.error("Error occurred while retrieving all the policies registered in the system", e);
Assert.fail();
}
log.debug("----------All policies---------");
@ -228,10 +245,16 @@ public class PolicyDAOTestCase extends BasePolicyManagementDAOTest {
}
@Test(dependsOnMethods = ("getPolicies"))
public void getDeviceTypeRelatedPolicy() throws PolicyManagementException {
public void getDeviceTypeRelatedPolicy() {
PolicyAdministratorPoint policyAdministratorPoint = new PolicyAdministratorPointImpl();
List<Policy> policyList = policyAdministratorPoint.getPoliciesOfDeviceType("android");
List<Policy> policyList = null;
try {
policyList = policyAdministratorPoint.getPoliciesOfDeviceType("android");
} catch (PolicyManagementException e) {
log.error("Error occurred while retrieving the list of policies configured upon the platform 'android'", e);
Assert.fail();
}
log.debug("----------Device type related policy---------");
@ -253,10 +276,17 @@ public class PolicyDAOTestCase extends BasePolicyManagementDAOTest {
@Test(dependsOnMethods = ("getDeviceTypeRelatedPolicy"))
public void getUserRelatedPolicy() throws PolicyManagementException {
public void getUserRelatedPolicy() {
String targetUser = "Dilshan";
PolicyAdministratorPoint policyAdministratorPoint = new PolicyAdministratorPointImpl();
List<Policy> policyList = policyAdministratorPoint.getPoliciesOfUser("Dilshan");
List<Policy> policyList = null;
try {
policyList = policyAdministratorPoint.getPoliciesOfUser(targetUser);
} catch (PolicyManagementException e) {
log.error("Error occurred while retrieving the list of policies assigned to the user '" +
targetUser + "'", e);
Assert.fail();
}
log.debug("----------User related policy---------");
@ -277,10 +307,17 @@ public class PolicyDAOTestCase extends BasePolicyManagementDAOTest {
}
@Test(dependsOnMethods = ("getDeviceTypeRelatedPolicy"))
public void getRoleRelatedPolicy() throws PolicyManagementException {
public void getRoleRelatedPolicy() {
String targetRole = "Test_ROLE_01";
PolicyAdministratorPoint policyAdministratorPoint = new PolicyAdministratorPointImpl();
List<Policy> policyList = policyAdministratorPoint.getPoliciesOfRole("Test_ROLE_01");
List<Policy> policyList = null;
try {
policyList = policyAdministratorPoint.getPoliciesOfRole(targetRole);
} catch (PolicyManagementException e) {
log.error("Error occurred while retrieving the list of policies defined against the role '" +
targetRole + "'", e);
Assert.fail();
}
log.debug("----------Roles related policy---------");

@ -19,6 +19,7 @@
package org.wso2.carbon.policy.mgt.core;
import junit.framework.Assert;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.testng.annotations.BeforeClass;
@ -54,18 +55,37 @@ public class PolicyEvaluationTestCase extends BasePolicyManagementDAOTest {
}
@Test
public void activatePolicies() throws PolicyManagementException, TaskException {
public void activatePolicies() {
PolicyManagerService policyManagerService = new PolicyManagerServiceImpl();
PolicyAdministratorPoint administratorPoint = policyManagerService.getPAP();
PolicyAdministratorPoint administratorPoint = null;
try {
administratorPoint = policyManagerService.getPAP();
} catch (PolicyManagementException e) {
log.error("Error occurred while loading the policy administration point", e);
Assert.fail();
}
List<Policy> policies = policyManagerService.getPolicies(ANDROID);
List<Policy> policies = null;
try {
policies = policyManagerService.getPolicies(ANDROID);
} catch (PolicyManagementException e) {
log.error("Error occurred while retrieving the list of policies defined against the device type '" +
ANDROID + "'", e);
Assert.fail();
}
for (Policy policy : policies) {
log.debug("Policy status : " + policy.getPolicyName() + " - " + policy.isActive() + " - " + policy
.isUpdated() + " Policy id : " + policy.getId());
if (!policy.isActive()) {
administratorPoint.activatePolicy(policy.getId());
try {
administratorPoint.activatePolicy(policy.getId());
} catch (PolicyManagementException e) {
log.error("Error occurred while activating the policy, which carries the id '" +
policy.getId() + "'", e);
Assert.fail();
}
}
}
// This cannot be called due to task service cannot be started from the

@ -29,60 +29,40 @@ public class ProfileCreator {
public static Profile getProfile(List<Feature> features) {
Profile profile = new Profile();
DeviceType deviceType = new DeviceType();
deviceType.setId(1);
deviceType.setName("android");
profile.setProfileFeaturesList(ProfileFeatureCreator.getProfileFeature(features));
profile.setProfileName("Test Profile");
profile.setTenantId(MultitenantConstants.SUPER_TENANT_ID);
profile.setDeviceType(deviceType);
profile.setDeviceType("android");
return profile;
}
public static Profile getProfile2(List<Feature> features) {
Profile profile = new Profile();
DeviceType deviceType = new DeviceType();
deviceType.setId(1);
deviceType.setName("android");
profile.setProfileFeaturesList(ProfileFeatureCreator.getProfileFeature(features));
profile.setProfileName("Test Profile 2");
profile.setTenantId(MultitenantConstants.SUPER_TENANT_ID);
profile.setDeviceType(deviceType);
profile.setDeviceType("android");
return profile;
}
public static Profile getProfile3(List<Feature> features) {
Profile profile = new Profile();
DeviceType deviceType = new DeviceType();
deviceType.setId(1);
deviceType.setName("android");
profile.setProfileFeaturesList(ProfileFeatureCreator.getProfileFeature(features));
profile.setProfileName("Test Profile 3");
profile.setTenantId(MultitenantConstants.SUPER_TENANT_ID);
profile.setDeviceType(deviceType);
profile.setDeviceType("android");
return profile;
}
public static Profile getProfile4(List<Feature> features) {
Profile profile = new Profile();
DeviceType deviceType = new DeviceType();
deviceType.setId(1);
deviceType.setName("android");
profile.setProfileFeaturesList(ProfileFeatureCreator.getProfileFeature(features));
profile.setProfileName("Test Profile 4");
profile.setTenantId(MultitenantConstants.SUPER_TENANT_ID);
profile.setDeviceType(deviceType);
profile.setDeviceType("android");
return profile;
}
@ -90,15 +70,10 @@ public class ProfileCreator {
public static Profile getProfile5(List<Feature> features) {
Profile profile = new Profile();
DeviceType deviceType = new DeviceType();
deviceType.setId(1);
deviceType.setName("android");
profile.setProfileFeaturesList(ProfileFeatureCreator.getProfileFeature(features));
profile.setProfileName("Test Profile 5");
profile.setTenantId(MultitenantConstants.SUPER_TENANT_ID);
profile.setDeviceType(deviceType);
profile.setDeviceType("android");
return profile;
}

@ -38,7 +38,9 @@ public class ProfileFeatureCreator {
} else {
profileFeature.setContent(getJSON2());
}
profileFeature.setDeviceTypeId(1);
//TODO why assigning a random number below?
//profileFeature.setDeviceTypeId(1);
profileFeature.setDeviceType("android");
profileFeature.setFeatureCode(feature.getCode());
// profileFeature.setContent("mm");

@ -141,13 +141,13 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE (
ID INT NOT NULL AUTO_INCREMENT ,
PROFILE_NAME VARCHAR(45) NOT NULL ,
TENANT_ID INT NOT NULL ,
DEVICE_TYPE_ID INT NOT NULL ,
DEVICE_TYPE VARCHAR(20) NOT NULL ,
CREATED_TIME DATETIME NOT NULL ,
UPDATED_TIME DATETIME NOT NULL ,
PRIMARY KEY (ID) ,
CONSTRAINT DM_PROFILE_DEVICE_TYPE
FOREIGN KEY (DEVICE_TYPE_ID )
REFERENCES DM_DEVICE_TYPE (ID )
FOREIGN KEY (DEVICE_TYPE )
REFERENCES DM_DEVICE_TYPE (NAME )
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
@ -202,7 +202,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY (
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
ID INT(11) NOT NULL ,
DEVICE_TYPE_ID INT(11) NOT NULL ,
DEVICE_TYPE VARCHAR(20) NOT NULL ,
POLICY_ID INT(11) NOT NULL ,
PRIMARY KEY (ID) ,
CONSTRAINT FK_DEVICE_TYPE_POLICY
@ -211,8 +211,8 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT FK_DEVICE_TYPE_POLICY_DEVICE_TYPE
FOREIGN KEY (DEVICE_TYPE_ID )
REFERENCES DM_DEVICE_TYPE (ID )
FOREIGN KEY (DEVICE_TYPE )
REFERENCES DM_DEVICE_TYPE (NAME)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
@ -225,7 +225,7 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE_FEATURES (
ID INT(11) NOT NULL AUTO_INCREMENT,
PROFILE_ID INT(11) NOT NULL,
FEATURE_CODE VARCHAR(100) NOT NULL,
DEVICE_TYPE_ID INT NOT NULL,
DEVICE_TYPE VARCHAR(20) NOT NULL,
TENANT_ID INT(11) NOT NULL ,
CONTENT BLOB NULL DEFAULT NULL,
PRIMARY KEY (ID),
@ -346,7 +346,7 @@ CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_STATUS (
CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
ID INT NOT NULL AUTO_INCREMENT,
POLICY_ID INT NOT NULL,
DEVICE_TYPE_ID INT NOT NULL,
DEVICE_TYPE VARCHAR(20) NOT NULL,
TENANT_ID INT(11) NOT NULL,
PRIMARY KEY (ID)
);

@ -141,13 +141,13 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE (
ID INT NOT NULL AUTO_INCREMENT ,
PROFILE_NAME VARCHAR(45) NOT NULL ,
TENANT_ID INT NOT NULL ,
DEVICE_TYPE_ID INT NOT NULL ,
DEVICE_TYPE VARCHAR(20) NOT NULL ,
CREATED_TIME DATETIME NOT NULL ,
UPDATED_TIME DATETIME NOT NULL ,
PRIMARY KEY (ID) ,
CONSTRAINT DM_PROFILE_DEVICE_TYPE
FOREIGN KEY (DEVICE_TYPE_ID )
REFERENCES DM_DEVICE_TYPE (ID )
FOREIGN KEY (DEVICE_TYPE )
REFERENCES DM_DEVICE_TYPE (NAME)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
@ -202,7 +202,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY (
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
ID INT(11) NOT NULL ,
DEVICE_TYPE_ID INT(11) NOT NULL ,
DEVICE_TYPE VARCHAR(20) NOT NULL ,
POLICY_ID INT(11) NOT NULL ,
PRIMARY KEY (ID) ,
CONSTRAINT FK_DEVICE_TYPE_POLICY
@ -211,8 +211,8 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT FK_DEVICE_TYPE_POLICY_DEVICE_TYPE
FOREIGN KEY (DEVICE_TYPE_ID )
REFERENCES DM_DEVICE_TYPE (ID )
FOREIGN KEY (DEVICE_TYPE )
REFERENCES DM_DEVICE_TYPE (NAME)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
@ -225,7 +225,7 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE_FEATURES (
ID INT(11) NOT NULL AUTO_INCREMENT,
PROFILE_ID INT(11) NOT NULL,
FEATURE_CODE VARCHAR(100) NOT NULL,
DEVICE_TYPE_ID INT NOT NULL,
DEVICE_TYPE VARCHAR(20) NOT NULL,
TENANT_ID INT(11) NOT NULL ,
CONTENT BLOB NULL DEFAULT NULL,
PRIMARY KEY (ID),
@ -346,7 +346,7 @@ CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_STATUS (
CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
ID INT NOT NULL AUTO_INCREMENT,
POLICY_ID INT NOT NULL,
DEVICE_TYPE_ID INT NOT NULL,
DEVICE_TYPE VARCHAR(20) NOT NULL,
TENANT_ID INT(11) NOT NULL,
PRIMARY KEY (ID)
);

Loading…
Cancel
Save