diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
index c75fb70d2c..5a8b78c3f8 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
@@ -22,13 +22,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.annotations
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - API Management Annotations
WSO2 Carbon - API Management Custom Annotation Module
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
index 8522b19e36..b3b67e744c 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
@@ -21,12 +21,12 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
org.wso2.carbon.apimgt.application.extension.api
war
WSO2 Carbon - API Application Management API
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
index dabdd90c68..5a4395ca2f 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
@@ -22,12 +22,12 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
org.wso2.carbon.apimgt.application.extension
bundle
WSO2 Carbon - API Application Management
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
index 71573df31e..4369b43a33 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
@@ -21,13 +21,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.handlers
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - API Security Handler Component
WSO2 Carbon - API Management Security Handler Module
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
index 16853fb499..19897238a3 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
@@ -13,13 +13,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.integration.client
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - API Management Integration Client
WSO2 Carbon - API Management Integration Client
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
index 1d16ce0e6f..8861ae9f97 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
@@ -13,13 +13,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.integration.generated.client
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - API Management Integration Generated Client
WSO2 Carbon - API Management Integration Client
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
index f62b0531fa..fd181c6114 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
@@ -22,13 +22,13 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.webapp.publisher
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - API Management Webapp Publisher
WSO2 Carbon - API Management Webapp Publisher
diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml
index c200196a7e..a72f4114a9 100644
--- a/components/apimgt-extensions/pom.xml
+++ b/components/apimgt-extensions/pom.xml
@@ -22,13 +22,13 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
apimgt-extensions
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - API Management Extensions Component
http://wso2.org
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
index 1ede515b3d..478125a37a 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
index 5f7c50502e..c656b3ee95 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
index ada4fe362d..16240b442c 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
@@ -21,13 +21,13 @@
org.wso2.carbon.devicemgt
certificate-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.certificate.mgt.core
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - Certificate Management Core
WSO2 Carbon - Certificate Management Core
diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml
index 0028490274..5cb6c92a4d 100644
--- a/components/certificate-mgt/pom.xml
+++ b/components/certificate-mgt/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
certificate-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - Certificate Management Component
http://wso2.org
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
index d3559bb643..034abafaf1 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
index a5c0e5cb8c..c86994135b 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
index 30cb89eb3a..efc02a14e1 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
index 16b18feba0..fb950e4139 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
index c2d0eb0f3f..8104f60836 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
index b7f5907d14..b5f207adb7 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml
index 9b7815013b..bc6efd5419 100644
--- a/components/device-mgt-extensions/pom.xml
+++ b/components/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/pom.xml
index ec5684b5ec..1f8d65d559 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/pom.xml
@@ -3,7 +3,7 @@
org.wso2.carbon.devicemgt
device-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
index 7ff4f72267..b1a50a2224 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
index 3961bb8aaa..3b2e71700d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
index d553723077..6ff57267d0 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
@@ -21,7 +21,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
index aff01d97ad..87e9ce6a7d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/authorization/DeviceAccessAuthorizationServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/authorization/DeviceAccessAuthorizationServiceImpl.java
index f5f209d61f..10699b2f4d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/authorization/DeviceAccessAuthorizationServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/authorization/DeviceAccessAuthorizationServiceImpl.java
@@ -20,11 +20,10 @@ package org.wso2.carbon.device.mgt.core.authorization;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.CarbonConstants;
import org.wso2.carbon.context.CarbonContext;
-import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationException;
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
import org.wso2.carbon.device.mgt.common.authorization.DeviceAuthorizationResult;
@@ -36,11 +35,9 @@ import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
import org.wso2.carbon.device.mgt.core.permission.mgt.PermissionUtils;
import org.wso2.carbon.user.api.UserRealm;
import org.wso2.carbon.user.api.UserStoreException;
-
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
+
/**
* Implementation of DeviceAccessAuthorization service.
@@ -233,7 +230,7 @@ public class DeviceAccessAuthorizationServiceImpl implements DeviceAccessAuthori
return userRealm.getAuthorizationManager()
.isUserAuthorized(removeTenantDomain(username),
PermissionUtils.getAbsolutePermissionPath(CDM_ADMIN_PERMISSION),
- PermissionMethod.UI_EXECUTE);
+ CarbonConstants.UI_PERMISSION_ACTION);
}
return false;
}
@@ -265,22 +262,6 @@ public class DeviceAccessAuthorizationServiceImpl implements DeviceAccessAuthori
return PermissionUtils.putPermission(permission);
}
- private Map getOwnershipOfDevices(List devices) {
- Map ownershipData = new HashMap<>();
- EnrolmentInfo enrolmentInfo;
- String owner;
- for (Device device : devices) {
- enrolmentInfo = device.getEnrolmentInfo();
- if (enrolmentInfo != null) {
- owner = enrolmentInfo.getOwner();
- if (owner != null && !owner.isEmpty()) {
- ownershipData.put(device.getDeviceIdentifier(), owner);
- }
- }
- }
- return ownershipData;
- }
-
public static final class PermissionMethod {
public static final String READ = "read";
public static final String WRITE = "write";
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/authorization/DeviceAccessAuthorizationServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/authorization/DeviceAccessAuthorizationServiceTest.java
new file mode 100644
index 0000000000..0d47d369cd
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/authorization/DeviceAccessAuthorizationServiceTest.java
@@ -0,0 +1,356 @@
+/*
+ * Copyright (c) 2017, 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.device.mgt.core.authorization;
+
+import org.apache.commons.dbcp.BasicDataSource;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.mockito.Mockito;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+import org.wso2.carbon.CarbonConstants;
+import org.wso2.carbon.context.PrivilegedCarbonContext;
+import org.wso2.carbon.device.mgt.common.Device;
+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+import org.wso2.carbon.device.mgt.common.DeviceNotFoundException;
+import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
+import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationException;
+import org.wso2.carbon.device.mgt.common.authorization.DeviceAuthorizationResult;
+import org.wso2.carbon.device.mgt.common.group.mgt.GroupManagementException;
+import org.wso2.carbon.device.mgt.common.group.mgt.RoleDoesNotExistException;
+import org.wso2.carbon.device.mgt.common.permission.mgt.PermissionManagementException;
+import org.wso2.carbon.device.mgt.core.TestDeviceManagementService;
+import org.wso2.carbon.device.mgt.core.common.TestDataHolder;
+import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
+import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
+import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
+import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
+import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl;
+import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
+import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderServiceImpl;
+import org.wso2.carbon.registry.core.config.RegistryContext;
+import org.wso2.carbon.registry.core.exceptions.RegistryException;
+import org.wso2.carbon.registry.core.internal.RegistryDataHolder;
+import org.wso2.carbon.registry.core.jdbc.realm.InMemoryRealmService;
+import org.wso2.carbon.registry.core.service.RegistryService;
+import org.wso2.carbon.user.api.UserStoreException;
+import org.wso2.carbon.user.api.UserStoreManager;
+import org.wso2.carbon.user.api.Permission;
+import org.wso2.carbon.user.core.service.RealmService;
+import org.wso2.carbon.user.core.tenant.JDBCTenantManager;
+import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.List;
+import java.util.HashMap;
+import java.util.Arrays;
+
+/**
+ * Unit tests for DeviceAccessAuthorizationServiceTest
+ */
+public class DeviceAccessAuthorizationServiceTest {
+ private static final Log log = LogFactory.getLog(DeviceAccessAuthorizationServiceTest.class);
+ private static final String DEVICE_TYPE = "AUTH_SERVICE_TEST_TYPE";
+ private static final int NO_OF_DEVICES = 5;
+ private static final String ADMIN_USER = "admin";
+ private static final String NON_ADMIN_ALLOWED_USER = "nonAdmin";
+ private static final String NORMAL_USER = "normal";
+ private static final String ADMIN_ROLE = "adminRole";
+ private static final String NON_ADMIN_ROLE = "nonAdminRole";
+ private static final String DEFAULT_GROUP = "defaultGroup";
+ private static final String DEVICE_ID_PREFIX = "AUTH-SERVICE-TEST-DEVICE-ID-";
+ private static final String USER_CLAIM_EMAIL_ADDRESS = "http://wso2.org/claims/emailaddress";
+ private static final String USER_CLAIM_FIRST_NAME = "http://wso2.org/claims/givenname";
+ private static final String USER_CLAIM_LAST_NAME = "http://wso2.org/claims/lastname";
+ private static final String ADMIN_PERMISSION = "/permission/admin";
+ private static final String NON_ADMIN_PERMISSION = "/permission/admin/manage/device-mgt/devices/owning-device/view";
+ private static final String FIRST_NAME = "firstName";
+ private static final String LAST_NAME = "lastName";
+ private static final String EMAIL = "email";
+ private static final String PASSWORD = "password";
+ private DeviceAccessAuthorizationServiceImpl deviceAccessAuthorizationService;
+ private List deviceIds = new ArrayList<>();
+ private List groupDeviceIds = new ArrayList<>();
+ private Map defaultUserClaims;
+
+ @BeforeClass
+ public void init() throws Exception {
+ DeviceConfigurationManager.getInstance().initConfig();
+ log.info("Initializing test environment to test DeviceAccessAuthorization Class");
+ for (int i = 0; i < NO_OF_DEVICES; i++) {
+ deviceIds.add(new DeviceIdentifier(DEVICE_ID_PREFIX + i, DEVICE_TYPE));
+ }
+ List devices = TestDataHolder.generateDummyDeviceData(this.deviceIds);
+ DeviceManagementProviderService deviceMgtService = new DeviceManagementProviderServiceImpl();
+ DeviceManagementServiceComponent.notifyStartupListeners();
+ DeviceManagementDataHolder.getInstance().setDeviceManagementProvider(deviceMgtService);
+ DeviceManagementDataHolder.getInstance().setRegistryService(getRegistryService());
+ DeviceManagementDataHolder.getInstance().setGroupManagementProviderService(new
+ GroupManagementProviderServiceImpl());
+ DeviceManagementDataHolder.getInstance().setDeviceTaskManagerService(null);
+ deviceMgtService.registerDeviceType(new TestDeviceManagementService(DEVICE_TYPE,
+ MultitenantConstants.SUPER_TENANT_DOMAIN_NAME));
+ for (Device device : devices) {
+ deviceMgtService.enrollDevice(device);
+ }
+ List returnedDevices = deviceMgtService.getAllDevices(DEVICE_TYPE);
+ for (Device device : returnedDevices) {
+ if (!device.getDeviceIdentifier().startsWith(DEVICE_ID_PREFIX)) {
+ throw new Exception("Incorrect device with ID - " + device.getDeviceIdentifier() + " returned!");
+ }
+ }
+ deviceAccessAuthorizationService = Mockito.mock(DeviceAccessAuthorizationServiceImpl.class,
+ Mockito.CALLS_REAL_METHODS);
+ defaultUserClaims = buildDefaultUserClaims(FIRST_NAME, LAST_NAME, EMAIL);
+ initializeTestEnvironment();
+ //Starting tenant flow
+ PrivilegedCarbonContext.startTenantFlow();
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(MultitenantConstants.SUPER_TENANT_ID, true);
+ }
+
+ private RegistryService getRegistryService() throws RegistryException, UserStoreException {
+ RealmService realmService = new InMemoryRealmService();
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(ADMIN_USER);
+ BasicDataSource dataSource = new BasicDataSource();
+ String connectionUrl = "jdbc:h2:./target/databasetest/CARBON_TEST";
+ dataSource.setUrl(connectionUrl);
+ dataSource.setDriverClassName("org.h2.Driver");
+ JDBCTenantManager jdbcTenantManager = new JDBCTenantManager(dataSource,
+ MultitenantConstants.SUPER_TENANT_DOMAIN_NAME);
+ realmService.setTenantManager(jdbcTenantManager);
+ RegistryDataHolder.getInstance().setRealmService(realmService);
+ DeviceManagementDataHolder.getInstance().setRealmService(realmService);
+ InputStream is = this.getClass().getClassLoader().getResourceAsStream("carbon-home/repository/conf/registry.xml");
+ RegistryContext context = RegistryContext.getBaseInstance(is, realmService);
+ context.setSetup(true);
+ return context.getEmbeddedRegistryService();
+ }
+
+ private void initializeTestEnvironment() throws UserStoreException, GroupManagementException,
+ RoleDoesNotExistException, DeviceNotFoundException {
+ //creating UI permission
+ Permission adminPermission = new Permission(ADMIN_PERMISSION, CarbonConstants.UI_PERMISSION_ACTION);
+ Permission deviceViewPermission = new Permission(NON_ADMIN_PERMISSION, CarbonConstants.UI_PERMISSION_ACTION);
+ UserStoreManager userStoreManager = DeviceManagementDataHolder.getInstance().getRealmService()
+ .getTenantUserRealm(MultitenantConstants.SUPER_TENANT_ID).getUserStoreManager();
+ //Adding a non Admin User
+ userStoreManager.addUser(NON_ADMIN_ALLOWED_USER, PASSWORD, null, defaultUserClaims, null);
+ //Adding a normal user
+ userStoreManager.addUser(NORMAL_USER, PASSWORD, null, defaultUserClaims, null);
+ //Adding role with permission to Admin user
+ userStoreManager.addRole(ADMIN_ROLE, new String[]{ADMIN_USER}, new Permission[]{adminPermission});
+ //Adding role with permission to non Admin user
+ userStoreManager.addRole(NON_ADMIN_ROLE, new String[]{NON_ADMIN_ALLOWED_USER},
+ new Permission[]{deviceViewPermission});
+ //Creating default group
+ GroupManagementProviderService groupManagementProviderService = DeviceManagementDataHolder.getInstance()
+ .getGroupManagementProviderService();
+ groupManagementProviderService.createDefaultGroup(DEFAULT_GROUP);
+ int groupId = groupManagementProviderService.getGroup(DEFAULT_GROUP).getGroupId();
+ //Sharing group with admin and non admin roles
+ groupManagementProviderService.manageGroupSharing(groupId, new ArrayList<>(Arrays.asList(ADMIN_ROLE,
+ NON_ADMIN_ROLE)));
+ //Adding first 2 devices to the group
+ groupDeviceIds.add(deviceIds.get(0));
+ groupDeviceIds.add(deviceIds.get(1));
+ groupManagementProviderService.addDevices(groupId, groupDeviceIds);
+ }
+
+ private Map buildDefaultUserClaims(String firstName, String lastName, String emailAddress) {
+ Map defaultUserClaims = new HashMap<>();
+ defaultUserClaims.put(USER_CLAIM_FIRST_NAME, firstName);
+ defaultUserClaims.put(USER_CLAIM_LAST_NAME, lastName);
+ defaultUserClaims.put(USER_CLAIM_EMAIL_ADDRESS, emailAddress);
+ if (log.isDebugEnabled()) {
+ log.debug("Default claim map is created for new user: " + defaultUserClaims.toString());
+ }
+ return defaultUserClaims;
+ }
+
+ //Admin User test cases
+ @Test(description = "Check authorization giving a device identifier and username")
+ public void userAuthDevIdUserName() throws Exception {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(ADMIN_USER);
+ for (DeviceIdentifier deviceId : deviceIds) {
+ Assert.assertTrue(deviceAccessAuthorizationService.isUserAuthorized(deviceId, ADMIN_USER),
+ "Device access authorization for admin user failed");
+ }
+ }
+
+ @Test(description = "Authorization for multiple device identifiers and username")
+ public void userAuthDevIdUserNameResult() throws DeviceAccessAuthorizationException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(ADMIN_USER);
+ DeviceAuthorizationResult deviceAuthorizationResult = deviceAccessAuthorizationService.
+ isUserAuthorized(deviceIds, ADMIN_USER);
+ Assert.assertEquals(deviceAuthorizationResult.getAuthorizedDevices().size(), 5,
+ "Expected 5 authorized devices for admin user");
+ Assert.assertEquals(deviceAuthorizationResult.getUnauthorizedDevices().size(), 0,
+ "Expected 0 un-authorized devices for admin user");
+ }
+
+ @Test(description = "Authorization by device identifier")
+ public void userAuthDevId() throws Exception {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(ADMIN_USER);
+ for (DeviceIdentifier deviceId : deviceIds) {
+ Assert.assertTrue(deviceAccessAuthorizationService.isUserAuthorized(deviceId),
+ "Authorize user from device identifier failed");
+ }
+ }
+
+ @Test(description = "Authorization by multiple device identifiers")
+ public void userAuthDevIdResult() throws Exception {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(ADMIN_USER);
+ DeviceAuthorizationResult deviceAuthorizationResult = deviceAccessAuthorizationService.
+ isUserAuthorized(deviceIds);
+ Assert.assertEquals(deviceAuthorizationResult.getAuthorizedDevices().size(), 5,
+ "Expected 5 authorized devices for admin user");
+ Assert.assertEquals(deviceAuthorizationResult.getUnauthorizedDevices().size(), 0,
+ "Expected 0 un-authorized devices for admin user");
+ }
+
+ @Test(description = "Check current user is a device administrator")
+ public void isDevAdminAdminUser() throws DeviceAccessAuthorizationException, UserStoreException,
+ PermissionManagementException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(ADMIN_USER);
+ Assert.assertTrue(deviceAccessAuthorizationService.isDeviceAdminUser(),
+ "Admin user failed to authorize as admin");
+ }
+
+ //Non admin user tests
+ @Test(description = "Check authorization by device identifier and permission Allowed test case")
+ public void userAuthDevIdPermission() throws DeviceAccessAuthorizationException, UserStoreException,
+ PermissionManagementException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NON_ADMIN_ALLOWED_USER);
+ Assert.assertTrue(deviceAccessAuthorizationService.isUserAuthorized(deviceIds.get(0),
+ new String[]{NON_ADMIN_PERMISSION}), "Non admin user with permissions attempt to access failed");
+ }
+
+ @Test(description = "Check authorization by device identifier and permission Not-allowed test case")
+ public void userAuthFalseDevIdPermission() throws DeviceAccessAuthorizationException, UserStoreException,
+ PermissionManagementException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NON_ADMIN_ALLOWED_USER);
+ Assert.assertFalse(deviceAccessAuthorizationService.isUserAuthorized(deviceIds.get(3),
+ new String[]{NON_ADMIN_PERMISSION}), "Non admin user accessing not allowed device authorized");
+ }
+
+ @Test(description = "Authorization by giving a device identifier, username and permission Allowed test case")
+ public void userAuthDevIdUserNamePermission() throws DeviceAccessAuthorizationException, UserStoreException,
+ PermissionManagementException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NON_ADMIN_ALLOWED_USER);
+ Assert.assertTrue(deviceAccessAuthorizationService.isUserAuthorized(deviceIds.get(0), NON_ADMIN_ALLOWED_USER,
+ new String[]{NON_ADMIN_PERMISSION}), "Non admin user with permissions attempt to access failed");
+ }
+
+ @Test(description = "Authorization by giving a device identifier, username and permission Not-allowed test case")
+ public void userAuthFalseDevIdUserNamePermission() throws DeviceAccessAuthorizationException, UserStoreException,
+ PermissionManagementException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NON_ADMIN_ALLOWED_USER);
+ Assert.assertFalse(deviceAccessAuthorizationService.isUserAuthorized(deviceIds.get(3), NON_ADMIN_ALLOWED_USER,
+ new String[]{NON_ADMIN_PERMISSION}), "Non admin user accessing not allowed device authorized");
+ }
+
+ @Test(description = "Authorization by giving device identifiers and permission")
+ public void userAuthDevIdPermissionResult() throws DeviceAccessAuthorizationException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NON_ADMIN_ALLOWED_USER);
+ DeviceAuthorizationResult deviceAuthorizationResult = deviceAccessAuthorizationService.
+ isUserAuthorized(deviceIds, new String[]{NON_ADMIN_PERMISSION});
+ Assert.assertEquals(deviceAuthorizationResult.getAuthorizedDevices().size(), 2,
+ "Non admin user authentication to 2 devices in a shared group failed");
+ Assert.assertEquals(deviceAuthorizationResult.getUnauthorizedDevices().size(), 3,
+ "Non admin user authentication to 3 devices in a non-shared group failed");
+ }
+
+ @Test(description = "Authorization by giving device identifiers, username and permission")
+ public void userAuthDevIdUserNamePermissionResult() throws DeviceAccessAuthorizationException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NON_ADMIN_ALLOWED_USER);
+ DeviceAuthorizationResult deviceAuthorizationResult = deviceAccessAuthorizationService.
+ isUserAuthorized(deviceIds, NON_ADMIN_ALLOWED_USER, new String[]{NON_ADMIN_PERMISSION});
+ Assert.assertEquals(deviceAuthorizationResult.getAuthorizedDevices().size(), 2,
+ "Non admin user authentication to 2 devices in a shared group failed");
+ Assert.assertEquals(deviceAuthorizationResult.getUnauthorizedDevices().size(), 3,
+ "Non admin user authentication to 3 devices in a non-shared group failed");
+ }
+
+ @Test(description = "Authorization for device admin called by normal user")
+ public void isDevAdminNormalUser() throws DeviceAccessAuthorizationException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NORMAL_USER);
+ Assert.assertFalse(deviceAccessAuthorizationService.isDeviceAdminUser(), "Normal user allowed as admin user");
+ }
+
+ //Check branches of isUserAuthorized
+ @Test(description = "Checking branch - user is device owner")
+ public void nonAdminDeviceOwner() throws DeviceAccessAuthorizationException, DeviceManagementException {
+
+ //Creating a temporary device
+ Device device = new Device();
+ EnrolmentInfo enrolmentInfo = new EnrolmentInfo(NON_ADMIN_ALLOWED_USER, EnrolmentInfo.OwnerShip.BYOD, null);
+ device.setEnrolmentInfo(enrolmentInfo);
+ device.setName("temp");
+ device.setType(DEVICE_TYPE);
+ device.setDeviceIdentifier("1234");
+ DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().enrollDevice(device);
+
+ //temporary device identifier
+ DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
+ deviceIdentifier.setType(DEVICE_TYPE);
+ deviceIdentifier.setId("1234");
+
+ List tempList = new ArrayList<>();
+ tempList.add(deviceIdentifier);
+
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NON_ADMIN_ALLOWED_USER);
+ DeviceAuthorizationResult deviceAuthorizationResult = deviceAccessAuthorizationService.
+ isUserAuthorized(tempList, NON_ADMIN_ALLOWED_USER, new String[]{NON_ADMIN_PERMISSION});
+ Assert.assertEquals(deviceAuthorizationResult.getAuthorizedDevices().size(), 1,
+ "Non admin device owner failed to access device");
+ Assert.assertEquals(deviceAuthorizationResult.getUnauthorizedDevices().size(), 0,
+ "Non admin device owner failed to access device");
+ }
+
+ @Test(description = "Check authorization without giving permissions")
+ public void userAuthWithoutPermissions() throws DeviceAccessAuthorizationException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NON_ADMIN_ALLOWED_USER);
+ DeviceAuthorizationResult deviceAuthorizationResult = deviceAccessAuthorizationService.
+ isUserAuthorized(deviceIds, NON_ADMIN_ALLOWED_USER, null);
+ Assert.assertEquals(deviceAuthorizationResult.getAuthorizedDevices().size(), 0,
+ "Non admin user try authentication without permission failed");
+ Assert.assertEquals(deviceAuthorizationResult.getUnauthorizedDevices().size(), 5,
+ "Non admin user try authentication without permission failed");
+ }
+
+ //check Exception cases
+ @Test(description = "check a null username in isUserAuthorized method")
+ public void callUserAuthWithoutUsername() throws DeviceAccessAuthorizationException {
+ PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(NON_ADMIN_ALLOWED_USER);
+ DeviceAuthorizationResult deviceAuthorizationResult = deviceAccessAuthorizationService.
+ isUserAuthorized(deviceIds, "", new String[]{NON_ADMIN_PERMISSION});
+ Assert.assertEquals(deviceAuthorizationResult, null,
+ "Not null result for empty username in isUserAuthorized method");
+ }
+
+ @AfterClass
+ public void clearAll() {
+ PrivilegedCarbonContext.endTenantFlow();
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/operation/OperationManagementTests.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/operation/OperationManagementTests.java
index 9ba56c160a..c861e2fb75 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/operation/OperationManagementTests.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/operation/OperationManagementTests.java
@@ -144,7 +144,8 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
}
@Test(expectedExceptions = InvalidDeviceException.class)
- public void addNonInitializedDevicesCommandOperation() throws DeviceManagementException, OperationManagementException,
+ public void addNonInitializedDevicesCommandOperation() throws DeviceManagementException,
+ OperationManagementException,
InvalidDeviceException {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
List deviceIdentifiers = new ArrayList<>();
@@ -207,8 +208,8 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
}
private void validateOperationResponse(Activity activity, ActivityStatus.Status expectedStatus) {
- Assert.assertEquals(activity.getActivityStatus().size(), NO_OF_DEVICES, "The operation response for add operation only have - " +
- activity.getActivityStatus().size());
+ Assert.assertEquals(activity.getActivityStatus().size(), NO_OF_DEVICES, "The operation response for add " +
+ "operation only have - " + activity.getActivityStatus().size());
for (ActivityStatus status : activity.getActivityStatus()) {
Assert.assertEquals(status.getStatus(), expectedStatus);
}
@@ -223,7 +224,8 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
}
@Test(dependsOnMethods = "addProfileOperation", expectedExceptions = OperationManagementException.class)
- public void getOperationsAsNonAdmin() throws DeviceManagementException, OperationManagementException, InvalidDeviceException {
+ public void getOperationsAsNonAdmin() throws DeviceManagementException, OperationManagementException,
+ InvalidDeviceException {
try {
startTenantFlowAsNonAdmin();
for (DeviceIdentifier deviceIdentifier : deviceIds) {
@@ -235,15 +237,18 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
}
@Test(dependsOnMethods = "getOperations")
- public void getPendingOperations() throws DeviceManagementException, OperationManagementException, InvalidDeviceException {
+ public void getPendingOperations() throws DeviceManagementException, OperationManagementException,
+ InvalidDeviceException {
for (DeviceIdentifier deviceIdentifier : deviceIds) {
List operations = this.operationMgtService.getPendingOperations(deviceIdentifier);
- Assert.assertEquals(operations.size(), 4, "The pending operations should be 4, but found only " + operations.size());
+ Assert.assertEquals(operations.size(), 4, "The pending operations should be 4, but found only "
+ + operations.size());
}
}
@Test(dependsOnMethods = "getOperations", expectedExceptions = OperationManagementException.class)
- public void getPendingOperationsAsNonAdmin() throws DeviceManagementException, OperationManagementException, InvalidDeviceException {
+ public void getPendingOperationsAsNonAdmin() throws DeviceManagementException, OperationManagementException,
+ InvalidDeviceException {
try {
startTenantFlowAsNonAdmin();
for (DeviceIdentifier deviceIdentifier : deviceIds) {
@@ -357,14 +362,16 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
@Test(dependsOnMethods = "getNextPendingOperation")
public void getOperationByDeviceAndOperationId() throws OperationManagementException {
DeviceIdentifier deviceIdentifier = this.deviceIds.get(0);
- String operationId = this.commandActivity.getActivityId().
- replace(DeviceManagementConstants.OperationAttributes.ACTIVITY, "");
Operation operation = this.operationMgtService.getOperationByDeviceAndOperationId(deviceIdentifier,
- Integer.parseInt(operationId));
+ getOperationId(this.commandActivity.getActivityId()));
Assert.assertTrue(operation.getStatus().equals(Operation.Status.COMPLETED));
Assert.assertTrue(operation.getType().equals(Operation.Type.COMMAND));
}
+ private int getOperationId(String activityId) {
+ return Integer.parseInt(activityId.replace(DeviceManagementConstants.OperationAttributes.ACTIVITY, ""));
+ }
+
@Test(dependsOnMethods = "getNextPendingOperation", expectedExceptions = OperationManagementException.class)
public void getOperationByDeviceAndOperationIdNonAdmin() throws OperationManagementException {
startTenantFlowAsNonAdmin();
@@ -382,12 +389,14 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
@Test(dependsOnMethods = "getOperationByDeviceAndOperationId")
public void getOperationsByDeviceAndStatus() throws OperationManagementException, DeviceManagementException {
DeviceIdentifier deviceIdentifier = this.deviceIds.get(0);
- List operation = this.operationMgtService.getOperationsByDeviceAndStatus(deviceIdentifier, Operation.Status.PENDING);
+ List operation = this.operationMgtService.getOperationsByDeviceAndStatus(deviceIdentifier,
+ Operation.Status.PENDING);
Assert.assertEquals(operation.size(), 3);
}
@Test(dependsOnMethods = "getOperationByDeviceAndOperationId", expectedExceptions = OperationManagementException.class)
- public void getOperationsByDeviceAndStatusByNonAdmin() throws OperationManagementException, DeviceManagementException {
+ public void getOperationsByDeviceAndStatusByNonAdmin() throws OperationManagementException,
+ DeviceManagementException {
startTenantFlowAsNonAdmin();
try {
DeviceIdentifier deviceIdentifier = this.deviceIds.get(0);
@@ -474,7 +483,8 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
}
@Test(dependsOnMethods = "getOperationForInactiveDevice", expectedExceptions = OperationManagementException.class)
- public void getPaginatedOperationDeviceForInvalidDevice() throws DeviceManagementException, OperationManagementException {
+ public void getPaginatedOperationDeviceForInvalidDevice() throws DeviceManagementException,
+ OperationManagementException {
PrivilegedCarbonContext.startTenantFlow();
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(MultitenantConstants.SUPER_TENANT_ID, true);
PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(ADMIN_USER);
@@ -482,7 +492,8 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
PaginationRequest request = new PaginationRequest(1, 2);
request.setDeviceType(DEVICE_TYPE);
request.setOwner(ADMIN_USER);
- PaginationResult result = this.operationMgtService.getOperations(new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE), request);
+ PaginationResult result = this.operationMgtService.getOperations
+ (new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE), request);
Assert.assertEquals(result.getRecordsFiltered(), 4);
Assert.assertEquals(result.getData().size(), 2);
Assert.assertEquals(result.getRecordsTotal(), 4);
@@ -492,13 +503,60 @@ public class OperationManagementTests extends BaseDeviceManagementTest {
}
@Test(dependsOnMethods = "getOperationForInactiveDevice", expectedExceptions = OperationManagementException.class)
- public void getPendingOperationDeviceForInvalidDevice() throws DeviceManagementException, OperationManagementException {
- this.operationMgtService.getPendingOperations(new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE));
+ public void getPendingOperationDeviceForInvalidDevice() throws DeviceManagementException,
+ OperationManagementException {
+ this.operationMgtService.getPendingOperations(new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE));
}
- @Test(dependsOnMethods = "getPendingOperationDeviceForInvalidDevice", expectedExceptions = OperationManagementException.class)
- public void getNextPendingOperationDeviceForInvalidDevice() throws DeviceManagementException, OperationManagementException {
+ @Test(dependsOnMethods = "getPendingOperationDeviceForInvalidDevice",
+ expectedExceptions = OperationManagementException.class)
+ public void getNextPendingOperationDeviceForInvalidDevice() throws DeviceManagementException,
+ OperationManagementException {
this.operationMgtService.getNextPendingOperation(new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE));
}
+ @Test(dependsOnMethods = "getNextPendingOperationDeviceForInvalidDevice",
+ expectedExceptions = OperationManagementException.class)
+ public void getUpdateOperationForInvalidDevice() throws DeviceManagementException, OperationManagementException {
+ this.operationMgtService.updateOperation(new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE),
+ getOperation(new CommandOperation(), Operation.Type.COMMAND, COMMAND_OPERATON_CODE));
+ }
+
+ @Test(dependsOnMethods = "getUpdateOperationForInvalidDevice",
+ expectedExceptions = OperationManagementException.class)
+ public void getOperationByDeviceAndOperationIdInvalidDevice() throws DeviceManagementException,
+ OperationManagementException {
+ this.operationMgtService.getOperationByDeviceAndOperationId(new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE),
+ getOperationId(this.commandActivity.getActivityId()));
+ }
+
+ @Test(dependsOnMethods = "getOperationByDeviceAndOperationIdInvalidDevice",
+ expectedExceptions = OperationManagementException.class)
+ public void getOperationsByDeviceAndStatusInvalidDevice() throws DeviceManagementException,
+ OperationManagementException {
+ this.operationMgtService.getOperationsByDeviceAndStatus(new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE),
+ Operation.Status.PENDING);
+ }
+
+ @Test(dependsOnMethods = "getOperationsByDeviceAndStatusInvalidDevice",
+ expectedExceptions = OperationManagementException.class)
+ public void getOperationsInvalidOperationId() throws DeviceManagementException,
+ OperationManagementException {
+ this.operationMgtService.getOperation(123445);
+ }
+
+ @Test(dependsOnMethods = "getOperationsInvalidOperationId", expectedExceptions = IllegalArgumentException.class)
+ public void getOperationsByActivityIdInvalidActivityId() throws DeviceManagementException,
+ OperationManagementException {
+ this.operationMgtService.getOperationByActivityId(DeviceManagementConstants.OperationAttributes.ACTIVITY + 0);
+ }
+
+ @Test(dependsOnMethods = "getOperationsByActivityIdInvalidActivityId",
+ expectedExceptions = IllegalArgumentException.class)
+ public void getOperationByActivityIdAndDeviceInvalidActivityId() throws DeviceManagementException,
+ OperationManagementException {
+ this.operationMgtService.getOperationByActivityIdAndDevice(DeviceManagementConstants.OperationAttributes.ACTIVITY + 0,
+ new DeviceIdentifier(INVALID_DEVICE, DEVICE_TYPE));
+ }
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml
index de6bac1872..d228944439 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml
@@ -47,6 +47,7 @@
+
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
index 76f5646e97..3ecc27fcde 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManager.java
index b0c4f8312e..1f0915bd90 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManager.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManager.java
@@ -189,6 +189,9 @@ public class DeviceTypeManager implements DeviceManager {
@Override
public boolean saveConfiguration(PlatformConfiguration tenantConfiguration)
throws DeviceManagementException {
+ if (tenantConfiguration == null) {
+ throw new DeviceManagementException("Platform configuration is null. Cannot save the configuration");
+ }
try {
if (log.isDebugEnabled()) {
log.debug("Persisting " + deviceType + " configurations in Registry");
@@ -246,6 +249,9 @@ public class DeviceTypeManager implements DeviceManager {
@Override
public boolean enrollDevice(Device device) throws DeviceManagementException {
+ if (device == null) {
+ throw new DeviceManagementException("Device is null. Cannot enroll the device.");
+ }
if (propertiesExist) {
boolean status = false;
boolean isEnrolled = this.isEnrolled(
@@ -313,6 +319,9 @@ public class DeviceTypeManager implements DeviceManager {
@Override
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
+ if (deviceId == null) {
+ throw new DeviceManagementException("Cannot check the enrollment status of a null device");
+ }
if (propertiesExist) {
boolean isEnrolled = false;
try {
@@ -347,6 +356,9 @@ public class DeviceTypeManager implements DeviceManager {
@Override
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
+ if (deviceId == null) {
+ throw new DeviceManagementException("Cannot get the device. DeviceIdentifier is null");
+ }
if (propertiesExist) {
Device device;
try {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/DeviceTypePluginDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/DeviceTypePluginDAOImpl.java
index e705661daa..755cb0397b 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/DeviceTypePluginDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/DeviceTypePluginDAOImpl.java
@@ -44,7 +44,6 @@ public class DeviceTypePluginDAOImpl implements PluginDAO {
private String selectDBQueryForGetDevice;
private String createDBqueryForAddDevice;
private String updateDBQueryForUpdateDevice;
- private String deleteDBQueryToRemoveDevicd;
private String selectDBQueryToGetAllDevice;
public DeviceTypePluginDAOImpl(DeviceDAODefinition deviceDAODefinition,
@@ -158,33 +157,6 @@ public class DeviceTypePluginDAOImpl implements PluginDAO {
return status;
}
- public boolean deleteDevice(String deviceId) throws DeviceTypeMgtPluginException {
- boolean status = false;
- Connection conn = null;
- PreparedStatement stmt = null;
- try {
- conn = deviceTypeDAOHandler.getConnection();
- stmt = conn.prepareStatement(deleteDBQueryToRemoveDevicd);
- stmt.setString(1, deviceId);
- int rows = stmt.executeUpdate();
- if (rows > 0) {
- status = true;
- if (log.isDebugEnabled()) {
- log.debug("device " + deviceId + " data has deleted from the " +
- deviceDAODefinition.getDeviceTableName() + " table.");
- }
- }
- } catch (SQLException e) {
- String msg =
- "Error occurred while deleting " + deviceDAODefinition.getDeviceTableName() + " device " + deviceId;
- log.error(msg, e);
- throw new DeviceTypeMgtPluginException(msg, e);
- } finally {
- DeviceTypeUtils.cleanupResources(stmt, null);
- }
- return status;
- }
-
public List getAllDevices() throws DeviceTypeMgtPluginException {
Connection conn;
PreparedStatement stmt = null;
@@ -264,10 +236,6 @@ public class DeviceTypePluginDAOImpl implements PluginDAO {
updateDBQueryForUpdateDevice = "UPDATE " + deviceDAODefinition.getDeviceTableName() + " SET "
+ getDeviceTableColumnNamesForUpdateQuery() + " WHERE " + deviceDAODefinition.getPrimaryKey() + " = ?";
- deleteDBQueryToRemoveDevicd =
- "DELETE FROM " + deviceDAODefinition.getDeviceTableName() + " WHERE " + deviceDAODefinition
- .getPrimaryKey() + " = ?";
-
selectDBQueryToGetAllDevice =
"SELECT " + getDeviceTableColumnNames() + "," + deviceDAODefinition.getPrimaryKey() + " FROM "
+ deviceDAODefinition.getDeviceTableName();
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/PluginDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/PluginDAO.java
index 2ffd37f8f4..47606fe6a6 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/PluginDAO.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/PluginDAO.java
@@ -30,7 +30,5 @@ public interface PluginDAO {
boolean updateDevice(Device device) throws DeviceTypeMgtPluginException;
- boolean deleteDevice(String deviceId) throws DeviceTypeMgtPluginException;
-
List getAllDevices() throws DeviceTypeMgtPluginException;
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/PropertyBasedPluginDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/PropertyBasedPluginDAOImpl.java
index 227c352a82..ceedeb7454 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/PropertyBasedPluginDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/dao/PropertyBasedPluginDAOImpl.java
@@ -158,36 +158,6 @@ public class PropertyBasedPluginDAOImpl implements PluginDAO {
}
}
- public boolean deleteDevice(String deviceId) throws DeviceTypeMgtPluginException {
- boolean status = false;
- Connection conn = null;
- PreparedStatement stmt = null;
- try {
- conn = deviceTypeDAOHandler.getConnection();
- stmt = conn.prepareStatement("DELETE FROM DM_DEVICE_PROPERTIES WHERE DEVICE_TYPE_NAME = ? " +
- "AND DEVICE_IDENTIFICATION = ? AND TENANT_ID = ?");
- stmt.setString(1, deviceType);
- stmt.setString(2, deviceId);
- stmt.setInt(3, PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true));
- int rows = stmt.executeUpdate();
- if (rows > 0) {
- status = true;
- if (log.isDebugEnabled()) {
- log.debug("device " + deviceId + " data has deleted from the " +
- deviceType + " table.");
- }
- }
- } catch (SQLException e) {
- String msg =
- "Error occurred while deleting " + deviceType + " device " + deviceId;
- log.error(msg, e);
- throw new DeviceTypeMgtPluginException(msg, e);
- } finally {
- DeviceTypeUtils.cleanupResources(stmt, null);
- }
- return status;
- }
-
public List getAllDevices() throws DeviceTypeMgtPluginException {
Connection conn;
PreparedStatement stmt = null;
@@ -220,7 +190,7 @@ public class PropertyBasedPluginDAOImpl implements PluginDAO {
log.debug(
"All device details have fetched from " + deviceType + " table.");
}
- return Arrays.asList((Device[])deviceMap.values().toArray());
+ return new ArrayList<>(deviceMap.values());
} catch (SQLException e) {
String msg =
"Error occurred while fetching all " + deviceType + " device data'";
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerServiceTest.java
index 2e1b1a52ac..286f21c931 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerServiceTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerServiceTest.java
@@ -305,12 +305,12 @@ public class DeviceTypeManagerServiceTest {
DeviceTypeConfigurationException, JAXBException {
ClassLoader classLoader = getClass().getClassLoader();
URL resourceUrl = classLoader.getResource("arduino.xml");
- File raspberrypiConfiguration = null;
+ File arduinoConfiguration = null;
if (resourceUrl != null) {
- raspberrypiConfiguration = new File(resourceUrl.getFile());
+ arduinoConfiguration = new File(resourceUrl.getFile());
}
- arduinoDeviceTypeConfiguration = Utils.getDeviceTypeConfiguration(raspberrypiConfiguration);
- arduinoDeviceTypeManagerService = new DeviceTypeManagerService(new
- DeviceTypeConfigIdentifier("arduino", "carbon.super"), arduinoDeviceTypeConfiguration);
+ arduinoDeviceTypeConfiguration = Utils.getDeviceTypeConfiguration(arduinoConfiguration);
+ arduinoDeviceTypeManagerService = new DeviceTypeManagerService(
+ new DeviceTypeConfigIdentifier("arduino", "carbon.super"), arduinoDeviceTypeConfiguration);
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerTest.java
index 137640f5d8..afdf2d560f 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerTest.java
@@ -26,12 +26,16 @@ import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
+import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DeviceDetails;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DeviceTypeConfiguration;
+import org.wso2.carbon.device.mgt.extensions.device.type.template.config.Properties;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.exception.DeviceTypeConfigurationException;
import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.DeviceDAODefinition;
import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.DeviceTypeDAOHandler;
import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.DeviceTypePluginDAOImpl;
import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.DeviceTypePluginDAOManager;
+import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.PluginDAO;
+import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.PropertyBasedPluginDAOImpl;
import org.wso2.carbon.device.mgt.extensions.utils.Utils;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.xml.sax.SAXException;
@@ -47,17 +51,26 @@ import java.net.URL;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
/**
- * This class tests the {@link DeviceTypeManager}
+ * This class tests the {@link DeviceTypeManager}.
*/
public class DeviceTypeManagerTest {
private DeviceTypeManager androidDeviceTypeManager;
+ private DeviceTypeManager customDeviceTypeManager;
private DeviceIdentifier nonExistingDeviceIdentifier;
private Device sampleDevice1;
private Device sampleDevice2;
+ private Device customDevice;
private String androidDeviceType;
+ private String customDeviceType = "customDeviceType";
+ private Field datasourceField;
+ private Field currentConnection;
+ private Field deviceTypePluginDAOField;
+ private Field deviceTypeDAOHandlerField;
+ private String[] customDeviceTypeProperties = {"custom_property", "custom_property2"};
@BeforeTest(description = "Mocking the classes for testing")
public void setup() throws NoSuchFieldException, IllegalAccessException, IOException, SQLException, SAXException,
@@ -67,26 +80,33 @@ public class DeviceTypeManagerTest {
androidDeviceType = "android";
File androidDatabaseScript = null;
javax.sql.DataSource dataSource = null;
- File carbonHome = new File("src/test/resources/carbon-home");
+ File androidConfiguration = null;
if (resourceUrl != null) {
androidDatabaseScript = new File(resourceUrl.getFile());
}
- if (carbonHome.exists()) {
- System.setProperty("carbon.home", carbonHome.getAbsolutePath());
- }
resourceUrl = classLoader.getResource("android.xml");
- File androidConfiguration = null;
+
if (resourceUrl != null) {
androidConfiguration = new File(resourceUrl.getFile());
}
+ datasourceField = DeviceTypeDAOHandler.class.getDeclaredField("dataSource");
+ datasourceField.setAccessible(true);
+ currentConnection = DeviceTypeDAOHandler.class.getDeclaredField("currentConnection");
+ currentConnection.setAccessible(true);
+ deviceTypePluginDAOField = DeviceTypePluginDAOManager.class.getDeclaredField("deviceTypePluginDAO");
+ deviceTypePluginDAOField.setAccessible(true);
+ deviceTypeDAOHandlerField = DeviceTypePluginDAOManager.class.getDeclaredField("deviceTypeDAOHandler");
+ deviceTypeDAOHandlerField.setAccessible(true);
+
DeviceTypeConfiguration androidDeviceConfiguration = Utils.getDeviceTypeConfiguration(androidConfiguration);
androidDeviceTypeManager = Mockito.mock(DeviceTypeManager.class, Mockito.CALLS_REAL_METHODS);
+ customDeviceTypeManager = Mockito.mock(DeviceTypeManager.class, Mockito.CALLS_REAL_METHODS);
if (androidDatabaseScript != null) {
- dataSource = Utils.createDataTables("deviceType", androidDatabaseScript.getAbsolutePath());
+ dataSource = Utils.createDataTables("customDeviceType", androidDatabaseScript.getAbsolutePath());
}
- DeviceTypePluginDAOManager deviceTypePluginDAOManager = createMockDeviceTypePluginDAOManager(dataSource,
+ DeviceTypePluginDAOManager deviceTypePluginDAOManager = createandroidDeviceTypePluginDAOManager(dataSource,
androidDeviceConfiguration);
Field deviceTypePluginDAOManagerField = DeviceTypeManager.class.getDeclaredField("deviceTypePluginDAOManager");
deviceTypePluginDAOManagerField.setAccessible(true);
@@ -96,9 +116,16 @@ public class DeviceTypeManagerTest {
propertiesExist.setAccessible(true);
Field deviceType = DeviceTypeManager.class.getDeclaredField("deviceType");
deviceType.setAccessible(true);
+
deviceType.set(androidDeviceTypeManager, androidDeviceType);
propertiesExist.set(androidDeviceTypeManager, true);
- createDevice();
+ createAndroidDevice();
+
+ DeviceTypePluginDAOManager propertyBasedPluginDAOManager = createPluginBasedDeviceTypeManager();
+ deviceTypePluginDAOManagerField.set(customDeviceTypeManager, propertyBasedPluginDAOManager);
+ deviceType.set(customDeviceTypeManager, customDeviceType);
+ propertiesExist.set(customDeviceTypeManager, true);
+ createCustomDevice();
}
@Test(description = "This test case tests IsEnrolled method of the DeviceTypeManager",
@@ -106,10 +133,17 @@ public class DeviceTypeManagerTest {
public void testIsEnrolled() throws DeviceManagementException {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(sampleDevice2.getDeviceIdentifier(),
sampleDevice2.getType());
- Assert.assertTrue(!androidDeviceTypeManager.isEnrolled(nonExistingDeviceIdentifier),
- "Device with " + "NON-Existing ID is not enrolled, but this shows as enrolled");
+ DeviceIdentifier nonExistingCustomDeviceIdentifier = new DeviceIdentifier(sampleDevice2.getDeviceIdentifier(),
+ customDevice.getType());
+
+ Assert.assertFalse(androidDeviceTypeManager.isEnrolled(nonExistingDeviceIdentifier),
+ "Device with NON-Existing ID is not enrolled, but this shows as enrolled");
Assert.assertTrue(androidDeviceTypeManager.isEnrolled(deviceIdentifier),
"Enrolled device is shown as un-enrolled");
+ Assert.assertFalse(customDeviceTypeManager.isEnrolled(nonExistingCustomDeviceIdentifier),
+ "Custom device type manager returns an non-existing device as enrolled");
+ Assert.assertTrue(customDeviceTypeManager.isEnrolled(new DeviceIdentifier(customDeviceType, customDeviceType))
+ , "Enrolled device is shown as un-enrolled in custom device type manager");
}
@Test(description = "This test case tests the getDevcie method of the DeviceTypeManager", dependsOnMethods =
@@ -120,20 +154,37 @@ public class DeviceTypeManagerTest {
Assert.assertNull(androidDeviceTypeManager.getDevice(nonExistingDeviceIdentifier),
"Non existing sampleDevice was retrieved");
Assert.assertNotNull(androidDeviceTypeManager.getDevice(existingDeviceIdntifier),
- "Existing sampleDevice was retrieved");
+ "Existing sampleDevice was not retrieved");
+ Device customDevice1 = customDeviceTypeManager
+ .getDevice(new DeviceIdentifier(customDeviceType, customDeviceType));
+ Assert.assertEquals(customDevice1.getProperties().size(), 2,
+ "GetDevice call" + " failed in custom deviceTypeManager");
}
@Test(description = "This test case tests the enrollment of the device")
public void testEnrollDevice() throws DeviceManagementException {
- Assert.assertTrue(androidDeviceTypeManager.enrollDevice(sampleDevice1));
- Assert.assertTrue(!androidDeviceTypeManager.enrollDevice(sampleDevice2));
+ Assert.assertTrue(androidDeviceTypeManager.enrollDevice(sampleDevice1), "New android device enrollment failed");
+ Assert.assertFalse(androidDeviceTypeManager.enrollDevice(sampleDevice2),
+ "Modification to existing android " + "device enrollment failed");
+ Assert.assertTrue(customDeviceTypeManager.enrollDevice(customDevice), "Custom device type enrollment failed.");
+ List properties = customDevice.getProperties();
+ Device.Property property = new Device.Property();
+ property.setName("test");
+ property.setValue("test");
+ properties.add(property);
+ customDevice.setProperties(properties);
+ Assert.assertFalse(customDeviceTypeManager.enrollDevice(customDevice),
+ "Custom device type re-enrollment " + "failed.");
+
}
@Test(description = "This test case tests the get all devices method of the DeviceTypeManager", dependsOnMethods
= {"testEnrollDevice"})
public void testGetAllDevices() throws DeviceManagementException {
Assert.assertEquals(androidDeviceTypeManager.getAllDevices().size(), 1,
- "All the added devices are not fetched " + "from the database");
+ "All the added devices are not fetched from the database");
+ Assert.assertEquals(customDeviceTypeManager.getAllDevices().size(), 1,
+ "All the added devices are not fetched from the database");
}
@Test(description = "This test case tests the addition of platform configuration and retrieval of the same")
@@ -147,6 +198,7 @@ public class DeviceTypeManagerTest {
"Platform Configuration saved and retrieved correctly in " + "DeviceType Manager");
Assert.assertEquals(actualPlatformConfiguration.getType(), androidDeviceType,
"Platform Configuration saved and " + "retrieved correctly in DeviceType Manager");
+ Assert.assertNull(customDeviceTypeManager.getConfiguration());
}
@Test (description = "This test case tests the getDefaultConfiguration method")
@@ -169,9 +221,9 @@ public class DeviceTypeManagerTest {
}
/**
- * To create a sample sampleDevice to add to DAO Layer.
+ * To create sample android devices to add to DAO Layer.
*/
- private void createDevice() {
+ private void createAndroidDevice() {
nonExistingDeviceIdentifier = new DeviceIdentifier("NON-EXISTING", androidDeviceType);
List list = new ArrayList<>();
@@ -190,6 +242,21 @@ public class DeviceTypeManagerTest {
sampleDevice2 = new Device("testdevice1", androidDeviceType, "test", "testdevice", null, null, list);
}
+ /**
+ * To create a sample custom device.
+ */
+ private void createCustomDevice () {
+ List list = new ArrayList<>();
+ for(String customProperty : customDeviceTypeProperties) {
+ Device.Property property = new Device.Property();
+ property.setName(customProperty);
+ property.setValue(customProperty);
+ list.add(property);
+ }
+ customDevice = new Device(customDeviceType, customDeviceType, customDeviceType, customDeviceType, null,
+ null, list);
+ }
+
/*
* To create a mock sampleDevice type plugin dao manager.
* @param dataSource DataSource for the DAO layer
@@ -198,13 +265,8 @@ public class DeviceTypeManagerTest {
* @throws NoSuchFieldException No Such Field Exception
* @throws IllegalAccessException Illegal Access Exception
*/
- private DeviceTypePluginDAOManager createMockDeviceTypePluginDAOManager(javax.sql.DataSource dataSource,
+ private DeviceTypePluginDAOManager createandroidDeviceTypePluginDAOManager(javax.sql.DataSource dataSource,
DeviceTypeConfiguration androidDeviceConfiguration) throws NoSuchFieldException, IllegalAccessException {
- Field datasourceField = DeviceTypeDAOHandler.class.getDeclaredField("dataSource");
- datasourceField.setAccessible(true);
- Field currentConnection = DeviceTypeDAOHandler.class.getDeclaredField("currentConnection");
- currentConnection.setAccessible(true);
-
DeviceTypeDAOHandler deviceTypeDAOHandler = Mockito
.mock(DeviceTypeDAOHandler.class, Mockito.CALLS_REAL_METHODS);
datasourceField.set(deviceTypeDAOHandler, dataSource);
@@ -213,13 +275,52 @@ public class DeviceTypeManagerTest {
DeviceDAODefinition deviceDAODefinition = Utils.getDeviceDAODefinition(androidDeviceConfiguration);
DeviceTypePluginDAOImpl deviceTypePluginDAO = new DeviceTypePluginDAOImpl(deviceDAODefinition,
deviceTypeDAOHandler);
+ DeviceTypePluginDAOManager deviceTypePluginDAOManager = Mockito
+ .mock(DeviceTypePluginDAOManager.class, Mockito.CALLS_REAL_METHODS);
+ deviceTypePluginDAOField.set(deviceTypePluginDAOManager, deviceTypePluginDAO);
+ deviceTypeDAOHandlerField.set(deviceTypePluginDAOManager, deviceTypeDAOHandler);
+
+ return deviceTypePluginDAOManager;
+ }
+
+ /**
+ * To create a plugin based device type manager.
+ *
+ * @return Plugin based device type manager.
+ * @throws IOException IO Exception.
+ * @throws SQLException SQL Exception
+ * @throws NoSuchFieldException No Such File Exception.
+ * @throws IllegalAccessException Illegal Access Exception.
+ */
+ private DeviceTypePluginDAOManager createPluginBasedDeviceTypeManager()
+ throws IOException, SQLException, NoSuchFieldException, IllegalAccessException {
+ ClassLoader classLoader = getClass().getClassLoader();
+ URL resourceUrl = classLoader.getResource("h2.sql");
+ File cdmDataScript = null;
+ javax.sql.DataSource dataSource = null;
+ if (resourceUrl != null) {
+ cdmDataScript = new File(resourceUrl.getFile());
+ }
+ if (cdmDataScript != null) {
+ dataSource = Utils.createDataTables(customDeviceType, cdmDataScript.getAbsolutePath());
+ }
+
+ DeviceDetails deviceDetails = new DeviceDetails();
+ List propertyList = new ArrayList<>();
+ propertyList.addAll(Arrays.asList(customDeviceTypeProperties));
+ Properties properties = new Properties();
+ properties.addProperties(propertyList);
+ deviceDetails.setProperties(properties);
+
+ DeviceTypeDAOHandler deviceTypeDAOHandler = Mockito
+ .mock(DeviceTypeDAOHandler.class, Mockito.CALLS_REAL_METHODS);
+ datasourceField.set(deviceTypeDAOHandler, dataSource);
+ currentConnection.set(deviceTypeDAOHandler, new ThreadLocal());
+ PluginDAO deviceTypePluginDAO = new PropertyBasedPluginDAOImpl(deviceDetails, deviceTypeDAOHandler,
+ customDeviceType);
DeviceTypePluginDAOManager deviceTypePluginDAOManager = Mockito
.mock(DeviceTypePluginDAOManager.class, Mockito.CALLS_REAL_METHODS);
- Field deviceTypePluginDAOField = DeviceTypePluginDAOManager.class.getDeclaredField("deviceTypePluginDAO");
- deviceTypePluginDAOField.setAccessible(true);
- Field deviceTypeDAOHandlerField = DeviceTypePluginDAOManager.class.getDeclaredField("deviceTypeDAOHandler");
- deviceTypeDAOHandlerField.setAccessible(true);
deviceTypePluginDAOField.set(deviceTypePluginDAOManager, deviceTypePluginDAO);
deviceTypeDAOHandlerField.set(deviceTypePluginDAOManager, deviceTypeDAOHandler);
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest.java
index 461b9d9f72..14e87a6703 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/java/org/wso2/carbon/device/mgt/extensions/device/type/template/HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest.java
@@ -21,34 +21,19 @@ package org.wso2.carbon.device.mgt.extensions.device.type.template;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
-import org.wso2.carbon.CarbonConstants;
-import org.wso2.carbon.base.MultitenantConstants;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.context.RegistryType;
-import org.wso2.carbon.context.internal.OSGiDataHolder;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
import org.wso2.carbon.device.mgt.common.type.mgt.DeviceTypeMetaDefinition;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DeviceTypeConfiguration;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.Feature;
-import org.wso2.carbon.device.mgt.extensions.device.type.template.config.Operation;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.PushNotificationProvider;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.exception.DeviceTypeConfigurationException;
-import org.wso2.carbon.device.mgt.extensions.internal.DeviceTypeExtensionDataHolder;
-import org.wso2.carbon.device.mgt.extensions.license.mgt.registry.RegistryBasedLicenseManager;
import org.wso2.carbon.device.mgt.extensions.utils.Utils;
-import org.wso2.carbon.governance.api.util.GovernanceArtifactConfiguration;
-import org.wso2.carbon.governance.api.util.GovernanceUtils;
-import org.wso2.carbon.registry.core.Registry;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
-import org.wso2.carbon.registry.core.service.RegistryService;
-import org.wso2.carbon.registry.core.session.UserRegistry;
-import org.wso2.carbon.utils.FileUtil;
import org.xml.sax.SAXException;
import javax.xml.bind.JAXBException;
@@ -59,8 +44,6 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.List;
-import static org.wso2.carbon.governance.api.util.GovernanceUtils.getGovernanceArtifactConfiguration;
-
/**
* This test case contains the tests for {@link HTTPDeviceTypeManagerService} and {@link DeviceTypeGeneratorServiceImpl}
*/
@@ -69,7 +52,6 @@ public class HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest {
private HTTPDeviceTypeManagerService httpDeviceTypeManagerService;
private DeviceTypeGeneratorServiceImpl deviceTypeGeneratorService;
private String androidSenseDeviceType = "androidsense";
- private String sampleDeviceType = "sample";
@BeforeTest
public void setup() throws RegistryException, IOException, SAXException, ParserConfigurationException,
@@ -100,12 +82,38 @@ public class HttpDeviceTypeManagerServiceAndDeviceTypeGeneratorServceTest {
@Test(description = "This test case tests the populate device management service method")
public void testPopulateDeviceManagementService() {
+ String sampleDeviceType = "sample";
DeviceManagementService deviceManagementService = deviceTypeGeneratorService
.populateDeviceManagementService(sampleDeviceType, deviceTypeMetaDefinition);
Assert.assertEquals(deviceManagementService.getType(), sampleDeviceType,
"DeviceTypeGeneration for the " + "sample device type failed");
}
+
+ @Test(description = "This test case tests the negative scenarios when saving the platform configurations",
+ expectedExceptions = {DeviceManagementException.class})
+ public void testSaveConfiguration() throws DeviceManagementException {
+ httpDeviceTypeManagerService.getDeviceManager().saveConfiguration(null);
+ }
+
+ @Test(description = "This test case tests the negative scenarios when getting a device",
+ expectedExceptions = {DeviceManagementException.class})
+ public void testGetDevice() throws DeviceManagementException {
+ httpDeviceTypeManagerService.getDeviceManager().getDevice(null);
+ }
+
+ @Test(description = "This test case tests the negative scenario when checking whether a device has enrolled",
+ expectedExceptions = {DeviceManagementException.class})
+ public void testIsEnrolled() throws DeviceManagementException {
+ httpDeviceTypeManagerService.getDeviceManager().isEnrolled(null);
+ }
+
+ @Test(description = "This test case tests the negative scenario when enrolling a device",
+ expectedExceptions = {DeviceManagementException.class})
+ public void testEnroll() throws DeviceManagementException {
+ httpDeviceTypeManagerService.getDeviceManager().enrollDevice(null);
+ }
+
/**
* To create a sample device type meta defintion.
* @throws SAXException SAX Exception.
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/h2.sql b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/h2.sql
new file mode 100644
index 0000000000..686d0a6b3b
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/h2.sql
@@ -0,0 +1,531 @@
+CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE (
+ ID INT AUTO_INCREMENT NOT NULL,
+ NAME VARCHAR(300) NULL DEFAULT NULL,
+ DEVICE_TYPE_META VARCHAR(20000) NULL DEFAULT NULL,
+ LAST_UPDATED_TIMESTAMP TIMESTAMP NOT NULL,
+ PROVIDER_TENANT_ID INTEGER DEFAULT 0,
+ SHARED_WITH_ALL_TENANTS BOOLEAN NOT NULL DEFAULT FALSE,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_GROUP (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ GROUP_NAME VARCHAR(100) DEFAULT NULL,
+ DESCRIPTION TEXT DEFAULT NULL,
+ OWNER VARCHAR(45) DEFAULT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_ROLE_GROUP_MAP (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ GROUP_ID INTEGER DEFAULT NULL,
+ ROLE VARCHAR(45) DEFAULT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ PRIMARY KEY (ID),
+ CONSTRAINT fk_DM_ROLE_GROUP_MAP_DM_GROUP2 FOREIGN KEY (GROUP_ID)
+ REFERENCES DM_GROUP (ID) ON DELETE CASCADE ON UPDATE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE (
+ ID INTEGER auto_increment NOT NULL,
+ DESCRIPTION TEXT DEFAULT NULL,
+ NAME VARCHAR(100) DEFAULT NULL,
+ DEVICE_TYPE_ID INT(11) DEFAULT NULL,
+ DEVICE_IDENTIFICATION VARCHAR(300) DEFAULT NULL,
+ LAST_UPDATED_TIMESTAMP TIMESTAMP NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ PRIMARY KEY (ID),
+ CONSTRAINT fk_DM_DEVICE_DM_DEVICE_TYPE2 FOREIGN KEY (DEVICE_TYPE_ID)
+ REFERENCES DM_DEVICE_TYPE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT uk_DM_DEVICE UNIQUE (NAME, DEVICE_TYPE_ID, DEVICE_IDENTIFICATION, TENANT_ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_PROPERTIES (
+ DEVICE_TYPE_NAME VARCHAR(300) NOT NULL,
+ DEVICE_IDENTIFICATION VARCHAR(300) NOT NULL,
+ PROPERTY_NAME VARCHAR(100) DEFAULT 0,
+ PROPERTY_VALUE VARCHAR(100) DEFAULT NULL,
+ TENANT_ID VARCHAR(100),
+ PRIMARY KEY (DEVICE_TYPE_NAME, DEVICE_IDENTIFICATION, PROPERTY_NAME, TENANT_ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_GROUP_MAP (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ DEVICE_ID INTEGER DEFAULT NULL,
+ GROUP_ID INTEGER DEFAULT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ PRIMARY KEY (ID),
+ CONSTRAINT fk_DM_DEVICE_GROUP_MAP_DM_DEVICE2 FOREIGN KEY (DEVICE_ID)
+ REFERENCES DM_DEVICE (ID) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT fk_DM_DEVICE_GROUP_MAP_DM_GROUP2 FOREIGN KEY (GROUP_ID)
+ REFERENCES DM_GROUP (ID) ON DELETE CASCADE ON UPDATE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS DM_OPERATION (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ TYPE VARCHAR(50) NOT NULL,
+ CREATED_TIMESTAMP TIMESTAMP NOT NULL,
+ RECEIVED_TIMESTAMP TIMESTAMP NULL,
+ OPERATION_CODE VARCHAR(1000) NOT NULL,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_CONFIG_OPERATION (
+ OPERATION_ID INTEGER NOT NULL,
+ OPERATION_CONFIG BLOB DEFAULT NULL,
+ ENABLED BOOLEAN NOT NULL DEFAULT FALSE,
+ PRIMARY KEY (OPERATION_ID),
+ CONSTRAINT fk_dm_operation_config FOREIGN KEY (OPERATION_ID) REFERENCES
+ DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_COMMAND_OPERATION (
+ OPERATION_ID INTEGER NOT NULL,
+ ENABLED BOOLEAN NOT NULL DEFAULT FALSE,
+ PRIMARY KEY (OPERATION_ID),
+ CONSTRAINT fk_dm_operation_command FOREIGN KEY (OPERATION_ID) REFERENCES
+ DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_POLICY_OPERATION (
+ OPERATION_ID INTEGER NOT NULL,
+ ENABLED INTEGER NOT NULL DEFAULT 0,
+ OPERATION_DETAILS BLOB DEFAULT NULL,
+ PRIMARY KEY (OPERATION_ID),
+ CONSTRAINT fk_dm_operation_policy FOREIGN KEY (OPERATION_ID) REFERENCES
+ DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_PROFILE_OPERATION (
+ OPERATION_ID INTEGER NOT NULL,
+ ENABLED INTEGER NOT NULL DEFAULT 0,
+ OPERATION_DETAILS BLOB DEFAULT NULL,
+ PRIMARY KEY (OPERATION_ID),
+ CONSTRAINT fk_dm_operation_profile FOREIGN KEY (OPERATION_ID) REFERENCES
+ DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_ENROLMENT (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ DEVICE_ID INTEGER NOT NULL,
+ OWNER VARCHAR(50) NOT NULL,
+ OWNERSHIP VARCHAR(45) DEFAULT NULL,
+ STATUS VARCHAR(50) NULL,
+ DATE_OF_ENROLMENT TIMESTAMP DEFAULT NULL,
+ DATE_OF_LAST_UPDATE TIMESTAMP DEFAULT NULL,
+ TENANT_ID INT NOT NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT fk_dm_device_enrolment FOREIGN KEY (DEVICE_ID) REFERENCES
+ DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT uk_dm_device_enrolment UNIQUE (DEVICE_ID, OWNER, OWNERSHIP, TENANT_ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_ENROLMENT_OP_MAPPING (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ ENROLMENT_ID INTEGER NOT NULL,
+ OPERATION_ID INTEGER NOT NULL,
+ STATUS VARCHAR(50) NULL,
+ PUSH_NOTIFICATION_STATUS VARCHAR(50) NULL,
+ CREATED_TIMESTAMP INT NOT NULL,
+ UPDATED_TIMESTAMP INT NOT NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT fk_dm_device_operation_mapping_device FOREIGN KEY (ENROLMENT_ID) REFERENCES
+ DM_ENROLMENT (ID) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT fk_dm_device_operation_mapping_operation FOREIGN KEY (OPERATION_ID) REFERENCES
+ DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_OPERATION_RESPONSE (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ ENROLMENT_ID INTEGER NOT NULL,
+ OPERATION_ID INTEGER NOT NULL,
+ EN_OP_MAP_ID INTEGER NOT NULL,
+ OPERATION_RESPONSE LONGBLOB DEFAULT NULL,
+ RECEIVED_TIMESTAMP TIMESTAMP NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT fk_dm_device_operation_response_enrollment FOREIGN KEY (ENROLMENT_ID) REFERENCES
+ DM_ENROLMENT (ID) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT fk_dm_device_operation_response_operation FOREIGN KEY (OPERATION_ID) REFERENCES
+ DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT fk_dm_en_op_map_response FOREIGN KEY (EN_OP_MAP_ID) REFERENCES
+ DM_ENROLMENT_OP_MAPPING (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
+);
+
+-- POLICY RELATED TABLES --
+
+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 VARCHAR(300) NOT NULL ,
+ CREATED_TIME DATETIME NOT NULL ,
+ UPDATED_TIME DATETIME NOT NULL ,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_POLICY (
+ ID INT(11) NOT NULL AUTO_INCREMENT ,
+ NAME VARCHAR(45) DEFAULT NULL ,
+ DESCRIPTION VARCHAR(1000) NULL,
+ TENANT_ID INT(11) NOT NULL ,
+ PROFILE_ID INT(11) NOT NULL ,
+ OWNERSHIP_TYPE VARCHAR(45) NULL,
+ COMPLIANCE VARCHAR(100) NULL,
+ PRIORITY INT NOT NULL,
+ ACTIVE INT(2) NOT NULL,
+ UPDATED INT(1) NULL,
+ PRIMARY KEY (ID) ,
+ CONSTRAINT FK_DM_PROFILE_DM_POLICY
+ FOREIGN KEY (PROFILE_ID )
+ REFERENCES DM_PROFILE (ID )
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY (
+ ID INT(11) NOT NULL AUTO_INCREMENT ,
+ DEVICE_ID INT(11) NOT NULL ,
+ ENROLMENT_ID INT(11) NOT NULL,
+ DEVICE BLOB NOT NULL,
+ POLICY_ID INT(11) NOT NULL ,
+ PRIMARY KEY (ID) ,
+ CONSTRAINT FK_POLICY_DEVICE_POLICY
+ FOREIGN KEY (POLICY_ID )
+ REFERENCES DM_POLICY (ID )
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION,
+ CONSTRAINT FK_DEVICE_DEVICE_POLICY
+ FOREIGN KEY (DEVICE_ID )
+ REFERENCES DM_DEVICE (ID )
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
+ ID INT(11) NOT NULL ,
+ DEVICE_TYPE VARCHAR(300) NOT NULL ,
+ POLICY_ID INT(11) NOT NULL ,
+ PRIMARY KEY (ID) ,
+ CONSTRAINT FK_DEVICE_TYPE_POLICY
+ FOREIGN KEY (POLICY_ID )
+ REFERENCES DM_POLICY (ID )
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+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 VARCHAR(300) NOT NULL,
+ TENANT_ID INT(11) NOT NULL ,
+ CONTENT BLOB NULL DEFAULT NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT FK_DM_PROFILE_DM_POLICY_FEATURES
+ FOREIGN KEY (PROFILE_ID)
+ REFERENCES DM_PROFILE (ID)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_ROLE_POLICY (
+ ID INT(11) NOT NULL AUTO_INCREMENT ,
+ ROLE_NAME VARCHAR(45) NOT NULL ,
+ POLICY_ID INT(11) NOT NULL ,
+ PRIMARY KEY (ID) ,
+ CONSTRAINT FK_ROLE_POLICY_POLICY
+ FOREIGN KEY (POLICY_ID )
+ REFERENCES DM_POLICY (ID )
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_USER_POLICY (
+ ID INT NOT NULL AUTO_INCREMENT ,
+ POLICY_ID INT NOT NULL ,
+ USERNAME VARCHAR(45) NOT NULL ,
+ PRIMARY KEY (ID) ,
+ CONSTRAINT DM_POLICY_USER_POLICY
+ FOREIGN KEY (POLICY_ID )
+ REFERENCES DM_POLICY (ID )
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY_APPLIED (
+ ID INT NOT NULL AUTO_INCREMENT ,
+ DEVICE_ID INT NOT NULL ,
+ ENROLMENT_ID INT(11) NOT NULL,
+ POLICY_ID INT NOT NULL ,
+ POLICY_CONTENT BLOB NULL ,
+ TENANT_ID INT NOT NULL,
+ APPLIED TINYINT(1) NULL ,
+ CREATED_TIME TIMESTAMP NULL ,
+ UPDATED_TIME TIMESTAMP NULL ,
+ APPLIED_TIME TIMESTAMP NULL ,
+ PRIMARY KEY (ID) ,
+ CONSTRAINT FK_DM_POLICY_DEVCIE_APPLIED
+ FOREIGN KEY (DEVICE_ID )
+ REFERENCES DM_DEVICE (ID )
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_CRITERIA (
+ ID INT NOT NULL AUTO_INCREMENT,
+ TENANT_ID INT NOT NULL,
+ NAME VARCHAR(50) NULL,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_POLICY_CRITERIA (
+ ID INT NOT NULL AUTO_INCREMENT,
+ CRITERIA_ID INT NOT NULL,
+ POLICY_ID INT NOT NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT FK_CRITERIA_POLICY_CRITERIA
+ FOREIGN KEY (CRITERIA_ID)
+ REFERENCES DM_CRITERIA (ID)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION,
+ CONSTRAINT FK_POLICY_POLICY_CRITERIA
+ FOREIGN KEY (POLICY_ID)
+ REFERENCES DM_POLICY (ID)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_POLICY_CRITERIA_PROPERTIES (
+ ID INT NOT NULL AUTO_INCREMENT,
+ POLICY_CRITERION_ID INT NOT NULL,
+ PROP_KEY VARCHAR(45) NULL,
+ PROP_VALUE VARCHAR(100) NULL,
+ CONTENT BLOB NULL COMMENT 'This is used to ',
+ PRIMARY KEY (ID),
+ CONSTRAINT FK_POLICY_CRITERIA_PROPERTIES
+ FOREIGN KEY (POLICY_CRITERION_ID)
+ REFERENCES DM_POLICY_CRITERIA (ID)
+ ON DELETE CASCADE
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_STATUS (
+ ID INT NOT NULL AUTO_INCREMENT,
+ DEVICE_ID INT NOT NULL,
+ ENROLMENT_ID INT(11) NOT NULL,
+ POLICY_ID INT NOT NULL,
+ TENANT_ID INT NOT NULL,
+ STATUS INT NULL,
+ LAST_SUCCESS_TIME TIMESTAMP NULL,
+ LAST_REQUESTED_TIME TIMESTAMP NULL,
+ LAST_FAILED_TIME TIMESTAMP NULL,
+ ATTEMPTS INT NULL,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
+ ID INT NOT NULL AUTO_INCREMENT,
+ POLICY_ID INT NOT NULL,
+ DEVICE_TYPE VARCHAR(300) NOT NULL ,
+ TENANT_ID INT(11) NOT NULL,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_FEATURES (
+ ID INT NOT NULL AUTO_INCREMENT,
+ COMPLIANCE_STATUS_ID INT NOT NULL,
+ TENANT_ID INT NOT NULL,
+ FEATURE_CODE VARCHAR(100) NOT NULL,
+ STATUS INT NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT FK_COMPLIANCE_FEATURES_STATUS
+ FOREIGN KEY (COMPLIANCE_STATUS_ID)
+ REFERENCES DM_POLICY_COMPLIANCE_STATUS (ID)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_APPLICATION (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ NAME VARCHAR(150) NOT NULL,
+ APP_IDENTIFIER VARCHAR(150) NOT NULL,
+ PLATFORM VARCHAR(50) DEFAULT NULL,
+ CATEGORY VARCHAR(50) NULL,
+ VERSION VARCHAR(50) NULL,
+ TYPE VARCHAR(50) NULL,
+ LOCATION_URL VARCHAR(100) DEFAULT NULL,
+ IMAGE_URL VARCHAR(100) DEFAULT NULL,
+ APP_PROPERTIES BLOB NULL,
+ MEMORY_USAGE INTEGER(10) NULL,
+ IS_ACTIVE BOOLEAN NOT NULL DEFAULT FALSE,
+ TENANT_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_APPLICATION_MAPPING (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ DEVICE_ID INTEGER NOT NULL,
+ APPLICATION_ID INTEGER NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT fk_dm_device FOREIGN KEY (DEVICE_ID) REFERENCES
+ DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT fk_dm_application FOREIGN KEY (APPLICATION_ID) REFERENCES
+ DM_APPLICATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
+);
+
+-- POLICY RELATED TABLES FINISHED --
+
+-- NOTIFICATION TABLE --
+CREATE TABLE IF NOT EXISTS DM_NOTIFICATION (
+ NOTIFICATION_ID INTEGER AUTO_INCREMENT NOT NULL,
+ DEVICE_ID INTEGER NOT NULL,
+ OPERATION_ID INTEGER NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ STATUS VARCHAR(10) NULL,
+ DESCRIPTION VARCHAR(1000) NULL,
+ PRIMARY KEY (NOTIFICATION_ID),
+ CONSTRAINT fk_dm_device_notification FOREIGN KEY (DEVICE_ID) REFERENCES
+ DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT fk_dm_operation_notification FOREIGN KEY (OPERATION_ID) REFERENCES
+ DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
+);
+-- NOTIFICATION TABLE END --
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_INFO (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ DEVICE_ID INT NULL,
+ KEY_FIELD VARCHAR(45) NULL,
+ VALUE_FIELD VARCHAR(100) NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT DM_DEVICE_INFO_DEVICE
+ FOREIGN KEY (DEVICE_ID)
+ REFERENCES DM_DEVICE (ID)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_LOCATION (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ DEVICE_ID INT NULL,
+ LATITUDE DOUBLE NULL,
+ LONGITUDE DOUBLE NULL,
+ STREET1 VARCHAR(255) NULL,
+ STREET2 VARCHAR(45) NULL,
+ CITY VARCHAR(45) NULL,
+ ZIP VARCHAR(10) NULL,
+ STATE VARCHAR(45) NULL,
+ COUNTRY VARCHAR(45) NULL,
+ UPDATE_TIMESTAMP BIGINT(15) NOT NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT DM_DEVICE_LOCATION_DEVICE
+ FOREIGN KEY (DEVICE_ID)
+ REFERENCES DM_DEVICE (ID)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+CREATE TABLE IF NOT EXISTS DM_DEVICE_DETAIL (
+ ID INT NOT NULL AUTO_INCREMENT,
+ DEVICE_ID INT NOT NULL,
+ DEVICE_MODEL VARCHAR(45) NULL,
+ VENDOR VARCHAR(45) NULL,
+ OS_VERSION VARCHAR(45) NULL,
+ OS_BUILD_DATE VARCHAR(100) NULL,
+ BATTERY_LEVEL DECIMAL(4) NULL,
+ INTERNAL_TOTAL_MEMORY DECIMAL(30,3) NULL,
+ INTERNAL_AVAILABLE_MEMORY DECIMAL(30,3) NULL,
+ EXTERNAL_TOTAL_MEMORY DECIMAL(30,3) NULL,
+ EXTERNAL_AVAILABLE_MEMORY DECIMAL(30,3) NULL,
+ CONNECTION_TYPE VARCHAR(50) NULL,
+ SSID VARCHAR(45) NULL,
+ CPU_USAGE DECIMAL(5) NULL,
+ TOTAL_RAM_MEMORY DECIMAL(30,3) NULL,
+ AVAILABLE_RAM_MEMORY DECIMAL(30,3) NULL,
+ PLUGGED_IN INT(1) NULL,
+ UPDATE_TIMESTAMP BIGINT(15) NOT NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT FK_DM_DEVICE_DETAILS_DEVICE
+ FOREIGN KEY (DEVICE_ID)
+ REFERENCES DM_DEVICE (ID)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION
+);
+
+-- POLICY AND DEVICE GROUP MAPPING --
+CREATE TABLE IF NOT EXISTS DM_DEVICE_GROUP_POLICY (
+ ID INT NOT NULL AUTO_INCREMENT,
+ DEVICE_GROUP_ID INT NOT NULL,
+ POLICY_ID INT NOT NULL,
+ TENANT_ID INT NOT NULL,
+ PRIMARY KEY (ID),
+ CONSTRAINT FK_DM_DEVICE_GROUP_POLICY
+ FOREIGN KEY (DEVICE_GROUP_ID)
+ REFERENCES DM_GROUP (ID)
+ ON DELETE CASCADE
+ ON UPDATE CASCADE ,
+ CONSTRAINT FK_DM_DEVICE_GROUP_DM_POLICY
+ FOREIGN KEY (POLICY_ID)
+ REFERENCES DM_POLICY (ID)
+ ON DELETE CASCADE
+ ON UPDATE CASCADE
+);
+-- END OF POLICY AND DEVICE GROUP MAPPING --
+
+-- DASHBOARD RELATED VIEWS --
+CREATE VIEW POLICY_COMPLIANCE_INFO AS
+SELECT
+DEVICE_INFO.DEVICE_ID,
+DEVICE_INFO.DEVICE_IDENTIFICATION,
+DEVICE_INFO.PLATFORM,
+DEVICE_INFO.OWNERSHIP,
+DEVICE_INFO.CONNECTIVITY_STATUS,
+IFNULL(DEVICE_WITH_POLICY_INFO.POLICY_ID, -1) AS POLICY_ID,
+IFNULL(DEVICE_WITH_POLICY_INFO.IS_COMPLIANT, -1) AS IS_COMPLIANT,
+DEVICE_INFO.TENANT_ID
+FROM
+(SELECT
+DM_DEVICE.ID AS DEVICE_ID,
+DM_DEVICE.DEVICE_IDENTIFICATION,
+DM_DEVICE_TYPE.NAME AS PLATFORM,
+DM_ENROLMENT.OWNERSHIP,
+DM_ENROLMENT.STATUS AS CONNECTIVITY_STATUS,
+DM_DEVICE.TENANT_ID
+FROM DM_DEVICE, DM_DEVICE_TYPE, DM_ENROLMENT
+WHERE DM_DEVICE.DEVICE_TYPE_ID = DM_DEVICE_TYPE.ID AND DM_DEVICE.ID = DM_ENROLMENT.DEVICE_ID) DEVICE_INFO
+LEFT JOIN
+(SELECT
+DEVICE_ID,
+POLICY_ID,
+STATUS AS IS_COMPLIANT
+FROM DM_POLICY_COMPLIANCE_STATUS) DEVICE_WITH_POLICY_INFO
+ON DEVICE_INFO.DEVICE_ID = DEVICE_WITH_POLICY_INFO.DEVICE_ID
+ORDER BY DEVICE_INFO.DEVICE_ID;
+
+CREATE VIEW FEATURE_NON_COMPLIANCE_INFO AS
+SELECT
+DM_DEVICE.ID AS DEVICE_ID,
+DM_DEVICE.DEVICE_IDENTIFICATION,
+DM_DEVICE_DETAIL.DEVICE_MODEL,
+DM_DEVICE_DETAIL.VENDOR,
+DM_DEVICE_DETAIL.OS_VERSION,
+DM_ENROLMENT.OWNERSHIP,
+DM_ENROLMENT.OWNER,
+DM_ENROLMENT.STATUS AS CONNECTIVITY_STATUS,
+DM_POLICY_COMPLIANCE_STATUS.POLICY_ID,
+DM_DEVICE_TYPE.NAME AS PLATFORM,
+DM_POLICY_COMPLIANCE_FEATURES.FEATURE_CODE,
+DM_POLICY_COMPLIANCE_FEATURES.STATUS AS IS_COMPLAINT,
+DM_DEVICE.TENANT_ID
+FROM
+DM_POLICY_COMPLIANCE_FEATURES, DM_POLICY_COMPLIANCE_STATUS, DM_ENROLMENT, DM_DEVICE, DM_DEVICE_TYPE, DM_DEVICE_DETAIL
+WHERE
+DM_POLICY_COMPLIANCE_FEATURES.COMPLIANCE_STATUS_ID = DM_POLICY_COMPLIANCE_STATUS.ID AND
+DM_POLICY_COMPLIANCE_STATUS.ENROLMENT_ID = DM_ENROLMENT.ID AND
+DM_POLICY_COMPLIANCE_STATUS.DEVICE_ID = DM_DEVICE.ID AND
+DM_DEVICE.DEVICE_TYPE_ID = DM_DEVICE_TYPE.ID AND
+DM_DEVICE.ID = DM_DEVICE_DETAIL.DEVICE_ID
+ORDER BY TENANT_ID, DEVICE_ID;
+
+-- END OF DASHBOARD RELATED VIEWS --
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
index 142656d5b1..fbabb36933 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
index 892c79bdef..0f3b9dc574 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
@@ -23,7 +23,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml
index 2bce3a4937..36cbc48f8f 100644
--- a/components/device-mgt/pom.xml
+++ b/components/device-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
diff --git a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml
index 79bd5c63e5..ae053c679b 100644
--- a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml
+++ b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
email-sender
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/email-sender/pom.xml b/components/email-sender/pom.xml
index 0f4ae84fb1..68fd6580d7 100644
--- a/components/email-sender/pom.xml
+++ b/components/email-sender/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
diff --git a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
index c9ef8e709f..da03e75e66 100644
--- a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
+++ b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
@@ -22,13 +22,13 @@
org.wso2.carbon.devicemgt
identity-extensions
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.oauth.extensions
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - OAuth Extensions
http://wso2.org
diff --git a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
index 0383643e61..9edfc08408 100644
--- a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
+++ b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
@@ -21,7 +21,7 @@
identity-extensions
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
4.0.0
diff --git a/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
index da097cc0d1..3bc6c72463 100644
--- a/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
+++ b/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
identity-extensions
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/components/identity-extensions/pom.xml b/components/identity-extensions/pom.xml
index 052251804b..0a1b13e53d 100644
--- a/components/identity-extensions/pom.xml
+++ b/components/identity-extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
diff --git a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
index 9e0d88c288..b4163c4c59 100644
--- a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.complex.policy.decision.point
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - Policy Decision Point
WSO2 Carbon - Policy Decision Point
diff --git a/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
index a3db6acb45..7efd2990f3 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
@@ -3,14 +3,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.decision.point
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - Policy Decision Point
WSO2 Carbon - Policy Decision Point
diff --git a/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
index 0c9934edfe..0db2c43958 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
@@ -3,7 +3,7 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
@@ -11,7 +11,7 @@
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.information.point
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - Policy Information Point
WSO2 Carbon - Policy Information Point
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 2479693c38..e7810c123d 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
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.mgt.common
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - Policy Management Common
WSO2 Carbon - Policy Management Common
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 a385653328..1c4119798c 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
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
policy-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.policy.mgt.core
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - Policy Management Core
WSO2 Carbon - Policy Management Core
diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml
index a05f902b2d..7d45ae0b9c 100644
--- a/components/policy-mgt/pom.xml
+++ b/components/policy-mgt/pom.xml
@@ -23,13 +23,13 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
policy-mgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - Policy Management Component
http://wso2.org
diff --git a/components/test-coverage/pom.xml b/components/test-coverage/pom.xml
index 2e61e10ca4..cf352940ea 100644
--- a/components/test-coverage/pom.xml
+++ b/components/test-coverage/pom.xml
@@ -21,7 +21,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
index b7d92092ad..355b501404 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
@@ -21,14 +21,14 @@
org.wso2.carbon.devicemgt
webapp-authenticator-framework
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.devicemgt
org.wso2.carbon.webapp.authenticator.framework
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
bundle
WSO2 Carbon - Web Application Authenticator Framework Bundle
WSO2 Carbon - Web Application Authenticator Framework Bundle
diff --git a/components/webapp-authenticator-framework/pom.xml b/components/webapp-authenticator-framework/pom.xml
index f328cb7f94..02dc693830 100644
--- a/components/webapp-authenticator-framework/pom.xml
+++ b/components/webapp-authenticator-framework/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
webapp-authenticator-framework
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - Webapp Authenticator Framework
http://wso2.org
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
index 979f807736..aa86250344 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
@@ -21,14 +21,14 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.application.extension.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - API Management Application Extension Feature
http://wso2.org
This feature contains an implementation of a api application registration, which takes care of subscription
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
index 1727335b98..39a4746a71 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.handler.server.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Device Management - APIM handler Server Feature
http://wso2.org
This feature contains the handler for the api authentications
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
index afcc65fd2d..0d2a620879 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
@@ -21,13 +21,13 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.integration.client.feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - APIM Integration Client Feature
http://wso2.org
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
index 8ac5c0ed1c..6fb49304a1 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
@@ -21,14 +21,14 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.apimgt.webapp.publisher.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - API Management Webapp Publisher Feature
http://wso2.org
This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing
diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml
index 64876d735a..c8bf2c30d7 100644
--- a/features/apimgt-extensions/pom.xml
+++ b/features/apimgt-extensions/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - API Management Extensions Feature
http://wso2.org
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
index 3bca50c433..99ca8b5800 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
index 1713cee3fa..1f8981772b 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
index 6204881295..c7ca0d3d4b 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.certificate.mgt.server.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Certificate Management Server Feature
http://wso2.org
This feature contains the core bundles required for back-end Certificate Management functionality
diff --git a/features/certificate-mgt/pom.xml b/features/certificate-mgt/pom.xml
index 11e835f04e..54a367e576 100644
--- a/features/certificate-mgt/pom.xml
+++ b/features/certificate-mgt/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - Certificate Management Feature
http://wso2.org
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
index 34706c191f..51623d8270 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Device Type Deployer Feature
http://wso2.org
WSO2 Carbon - Device Type Deployer Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
index f74e054504..1115466a30 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - FCM Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - MQTT Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
index 3d39b225a6..d2aa679899 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - MQTT Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - MQTT Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
index 9123ad52d5..b965ae1447 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - MQTT Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - MQTT Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
index ca973cb899..60ee4f8e15 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - XMPP Based Push Notification Provider Feature
http://wso2.org
WSO2 Carbon - XMPP Based Push Notification Provider Feature
diff --git a/features/device-mgt-extensions/pom.xml b/features/device-mgt-extensions/pom.xml
index d5b8233d86..f70fe9a369 100644
--- a/features/device-mgt-extensions/pom.xml
+++ b/features/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard.feature/pom.xml
index 9fbf2fa3dd..26c147289d 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard.feature/pom.xml
@@ -3,13 +3,13 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.analytics.dashboard.feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - Device Management Dashboard Analytics Feature
WSO2 Carbon - Device Management Dashboard Analytics Feature
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher.feature/pom.xml
index 7353aa8dfb..37a713b7a5 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.analytics.data.publisher.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Device Management Server Feature
http://wso2.org
This feature contains bundles related to device analytics data publisher
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
index 65e7996ae9..4e27417d6e 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
index aae4e73d71..679e689dc7 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
@@ -4,14 +4,14 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.extensions.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Device Management Extensions Feature
http://wso2.org
This feature contains common extensions used by key device management functionalities
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
index 1662e096dc..e0f9031fb7 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
index 29a3a17c8f..1e05b8c345 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.server.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Device Management Server Feature
http://wso2.org
This feature contains the core bundles required for Back-end Device Management functionality
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
index 775e2a3c1a..cd582305e4 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml
index 6055bd234c..509cc11f44 100644
--- a/features/device-mgt/pom.xml
+++ b/features/device-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
diff --git a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
index 4492b69a56..8cda154b2a 100644
--- a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
+++ b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
email-sender-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.email.sender.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Email Sender Feature
http://wso2.org
This feature contains the core bundles required for email sender related functionality
diff --git a/features/email-sender/pom.xml b/features/email-sender/pom.xml
index 7eec61ff26..8a88504100 100644
--- a/features/email-sender/pom.xml
+++ b/features/email-sender/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
email-sender-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - Email Sender Feature
http://wso2.org
diff --git a/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml b/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
index 2c89b1b15e..3858c3154c 100644
--- a/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
+++ b/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
jwt-client-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.identity.jwt.client.extension.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - JWT Client Feature
http://wso2.org
This feature contains jwt client implementation from which we can get a access token using the jwt
diff --git a/features/jwt-client/pom.xml b/features/jwt-client/pom.xml
index fc663c5330..d375778229 100644
--- a/features/jwt-client/pom.xml
+++ b/features/jwt-client/pom.xml
@@ -23,13 +23,13 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
jwt-client-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - JWT Client Extension Feature
http://wso2.org
diff --git a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml
index 0fdcbbe975..d5cbff49f6 100644
--- a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml
+++ b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
oauth-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.oauth.extensions.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Device Mgt OAuth Extensions Feature
http://wso2.org
This feature contains devicemgt related OAuth extensions
diff --git a/features/oauth-extensions/pom.xml b/features/oauth-extensions/pom.xml
index 9162badcfb..6e22a393e7 100644
--- a/features/oauth-extensions/pom.xml
+++ b/features/oauth-extensions/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
oauth-extensions-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - Device Management OAuth Extensions Feature
http://wso2.org
diff --git a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
index f0778a8abc..4a125e2cf5 100644
--- a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
+++ b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
policy-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.policy.mgt.server.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Policy Management Server Feature
http://wso2.org
This feature contains the core bundles required for Back-end Device Management functionality
diff --git a/features/policy-mgt/pom.xml b/features/policy-mgt/pom.xml
index 7a3a7b85b5..fee9272bc0 100644
--- a/features/policy-mgt/pom.xml
+++ b/features/policy-mgt/pom.xml
@@ -23,14 +23,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
policy-mgt-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - Policy Management Feature
http://wso2.org
diff --git a/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml b/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
index 0a745fa1e9..f4bd22930f 100644
--- a/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
+++ b/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
webapp-authenticator-framework-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.webapp.authenticator.framework.server.feature
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Webapp Authenticator Framework Server Feature
http://wso2.org
This feature contains the core bundles required for Back-end Device Management functionality
diff --git a/features/webapp-authenticator-framework/pom.xml b/features/webapp-authenticator-framework/pom.xml
index 452c97861b..016afaeaa1 100644
--- a/features/webapp-authenticator-framework/pom.xml
+++ b/features/webapp-authenticator-framework/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
../../pom.xml
4.0.0
org.wso2.carbon.devicemgt
webapp-authenticator-framework-feature
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
pom
WSO2 Carbon - Webapp Authenticator Framework Feature
http://wso2.org
diff --git a/pom.xml b/pom.xml
index d9840a129b..0692ee44bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
pom
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
WSO2 Carbon - Device Management - Parent
http://wso2.org
WSO2 Connected Device Manager Components
@@ -1851,7 +1851,7 @@
1.2.11.wso2v10
- 3.0.123-SNAPSHOT
+ 3.0.125-SNAPSHOT
4.4.8