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 769015dd8d8..2bfe2c25191 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
@@ -162,7 +162,7 @@
swagger-core
- com.fasterxml.jackson.core
+ org.wso2.orbit.com.fasterxml.jackson.core
jackson-annotations
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/CertificateManagementServiceComponent.java b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/CertificateManagementServiceComponent.java
index 80198c95609..0766abe86d1 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/CertificateManagementServiceComponent.java
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/src/main/java/org/wso2/carbon/certificate/mgt/core/internal/CertificateManagementServiceComponent.java
@@ -106,9 +106,14 @@ public class CertificateManagementServiceComponent {
private void setupDeviceManagementSchema(DataSourceConfig config) throws CertificateManagementException {
CertificateMgtSchemaInitializer initializer = new CertificateMgtSchemaInitializer(config);
- log.info("Initializing Certificate management repository database schema");
+ String checkSql = "select * from DM_DEVICE_CERTIFICATE";
try {
- initializer.createRegistryDatabase();
+ if (!initializer.isDatabaseStructureCreated(checkSql)) {
+ log.info("Initializing Certificate management repository database schema");
+ initializer.createRegistryDatabase();
+ } else {
+ log.info("Certificate management repository database already exists. Not creating a new database.");
+ }
} catch (Exception e) {
throw new CertificateManagementException(
"Error occurred while initializing Certificate Management database schema", e);
@@ -117,6 +122,4 @@ public class CertificateManagementServiceComponent {
log.debug("Certificate management metadata repository schema has been successfully initialized");
}
}
-
-
}
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 a53c50bcaa2..3523606ef71 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
@@ -231,7 +231,7 @@
slf4j-api
- com.fasterxml.jackson.core
+ org.wso2.orbit.com.fasterxml.jackson.core
jackson-core
@@ -249,7 +249,7 @@
slf4j-api
- com.fasterxml.jackson.core
+ org.wso2.orbit.com.fasterxml.jackson.core
jackson-core
@@ -270,7 +270,7 @@
provided
- com.fasterxml.jackson.core
+ org.wso2.orbit.com.fasterxml.jackson.core
jackson-annotations
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 e33265ac2b0..ad937f4a86e 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
@@ -66,7 +66,7 @@
provided
- com.fasterxml.jackson.core
+ org.wso2.orbit.com.fasterxml.jackson.core
jackson-annotations
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java
index 887f5d966e8..f871964569f 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java
@@ -265,9 +265,14 @@ public class DeviceManagementServiceComponent {
private void setupDeviceManagementSchema(DataSourceConfig config) throws DeviceManagementException {
DeviceManagementSchemaInitializer initializer = new DeviceManagementSchemaInitializer(config);
- log.info("Initializing device management repository database schema");
+ String checkSql = "select * from DM_DEVICE_TYPE";
try {
- initializer.createRegistryDatabase();
+ if (!initializer.isDatabaseStructureCreated(checkSql)) {
+ log.info("Initializing device management repository database schema");
+ initializer.createRegistryDatabase();
+ } else {
+ log.info("Device management database already exists. Not creating a new database.");
+ }
} catch (Exception e) {
throw new DeviceManagementException(
"Error occurred while initializing Device Management database schema", e);
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/OracleNotificationDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/OracleNotificationDAOImpl.java
index 7b6ec31ccb5..f5ca55ebbdf 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/OracleNotificationDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/OracleNotificationDAOImpl.java
@@ -85,14 +85,14 @@ public class OracleNotificationDAOImpl extends AbstractNotificationDAOImpl {
List notifications = null;
try {
conn = NotificationManagementDAOFactory.getConnection();
- String sql = "SELECT n1.NOTIFICATION_ID, n1.DEVICE_ID, n1.OPERATION_ID, n1.STATUS," +
- " n1.DESCRIPTION, d.DEVICE_IDENTIFICATION, d.NAME as DEVICE_NAME, t.NAME AS DEVICE_TYPE FROM " +
- "DM_DEVICE d, DM_DEVICE_TYPE t, (SELECT NOTIFICATION_ID, DEVICE_ID, " +
- "OPERATION_ID, STATUS, DESCRIPTION FROM DM_NOTIFICATION WHERE " +
- "TENANT_ID = ? AND STATUS = ?) n1 WHERE n1.DEVICE_ID = d.ID AND d.DEVICE_TYPE_ID=t.ID " +
- "AND TENANT_ID = ?";
-
- sql = sql + " OFFSET >= ? AND ROWNUM <= ?";
+ String sql = "SELECT n1.NOTIFICATION_ID, n1.DEVICE_ID, n1.OPERATION_ID, n1.STATUS,"
+ + " n1.DESCRIPTION, d.DEVICE_IDENTIFICATION, d.NAME as DEVICE_NAME, t.NAME AS DEVICE_TYPE FROM "
+ + "DM_DEVICE d, DM_DEVICE_TYPE t, (SELECT NOTIFICATION_ID, DEVICE_ID, "
+ + "OPERATION_ID, STATUS, DESCRIPTION FROM DM_NOTIFICATION WHERE "
+ + "TENANT_ID = ? AND STATUS = ?) n1 WHERE n1.DEVICE_ID = d.ID AND d.DEVICE_TYPE_ID=t.ID "
+ + "AND TENANT_ID = ?";
+
+ sql = sql + " ORDER BY n1.NOTIFICATION_ID OFFSET ? ROWS FETCH NEXT ? ROWS ONLY";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, tenantId);
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/device.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/device.js
index d743797ba39..6f57d8ae56b 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/device.js
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/device.js
@@ -76,32 +76,69 @@ deviceModule = function () {
function (backendResponse) {
var response = {};
if (backendResponse.status == 200 && backendResponse.responseText) {
- response["status"] = "success";
var device = parse(backendResponse.responseText);
- var propertiesList = device["properties"];
- var properties = {};
- for (var i = 0; i < propertiesList.length; i++) {
- properties[propertiesList[i]["name"]] =
- propertiesList[i]["value"];
+
+ var filteredDeviceData = {};
+ if (device["deviceIdentifier"]) {
+ filteredDeviceData["deviceIdentifier"] = device["deviceIdentifier"];
}
- var deviceObject = {};
- deviceObject[constants["DEVICE_IDENTIFIER"]] = device["deviceIdentifier"];
- deviceObject[constants["DEVICE_NAME"]] = device["name"];
- deviceObject[constants["DEVICE_OWNERSHIP"]] = device["enrolmentInfo"]["ownership"];
- deviceObject[constants["DEVICE_OWNER"]] = device["enrolmentInfo"]["owner"];
- deviceObject[constants["DEVICE_STATUS"]] = device["enrolmentInfo"]["status"];
- deviceObject[constants["DEVICE_TYPE"]] = device["type"];
- if (device["type"] == constants["PLATFORM_IOS"]) {
- properties[constants["DEVICE_MODEL"]] = properties[constants["DEVICE_PRODUCT"]];
- delete properties[constants["DEVICE_PRODUCT"]];
- properties[constants["DEVICE_VENDOR"]] = constants["VENDOR_APPLE"];
+ if (device["type"]) {
+ filteredDeviceData["type"] = device["type"];
}
- deviceObject[constants["DEVICE_PROPERTIES"]] = properties;
- if (device["deviceInfo"]) {
- deviceObject[constants["DEVICE_INFO"]] = device["deviceInfo"];
+ if (device["name"]) {
+ filteredDeviceData["name"] = device["name"];
+ }
+ if (device["enrolmentInfo"]) {
+ var enrolmentInfo = {};
+ if (device["enrolmentInfo"]["status"]) {
+ enrolmentInfo["status"] = device["enrolmentInfo"]["status"];
+ }
+ if (device["enrolmentInfo"]["owner"]) {
+ enrolmentInfo["owner"] = device["enrolmentInfo"]["owner"];
+ }
+ if (device["enrolmentInfo"]["ownership"]) {
+ enrolmentInfo["ownership"] = device["enrolmentInfo"]["ownership"];
+ }
+ filteredDeviceData["enrolmentInfo"] = enrolmentInfo;
+ }
+ if (device["properties"] && device["properties"].length > 0) {
+ var propertiesList = device["properties"];
+ var properties = {};
+ for (var i = 0; i < propertiesList.length; i++) {
+ if (propertiesList[i]["value"]) {
+ properties[propertiesList[i]["name"]] =
+ propertiesList[i]["value"];
+ }
+ }
+
+ filteredDeviceData["initialDeviceInfo"] = properties;
+
+ if (properties["DEVICE_INFO"]) {
+ var initialDeviceInfoList = parse(properties["DEVICE_INFO"]);
+ var initialDeviceInfo = {};
+ for (var j = 0; j < initialDeviceInfoList.length; j++) {
+ if (initialDeviceInfoList[j]["value"]) {
+ initialDeviceInfo[initialDeviceInfoList[j]["name"]] =
+ initialDeviceInfoList[j]["value"];
+ }
+ }
+
+ filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"] = initialDeviceInfo;
+ }
}
- response["content"] = deviceObject;
+ if (filteredDeviceData["type"]) {
+ if (filteredDeviceData["type"] == constants["PLATFORM_IOS"]) {
+ if (filteredDeviceData["properties"]) {
+ filteredDeviceData["properties"]["VENDOR"] = "Apple";
+ }
+ }
+ }
+ if (device["deviceInfo"]) {
+ filteredDeviceData["latestDeviceInfo"] = device["deviceInfo"];
+ }
+ response["content"] = filteredDeviceData;
+ response["status"] = "success";
return response;
} else if (backendResponse.status == 401) {
response["status"] = "unauthorized";
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/src/main/resources/dbscripts/certMgt/oracle.sql b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/src/main/resources/dbscripts/certMgt/oracle.sql
index 75732199f61..825380bd286 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/src/main/resources/dbscripts/certMgt/oracle.sql
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/src/main/resources/dbscripts/certMgt/oracle.sql
@@ -5,4 +5,16 @@ CREATE TABLE DM_DEVICE_CERTIFICATE (
TENANT_ID NUMBER(10) DEFAULT 0,
USERNAME VARCHAR2(500) DEFAULT NULL,
PRIMARY KEY (ID)
-)
\ No newline at end of file
+)
+/
+
+-- Generate ID using sequence and trigger
+CREATE SEQUENCE DM_DEVICE_CERTIFICATE_seq START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER DM_DEVICE_CERTIFICATE_seq_tr
+BEFORE INSERT ON DM_DEVICE_CERTIFICATE FOR EACH ROW
+WHEN (NEW.ID IS NULL)
+ BEGIN
+ SELECT DM_DEVICE_CERTIFICATE_seq.NEXTVAL INTO :NEW.ID FROM DUAL;
+ END;
+/
\ No newline at end of file
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 fbcb1396243..395f2b09043 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
@@ -125,7 +125,7 @@
org.wso2.carbon.identity:org.wso2.carbon.identity.oauth.stub:${identity.inbound.auth.oauth.version}
- com.fasterxml.jackson.core:jackson-annotations:${jackson-annotations.version}
+ org.wso2.orbit.com.fasterxml.jackson.core:jackson-annotations:${jackson-annotations.version}
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql
index 39785fc5321..f3883d8c3ce 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql
@@ -3,7 +3,8 @@ CREATE TABLE DM_DEVICE_TYPE (
NAME VARCHAR2(300) DEFAULT NULL,
PROVIDER_TENANT_ID INTEGER DEFAULT 0,
SHARED_WITH_ALL_TENANTS NUMBER(1) DEFAULT 0 NOT NULL,
- CONSTRAINT PK_DM_DEVICE_TYPE PRIMARY KEY (ID)
+ CONSTRAINT PK_DM_DEVICE_TYPE PRIMARY KEY (ID),
+ UNIQUE (NAME)
)
/
-- Generate ID using sequence and trigger
@@ -44,16 +45,6 @@ WHEN (NEW.ID IS NULL)
SELECT DM_GROUP_seq.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/
--- Generate ID using sequence and trigger
-CREATE SEQUENCE DM_DEVICE_CERTIFICATE_seq START WITH 1 INCREMENT BY 1 NOCACHE
-/
-CREATE OR REPLACE TRIGGER DM_DEVICE_CERTIFICATE_seq_tr
-BEFORE INSERT ON DM_DEVICE_CERTIFICATE FOR EACH ROW
-WHEN (NEW.ID IS NULL)
- BEGIN
- SELECT DM_DEVICE_CERTIFICATE_seq.NEXTVAL INTO :NEW.ID FROM DUAL;
- END;
-/
CREATE TABLE DM_DEVICE (
ID NUMBER(10) NOT NULL,
@@ -436,7 +427,7 @@ CREATE TABLE DM_DEVICE_POLICY_APPLIED (
POLICY_ID NUMBER(10) NOT NULL ,
POLICY_CONTENT BLOB NULL ,
TENANT_ID NUMBER(10) NOT NULL,
- APPLIED BOOLEAN NULL ,
+ APPLIED NUMBER(1) DEFAULT 0,
CREATED_TIME TIMESTAMP(0) NULL ,
UPDATED_TIME TIMESTAMP(0) NULL ,
APPLIED_TIME TIMESTAMP(0) NULL ,
@@ -860,8 +851,8 @@ 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,
@@ -885,7 +876,7 @@ 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/pom.xml b/pom.xml
index ba1fec5a241..9447965615d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1501,7 +1501,7 @@
${carbon.device.mgt.version}
- com.fasterxml.jackson.core
+ org.wso2.orbit.com.fasterxml.jackson.core
jackson-annotations
${jackson-annotations.version}
@@ -1893,7 +1893,7 @@
1.0.2
- 2.7.4
+ 2.6.1.wso2v1
1.2.0.wso2v1
5.0.2.Final