diff --git a/components/policy-mgt/org.wso2.carbon.policy.information.point/src/main/java/org/wso2/carbon/policy/information/point/PolicyInformationServiceImpl.java b/components/policy-mgt/org.wso2.carbon.policy.information.point/src/main/java/org/wso2/carbon/policy/information/point/PolicyInformationServiceImpl.java index 5ce43efddf4..2cdb6bcf9fa 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.information.point/src/main/java/org/wso2/carbon/policy/information/point/PolicyInformationServiceImpl.java +++ b/components/policy-mgt/org.wso2.carbon.policy.information.point/src/main/java/org/wso2/carbon/policy/information/point/PolicyInformationServiceImpl.java @@ -18,17 +18,18 @@ package org.wso2.carbon.policy.information.point; +import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.policy.mgt.common.Feature; import org.wso2.carbon.policy.mgt.common.PIPDeviceData; import org.wso2.carbon.policy.mgt.common.Policy; -import org.wso2.carbon.policy.mgt.common.PolicyInformationService; +import org.wso2.carbon.policy.mgt.common.PolicyInformationPoint; import java.util.List; -public class PolicyInformationServiceImpl implements PolicyInformationService{ +public class PolicyInformationServiceImpl implements PolicyInformationPoint { @Override - public void getDeviceData(PIPDeviceData pipDeviceData) { - + public PIPDeviceData getDeviceData(DeviceIdentifier deviceIdentifier) { + return null; } @Override diff --git a/components/policy-mgt/org.wso2.carbon.policy.information.point/src/main/java/org/wso2/carbon/policy/information/point/internal/PolicyInformationPointBundleActivator.java b/components/policy-mgt/org.wso2.carbon.policy.information.point/src/main/java/org/wso2/carbon/policy/information/point/internal/PolicyInformationPointBundleActivator.java index c25b2855dba..b28a545dd6e 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.information.point/src/main/java/org/wso2/carbon/policy/information/point/internal/PolicyInformationPointBundleActivator.java +++ b/components/policy-mgt/org.wso2.carbon.policy.information.point/src/main/java/org/wso2/carbon/policy/information/point/internal/PolicyInformationPointBundleActivator.java @@ -24,7 +24,7 @@ import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; import org.wso2.carbon.policy.information.point.PolicyInformationServiceImpl; -import org.wso2.carbon.policy.mgt.common.PolicyInformationService; +import org.wso2.carbon.policy.mgt.common.PolicyInformationPoint; public class PolicyInformationPointBundleActivator implements BundleActivator { @@ -38,7 +38,7 @@ public class PolicyInformationPointBundleActivator implements BundleActivator { log.debug("Activating Policy information Point bundle."); } - pipServiceRegRef = bundleContext.registerService(PolicyInformationService.class.getName(), + pipServiceRegRef = bundleContext.registerService(PolicyInformationPoint.class.getName(), new PolicyInformationServiceImpl(), null); if (log.isDebugEnabled()) { diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml index bf119e445d9..1685a5b72ad 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml @@ -55,7 +55,8 @@ org.wso2.carbon.policy.mgt.common.internal org.apache.commons.logging, - org.wso2.carbon.device.mgt.core.* + org.wso2.carbon.device.mgt.common.*, + org.wso2.carbon.device.mgt.core.dto.* org.wso2.carbon.policy.mgt.common.* diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PIPDeviceData.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PIPDeviceData.java index caf5c81e2cd..d234fa96b1a 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PIPDeviceData.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PIPDeviceData.java @@ -18,14 +18,18 @@ package org.wso2.carbon.policy.mgt.common; + +import org.wso2.carbon.device.mgt.core.dto.Device; +import org.wso2.carbon.device.mgt.core.dto.DeviceType; + import java.sql.Timestamp; import java.util.List; import java.util.Map; public class PIPDeviceData { - String deviceId; - String deviceType; + Device device; + DeviceType deviceType; String ownershipType; List userIds; List roles; @@ -36,4 +40,75 @@ public class PIPDeviceData { /*This will be used to record attributes to which would come from other PDPs*/ Map attributes; + public Device getDevice() { + return device; + } + + public void setDevice(Device device) { + this.device = device; + } + + public DeviceType getDeviceType() { + return deviceType; + } + + public void setDeviceType(DeviceType deviceType) { + this.deviceType = deviceType; + } + + public String getOwnershipType() { + return ownershipType; + } + + public void setOwnershipType(String ownershipType) { + this.ownershipType = ownershipType; + } + + public List getUserIds() { + return userIds; + } + + public void setUserIds(List userIds) { + this.userIds = userIds; + } + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + public String getAltitude() { + return altitude; + } + + public void setAltitude(String altitude) { + this.altitude = altitude; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public Timestamp getTimestamp() { + return timestamp; + } + + public void setTimestamp(Timestamp timestamp) { + this.timestamp = timestamp; + } + + public Map getAttributes() { + return attributes; + } + + public void setAttributes(Map attributes) { + this.attributes = attributes; + } } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorService.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorPoint.java similarity index 75% rename from components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorService.java rename to components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorPoint.java index 4fb239d1fbe..2174b64c12c 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorService.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyAdministratorPoint.java @@ -22,7 +22,7 @@ package org.wso2.carbon.policy.mgt.common; * This interface defines the policy management which should be implemented by the plugins */ -public interface PolicyAdministratorService { +public interface PolicyAdministratorPoint { /** * This method adds a policy to the platform @@ -31,28 +31,21 @@ public interface PolicyAdministratorService { * @return primary key (generated key) */ - int addPolicy(Policy policy); + Policy addPolicy(Policy policy) throws PolicyManagementException; - /** - * This method adds a policy per device which should be implemented by the related plugins. - * - * @param deviceId - * @param deviceType - * @param policy - * @return primary key (generated key) - */ - int addPolicyToDevice(String deviceId, String deviceType, Policy policy) throws FeatureManagementException, PolicyManagementException; + Policy updatePolicy(Policy policy) throws PolicyManagementException; /** - * This method adds a policy to device type by the related device type plugins. + * This method adds a policy per device which should be implemented by the related plugins. * + * @param deviceId * @param deviceType * @param policy * @return primary key (generated key) */ - int addPolicyToDeviceType(String deviceType, Policy policy) throws FeatureManagementException, PolicyManagementException; + Policy addPolicyToDevice(String deviceId, String deviceType, Policy policy) throws FeatureManagementException, PolicyManagementException; /** * This method adds the policy to specific role. @@ -61,7 +54,7 @@ public interface PolicyAdministratorService { * @param policy * @return primary key (generated key) */ - int addPolicyToRole(String roleName, Policy policy) throws FeatureManagementException, PolicyManagementException; + Policy addPolicyToRole(String roleName, Policy policy) throws FeatureManagementException, PolicyManagementException; /** * This method returns the policy of whole platform @@ -119,7 +112,7 @@ public interface PolicyAdministratorService { * @return * @throws PolicyManagementException */ - boolean isPolicyUsed(String deviceId, String deviceType) throws PolicyManagementException; + boolean isPolicyApplied(String deviceId, String deviceType) throws PolicyManagementException; /** @@ -135,7 +128,16 @@ public interface PolicyAdministratorService { * @param profile * @throws PolicyManagementException */ - void addProfile(Profile profile) throws PolicyManagementException; + Profile addProfile(Profile profile) throws PolicyManagementException; + + boolean deleteProfile(int profileId) throws PolicyManagementException; + + Profile updateProfile(Profile profile) throws PolicyManagementException; + + Feature addFeature(Feature feature) throws FeatureManagementException; + + Feature updateFeature(Feature feature) throws FeatureManagementException; + + void deleteFeature(int featureId) throws FeatureManagementException; - void deleteProfile(int profileId) throws PolicyManagementException; } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyEvaluationService.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyEvaluationPoint.java similarity index 75% rename from components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyEvaluationService.java rename to components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyEvaluationPoint.java index b5082c578d5..944e3aa6201 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyEvaluationService.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyEvaluationPoint.java @@ -19,26 +19,28 @@ package org.wso2.carbon.policy.mgt.common; +import org.wso2.carbon.device.mgt.common.DeviceIdentifier; + import java.util.List; /** * This is the interface which will be used to create plug-able policy decision points. */ -public interface PolicyEvaluationService { +public interface PolicyEvaluationPoint { /** * This method returns the effective policy from the list. - * @param pipDeviceData device information. + * @param deviceIdentifier device information. * @return returns the effective policy. */ - Policy getEffectivePolicy(PIPDeviceData pipDeviceData); + Policy getEffectivePolicy(DeviceIdentifier deviceIdentifier); /** * This class will return the effective feature set from the list. - * @param pipDeviceData device information. + * @param deviceIdentifier device information. * @return returns the effective feature set. */ - List getEffectiveFeatures(PIPDeviceData pipDeviceData); + List getEffectiveFeatures(DeviceIdentifier deviceIdentifier); } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyInformationService.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyInformationPoint.java similarity index 77% rename from components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyInformationService.java rename to components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyInformationPoint.java index ea9509506a0..0ba6f912ffa 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyInformationService.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/PolicyInformationPoint.java @@ -19,26 +19,30 @@ package org.wso2.carbon.policy.mgt.common; +import org.wso2.carbon.device.mgt.common.DeviceIdentifier; +import org.wso2.carbon.device.mgt.core.dto.Device; + import java.util.List; /** * This will be used retrieve data database. This interface has to be implemented by PIP. PIP will be plug-able. */ -public interface PolicyInformationService { +public interface PolicyInformationPoint { /** * This method will return the data related Device, Some of the device data will provided in the initial pipDeviceData object such as * device id, device time and location, Other data such as roles, owned users and ownership type will be filled by this method. - * @param pipDeviceData device data. + * @param deviceIdentifier device data. + * @return PIPDeviceData */ - void getDeviceData(PIPDeviceData pipDeviceData); + PIPDeviceData getDeviceData(DeviceIdentifier deviceIdentifier) throws PolicyManagementException; /** * This method will retrieve the policies related given device Data. * @param pipDeviceData * @return */ - List getRelatedPolicies(PIPDeviceData pipDeviceData); + List getRelatedPolicies(PIPDeviceData pipDeviceData) throws PolicyManagementException; /** * This is will retrieve the features related to device type. This feature list will be used for dynamically @@ -46,5 +50,5 @@ public interface PolicyInformationService { * @param deviceType * @return */ - List getRelatedFeatures(String deviceType); + List getRelatedFeatures(String deviceType) throws FeatureManagementException; } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Profile.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Profile.java index e81dc42eb8b..9df30554a0a 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Profile.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/Profile.java @@ -18,6 +18,8 @@ package org.wso2.carbon.policy.mgt.common; + + import org.wso2.carbon.device.mgt.core.dto.DeviceType; import java.sql.Timestamp; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/impl/PolicyManagement.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/impl/PolicyManagement.java deleted file mode 100644 index 77ba5b6fe80..00000000000 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/main/java/org/wso2/carbon/policy/mgt/common/impl/PolicyManagement.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * you may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.policy.mgt.common.impl; - -import org.wso2.carbon.policy.mgt.common.*; - -public class PolicyManagement implements PolicyAdministratorService { - @Override - public int addPolicy(Policy policy) { - return 0; - } - - @Override - public int addPolicyToDevice(String deviceId, String deviceType, Policy policy) throws FeatureManagementException, PolicyManagementException { - return 0; - } - - @Override - public int addPolicyToDeviceType(String deviceType, Policy policy) throws FeatureManagementException, PolicyManagementException { - return 0; - } - - @Override - public int addPolicyToRole(String roleName, Policy policy) throws FeatureManagementException, PolicyManagementException { - return 0; - } - - @Override - public Policy getPolicy() { - return null; - } - - @Override - public Policy getPolicyOfDevice(String deviceId, String deviceType) throws FeatureManagementException, PolicyManagementException { - return null; - } - - @Override - public Policy getPolicyOfDeviceType(String deviceType) throws FeatureManagementException, PolicyManagementException { - return null; - } - - @Override - public Policy getPolicyOfRole(String roleName) throws FeatureManagementException, PolicyManagementException { - return null; - } - - @Override - public boolean isPolicyAvailableForDevice(String deviceId, String deviceType) throws PolicyManagementException { - return false; - } - - @Override - public boolean isPolicyUsed(String deviceId, String deviceType) throws PolicyManagementException { - return false; - } - - @Override - public void setPolicyUsed(String deviceId, String deviceType, Policy policy) throws PolicyManagementException { - - } - - @Override - public void addProfile(Profile profile) throws PolicyManagementException { - - } - - @Override - public void deleteProfile(int profileId) throws PolicyManagementException { - - } -} diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/PolicyManagementTestCase.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/PolicyManagementTestCase.java deleted file mode 100644 index 568c59684ef..00000000000 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/src/test/java/org/wos2/carbon/policy/mgt/common/PolicyManagementTestCase.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * you may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wos2.carbon.policy.mgt.common; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.testng.Assert; -import org.testng.annotations.Test; -import org.wos2.carbon.policy.mgt.common.utils.PolicyCreator; -import org.wso2.carbon.policy.mgt.common.FeatureManagementException; -import org.wso2.carbon.policy.mgt.common.Policy; -import org.wso2.carbon.policy.mgt.common.PolicyManagementException; -import org.wso2.carbon.policy.mgt.common.impl.PolicyManagement; - -public class PolicyManagementTestCase { - - private static final Log log = LogFactory.getLog(PolicyManagementTestCase.class); - - Policy policy = PolicyCreator.createPolicy(); - - private PolicyManagement policyManagement = new PolicyManagement(); - - @Test(groups = "policy.mgt.test", description = "Testing the adding policy to a device") - public void testAddPolicy() throws FeatureManagementException, PolicyManagementException { - Assert.assertEquals(policyManagement.addPolicyToDevice("1212-ESDD-12ER-7890", "MD", policy), 0); - } - - @Test(groups = "policy.mgt.test", description = "Testing the adding policy to a device type") - public void testAddPolicyToDeviceType() throws FeatureManagementException, PolicyManagementException { - Assert.assertEquals(policyManagement.addPolicyToDeviceType("MD", policy), 0); - } - - @Test(groups = "policy.mgt.test", description = "Testing the adding policy to a user Role") - public void testAddPolicyToRole() throws FeatureManagementException, PolicyManagementException { - Assert.assertEquals(policyManagement.addPolicyToRole("Admin", policy), 0); - } - -} diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml index 0a08696f4eb..9f4a7527140 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml @@ -68,7 +68,8 @@ org.wso2.carbon.policy.mgt.common.*, org.wso2.carbon.user.core.*, org.wso2.carbon.utils.*, - org.wso2.carbon.device.mgt.core.* + org.wso2.carbon.device.mgt.core.*, + org.wso2.carbon.device.mgt.common.* !org.wso2.carbon.policy.mgt.core.internal, diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyDAO.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyDAO.java index 9fd866f51f6..0ed1d8e529b 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyDAO.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/dao/PolicyDAO.java @@ -27,13 +27,15 @@ import java.util.List; public interface PolicyDAO { - int addPolicy(Policy policy) throws PolicyManagerDAOException; + Policy addPolicy(Policy policy) throws PolicyManagerDAOException; - int addPolicy(String deviceType, Policy policy) throws PolicyManagerDAOException; + Policy addPolicy(String deviceType, Policy policy) throws PolicyManagerDAOException; - int addPolicy(String deviceID, String deviceType, Policy policy) throws PolicyManagerDAOException; + Policy addPolicyToRole(String roleName, Policy policy) throws PolicyManagerDAOException; - void updatePolicy(int id, Policy policy) throws PolicyManagerDAOException; + Policy addPolicy(String deviceID, String deviceType, Policy policy) throws PolicyManagerDAOException; + + Policy updatePolicy(Policy policy) throws PolicyManagerDAOException; Policy getPolicy() throws PolicyManagerDAOException; @@ -43,7 +45,9 @@ public interface PolicyDAO { void deletePolicy(Policy policy) throws PolicyManagerDAOException; - void addProfile(Profile profile) throws PolicyManagerDAOException; + Profile addProfile(Profile profile) throws PolicyManagerDAOException; + + Profile updateProfile(Profile profile) throws PolicyManagerDAOException; void deleteProfile(Profile profile) throws PolicyManagerDAOException; @@ -60,4 +64,6 @@ public interface PolicyDAO { void deleteFeaturesOfProfile(Profile profile) throws PolicyManagerDAOException; Feature addFeature(Feature feature) throws PolicyManagerDAOException, FeatureManagementException; + + Feature updateFeature(Feature feature) throws PolicyManagerDAOException, FeatureManagementException; } 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 e5afa35ec2b..20b46af07c9 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 @@ -42,13 +42,13 @@ public class PolicyDAOImpl implements PolicyDAO { @Override - public int addPolicy(Policy policy) throws PolicyManagerDAOException { + public Policy addPolicy(Policy policy) throws PolicyManagerDAOException { persistPolicy(policy); - return policy.getId(); + return policy; } @Override - public int addPolicy(String deviceType, Policy policy) throws PolicyManagerDAOException { + public Policy addPolicy(String deviceType, Policy policy) throws PolicyManagerDAOException { // First persist the policy to the data base. persistPolicy(policy); @@ -73,12 +73,17 @@ public class PolicyDAOImpl implements PolicyDAO { PolicyManagementDAOUtil.cleanupResources(conn, stmt, resultSet); } - return policy.getId(); + return policy; } @Override - public int addPolicy(String deviceID, String deviceType, Policy policy) throws PolicyManagerDAOException { + public Policy addPolicyToRole(String roleName, Policy policy) throws PolicyManagerDAOException { + return null; + } + + @Override + public Policy addPolicy(String deviceID, String deviceType, Policy policy) throws PolicyManagerDAOException { // First persist the policy to the data base. persistPolicy(policy); @@ -96,11 +101,11 @@ public class PolicyDAOImpl implements PolicyDAO { PolicyManagementDAOUtil.cleanupResources(conn, stmt, generatedKeys); } - return 0; + return policy; } @Override - public void updatePolicy(int id, Policy policy) throws PolicyManagerDAOException { + public Policy updatePolicy(Policy policy) throws PolicyManagerDAOException { Connection conn = null; PreparedStatement stmt = null; @@ -114,6 +119,8 @@ public class PolicyDAOImpl implements PolicyDAO { } finally { PolicyManagementDAOUtil.cleanupResources(conn, stmt, generatedKeys); } + + return policy; } @Override @@ -219,7 +226,7 @@ public class PolicyDAOImpl implements PolicyDAO { int tenantId = -1234; try { conn = this.getConnection(); - String query = "IINSERT INTO DM_POLICY (NAME, PROFILE_ID, TENANT_ID) VALUES (?, ?, ?)"; + String query = "INSERT INTO DM_POLICY (NAME, PROFILE_ID, TENANT_ID) VALUES (?, ?, ?)"; stmt = conn.prepareStatement(query, stmt.RETURN_GENERATED_KEYS); stmt.setString(1, policy.getPolicyName()); @@ -276,7 +283,7 @@ public class PolicyDAOImpl implements PolicyDAO { } } - public void addProfile(Profile profile) throws PolicyManagerDAOException { + public Profile addProfile(Profile profile) throws PolicyManagerDAOException { Connection conn = null; PreparedStatement stmt = null; ResultSet generatedKeys = null; @@ -319,6 +326,13 @@ public class PolicyDAOImpl implements PolicyDAO { } finally { PolicyManagementDAOUtil.cleanupResources(conn, stmt, generatedKeys); } + + return profile; + } + + + public Profile updateProfile(Profile profile) throws PolicyManagerDAOException { + return profile; } @Override @@ -398,6 +412,12 @@ public class PolicyDAOImpl implements PolicyDAO { return feature; } + + @Override + public Feature updateFeature(Feature feature) throws PolicyManagerDAOException, FeatureManagementException { + return feature; + } + @Override public List getAllProfiles() throws PolicyManagerDAOException { Connection conn = null; diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/PolicyInformationPointImpl.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/PolicyInformationPointImpl.java new file mode 100644 index 00000000000..4bec7d69800 --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/impl/PolicyInformationPointImpl.java @@ -0,0 +1,67 @@ +/* +* Copyright (c) 2015 WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +* WSO2 Inc. licenses this file to you under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +package org.wso2.carbon.policy.mgt.core.impl; + +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.core.dao.DeviceManagementDAOException; +import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory; +import org.wso2.carbon.device.mgt.core.dao.impl.DeviceDAOImpl; +import org.wso2.carbon.device.mgt.core.dto.Device; +import org.wso2.carbon.policy.mgt.common.*; + +import java.util.List; + +public class PolicyInformationPointImpl implements PolicyInformationPoint { + + private static final Log log = LogFactory.getLog(PolicyInformationPointImpl.class); + DeviceDAOImpl deviceDAO; + + public PolicyInformationPointImpl() { + deviceDAO = new DeviceDAOImpl(DeviceManagementDAOFactory.getDataSource()); + } + + @Override + public PIPDeviceData getDeviceData(DeviceIdentifier deviceIdentifier) throws PolicyManagementException { + PIPDeviceData pipDeviceData = new PIPDeviceData(); + Device device; + try { + device = deviceDAO.getDevice(deviceIdentifier); + pipDeviceData.setDevice(device); + + } catch (DeviceManagementDAOException e) { + String msg = "Error occurred when retrieving the data related to device from the database."; + log.error(msg, e); + throw new PolicyManagementException(msg, e); + } + + return pipDeviceData; + } + + @Override + public List getRelatedPolicies(PIPDeviceData pipDeviceData) throws PolicyManagementException { + return null; + } + + @Override + public List getRelatedFeatures(String deviceType) throws FeatureManagementException { + return null; + } +} diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java index 16255d95dcc..f7fce484b16 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java @@ -21,11 +21,13 @@ package org.wso2.carbon.policy.mgt.core.internal; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.osgi.service.component.ComponentContext; -import org.wso2.carbon.policy.mgt.common.PolicyInformationService; +import org.wso2.carbon.policy.mgt.common.PolicyInformationPoint; +import org.wso2.carbon.policy.mgt.core.PolicyManager; import org.wso2.carbon.policy.mgt.core.config.PolicyConfigurationManager; import org.wso2.carbon.policy.mgt.core.config.PolicyManagementConfig; import org.wso2.carbon.policy.mgt.core.config.datasource.DataSourceConfig; import org.wso2.carbon.policy.mgt.core.dao.PolicyManagementDAOFactory; +import org.wso2.carbon.policy.mgt.core.service.PolicyManagementService; import org.wso2.carbon.user.core.service.RealmService; /** @@ -37,7 +39,7 @@ import org.wso2.carbon.user.core.service.RealmService; * bind="setRealmService" * unbind="unsetRealmService" * @scr.reference name="org.wso2.carbon.devicemgt.policy.information.point.default" - * interface="org.wso2.carbon.policy.mgt.common.PolicyInformationService" + * interface="org.wso2.carbon.policy.mgt.common.PolicyInformationPoint" * cardinality="1..1" * policy="dynamic" * bind="setPIPService" @@ -56,6 +58,9 @@ public class PolicyManagementServiceComponent { DataSourceConfig dsConfig = config.getPolicyManagementRepository().getDataSourceConfig(); PolicyManagementDAOFactory.init(dsConfig); + componentContext.getBundleContext().registerService( + PolicyManager.class.getName(), new PolicyManagementService(), null); + } catch (Throwable t) { String msg = "Error occurred while initializing the Policy management core."; log.error(msg, t); @@ -89,13 +94,13 @@ public class PolicyManagementServiceComponent { } - protected void setPIPService(PolicyInformationService policyInformationService) { + protected void setPIPService(PolicyInformationPoint policyInformationService) { if (log.isDebugEnabled()) { log.debug("Setting Policy Information Service"); } } - protected void unsetPIPService(PolicyInformationService policyInformationService) { + protected void unsetPIPService(PolicyInformationPoint policyInformationService) { if (log.isDebugEnabled()) { log.debug("Unsetting Policy Information Service"); } diff --git a/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/pom.xml index f6fe137b9b7..58a7644503e 100644 --- a/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/pom.xml @@ -59,5 +59,9 @@ org.wso2.carbon.devicemgt org.wso2.carbon.policy.mgt.common + + org.wso2.carbon.devicemgt + org.wso2.carbon.policy.mgt.core + diff --git a/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/PolicyEvaluationException.java b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/PolicyEvaluationException.java new file mode 100644 index 00000000000..f3dcdb6cd5c --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/PolicyEvaluationException.java @@ -0,0 +1,55 @@ +/* +* Copyright (c) 2015 WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +* WSO2 Inc. licenses this file to you under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +package org.wso2.carbon.simple.policy.decision.point; + +public class PolicyEvaluationException extends Exception { + + private String policyErrorMessage; + + public String getPolicyErrorMessage() { + return policyErrorMessage; + } + + public void setPolicyErrorMessage(String policyErrorMessage) { + this.policyErrorMessage = policyErrorMessage; + } + + public PolicyEvaluationException(String message) { + super(message); + setPolicyErrorMessage(message); + } + + public PolicyEvaluationException(String message, Exception ex) { + super(message, ex); + setPolicyErrorMessage(message); + } + + public PolicyEvaluationException(String message, Throwable cause) { + super(message, cause); + setPolicyErrorMessage(message); + } + + public PolicyEvaluationException() { + super(); + } + + public PolicyEvaluationException(Throwable cause) { + super(cause); + } +} diff --git a/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/PolicyEvaluationServiceImpl.java b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/PolicyEvaluationServiceImpl.java index fbeb04c7a48..21e3888e806 100644 --- a/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/PolicyEvaluationServiceImpl.java +++ b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/PolicyEvaluationServiceImpl.java @@ -18,21 +18,22 @@ package org.wso2.carbon.simple.policy.decision.point; +import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.policy.mgt.common.Feature; import org.wso2.carbon.policy.mgt.common.PIPDeviceData; import org.wso2.carbon.policy.mgt.common.Policy; -import org.wso2.carbon.policy.mgt.common.PolicyEvaluationService; +import org.wso2.carbon.policy.mgt.common.PolicyEvaluationPoint; import java.util.List; -public class PolicyEvaluationServiceImpl implements PolicyEvaluationService { +public class PolicyEvaluationServiceImpl implements PolicyEvaluationPoint { @Override - public Policy getEffectivePolicy(PIPDeviceData pipDeviceData) { + public Policy getEffectivePolicy(DeviceIdentifier deviceIdentifier) { return null; } @Override - public List getEffectiveFeatures(PIPDeviceData pipDeviceData) { + public List getEffectiveFeatures(DeviceIdentifier deviceIdentifier) { return null; } } diff --git a/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/SimpleEvaluation.java b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/SimpleEvaluation.java new file mode 100644 index 00000000000..f1d076d0fdc --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/SimpleEvaluation.java @@ -0,0 +1,31 @@ +/* +* Copyright (c) 2015 WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +* WSO2 Inc. licenses this file to you under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + + +package org.wso2.carbon.simple.policy.decision.point; + +import org.wso2.carbon.policy.mgt.common.PIPDeviceData; +import org.wso2.carbon.policy.mgt.common.Policy; + +public interface SimpleEvaluation { + + void sortPolicy(Policy policy) throws PolicyEvaluationException; + + Policy getEffectivePolicy(PIPDeviceData pipDeviceData) throws PolicyEvaluationException; + +} diff --git a/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/SimpleEvaluationImpl.java b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/SimpleEvaluationImpl.java new file mode 100644 index 00000000000..95f902a985b --- /dev/null +++ b/components/policy-mgt/org.wso2.carbon.simple.policy.decision.point/src/main/java/org/wso2/carbon/simple/policy/decision/point/SimpleEvaluationImpl.java @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2015 WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +* WSO2 Inc. licenses this file to you under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +package org.wso2.carbon.simple.policy.decision.point; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.policy.mgt.common.PIPDeviceData; +import org.wso2.carbon.policy.mgt.common.Policy; +import org.wso2.carbon.policy.mgt.core.dao.impl.PolicyDAOImpl; + +public class SimpleEvaluationImpl implements SimpleEvaluation { + + private static final Log log = LogFactory.getLog(SimpleEvaluationImpl.class); + + PolicyDAOImpl policyDAO; + + + public SimpleEvaluationImpl() { + policyDAO = new PolicyDAOImpl(); + } + + @Override + public void sortPolicy(Policy policy) throws PolicyEvaluationException { + + } + + @Override + public Policy getEffectivePolicy(PIPDeviceData pipDeviceData) throws PolicyEvaluationException { + return null; + } +}