diff --git a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api/pom.xml b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api/pom.xml
index 31f3ee6fbb0..c86b9b207e6 100644
--- a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
grafana-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.common/pom.xml b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.common/pom.xml
index d785dc4985d..e59e9abc440 100644
--- a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.common/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.common/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
grafana-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.core/pom.xml b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.core/pom.xml
index 957065ac028..0d134dae6c6 100644
--- a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.core/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.core/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
grafana-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/grafana-mgt/pom.xml b/components/analytics-mgt/grafana-mgt/pom.xml
index c4591f4e67e..6604c333c93 100644
--- a/components/analytics-mgt/grafana-mgt/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
analytics-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/pom.xml b/components/analytics-mgt/pom.xml
index 1b67f931d75..2527b4a26d3 100644
--- a/components/analytics-mgt/pom.xml
+++ b/components/analytics-mgt/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml
index 8075021a33d..592b1ed792e 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml
@@ -20,7 +20,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
4.0.0
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.annotations/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.annotations/pom.xml
index 1581c4dbfc4..05e9c540499 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.annotations/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.annotations/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/pom.xml
index b0f5410d289..69a7bc25413 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/pom.xml
@@ -21,7 +21,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension/pom.xml
index 42209a881a3..0cb9ffd8f97 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml
index 31e52840c30..244bd8c9421 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.api/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.api/pom.xml
index d3faeba0b79..a4593e68111 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.api/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.api/pom.xml
@@ -21,7 +21,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
4.0.0
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension/pom.xml
index 5fd353e02d7..93e3e0289d6 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension/pom.xml
@@ -21,7 +21,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher/pom.xml
index 43e10f2ed6c..0f898f0df61 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml
index 522dd8c4b48..567e1f88832 100644
--- a/components/apimgt-extensions/pom.xml
+++ b/components/apimgt-extensions/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.common/pom.xml b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.common/pom.xml
index 21d7cb87e65..d62f719a149 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.common/pom.xml
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.common/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
application-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/pom.xml b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/pom.xml
index 7df876a94d0..53cea397b08 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/pom.xml
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
application-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/impl/ApplicationManagerImpl.java b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/impl/ApplicationManagerImpl.java
index 2ddf33f65c1..1f5c49fb811 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/impl/ApplicationManagerImpl.java
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/impl/ApplicationManagerImpl.java
@@ -856,7 +856,8 @@ public class ApplicationManagerImpl implements ApplicationManager {
ApplicationArtifact applicationArtifact, int tenantId) throws ResourceManagementException {
ApplicationStorageManager applicationStorageManager = APIUtil.getApplicationStorageManager();
- applicationReleaseDTO.setIconName(applicationArtifact.getIconName());
+ applicationReleaseDTO.setIconName(ApplicationManagementUtil.sanitizeName
+ (applicationArtifact.getIconName(), Constants.ICON_NAME));
applicationReleaseDTO.setBannerName(applicationArtifact.getBannerName());
Map screenshots = applicationArtifact.getScreenshots();
@@ -865,11 +866,14 @@ public class ApplicationManagerImpl implements ApplicationManager {
int counter = 1;
for (String scName : screenshotNames) {
if (counter == 1) {
- applicationReleaseDTO.setScreenshotName1(scName);
+ applicationReleaseDTO.setScreenshotName1(ApplicationManagementUtil.sanitizeName
+ (scName, Constants.SCREENSHOT_NAME + counter));
} else if (counter == 2) {
- applicationReleaseDTO.setScreenshotName2(scName);
+ applicationReleaseDTO.setScreenshotName2(ApplicationManagementUtil.sanitizeName
+ (scName, Constants.SCREENSHOT_NAME + counter));
} else if (counter == 3) {
- applicationReleaseDTO.setScreenshotName3(scName);
+ applicationReleaseDTO.setScreenshotName3(ApplicationManagementUtil.sanitizeName
+ (scName, Constants.SCREENSHOT_NAME + counter));
}
counter++;
}
@@ -897,7 +901,8 @@ public class ApplicationManagerImpl implements ApplicationManager {
applicationStorageManager
.deleteAppReleaseArtifact(applicationReleaseDTO.getAppHashValue(), Constants.ICON_ARTIFACT,
applicationReleaseDTO.getIconName(), tenantId);
- applicationReleaseDTO.setIconName(applicationArtifact.getIconName());
+ applicationReleaseDTO.setIconName(ApplicationManagementUtil.sanitizeName
+ (applicationArtifact.getIconName(), Constants.ICON_NAME));
}
if (!StringUtils.isEmpty(applicationArtifact.getBannerName())){
applicationStorageManager
@@ -920,17 +925,20 @@ public class ApplicationManagerImpl implements ApplicationManager {
applicationStorageManager
.deleteAppReleaseArtifact(applicationReleaseDTO.getAppHashValue(), folderPath,
applicationReleaseDTO.getScreenshotName1(), tenantId);
- applicationReleaseDTO.setScreenshotName1(scName);
+ applicationReleaseDTO.setScreenshotName1(ApplicationManagementUtil.sanitizeName
+ (scName, Constants.SCREENSHOT_NAME + counter));
} else if (counter == 2) {
applicationStorageManager
.deleteAppReleaseArtifact(applicationReleaseDTO.getAppHashValue(), folderPath,
applicationReleaseDTO.getScreenshotName2(), tenantId);
- applicationReleaseDTO.setScreenshotName2(scName);
+ applicationReleaseDTO.setScreenshotName2(ApplicationManagementUtil.sanitizeName
+ (scName, Constants.SCREENSHOT_NAME + counter));
} else if (counter == 3) {
applicationStorageManager
.deleteAppReleaseArtifact(applicationReleaseDTO.getAppHashValue(), folderPath,
applicationReleaseDTO.getScreenshotName3(), tenantId);
- applicationReleaseDTO.setScreenshotName3(scName);
+ applicationReleaseDTO.setScreenshotName3(ApplicationManagementUtil.sanitizeName
+ (scName, Constants.SCREENSHOT_NAME + counter));
}
counter++;
}
@@ -2426,7 +2434,8 @@ public class ApplicationManagerImpl implements ApplicationManager {
log.error(msg);
throw new BadRequestException(msg);
}
- applicationDTO.setName(applicationUpdateWrapper.getName());
+ applicationDTO.setName(ApplicationManagementUtil.sanitizeName(applicationUpdateWrapper.getName(),
+ Constants.ApplicationProperties.NAME));
}
if (!StringUtils.isEmpty(applicationUpdateWrapper.getSubMethod()) && !applicationDTO.getSubType()
.equals(applicationUpdateWrapper.getSubMethod())) {
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/task/ScheduledAppSubscriptionCleanupTask.java b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/task/ScheduledAppSubscriptionCleanupTask.java
index 861d1396ad0..799eea12033 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/task/ScheduledAppSubscriptionCleanupTask.java
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/task/ScheduledAppSubscriptionCleanupTask.java
@@ -59,4 +59,5 @@ public class ScheduledAppSubscriptionCleanupTask extends RandomlyAssignedSchedul
public String getTaskName() {
return TASK_NAME;
}
+
}
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/task/ScheduledAppSubscriptionTask.java b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/task/ScheduledAppSubscriptionTask.java
index 69f956e638d..051c66e7209 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/task/ScheduledAppSubscriptionTask.java
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/task/ScheduledAppSubscriptionTask.java
@@ -145,4 +145,5 @@ public class ScheduledAppSubscriptionTask extends RandomlyAssignedScheduleTask {
public String getTaskName() {
return TASK_NAME;
}
+
}
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/APIUtil.java b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/APIUtil.java
index 67938483a0b..8c9d1b23460 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/APIUtil.java
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/APIUtil.java
@@ -302,7 +302,8 @@ public class APIUtil {
if (param instanceof ApplicationWrapper){
ApplicationWrapper applicationWrapper = (ApplicationWrapper) param;
DeviceType deviceType = getDeviceTypeData(applicationWrapper.getDeviceType());
- applicationDTO.setName(applicationWrapper.getName());
+ applicationDTO.setName(ApplicationManagementUtil.sanitizeName(applicationWrapper.getName(),
+ Constants.ApplicationProperties.NAME));
applicationDTO.setDescription(applicationWrapper.getDescription());
applicationDTO.setAppCategories(applicationWrapper.getCategories());
applicationDTO.setType(ApplicationType.ENTERPRISE.toString());
@@ -316,7 +317,8 @@ public class APIUtil {
applicationDTO.setApplicationReleaseDTOs(applicationReleaseEntities);
} else if (param instanceof WebAppWrapper){
WebAppWrapper webAppWrapper = (WebAppWrapper) param;
- applicationDTO.setName(webAppWrapper.getName());
+ applicationDTO.setName(ApplicationManagementUtil.sanitizeName(webAppWrapper.getName(),
+ Constants.ApplicationProperties.NAME));
applicationDTO.setDescription(webAppWrapper.getDescription());
applicationDTO.setAppCategories(webAppWrapper.getCategories());
applicationDTO.setSubType(webAppWrapper.getSubMethod());
@@ -324,13 +326,14 @@ public class APIUtil {
applicationDTO.setType(webAppWrapper.getType());
applicationDTO.setTags(webAppWrapper.getTags());
applicationDTO.setUnrestrictedRoles(webAppWrapper.getUnrestrictedRoles());
- applicationReleaseEntities = webAppWrapper.getWebAppReleaseWrappers()
+ applicationReleaseEntities = webAppWrapper.getWebAppReleaseWrappers()
.stream().map(APIUtil::releaseWrapperToReleaseDTO).collect(Collectors.toList());
applicationDTO.setApplicationReleaseDTOs(applicationReleaseEntities);
} else if (param instanceof PublicAppWrapper) {
PublicAppWrapper publicAppWrapper = (PublicAppWrapper) param;
DeviceType deviceType = getDeviceTypeData(publicAppWrapper.getDeviceType());
- applicationDTO.setName(publicAppWrapper.getName());
+ applicationDTO.setName(ApplicationManagementUtil.sanitizeName(publicAppWrapper.getName(),
+ Constants.ApplicationProperties.NAME));
applicationDTO.setDescription(publicAppWrapper.getDescription());
applicationDTO.setAppCategories(publicAppWrapper.getCategories());
applicationDTO.setType(ApplicationType.PUBLIC.toString());
@@ -345,7 +348,8 @@ public class APIUtil {
} else if (param instanceof CustomAppWrapper){
CustomAppWrapper customAppWrapper = (CustomAppWrapper) param;
DeviceType deviceType = getDeviceTypeData(customAppWrapper.getDeviceType());
- applicationDTO.setName(customAppWrapper.getName());
+ applicationDTO.setName(ApplicationManagementUtil.sanitizeName(customAppWrapper.getName(),
+ Constants.ApplicationProperties.NAME));
applicationDTO.setDescription(customAppWrapper.getDescription());
applicationDTO.setAppCategories(customAppWrapper.getCategories());
applicationDTO.setType(ApplicationType.CUSTOM.toString());
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/ApplicationManagementUtil.java b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/ApplicationManagementUtil.java
index 671dfdf84ff..e2ec105081b 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/ApplicationManagementUtil.java
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/ApplicationManagementUtil.java
@@ -537,4 +537,29 @@ public class ApplicationManagementUtil {
packageNamesOfApps.add(adamId);
return applicationManager.getApplications(packageNamesOfApps);
}
+
+ /**
+ * Sanitize app names and shorten icon/screenshot file names
+ *
+ * @param originalName Original name of the file which is being uploaded
+ * @param type Type - Name/Artifact(Icon, Screenshot, etc.)
+ * @return Sanitized and shortened file name
+ */
+ public static String sanitizeName(String originalName, String type) {
+ String sanitizedName = originalName.replaceAll(Constants.APP_NAME_REGEX, "");
+ if (Constants.ApplicationProperties.NAME.equals(type) && sanitizedName.length() > Constants.MAX_APP_NAME_CHARACTERS) {
+ sanitizedName = sanitizedName.substring(0, Constants.MAX_APP_NAME_CHARACTERS);
+ return sanitizedName;
+ } else if (Constants.ICON_NAME.equals(type) || Constants.SCREENSHOT_NAME.equals(type)) {
+ // Shortening icon/screenshot names
+ String fileExtension = "";
+ int dotIndex = originalName.lastIndexOf('.');
+ if (dotIndex >= 0) {
+ fileExtension = originalName.substring(dotIndex);
+ }
+ return type + fileExtension;
+ } else {
+ return sanitizedName;
+ }
+ }
}
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/Constants.java b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/Constants.java
index 40774c04860..2d3b8e85ca0 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/Constants.java
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/src/main/java/io/entgra/device/mgt/core/application/mgt/core/util/Constants.java
@@ -217,4 +217,10 @@ public class Constants {
public static final String ASSOCIATION_DEVICE = "ASSOCIATION_DEVICE";
public static final String ASSOCIATION_USER = "ASSOCIATION_USER";
}
+
+ /**
+ * App name sanitization related constants
+ */
+ public static final int MAX_APP_NAME_CHARACTERS = 350;
+ public static final String APP_NAME_REGEX = "[^a-zA-Z0-9.\\s-]";
}
diff --git a/components/application-mgt/pom.xml b/components/application-mgt/pom.xml
index d0e495c5ec6..23b7a2c082a 100644
--- a/components/application-mgt/pom.xml
+++ b/components/application-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/pom.xml b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/pom.xml
index fde5124a379..bb6cf9eabca 100644
--- a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/pom.xml
+++ b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/pom.xml
@@ -18,13 +18,11 @@
~
-->
-
+
io.entgra.device.mgt.core
cea-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.common/pom.xml b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.common/pom.xml
index 582e766c043..ffc6777ef1d 100644
--- a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.common/pom.xml
+++ b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.common/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
cea-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.core/pom.xml b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.core/pom.xml
index 8d9fc5a86c9..f7e6018ac91 100644
--- a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.core/pom.xml
+++ b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.core/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
cea-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.enforce/pom.xml b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.enforce/pom.xml
index c623d45b07a..d3ebc2fd55c 100644
--- a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.enforce/pom.xml
+++ b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.enforce/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
cea-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/cea-mgt/pom.xml b/components/cea-mgt/pom.xml
index 7b7bfab5ab3..0164f1703e7 100644
--- a/components/cea-mgt/pom.xml
+++ b/components/cea-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.api/pom.xml b/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.api/pom.xml
index 9fa160fe27e..86a56d55490 100644
--- a/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.api/pom.xml
+++ b/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgt
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.cert.admin.api/pom.xml b/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.cert.admin.api/pom.xml
index 4579ad4781b..8029b289529 100644
--- a/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.cert.admin.api/pom.xml
+++ b/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.cert.admin.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgt
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.core/pom.xml b/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.core/pom.xml
index 7c032185015..b3c6db44599 100644
--- a/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.core/pom.xml
+++ b/components/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.core/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
certificate-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml
index 750ef6696ff..3efe44aef8c 100644
--- a/components/certificate-mgt/pom.xml
+++ b/components/certificate-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.defaultrole.manager/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.defaultrole.manager/pom.xml
index 9b534ced814..db013ea71b7 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.defaultrole.manager/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.defaultrole.manager/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/pom.xml
index 13f3859a474..c0e88b8373a 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/api/DeviceOrganizationMgtService.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/api/DeviceOrganizationMgtService.java
index cfc669c7672..699bf813700 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/api/DeviceOrganizationMgtService.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/api/DeviceOrganizationMgtService.java
@@ -346,14 +346,14 @@ public interface DeviceOrganizationMgtService {
Response getDeviceOrganizationLeafs(
@ApiParam(
name = "offset",
- value = "The starting pagination index for the complete list of qualified items",
+ value = "leaf node offset",
required = false,
defaultValue = "0")
@DefaultValue("0") @QueryParam("offset")
int offset,
@ApiParam(
name = "limit",
- value = "Provide how many policy details you require from the starting pagination index/offset.",
+ value = "leaf node limit",
required = false,
defaultValue = "5")
@DefaultValue("20") @QueryParam("limit")
@@ -369,8 +369,8 @@ public interface DeviceOrganizationMgtService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
- value = "Retrieve leaf Device Organizations",
- notes = "Get a list of leaf device organizations.",
+ value = "Retrieve root Device Organizations",
+ notes = "Get a list of root device organizations.",
tags = "Device Organization Management",
extensions = {
@Extension(properties = {
@@ -414,19 +414,97 @@ public interface DeviceOrganizationMgtService {
Response getDeviceOrganizationRoots(
@ApiParam(
name = "offset",
- value = "The starting pagination index for the complete list of qualified items",
+ value = "root node offset",
required = false,
defaultValue = "0")
@DefaultValue("0") @QueryParam("offset")
int offset,
@ApiParam(
name = "limit",
- value = "Provide how many policy details you require from the starting pagination index/offset.",
+ value = "root node limit",
required = false,
- defaultValue = "5")
+ defaultValue = "20")
@DefaultValue("20") @QueryParam("limit")
int limit);
+ /**
+ * Retrieves a list of root device organizations.
+ *
+ * @return A response containing a list of root device organizations.
+ */
+ @GET
+ @Path("roots/children")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Retrieve children for root Device Organizations",
+ notes = "Get a list of children for root device organizations.",
+ tags = "Device Organization Management",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = SCOPE, value = "dm:device-org:view")
+ })
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(
+ code = 200,
+ message = "OK. \n Successfully fetched the all devices.",
+ responseHeaders = {
+ @ResponseHeader(
+ name = "Content-Type",
+ description = "The content type of the body"),
+ @ResponseHeader(
+ name = "ETag",
+ description = "Entity Tag of the response resource.\n" +
+ "Used by caches, or in conditional requests."),
+ @ResponseHeader(
+ name = "Last-Modified",
+ description =
+ "Date and time the resource was last modified.\n" +
+ "Used by caches, or in conditional requests."),
+ }
+ ),
+ @ApiResponse(
+ code = 400,
+ message =
+ "Bad Request. \n"),
+ @ApiResponse(
+ code = 406,
+ message = "Not Acceptable.\n The requested media type is not supported"),
+ @ApiResponse(
+ code = 500,
+ message = "Internal Server Error. \n Server error occurred while fetching the " +
+ "list of supported device types.",
+ response = ErrorResponse.class)
+ })
+ Response getDeviceOrganizationChildrenForRoots(
+ @ApiParam(
+ name = "offset",
+ value = "root offset",
+ required = false,
+ defaultValue = "0")
+ @DefaultValue("0") @QueryParam("offset")
+ int offset,
+ @ApiParam(
+ name = "limit",
+ value = "root limit.",
+ required = false,
+ defaultValue = "20")
+ @DefaultValue("20") @QueryParam("limit")
+ int limit,
+ @ApiParam(
+ name= "maxDepth",
+ value = "The maximum depth of child nodes to retrieve for each root.",
+ required = true) @QueryParam("maxDepth")
+ int maxDepth,
+ @ApiParam(
+ name= "includeDevice",
+ value = "Indicates whether to include device information in the retrieved child nodes.",
+ required = true) @QueryParam("includeDevice")
+ boolean includeDevice);
+
/**
* Retrieves a specific device organization by its organization ID.
*
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/api/DeviceOrganizationMgtServiceImpl.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/api/DeviceOrganizationMgtServiceImpl.java
index 9a4b2590be3..6b801d1fe7b 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/api/DeviceOrganizationMgtServiceImpl.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/api/DeviceOrganizationMgtServiceImpl.java
@@ -24,6 +24,7 @@ import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api.u
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.DeviceNodeResult;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.DeviceOrganization;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.PaginationRequest;
+import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.RootChildrenRequest;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.exception.DeviceOrganizationMgtPluginException;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.spi.DeviceOrganizationService;
import org.apache.commons.logging.Log;
@@ -124,6 +125,7 @@ public class DeviceOrganizationMgtServiceImpl implements DeviceOrganizationMgtSe
@DefaultValue("20") @QueryParam("limit") int limit) {
RequestValidationUtil.validatePaginationParameters(offset, limit);
try {
+ RequestValidationUtil.validatePaginationParameters(offset, limit);
DeviceOrganizationService deviceOrganizationService = DeviceOrgAPIUtils.getDeviceOrganizationService();
PaginationRequest request = new PaginationRequest(offset, limit);
List organizations = deviceOrganizationService.getDeviceOrganizationLeafs(request);
@@ -143,6 +145,7 @@ public class DeviceOrganizationMgtServiceImpl implements DeviceOrganizationMgtSe
@DefaultValue("20") @QueryParam("limit") int limit) {
RequestValidationUtil.validatePaginationParameters(offset, limit);
try {
+ RequestValidationUtil.validatePaginationParameters(offset, limit);
DeviceOrganizationService deviceOrganizationService = DeviceOrgAPIUtils.getDeviceOrganizationService();
PaginationRequest request = new PaginationRequest(offset, limit);
List organizations = deviceOrganizationService.getDeviceOrganizationRoots(request);
@@ -154,6 +157,30 @@ public class DeviceOrganizationMgtServiceImpl implements DeviceOrganizationMgtSe
}
}
+ @GET
+ @Path("roots/children")
+ @Override
+ public Response getDeviceOrganizationChildrenForRoots(
+ @DefaultValue("0") @QueryParam("offset") int offset,
+ @DefaultValue("20") @QueryParam("limit") int limit,
+ @QueryParam("maxDepth") int maxDepth,
+ @QueryParam("includeDevice") boolean includeDevice) {
+ RequestValidationUtil.validatePaginationParameters(offset, limit);
+ try {
+ RequestValidationUtil.validatePaginationParameters(offset, limit);
+ DeviceOrganizationService deviceOrganizationService = DeviceOrgAPIUtils.getDeviceOrganizationService();
+ RootChildrenRequest request = new RootChildrenRequest(offset, limit);
+ request.setMaxDepth(maxDepth);
+ request.setIncludeDevice(includeDevice);
+ List nodeResultList = deviceOrganizationService.getAllDeviceOrganizationsForRoots(request);
+ return Response.status(Response.Status.OK).entity(nodeResultList).build();
+ } catch (DeviceOrganizationMgtPluginException e) {
+ String errorMessage = "get children for root organizations failed";
+ log.error(errorMessage);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage).build();
+ }
+ }
+
@GET
@Override
@Path("{organizationId}")
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/pom.xml
index e384d3449d1..7bdee363d5a 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/DeviceOrganizationDAO.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/DeviceOrganizationDAO.java
index 084585676b2..4c4ab54bf05 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/DeviceOrganizationDAO.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/DeviceOrganizationDAO.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/DeviceOrganizationDAOFactory.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/DeviceOrganizationDAOFactory.java
index bfbd665d497..3994a32c053 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/DeviceOrganizationDAOFactory.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/DeviceOrganizationDAOFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/impl/DeviceOrganizationDAOImpl.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/impl/DeviceOrganizationDAOImpl.java
index 432af7ff776..50da8c0bc16 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/impl/DeviceOrganizationDAOImpl.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/impl/DeviceOrganizationDAOImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/impl/DeviceOrganizationMysqlDAOImpl.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/impl/DeviceOrganizationMysqlDAOImpl.java
index 55a141b9ada..efbd192641d 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/impl/DeviceOrganizationMysqlDAOImpl.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dao/impl/DeviceOrganizationMysqlDAOImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/AdditionResult.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/AdditionResult.java
index dbebff85d6c..df5d58e1681 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/AdditionResult.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/AdditionResult.java
@@ -1,3 +1,21 @@
+/*
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto;
public class AdditionResult {
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceNode.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceNode.java
index 3ec106543e7..14d15f7c65f 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceNode.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceNode.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceNodeResult.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceNodeResult.java
index 94673c84d38..f32f725e26d 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceNodeResult.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceNodeResult.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceOrganization.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceOrganization.java
index ea912a9611d..5794e51ab85 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceOrganization.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/DeviceOrganization.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/PaginationRequest.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/PaginationRequest.java
index 18db134545c..83ccec27cb3 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/PaginationRequest.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/PaginationRequest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/RootChildrenRequest.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/RootChildrenRequest.java
new file mode 100644
index 00000000000..6f2638a266a
--- /dev/null
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/dto/RootChildrenRequest.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto;
+
+public class RootChildrenRequest extends PaginationRequest{
+
+ int maxDepth;
+ boolean includeDevice;
+
+ public RootChildrenRequest(int start, int limit) {
+ super(start, limit);
+ }
+
+ public int getMaxDepth() {
+ return maxDepth;
+ }
+
+ public void setMaxDepth(int maxDepth) {
+ if (maxDepth < 0) {
+ throw new IllegalArgumentException("maxDepth cannot be negative");
+ }
+ this.maxDepth = maxDepth;
+ }
+
+ public boolean isIncludeDevice() {
+ return includeDevice;
+ }
+
+ public void setIncludeDevice(boolean includeDevice) {
+ this.includeDevice = includeDevice;
+ }
+}
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/BadRequestDaoException.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/BadRequestDaoException.java
index dee4e83d6b7..e034d657c72 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/BadRequestDaoException.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/BadRequestDaoException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/BadRequestException.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/BadRequestException.java
index 0a87897426d..2f7cfec4ccd 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/BadRequestException.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/BadRequestException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DBConnectionException.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DBConnectionException.java
index 69818565ae6..993b002523d 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DBConnectionException.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DBConnectionException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DeviceOrganizationMgtDAOException.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DeviceOrganizationMgtDAOException.java
index 2f728aa8338..0c3039b552a 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DeviceOrganizationMgtDAOException.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DeviceOrganizationMgtDAOException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DeviceOrganizationMgtPluginException.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DeviceOrganizationMgtPluginException.java
index 98a95e4d417..cf1cee1e217 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DeviceOrganizationMgtPluginException.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/DeviceOrganizationMgtPluginException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/UnsupportedDatabaseEngineException.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/UnsupportedDatabaseEngineException.java
index 32c9ed3ac22..08f158a14d5 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/UnsupportedDatabaseEngineException.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/exception/UnsupportedDatabaseEngineException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/impl/DeviceOrganizationServiceImpl.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/impl/DeviceOrganizationServiceImpl.java
index 1cc4838d973..999ce4cc3c7 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/impl/DeviceOrganizationServiceImpl.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/impl/DeviceOrganizationServiceImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
@@ -20,10 +20,11 @@ package io.entgra.device.mgt.core.device.mgt.extensions.device.organization.impl
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dao.DeviceOrganizationDAO;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dao.DeviceOrganizationDAOFactory;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dao.util.ConnectionManagerUtil;
-import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.AdditionResult;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.DeviceNodeResult;
-import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.DeviceOrganization;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.PaginationRequest;
+import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.DeviceOrganization;
+import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.RootChildrenRequest;
+import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.AdditionResult;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.exception.BadRequestException;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.exception.DBConnectionException;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.exception.DeviceOrganizationMgtDAOException;
@@ -33,7 +34,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.PrivilegedCarbonContext;
-import java.sql.Connection;
+import java.util.ArrayList;
import java.util.List;
public class DeviceOrganizationServiceImpl implements DeviceOrganizationService {
@@ -164,6 +165,34 @@ public class DeviceOrganizationServiceImpl implements DeviceOrganizationService
}
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List getAllDeviceOrganizationsForRoots(RootChildrenRequest request) throws DeviceOrganizationMgtPluginException {
+ List allDeviceOrganizations = new ArrayList<>();
+
+ try {
+ // Get all root device organizations
+ PaginationRequest paginationRequest = new PaginationRequest(request.getOffSet(), request.getLimit());
+ List roots = getDeviceOrganizationRoots(paginationRequest);
+
+ // Iterate over each root and fetch its children
+ for (DeviceOrganization root : roots) {
+ DeviceNodeResult childrenResult = getChildrenOfDeviceNode(root.getDeviceId(), request.getMaxDepth(), request.isIncludeDevice());
+ if (childrenResult != null) {
+ allDeviceOrganizations.add(childrenResult);
+ }
+ }
+ return allDeviceOrganizations;
+ } catch (DeviceOrganizationMgtPluginException e) {
+ String msg = "Error occurred while retrieving all device organizations for roots.";
+ log.error(msg, e);
+ throw new DeviceOrganizationMgtPluginException(msg, e);
+ }
+ }
+
+
/**
* {@inheritDoc}
*/
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/internal/DeviceOrganizationMgtDataHolder.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/internal/DeviceOrganizationMgtDataHolder.java
index d6a5bb2545d..d75a83e7b6e 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/internal/DeviceOrganizationMgtDataHolder.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/internal/DeviceOrganizationMgtDataHolder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/internal/DeviceOrganizationMgtServiceComponent.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/internal/DeviceOrganizationMgtServiceComponent.java
index 0cf012c9905..b6fd06d8fff 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/internal/DeviceOrganizationMgtServiceComponent.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/internal/DeviceOrganizationMgtServiceComponent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/spi/DeviceOrganizationService.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/spi/DeviceOrganizationService.java
index b69e3867734..fa3265289da 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/spi/DeviceOrganizationService.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/main/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/spi/DeviceOrganizationService.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
@@ -20,6 +20,7 @@ package io.entgra.device.mgt.core.device.mgt.extensions.device.organization.spi;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.DeviceNodeResult;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.DeviceOrganization;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.PaginationRequest;
+import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.RootChildrenRequest;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.exception.DeviceOrganizationMgtPluginException;
import java.util.List;
@@ -71,6 +72,15 @@ public interface DeviceOrganizationService {
*/
List getAllDeviceOrganizations() throws DeviceOrganizationMgtPluginException;
+ /**
+ * Retrieves a list of all device organizations for roots.
+ * @param request
+ * @return
+ * @throws DeviceOrganizationMgtPluginException
+ */
+ List getAllDeviceOrganizationsForRoots(RootChildrenRequest request)
+ throws DeviceOrganizationMgtPluginException;
+
/**
* Retrieves device Organization Leafs
*
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DAONegativeTest.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DAONegativeTest.java
index 1df01c49838..2d8e3b66c5d 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DAONegativeTest.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DAONegativeTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DAOTest.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DAOTest.java
index 57154985f5d..5cf14e5ea85 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DAOTest.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DAOTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DataSourceConfig.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DataSourceConfig.java
index 240633038ae..c3d37de9866 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DataSourceConfig.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/DataSourceConfig.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/ServiceNegativeTest.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/ServiceNegativeTest.java
index 3f2b125f1bd..47764bdbfc8 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/ServiceNegativeTest.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/ServiceNegativeTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/ServiceTest.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/ServiceTest.java
index 351b21d5372..c46f035c504 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/ServiceTest.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/ServiceTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
@@ -22,6 +22,7 @@ import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dao.D
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.DeviceNodeResult;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.DeviceOrganization;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.PaginationRequest;
+import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.dto.RootChildrenRequest;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.exception.DeviceOrganizationMgtPluginException;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.impl.DeviceOrganizationServiceImpl;
import io.entgra.device.mgt.core.device.mgt.extensions.device.organization.mock.BaseDeviceOrganizationTest;
@@ -285,6 +286,21 @@ public class ServiceTest extends BaseDeviceOrganizationTest {
Assert.assertFalse(organizations.isEmpty(), "List of organizations should not be empty");
}
+ @Test(dependsOnMethods = "testAddDeviceOrganizationWithNullParent")
+ public void testGetAllOrganizationsForRoots() throws DeviceOrganizationMgtPluginException {
+
+ int offSet = 0;
+ int limit = 100;
+ boolean includeDevice = true;
+ int maxDepth =100;
+ RootChildrenRequest request = new RootChildrenRequest(offSet, limit);
+ request.setMaxDepth(maxDepth);
+ request.setIncludeDevice(includeDevice);
+ List nodeResultList = deviceOrganizationService.getAllDeviceOrganizationsForRoots(request);
+ Assert.assertNotNull(nodeResultList, "Cannot be null");
+ Assert.assertFalse(nodeResultList.isEmpty(), "List of node result should not be empty");
+ }
+
@Test(dependsOnMethods = "testAddDeviceOrganizationWithNullParent")
public void testGetRootOrganizations() throws DeviceOrganizationMgtPluginException {
int offset = 0;
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/TestUtils.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/TestUtils.java
index 9dcac705be5..b48518e5157 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/TestUtils.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/TestUtils.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/BaseDeviceOrganizationTest.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/BaseDeviceOrganizationTest.java
index ec7cf1efe53..30d75ecf34b 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/BaseDeviceOrganizationTest.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/BaseDeviceOrganizationTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockConnection.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockConnection.java
index 86db883873e..47d2fe85296 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockConnection.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockConnection.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockDataSource.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockDataSource.java
index 8b266cd85f0..975cafc9012 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockDataSource.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockDataSource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockDatabaseMetaData.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockDatabaseMetaData.java
index a1229e28a49..566aaee6c03 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockDatabaseMetaData.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockDatabaseMetaData.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockJDBCDriver.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockJDBCDriver.java
index 24944a3b392..74a8b399623 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockJDBCDriver.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockJDBCDriver.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockResultSet.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockResultSet.java
index 08b4beb4f77..671b40923b1 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockResultSet.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockResultSet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockStatement.java b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockStatement.java
index 50d199b424b..d09e7410d95 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockStatement.java
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization/src/test/java/io/entgra/device/mgt/core/device/mgt/extensions/device/organization/mock/MockStatement.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.type.deployer/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.type.deployer/pom.xml
index eabf7862327..f2edc213d0b 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.type.deployer/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.type.deployer/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.logger/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.logger/pom.xml
index f41c8f8e498..7eaf4ffb6e6 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.logger/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.logger/pom.xml
@@ -21,7 +21,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.pull.notification/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.pull.notification/pom.xml
index 5a81e13870e..685c67cc29e 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.pull.notification/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.pull.notification/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.fcm/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.fcm/pom.xml
index 30776534a24..ad12e889353 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.fcm/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.fcm/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http/pom.xml
index 19064258e89..dcabcda941f 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.mqtt/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
index c2e5ec68bb8..ade454924cd 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.xmpp/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
index 4487b32b4e5..acf333455f2 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.stateengine/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.stateengine/pom.xml
index 6401547684e..eeda5522808 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.stateengine/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.stateengine/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.userstore.role.mapper/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.userstore.role.mapper/pom.xml
index 7f8b9e11318..8b29c1d722f 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.userstore.role.mapper/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.userstore.role.mapper/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml
index e9da87df6b1..69c82689ef0 100644
--- a/components/device-mgt-extensions/pom.xml
+++ b/components/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.api/pom.xml b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.api/pom.xml
index 546604bef38..ba27202abcd 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.api/pom.xml
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.api/pom.xml
@@ -22,7 +22,7 @@
device-mgt
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.common/pom.xml b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.common/pom.xml
index 39ae4403651..9ed56e0d477 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.common/pom.xml
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.common/pom.xml
@@ -21,7 +21,7 @@
device-mgt
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.config.api/pom.xml b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.config.api/pom.xml
index 420d94660e1..777003a7bdd 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.config.api/pom.xml
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.config.api/pom.xml
@@ -22,7 +22,7 @@
device-mgt
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/pom.xml b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/pom.xml
index e6864e39435..7ee5c761ffd 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/pom.xml
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
@@ -81,12 +81,17 @@
Device Management Core Bundle
io.entgra.device.mgt.core.device.mgt.core.internal
- com.fasterxml.jackson.databind;version="[2.13,3)",
+ com.fasterxml.jackson.databind;version="[2.14,3)",
com.google.common.collect;version="[31.0,32)",
com.google.common.reflect;version="[31.0,32)",
com.google.gson;version="[2.9,3)",
com.google.gson.reflect;version="[2.9,3)",
io.entgra.device.mgt.core.apimgt.annotations;version="[5.0,6)",
+ io.entgra.device.mgt.core.apimgt.extension.rest.api;version="[5.0,6)",
+ io.entgra.device.mgt.core.apimgt.extension.rest.api.dto;version="[5.0,6)",
+ io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIInfo;version="[5.0,6)",
+ io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions;version="[5.0,6)",
+ io.entgra.device.mgt.core.apimgt.extension.rest.api.util;version="[5.0,6)",
io.entgra.device.mgt.core.device.mgt.common;version="[5.0,6)",
io.entgra.device.mgt.core.device.mgt.common.app.mgt;version="[5.0,6)",
io.entgra.device.mgt.core.device.mgt.common.app.mgt.android;version="[5.0,6)",
@@ -138,6 +143,7 @@
io.entgra.device.mgt.core.device.mgt.core.config.keymanager,
io.entgra.device.mgt.core.device.mgt.core.config.license,
io.entgra.device.mgt.core.device.mgt.core.config.metadata.mgt,
+ io.entgra.device.mgt.core.device.mgt.core.config.metadata.mgt.documentation,
io.entgra.device.mgt.core.device.mgt.core.config.metadata.mgt.whitelabel,
io.entgra.device.mgt.core.device.mgt.core.config.operation.timeout,
io.entgra.device.mgt.core.device.mgt.core.config.pagination,
@@ -197,6 +203,7 @@
io.entgra.device.mgt.core.device.mgt.core.traccar.common.config,
io.entgra.device.mgt.core.device.mgt.core.traccar.common.util,
io.entgra.device.mgt.core.device.mgt.core.traccar.core.config,
+ io.entgra.device.mgt.core.device.mgt.extensions.logger;version="[5.0,6)",
io.entgra.device.mgt.core.device.mgt.extensions.logger.spi;version="[5.0,6)",
io.entgra.device.mgt.core.identity.jwt.client.extension;version="[5.0,6)",
io.entgra.device.mgt.core.identity.jwt.client.extension.dto;version="[5.0,6)",
@@ -208,9 +215,14 @@
io.entgra.device.mgt.core.server.bootup.heartbeat.beacon.service;version="[5.0,6)",
io.entgra.device.mgt.core.transport.mgt.email.sender.core;version="[5.0,6)",
io.entgra.device.mgt.core.transport.mgt.email.sender.core.service;version="[5.0,6)",
- io.swagger.annotations;version="[1.6,2)",javax.cache;version="[1.0,2)",
- javax.naming,javax.net.ssl,javax.servlet;version="[2.6,3)",
- javax.sql,javax.ws.rs,javax.xml.bind;version="[0.0,1)",
+ io.swagger.annotations;version="[1.6,2)",
+ javax.cache;version="[1.0,2)",
+ javax.naming,
+ javax.net.ssl,
+ javax.servlet;version="[2.6,3)",
+ javax.sql,
+ javax.ws.rs,
+ javax.xml.bind;version="[0.0,1)",
javax.xml.bind.annotation;version="[0.0,1)",
javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}",
javax.xml.stream;version="[1.0,2)",
@@ -228,7 +240,7 @@
org.apache.commons.httpclient.protocol;version="[3.1,4)",
org.apache.commons.io;version="[2.0,3)",
org.apache.commons.lang;version="[2.6,3)",
- org.apache.commons.lang3;version="[3.1,4)",
+ org.apache.commons.lang3;version="[3.11,4)",
org.apache.commons.logging;version="[1.2,2)",
org.apache.commons.validator.routines;version="[1.7,2)",
org.apache.http;version="[4.4,5)",
@@ -242,28 +254,27 @@
org.osgi.service.*;version="${imp.package.version.osgi.service}",
org.scannotation;version="[1.0,2)",
org.scannotation.archiveiterator;version="[1.0,2)",
- org.w3c.dom,
- org.wso2.carbon.base,
-
-
+ org.w3c.dom,org.wso2.carbon.base;version="[1.0,2)",
+ org.wso2.carbon.caching.impl;version="[4.6,5)",
org.wso2.carbon.context;version="[4.8,5)",
org.wso2.carbon.core;version="[4.8,5)",
org.wso2.carbon.core.util;version="[4.8,5)",
org.wso2.carbon.event.processor.stub;version="[2.3,3)",
org.wso2.carbon.event.processor.stub.types;version="[2.3,3)",
org.wso2.carbon.ndatasource.core;version="[4.8,5)",
- org.wso2.carbon.ntask.common,
- org.wso2.carbon.ntask.core,
- org.wso2.carbon.ntask.core.service,
- org.wso2.carbon.registry.api,
- org.wso2.carbon.registry.core,
- org.wso2.carbon.registry.core.exceptions,
- org.wso2.carbon.registry.core.service,
- org.wso2.carbon.registry.core.session,
+ org.wso2.carbon.ntask.common;version="[4.9,5)",
+ org.wso2.carbon.ntask.core;version="[4.9,5)",
+ org.wso2.carbon.ntask.core.service;version="[4.9,5)",
+ org.wso2.carbon.registry.api;version="[1.0,2)",
+ org.wso2.carbon.registry.core;version="[1.0,2)",
+ org.wso2.carbon.registry.core.exceptions;version="[1.0,2)",
+ org.wso2.carbon.registry.core.service;version="[1.0,2)",
+ org.wso2.carbon.registry.core.session;version="[1.0,2)",
org.wso2.carbon.stratos.common.beans;version="[4.7,5)",
org.wso2.carbon.stratos.common.util;version="[4.7,5)",
- org.wso2.carbon.tenant.mgt.services,
- org.wso2.carbon.user.api,
+ org.wso2.carbon.tenant.mgt.exception;version="[4.9,5)",
+ org.wso2.carbon.tenant.mgt.services;version="[4.9,5)",
+ org.wso2.carbon.user.api;version="[1.0,2)",
org.wso2.carbon.user.core.config;version="[4.8,5)",
org.wso2.carbon.user.core.service;version="[4.8,5)",
org.wso2.carbon.user.core.tenant;version="[4.8,5)",
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/operation/timeout/task/impl/OperationTimeoutTask.java b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/operation/timeout/task/impl/OperationTimeoutTask.java
index 157795aa5a1..1ef473e4d19 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/operation/timeout/task/impl/OperationTimeoutTask.java
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/operation/timeout/task/impl/OperationTimeoutTask.java
@@ -18,9 +18,6 @@
package io.entgra.device.mgt.core.device.mgt.core.operation.timeout.task.impl;
import com.google.gson.Gson;
-import io.entgra.device.mgt.core.server.bootup.heartbeat.beacon.exception.HeartBeatManagementException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import io.entgra.device.mgt.core.device.mgt.common.exceptions.DeviceManagementException;
import io.entgra.device.mgt.core.device.mgt.common.operation.mgt.Activity;
import io.entgra.device.mgt.core.device.mgt.common.operation.mgt.ActivityStatus;
@@ -29,75 +26,85 @@ import io.entgra.device.mgt.core.device.mgt.common.operation.mgt.OperationManage
import io.entgra.device.mgt.core.device.mgt.core.config.operation.timeout.OperationTimeout;
import io.entgra.device.mgt.core.device.mgt.core.dto.DeviceType;
import io.entgra.device.mgt.core.device.mgt.core.internal.DeviceManagementDataHolder;
-import io.entgra.device.mgt.core.device.mgt.core.task.impl.DynamicPartitionedScheduleTask;
+import io.entgra.device.mgt.core.device.mgt.core.task.impl.RandomlyAssignedScheduleTask;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
-public class OperationTimeoutTask extends DynamicPartitionedScheduleTask {
+public class OperationTimeoutTask extends RandomlyAssignedScheduleTask {
private static final Log log = LogFactory.getLog(OperationTimeoutTask.class);
+ public static final String OPERATION_TIMEOUT_TASK = "OPERATION_TIMEOUT_TASK";
+ private Map properties;
+
+ @Override
+ public final void setProperties(Map properties) {
+ this.properties = properties;
+ }
+
+ public final String getProperty(String name) {
+ if (properties == null) {
+ return null;
+ }
+ return properties.get(name);
+ }
+
@Override
protected void setup() {
}
@Override
- protected void executeDynamicTask() {
- if (isQualifiedToExecuteTask()) { // this task will run only in one node when the deployment has multiple nodes
- String operationTimeoutTaskConfigStr = getProperty(
- OperationTimeoutTaskManagerServiceImpl.OPERATION_TIMEOUT_TASK_CONFIG);
- Gson gson = new Gson();
- OperationTimeout operationTimeoutConfig = gson.fromJson(operationTimeoutTaskConfigStr, OperationTimeout.class);
- try {
- long timeMillis = System.currentTimeMillis() - (long) operationTimeoutConfig.getTimeout();
- List deviceTypes = new ArrayList<>();
- if (operationTimeoutConfig.getDeviceTypes().size() == 1 &&
- "ALL".equals(operationTimeoutConfig.getDeviceTypes().get(0))) {
- try {
- List deviceTypeList = DeviceManagementDataHolder.getInstance()
- .getDeviceManagementProvider().getDeviceTypes();
- for (DeviceType deviceType : deviceTypeList) {
- deviceTypes.add(deviceType.getName());
- }
- } catch (DeviceManagementException e) {
- log.error("Error occurred while reading device types", e);
+ public String getTaskName() {
+ return OPERATION_TIMEOUT_TASK;
+ }
+
+ @Override
+ protected void executeRandomlyAssignedTask() {
+ // this task will run only in one node when the deployment has multiple nodes
+ String operationTimeoutTaskConfigStr = getProperty(
+ OperationTimeoutTaskManagerServiceImpl.OPERATION_TIMEOUT_TASK_CONFIG);
+ Gson gson = new Gson();
+ OperationTimeout operationTimeoutConfig = gson.fromJson(operationTimeoutTaskConfigStr, OperationTimeout.class);
+ try {
+ long timeMillis = System.currentTimeMillis() - (long) operationTimeoutConfig.getTimeout();
+ List deviceTypes = new ArrayList<>();
+ if (operationTimeoutConfig.getDeviceTypes().size() == 1 &&
+ "ALL".equals(operationTimeoutConfig.getDeviceTypes().get(0))) {
+ try {
+ List deviceTypeList = DeviceManagementDataHolder.getInstance()
+ .getDeviceManagementProvider().getDeviceTypes();
+ for (DeviceType deviceType : deviceTypeList) {
+ deviceTypes.add(deviceType.getName());
}
- } else {
- deviceTypes = operationTimeoutConfig.getDeviceTypes();
+ } catch (DeviceManagementException e) {
+ log.error("Error occurred while reading device types", e);
}
- List activities = DeviceManagementDataHolder.getInstance().getOperationManager()
- .getActivities(deviceTypes, operationTimeoutConfig.getCode(), timeMillis,
- operationTimeoutConfig.getInitialStatus());
- for (Activity activity : activities) {
- for (ActivityStatus activityStatus : activity.getActivityStatus()) {
- String operationId = activity.getActivityId().replace("ACTIVITY_", "");
- Operation operation = DeviceManagementDataHolder.getInstance().getOperationManager()
- .getOperation(Integer.parseInt(operationId));
- operation.setStatus(Operation.Status.valueOf(operationTimeoutConfig.getNextStatus()));
- DeviceManagementDataHolder.getInstance().getOperationManager()
- .updateOperation(activityStatus.getDeviceIdentifier(), operation);
- }
+ } else {
+ deviceTypes = operationTimeoutConfig.getDeviceTypes();
+ }
+ List activities = DeviceManagementDataHolder.getInstance().getOperationManager()
+ .getActivities(deviceTypes, operationTimeoutConfig.getCode(), timeMillis,
+ operationTimeoutConfig.getInitialStatus());
+ String operationId;
+ Operation operation;
+ for (Activity activity : activities) {
+ operationId = activity.getActivityId().replace("ACTIVITY_", "");
+ for (ActivityStatus activityStatus : activity.getActivityStatus()) {
+ operation = DeviceManagementDataHolder.getInstance().getOperationManager()
+ .getOperation(Integer.parseInt(operationId));
+ operation.setStatus(Operation.Status.valueOf(operationTimeoutConfig.getNextStatus()));
+ DeviceManagementDataHolder.getInstance().getOperationManager()
+ .updateOperation(activityStatus.getDeviceIdentifier(), operation);
}
-
- } catch (OperationManagementException e) {
- String msg = "Error occurred while retrieving operations.";
- log.error(msg, e);
}
+ } catch (OperationManagementException e) {
+ String msg = "Error occurred while retrieving operations.";
+ log.error(msg, e);
}
-
}
- private boolean isQualifiedToExecuteTask() {
- if (isDynamicTaskEligible()) {
- try {
- return DeviceManagementDataHolder.getInstance().getHeartBeatService().isQualifiedToExecuteTask();
- } catch (HeartBeatManagementException e) {
- log.error("Error while checking is qualified to execute task", e);
- }
- } else {
- return true;
- }
- return false;
- }
}
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/ArchivalTask.java b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/ArchivalTask.java
index 6efecd6a97b..f4048ac9059 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/ArchivalTask.java
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/ArchivalTask.java
@@ -18,21 +18,21 @@
package io.entgra.device.mgt.core.device.mgt.core.task.impl;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import io.entgra.device.mgt.core.device.mgt.core.archival.ArchivalException;
import io.entgra.device.mgt.core.device.mgt.core.archival.ArchivalService;
import io.entgra.device.mgt.core.device.mgt.core.archival.ArchivalServiceImpl;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.ntask.core.Task;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.TimeUnit;
-public class ArchivalTask implements Task {
+public class ArchivalTask extends RandomlyAssignedScheduleTask {
private static final Log log = LogFactory.getLog(ArchivalTask.class);
+ private static final String TASK_NAME = "DATA_ARCHIVAL_TASK";
private ArchivalService archivalService;
@@ -42,12 +42,12 @@ public class ArchivalTask implements Task {
}
@Override
- public void init() {
+ protected void setup() {
this.archivalService = new ArchivalServiceImpl();
}
@Override
- public void execute() {
+ protected void executeRandomlyAssignedTask() {
log.info("Executing ArchivalTask at " + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date()));
long startTime = System.currentTimeMillis();
try {
@@ -60,6 +60,11 @@ public class ArchivalTask implements Task {
log.info("ArchivalTask completed. Total execution time: " + getDurationBreakdown(difference));
}
+ @Override
+ public String getTaskName() {
+ return TASK_NAME;
+ }
+
private String getDurationBreakdown(long millis) {
if (millis < 0) {
throw new IllegalArgumentException("Duration must be greater than zero!");
@@ -74,4 +79,5 @@ public class ArchivalTask implements Task {
return (days + " Days " + hours + " Hours " + minutes + " Minutes " + seconds + " Seconds");
}
+
}
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/ArchivedDataDeletionTask.java b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/ArchivedDataDeletionTask.java
index 60fa409d644..e4de14b47bf 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/ArchivedDataDeletionTask.java
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/ArchivedDataDeletionTask.java
@@ -29,9 +29,10 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
-public class ArchivedDataDeletionTask implements Task {
+public class ArchivedDataDeletionTask extends RandomlyAssignedScheduleTask {
- private static Log log = LogFactory.getLog(ArchivedDataDeletionTask.class);
+ private static final Log log = LogFactory.getLog(ArchivedDataDeletionTask.class);
+ private static final String TASK_NAME = "ARCHIVED_DATA_CLEANUP_TASK";
private ArchivalService archivalService;
@@ -41,12 +42,12 @@ public class ArchivedDataDeletionTask implements Task {
}
@Override
- public void init() {
+ public void setup() {
this.archivalService = new ArchivalServiceImpl();
}
@Override
- public void execute() {
+ protected void executeRandomlyAssignedTask() {
log.info("Executing DataDeletionTask at " + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date()));
long startTime = System.nanoTime();
try {
@@ -58,4 +59,10 @@ public class ArchivedDataDeletionTask implements Task {
long difference = (endTime - startTime) / (1000000 * 1000);
log.info("DataDeletionTask completed. Total execution time: " + difference + " seconds");
}
+
+ @Override
+ public String getTaskName() {
+ return TASK_NAME;
+ }
+
}
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/DeviceDetailsRetrieverTask.java b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/DeviceDetailsRetrieverTask.java
index da28d6e40cc..ac374a77f7f 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/DeviceDetailsRetrieverTask.java
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/DeviceDetailsRetrieverTask.java
@@ -109,4 +109,5 @@ public class DeviceDetailsRetrieverTask extends DynamicPartitionedScheduleTask {
protected void setup() {
}
+
}
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/DynamicPartitionedScheduleTask.java b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/DynamicPartitionedScheduleTask.java
index fd9ab1c8e4b..fe830736a98 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/DynamicPartitionedScheduleTask.java
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/DynamicPartitionedScheduleTask.java
@@ -53,7 +53,7 @@ public abstract class DynamicPartitionedScheduleTask implements Task {
public final void init() {
try {
boolean dynamicTaskEnabled = DeviceManagementDataHolder.getInstance().getHeartBeatService().isTaskPartitioningEnabled();
- if(dynamicTaskEnabled){
+ if (dynamicTaskEnabled) {
taskContext = new DynamicTaskContext();
taskContext.setPartitioningEnabled(true);
} else {
@@ -75,9 +75,9 @@ public abstract class DynamicPartitionedScheduleTask implements Task {
String localHashIndex = getProperty(TaskMgtConstants.Task.LOCAL_HASH_INDEX);
// These tasks are not dynamically scheduled. They are added via a config so scheduled in each node
// during the server startup
- if (localHashIndex == null ) {
+ if (localHashIndex == null) {
if (log.isDebugEnabled()) {
- log.debug("Executing startup scheduled task (" + getTaskName() + ") with class: " +
+ log.debug("Executing startup scheduled task (" + getTaskName() + ") with class: " +
this.getClass().getName());
}
executeDynamicTask();
@@ -116,7 +116,7 @@ public abstract class DynamicPartitionedScheduleTask implements Task {
private void updateContext() throws HeartBeatManagementException {
ServerCtxInfo ctxInfo = DeviceManagementDataHolder.getInstance().getHeartBeatService().getServerCtxInfo();
- if(ctxInfo != null) {
+ if (ctxInfo != null) {
populateContext(ctxInfo);
} else {
log.info("Dynamic Task Context not present. Tasks will run on regular worker/manager mode.");
@@ -127,10 +127,10 @@ public abstract class DynamicPartitionedScheduleTask implements Task {
taskContext.setActiveServerCount(ctxInfo.getActiveServerCount());
taskContext.setServerHashIndex(ctxInfo.getLocalServerHashIdx());
- if(log.isDebugEnabled()){
+ if (log.isDebugEnabled()) {
log.debug("Initiating execution of dynamic task for server : " + taskContext.getServerHashIndex() +
- " where active server count is : " + taskContext.getActiveServerCount() +
- " partitioning task enabled : " + taskContext.isPartitioningEnabled());
+ " where active server count is : " + taskContext.getActiveServerCount() +
+ " partitioning task enabled : " + taskContext.isPartitioningEnabled());
}
}
@@ -142,7 +142,8 @@ public abstract class DynamicPartitionedScheduleTask implements Task {
return taskContext;
}
- public static boolean isDynamicTaskEligible(){
+ @Deprecated
+ public static boolean isDynamicTaskEligible() {
return taskContext != null && taskContext.isPartitioningEnabled();
}
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/RandomlyAssignedScheduleTask.java b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/RandomlyAssignedScheduleTask.java
index b79ef7718b2..3ebebda8100 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/RandomlyAssignedScheduleTask.java
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.core/src/main/java/io/entgra/device/mgt/core/device/mgt/core/task/impl/RandomlyAssignedScheduleTask.java
@@ -28,8 +28,6 @@ import org.wso2.carbon.ntask.core.Task;
public abstract class RandomlyAssignedScheduleTask implements Task {
private static final Log log = LogFactory.getLog(RandomlyAssignedScheduleTask.class);
-
- private static String taskName = "UNSPECIFIED";
private static boolean qualifiedToExecuteTask = false;
private static boolean dynamicTaskEnabled = false;
@@ -38,32 +36,32 @@ public abstract class RandomlyAssignedScheduleTask implements Task {
try {
dynamicTaskEnabled = DeviceManagementDataHolder.getInstance().getHeartBeatService().isTaskPartitioningEnabled();
} catch (HeartBeatManagementException e) {
- log.error("Error Instantiating Variables necessary for Randomly Assigned Task Scheduling." , e);
+ log.error("Error Instantiating Variables necessary for Randomly Assigned Task Scheduling.", e);
}
- //This is done so that sub class extending this abstract class is forced to specify a task name.
- taskName = getTaskName();
setup();
}
@Override
public final void execute() {
refreshContext();
- executeRandomlyAssignedTask();
+ if (isQualifiedToExecuteTask()) {
+ executeRandomlyAssignedTask();
+ }
}
- public void refreshContext(){
- if(dynamicTaskEnabled) {
+ public void refreshContext() {
+ if (dynamicTaskEnabled) {
try {
qualifiedToExecuteTask = DeviceManagementDataHolder.getInstance().getHeartBeatService().isQualifiedToExecuteTask();
- log.info("## NODE Qualified to execute Randomly Assigned Task : " + taskName);
- DeviceManagementDataHolder.getInstance().getHeartBeatService().updateTaskExecutionAcknowledgement(taskName);
} catch (HeartBeatManagementException e) {
- log.error("Error refreshing Variables necessary for Randomly Assigned Scheduled Task. " +
- "Dynamic Tasks will not function.", e);
+ log.error("Error refreshing variables necessary for " +
+ "Randomly Assigned Scheduled Task: " + getTaskName(), e);
}
} else {
qualifiedToExecuteTask = true;
}
+ log.info("Node is " + (qualifiedToExecuteTask ? "" : "not")
+ + " qualified to execute Randomly Assigned Task : " + getTaskName());
}
protected abstract void setup();
@@ -75,4 +73,5 @@ public abstract class RandomlyAssignedScheduleTask implements Task {
}
public abstract String getTaskName();
+
}
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.extensions/pom.xml b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.extensions/pom.xml
index 00a24b380ba..266a25d1219 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.extensions/pom.xml
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.extensions/pom.xml
@@ -22,7 +22,7 @@
device-mgt
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.url.printer/pom.xml b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.url.printer/pom.xml
index 5fb27735980..30526524a71 100644
--- a/components/device-mgt/io.entgra.device.mgt.core.device.mgt.url.printer/pom.xml
+++ b/components/device-mgt/io.entgra.device.mgt.core.device.mgt.url.printer/pom.xml
@@ -23,7 +23,7 @@
device-mgt
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml
index 1dbcb2e1c37..1e9ff562cff 100644
--- a/components/device-mgt/pom.xml
+++ b/components/device-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/pom.xml b/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/pom.xml
index 2ce2aac2571..f56e40b6474 100644
--- a/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/pom.xml
+++ b/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
heartbeat-management
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/src/main/java/io/entgra/device/mgt/core/server/bootup/heartbeat/beacon/dao/impl/GenericHeartBeatDAOImpl.java b/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/src/main/java/io/entgra/device/mgt/core/server/bootup/heartbeat/beacon/dao/impl/GenericHeartBeatDAOImpl.java
index fce8bdc688a..adf6351260b 100644
--- a/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/src/main/java/io/entgra/device/mgt/core/server/bootup/heartbeat/beacon/dao/impl/GenericHeartBeatDAOImpl.java
+++ b/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/src/main/java/io/entgra/device/mgt/core/server/bootup/heartbeat/beacon/dao/impl/GenericHeartBeatDAOImpl.java
@@ -142,7 +142,7 @@ public class GenericHeartBeatDAOImpl implements HeartBeatDAO {
}
} catch (SQLException e) {
String msg = "Error occurred while updating task list of elected server : '" +
- uuid + "' and task list " + taskList;
+ uuid + "' and task list " + taskList;
log.error(msg, e);
throw new HeartBeatDAOException(msg, e);
}
diff --git a/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/src/main/java/io/entgra/device/mgt/core/server/bootup/heartbeat/beacon/service/HeartBeatManagementServiceImpl.java b/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/src/main/java/io/entgra/device/mgt/core/server/bootup/heartbeat/beacon/service/HeartBeatManagementServiceImpl.java
index c2eb7bb0378..6791c0f8819 100644
--- a/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/src/main/java/io/entgra/device/mgt/core/server/bootup/heartbeat/beacon/service/HeartBeatManagementServiceImpl.java
+++ b/components/heartbeat-management/io.entgra.device.mgt.core.server.bootup.heartbeat.beacon/src/main/java/io/entgra/device/mgt/core/server/bootup/heartbeat/beacon/service/HeartBeatManagementServiceImpl.java
@@ -146,7 +146,7 @@ public class HeartBeatManagementServiceImpl implements HeartBeatManagementServic
if (candidate != null && candidate.getServerUUID().equalsIgnoreCase(localServerUUID)) {
isQualified = true;
if (log.isDebugEnabled()) {
- log.debug("Node : " + localServerUUID + " Qualified to execute randomly assigned task.");
+ log.debug("Node : " + localServerUUID + " is qualified to execute randomly assigned task.");
}
}
} catch (HeartBeatDAOException e) {
diff --git a/components/heartbeat-management/pom.xml b/components/heartbeat-management/pom.xml
index c60383a29c1..d30eddcd04e 100644
--- a/components/heartbeat-management/pom.xml
+++ b/components/heartbeat-management/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/identity-extensions/io.entgra.device.mgt.core.device.mgt.oauth.extensions/pom.xml b/components/identity-extensions/io.entgra.device.mgt.core.device.mgt.oauth.extensions/pom.xml
index 87f5d80c9bf..e4794b126ec 100644
--- a/components/identity-extensions/io.entgra.device.mgt.core.device.mgt.oauth.extensions/pom.xml
+++ b/components/identity-extensions/io.entgra.device.mgt.core.device.mgt.oauth.extensions/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
identity-extensions
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/identity-extensions/io.entgra.device.mgt.core.identity.jwt.client.extension/pom.xml b/components/identity-extensions/io.entgra.device.mgt.core.identity.jwt.client.extension/pom.xml
index f6ebe690c00..8d05b8586da 100644
--- a/components/identity-extensions/io.entgra.device.mgt.core.identity.jwt.client.extension/pom.xml
+++ b/components/identity-extensions/io.entgra.device.mgt.core.identity.jwt.client.extension/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
identity-extensions
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/identity-extensions/pom.xml b/components/identity-extensions/pom.xml
index 437105d4e0e..f1f39df1b70 100644
--- a/components/identity-extensions/pom.xml
+++ b/components/identity-extensions/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/logger/io.entgra.device.mgt.core.notification.logger/pom.xml b/components/logger/io.entgra.device.mgt.core.notification.logger/pom.xml
index 03bf5903087..0f2a80f939e 100644
--- a/components/logger/io.entgra.device.mgt.core.notification.logger/pom.xml
+++ b/components/logger/io.entgra.device.mgt.core.notification.logger/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
logger
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
io.entgra.device.mgt.core.notification.logger
diff --git a/components/logger/pom.xml b/components/logger/pom.xml
index 15af0229f5d..946727e5042 100644
--- a/components/logger/pom.xml
+++ b/components/logger/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/operation-template-mgt/io.entgra.device.mgt.core.operation.template/pom.xml b/components/operation-template-mgt/io.entgra.device.mgt.core.operation.template/pom.xml
index 6d8f24178f1..caf31d200d6 100644
--- a/components/operation-template-mgt/io.entgra.device.mgt.core.operation.template/pom.xml
+++ b/components/operation-template-mgt/io.entgra.device.mgt.core.operation.template/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
operation-template-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/operation-template-mgt/pom.xml b/components/operation-template-mgt/pom.xml
index 17b743ed33a..f0b861c9092 100644
--- a/components/operation-template-mgt/pom.xml
+++ b/components/operation-template-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/policy-mgt/io.entgra.device.mgt.core.policy.decision.point/pom.xml b/components/policy-mgt/io.entgra.device.mgt.core.policy.decision.point/pom.xml
index 316b3e53471..2f3d7852121 100644
--- a/components/policy-mgt/io.entgra.device.mgt.core.policy.decision.point/pom.xml
+++ b/components/policy-mgt/io.entgra.device.mgt.core.policy.decision.point/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
policy-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/policy-mgt/io.entgra.device.mgt.core.policy.information.point/pom.xml b/components/policy-mgt/io.entgra.device.mgt.core.policy.information.point/pom.xml
index 30511e75bbd..50c25c29826 100644
--- a/components/policy-mgt/io.entgra.device.mgt.core.policy.information.point/pom.xml
+++ b/components/policy-mgt/io.entgra.device.mgt.core.policy.information.point/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
policy-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.common/pom.xml b/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.common/pom.xml
index 4245b11877c..9a8a5af8621 100644
--- a/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.common/pom.xml
+++ b/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.common/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
policy-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/pom.xml b/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/pom.xml
index 1e40f4c9909..18ebe836d61 100644
--- a/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/pom.xml
+++ b/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
policy-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/src/main/java/io/entgra/device/mgt/core/policy/mgt/core/enforcement/DelegationTask.java b/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/src/main/java/io/entgra/device/mgt/core/policy/mgt/core/enforcement/DelegationTask.java
index d9a8f02d098..0b499f30e17 100644
--- a/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/src/main/java/io/entgra/device/mgt/core/policy/mgt/core/enforcement/DelegationTask.java
+++ b/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/src/main/java/io/entgra/device/mgt/core/policy/mgt/core/enforcement/DelegationTask.java
@@ -64,7 +64,7 @@ public class DelegationTask extends DynamicPartitionedScheduleTask {
try {
devices = new ArrayList<>();
toBeNotified = new ArrayList<>();
- if (isDynamicTaskEligible()) {
+ if(getTaskContext() != null && getTaskContext().isPartitioningEnabled()){
devices.addAll(service.getAllocatedDevices(deviceType,
getTaskContext().getActiveServerCount(),
getTaskContext().getServerHashIndex()));
diff --git a/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/src/main/java/io/entgra/device/mgt/core/policy/mgt/core/task/MonitoringTask.java b/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/src/main/java/io/entgra/device/mgt/core/policy/mgt/core/task/MonitoringTask.java
index 310aacfd33d..62286e40b9b 100644
--- a/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/src/main/java/io/entgra/device/mgt/core/policy/mgt/core/task/MonitoringTask.java
+++ b/components/policy-mgt/io.entgra.device.mgt.core.policy.mgt.core/src/main/java/io/entgra/device/mgt/core/policy/mgt/core/task/MonitoringTask.java
@@ -105,7 +105,7 @@ public class MonitoringTask extends DynamicPartitionedScheduleTask {
PolicyManagementDataHolder.getInstance().getDeviceManagementService()
.getPolicyMonitoringManager(deviceType);
List devices;
- if(isDynamicTaskEligible()){
+ if (getTaskContext() != null && getTaskContext().isPartitioningEnabled()) {
devices = deviceManagementProviderService
.getAllocatedDevices(deviceType, getTaskContext().getActiveServerCount(),
getTaskContext().getServerHashIndex());
diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml
index 7532f6bfa37..7775b05fcd7 100644
--- a/components/policy-mgt/pom.xml
+++ b/components/policy-mgt/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/subtype-mgt/io.entgra.device.mgt.core.subtype.mgt/pom.xml b/components/subtype-mgt/io.entgra.device.mgt.core.subtype.mgt/pom.xml
index 6c2cc9c3d33..04ed5ee3e9f 100644
--- a/components/subtype-mgt/io.entgra.device.mgt.core.subtype.mgt/pom.xml
+++ b/components/subtype-mgt/io.entgra.device.mgt.core.subtype.mgt/pom.xml
@@ -20,7 +20,7 @@
io.entgra.device.mgt.core
subtype-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/subtype-mgt/pom.xml b/components/subtype-mgt/pom.xml
index 71c76671658..492d35162c2 100644
--- a/components/subtype-mgt/pom.xml
+++ b/components/subtype-mgt/pom.xml
@@ -20,7 +20,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/task-mgt/pom.xml b/components/task-mgt/pom.xml
index 0864633471e..f6e60da0e1c 100755
--- a/components/task-mgt/pom.xml
+++ b/components/task-mgt/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/pom.xml b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/pom.xml
index b1ea05f4459..29285f6a540 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/pom.xml
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/pom.xml
@@ -20,7 +20,7 @@
task-manager
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/src/main/java/io/entgra/device/mgt/core/task/mgt/common/constant/TaskMgtConstants.java b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/src/main/java/io/entgra/device/mgt/core/task/mgt/common/constant/TaskMgtConstants.java
index e5458b6a065..0a6e33379e6 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/src/main/java/io/entgra/device/mgt/core/task/mgt/common/constant/TaskMgtConstants.java
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/src/main/java/io/entgra/device/mgt/core/task/mgt/common/constant/TaskMgtConstants.java
@@ -49,5 +49,6 @@ public class TaskMgtConstants {
public static final String TENANT_ID_PROP = "__TENANT_ID_PROP__";
public static final String LOCAL_HASH_INDEX = "__LOCAL_HASH_INDEX__";
public static final String LOCAL_TASK_NAME = "__LOCAL_TASK_NAME__";
+ public static final String DYNAMIC_TASK_ID = "__DYNAMIC_TASK_ID__";
}
}
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/src/main/java/io/entgra/device/mgt/core/task/mgt/common/spi/TaskManagementService.java b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/src/main/java/io/entgra/device/mgt/core/task/mgt/common/spi/TaskManagementService.java
index 54154ecbd13..968f73d0ec5 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/src/main/java/io/entgra/device/mgt/core/task/mgt/common/spi/TaskManagementService.java
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.common/src/main/java/io/entgra/device/mgt/core/task/mgt/common/spi/TaskManagementService.java
@@ -22,6 +22,7 @@ import io.entgra.device.mgt.core.task.mgt.common.exception.TaskManagementExcepti
import io.entgra.device.mgt.core.task.mgt.common.exception.TaskNotFoundException;
import java.util.List;
+import java.util.Map;
public interface TaskManagementService {
@@ -37,7 +38,9 @@ public interface TaskManagementService {
List getAllDynamicTasks() throws TaskManagementException;
- DynamicTask getDynamicTaskById(int dynamicTaskId) throws TaskManagementException;
+ Map> getDynamicTasksForAllTenants() throws TaskManagementException;
+
+ DynamicTask getDynamicTask(int dynamicTaskId) throws TaskManagementException;
List getActiveDynamicTasks() throws TaskManagementException;
}
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/pom.xml b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/pom.xml
index 15eba10bfa9..5c28cc8ee68 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/pom.xml
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
task-manager
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/DynamicTaskDAO.java b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/DynamicTaskDAO.java
index 759de555b41..7493e9a025c 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/DynamicTaskDAO.java
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/DynamicTaskDAO.java
@@ -27,16 +27,18 @@ import java.util.List;
*/
public interface DynamicTaskDAO {
- int addTask(DynamicTask dynamicTask) throws TaskManagementDAOException;
+ int addTask(DynamicTask dynamicTask, int tenantId) throws TaskManagementDAOException;
- boolean updateDynamicTask(DynamicTask dynamicTask) throws TaskManagementDAOException;
+ boolean updateDynamicTask(DynamicTask dynamicTask, int tenantId) throws TaskManagementDAOException;
- void deleteDynamicTask(int dynamicTaskId) throws TaskManagementDAOException;
+ void deleteDynamicTask(int dynamicTaskId, int tenantId) throws TaskManagementDAOException;
- DynamicTask getDynamicTaskById(int dynamicTaskId) throws TaskManagementDAOException;
+ DynamicTask getDynamicTask(int dynamicTaskId, int tenantId) throws TaskManagementDAOException;
List getAllDynamicTasks() throws TaskManagementDAOException;
- List getActiveDynamicTasks() throws TaskManagementDAOException;
+ List getAllDynamicTasks(int tenantId) throws TaskManagementDAOException;
+
+ List getActiveDynamicTasks(int tenantId) throws TaskManagementDAOException;
}
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/DynamicTaskPropDAO.java b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/DynamicTaskPropDAO.java
index 7a448da0fae..1ef3fd5a913 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/DynamicTaskPropDAO.java
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/DynamicTaskPropDAO.java
@@ -26,10 +26,11 @@ import java.util.Map;
*/
public interface DynamicTaskPropDAO {
- void addTaskProperties(int dynamicTaskId, Map properties) throws TaskManagementDAOException;
+ void addTaskProperties(int dynamicTaskId, Map properties, int tenantId)
+ throws TaskManagementDAOException;
- Map getDynamicTaskProps(int dynamicTaskId) throws TaskManagementDAOException;
+ Map getDynamicTaskProps(int dynamicTaskId, int tenantId) throws TaskManagementDAOException;
- void updateDynamicTaskProps(int dynamicTaskId, Map properties)
+ void updateDynamicTaskProps(int dynamicTaskId, Map properties, int tenantId)
throws TaskManagementDAOException;
}
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/common/TaskManagementDAOFactory.java b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/common/TaskManagementDAOFactory.java
index e332342814c..6eccde8d842 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/common/TaskManagementDAOFactory.java
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/common/TaskManagementDAOFactory.java
@@ -103,18 +103,22 @@ public class TaskManagementDAOFactory {
conn.setAutoCommit(false);
currentConnection.set(conn);
} catch (SQLException e) {
- throw new TransactionManagementException("Error occurred while retrieving config.datasource connection", e);
+ throw new TransactionManagementException("Error occurred while retrieving datasource connection", e);
}
}
- public static void openConnection() throws SQLException {
+ public static void openConnection() throws TransactionManagementException {
Connection conn = currentConnection.get();
if (conn != null) {
throw new IllegalTransactionStateException("A transaction is already active within the context of " +
"this particular thread. Therefore, calling 'beginTransaction/openConnection' while another " +
"transaction is already active is a sign of improper transaction handling");
}
- conn = dataSource.getConnection();
+ try {
+ conn = dataSource.getConnection();
+ } catch (SQLException e) {
+ throw new TransactionManagementException("Error occurred while retrieving datasource connection", e);
+ }
currentConnection.set(conn);
}
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/impl/DynamicTaskDAOImpl.java b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/impl/DynamicTaskDAOImpl.java
index 31c256b73cb..843b5c91890 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/impl/DynamicTaskDAOImpl.java
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/impl/DynamicTaskDAOImpl.java
@@ -24,9 +24,12 @@ import io.entgra.device.mgt.core.task.mgt.core.dao.common.TaskManagementDAOFacto
import io.entgra.device.mgt.core.task.mgt.core.dao.util.TaskManagementDAOUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import java.sql.*;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
import java.util.List;
@@ -34,9 +37,9 @@ public class DynamicTaskDAOImpl implements DynamicTaskDAO {
private static final Log log = LogFactory.getLog(DynamicTaskDAOImpl.class);
@Override
- public int addTask(DynamicTask dynamicTask) throws TaskManagementDAOException {
+ public int addTask(DynamicTask dynamicTask, int tenantId) throws TaskManagementDAOException {
PreparedStatement stmt = null;
- ResultSet rs = null;
+ ResultSet rs;
int taskId = -1;
try {
Connection conn = TaskManagementDAOFactory.getConnection();
@@ -48,13 +51,14 @@ public class DynamicTaskDAOImpl implements DynamicTaskDAO {
stmt.setString(2, dynamicTask.getName());
stmt.setBoolean(3, dynamicTask.isEnabled());
stmt.setString(4, dynamicTask.getTaskClassName());
- stmt.setInt(5, PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
+ stmt.setInt(5, tenantId);
stmt.executeUpdate();
rs = stmt.getGeneratedKeys();
if (rs.next()) {
taskId = rs.getInt(1);
}
+ dynamicTask.setDynamicTaskId(taskId);
return taskId;
} catch (SQLException e) {
String msg = "Error occurred while inserting task '" + dynamicTask.getName() + "'";
@@ -66,16 +70,17 @@ public class DynamicTaskDAOImpl implements DynamicTaskDAO {
}
@Override
- public boolean updateDynamicTask(DynamicTask dynamicTask) throws TaskManagementDAOException {
+ public boolean updateDynamicTask(DynamicTask dynamicTask, int tenantId) throws TaskManagementDAOException {
PreparedStatement stmt = null;
int rows;
try {
Connection conn = TaskManagementDAOFactory.getConnection();
- String sql = "UPDATE DYNAMIC_TASK SET CRON = ?,IS_ENABLED = ? WHERE DYNAMIC_TASK_ID = ?";
+ String sql = "UPDATE DYNAMIC_TASK SET CRON = ?,IS_ENABLED = ? WHERE DYNAMIC_TASK_ID = ? AND TENANT_ID = ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, dynamicTask.getCronExpression());
stmt.setBoolean(2, dynamicTask.isEnabled());
stmt.setInt(3, dynamicTask.getDynamicTaskId());
+ stmt.setInt(4, tenantId);
rows = stmt.executeUpdate();
return (rows > 0);
} catch (SQLException e) {
@@ -87,9 +92,8 @@ public class DynamicTaskDAOImpl implements DynamicTaskDAO {
}
}
-
@Override
- public void deleteDynamicTask(int dynamicTaskId) throws TaskManagementDAOException {
+ public void deleteDynamicTask(int dynamicTaskId, int tenantId) throws TaskManagementDAOException {
if (log.isDebugEnabled()) {
log.debug("Request received in DAO Layer to delete dynamic task with the id: " + dynamicTaskId);
}
@@ -98,7 +102,7 @@ public class DynamicTaskDAOImpl implements DynamicTaskDAO {
Connection conn = TaskManagementDAOFactory.getConnection();
try (PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
stmt.setInt(1, dynamicTaskId);
- stmt.setInt(2, PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
+ stmt.setInt(2, tenantId);
stmt.executeUpdate();
}
} catch (SQLException e) {
@@ -110,7 +114,7 @@ public class DynamicTaskDAOImpl implements DynamicTaskDAO {
}
@Override
- public DynamicTask getDynamicTaskById(int dynamicTaskId) throws TaskManagementDAOException {
+ public DynamicTask getDynamicTask(int dynamicTaskId, int tenantId) throws TaskManagementDAOException {
DynamicTask dynamicTask = null;
try {
Connection conn = TaskManagementDAOFactory.getConnection();
@@ -118,7 +122,7 @@ public class DynamicTaskDAOImpl implements DynamicTaskDAO {
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setInt(1, dynamicTaskId);
- stmt.setInt(2, PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
+ stmt.setInt(2, tenantId);
try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
dynamicTask = TaskManagementDAOUtil.loadDynamicTask(rs);
@@ -155,13 +159,35 @@ public class DynamicTaskDAOImpl implements DynamicTaskDAO {
}
@Override
- public List getActiveDynamicTasks() throws TaskManagementDAOException {
- List dynamicTasks = null;
+ public List getAllDynamicTasks(int tenantId) throws TaskManagementDAOException {
+ List dynamicTasks;
+ try {
+ Connection conn = TaskManagementDAOFactory.getConnection();
+ String sql = "SELECT * FROM DYNAMIC_TASK WHERE TENANT_ID = ?";
+
+ try (PreparedStatement stmt = conn.prepareStatement(sql)) {
+ stmt.setInt(1, tenantId);
+ try (ResultSet rs = stmt.executeQuery()) {
+ dynamicTasks = TaskManagementDAOUtil.loadDynamicTasks(rs);
+ }
+ }
+ } catch (SQLException e) {
+ String msg = "Error occurred while getting all dynamic task data ";
+ log.error(msg, e);
+ throw new TaskManagementDAOException(msg, e);
+ }
+ return dynamicTasks;
+ }
+
+ @Override
+ public List getActiveDynamicTasks(int tenantId) throws TaskManagementDAOException {
+ List dynamicTasks;
try {
Connection conn = TaskManagementDAOFactory.getConnection();
- String sql = "SELECT * FROM DYNAMIC_TASK WHERE IS_ENABLED = 'true' ";
+ String sql = "SELECT * FROM DYNAMIC_TASK WHERE IS_ENABLED = 'true' AND TENANT_ID = ?";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
+ stmt.setInt(1, tenantId);
try (ResultSet rs = stmt.executeQuery()) {
dynamicTasks = TaskManagementDAOUtil.loadDynamicTasks(rs);
}
@@ -173,4 +199,5 @@ public class DynamicTaskDAOImpl implements DynamicTaskDAO {
}
return dynamicTasks;
}
+
}
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/impl/DynamicTaskPropDAOImpl.java b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/impl/DynamicTaskPropDAOImpl.java
index d26406e1b3c..8b084bf04e9 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/impl/DynamicTaskPropDAOImpl.java
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/dao/impl/DynamicTaskPropDAOImpl.java
@@ -38,9 +38,9 @@ public class DynamicTaskPropDAOImpl implements DynamicTaskPropDAO {
private static final Log log = LogFactory.getLog(DynamicTaskPropDAOImpl.class);
@Override
- public void addTaskProperties(int taskId, Map properties)
+ public void addTaskProperties(int taskId, Map properties, int tenantId)
throws TaskManagementDAOException {
- Connection conn = null;
+ Connection conn;
PreparedStatement stmt = null;
try {
conn = TaskManagementDAOFactory.getConnection();
@@ -51,7 +51,7 @@ public class DynamicTaskPropDAOImpl implements DynamicTaskPropDAO {
stmt.setInt(1, taskId);
stmt.setString(2, propertyKey);
stmt.setString(3, properties.get(propertyKey));
- stmt.setInt(4, PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
+ stmt.setInt(4, tenantId);
stmt.addBatch();
}
stmt.executeBatch();
@@ -64,17 +64,17 @@ public class DynamicTaskPropDAOImpl implements DynamicTaskPropDAO {
}
}
-
- public Map getDynamicTaskProps(int dynamicTaskId) throws TaskManagementDAOException {
- Connection conn = null;
+ public Map getDynamicTaskProps(int dynamicTaskId, int tenantId) throws TaskManagementDAOException {
+ Connection conn;
PreparedStatement stmt = null;
ResultSet resultSet = null;
Map properties;
try {
conn = TaskManagementDAOFactory.getConnection();
stmt = conn.prepareStatement(
- "SELECT * FROM DYNAMIC_TASK_PROPERTIES WHERE DYNAMIC_TASK_ID = ?");
+ "SELECT * FROM DYNAMIC_TASK_PROPERTIES WHERE DYNAMIC_TASK_ID = ? AND TENANT_ID = ?");
stmt.setInt(1, dynamicTaskId);
+ stmt.setInt(2, tenantId);
resultSet = stmt.executeQuery();
properties = new HashMap<>();
while (resultSet.next()) {
@@ -92,7 +92,7 @@ public class DynamicTaskPropDAOImpl implements DynamicTaskPropDAO {
}
@Override
- public void updateDynamicTaskProps(int dynamicTaskId, Map properties)
+ public void updateDynamicTaskProps(int dynamicTaskId, Map properties, int tenantId)
throws TaskManagementDAOException {
if (properties.isEmpty()) {
if (log.isDebugEnabled()) {
@@ -105,12 +105,13 @@ public class DynamicTaskPropDAOImpl implements DynamicTaskPropDAO {
try {
conn = TaskManagementDAOFactory.getConnection();
stmt = conn.prepareStatement("UPDATE DYNAMIC_TASK_PROPERTIES SET PROPERTY_VALUE = ? " +
- "WHERE DYNAMIC_TASK_ID = ? AND PROPERTY_NAME = ?");
+ "WHERE DYNAMIC_TASK_ID = ? AND PROPERTY_NAME = ? AND TENANT_ID = ?");
for (Map.Entry entry : properties.entrySet()) {
stmt.setString(1, entry.getValue());
stmt.setInt(2, dynamicTaskId);
stmt.setString(3, entry.getKey());
+ stmt.setInt(4, tenantId);
stmt.addBatch();
}
stmt.executeBatch();
@@ -121,4 +122,5 @@ public class DynamicTaskPropDAOImpl implements DynamicTaskPropDAO {
TaskManagementDAOUtil.cleanupResources(stmt, null);
}
}
+
}
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/service/TaskManagementServiceImpl.java b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/service/TaskManagementServiceImpl.java
index 285456ce0a6..2b5a5215072 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/service/TaskManagementServiceImpl.java
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/service/TaskManagementServiceImpl.java
@@ -33,11 +33,14 @@ import io.entgra.device.mgt.core.task.mgt.core.util.TaskManagementUtil;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.ntask.common.TaskException;
import org.wso2.carbon.ntask.core.TaskInfo;
import org.wso2.carbon.ntask.core.TaskManager;
import org.wso2.carbon.ntask.core.service.TaskService;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -78,42 +81,43 @@ public class TaskManagementServiceImpl implements TaskManagementService {
@Override
public void createTask(DynamicTask dynamicTask) throws TaskManagementException {
- String taskId;
+ String nTaskName;
+ int dynamicTaskId;
+ int serverHashIdx;
+ int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
try {
// add into the dynamic task tables
TaskManagementDAOFactory.beginTransaction();
- int dynamicTaskId = dynamicTaskDAO.addTask(dynamicTask);
-
- Map taskProperties = dynamicTask.getProperties();
- dynamicTaskPropDAO.addTaskProperties(dynamicTaskId, taskProperties);
-
- // add into the ntask core
- taskId = TaskManagementUtil.generateTaskId(dynamicTaskId);
+ dynamicTaskId = dynamicTaskDAO.addTask(dynamicTask, tenantId);
+ dynamicTaskPropDAO.addTaskProperties(dynamicTaskId, dynamicTask.getProperties(), tenantId);
try {
- int serverHashIdx = TaskManagerDataHolder.getInstance().getHeartBeatService()
+ serverHashIdx = TaskManagerDataHolder.getInstance().getHeartBeatService()
.getServerCtxInfo().getLocalServerHashIdx();
- taskProperties.put(TaskMgtConstants.Task.LOCAL_HASH_INDEX, String.valueOf(serverHashIdx));
- taskProperties.put(TaskMgtConstants.Task.LOCAL_TASK_NAME, taskId);
+ nTaskName = TaskManagementUtil.generateNTaskName(dynamicTaskId, serverHashIdx);
} catch (HeartBeatManagementException e) {
String msg = "Unexpected exception when getting server hash index.";
log.error(msg, e);
throw new TaskManagementException(msg, e);
}
- if (!isTaskExists(taskId)) {
- TaskInfo.TriggerInfo triggerInfo = new TaskInfo.TriggerInfo();
- triggerInfo.setCronExpression(dynamicTask.getCronExpression());
- TaskInfo taskInfo = new TaskInfo(taskId, dynamicTask.getTaskClassName(), taskProperties, triggerInfo);
- taskManager.registerTask(taskInfo);
- taskManager.scheduleTask(taskId);
- if (!dynamicTask.isEnabled()) {
- taskManager.pauseTask(taskId);
- }
- } else {
- String msg = "Task '" + taskId + "' is already exists in the ntask core "
- + "Hence not creating another task for the same name.";
- log.error(msg);
+ if (isTaskExists(nTaskName)) {
+ String msg = "Task '" + nTaskName + "' is already exists in the ntask core. "
+ + "Hence removing existing task from nTask before adding new one.";
+ log.warn(msg);
+ taskManager.deleteTask(nTaskName);
+ }
+
+ // add into the ntask core
+ Map taskProperties = TaskManagementUtil
+ .populateNTaskProperties(dynamicTask, nTaskName, serverHashIdx);
+ TaskInfo.TriggerInfo triggerInfo = new TaskInfo.TriggerInfo();
+ triggerInfo.setCronExpression(dynamicTask.getCronExpression());
+ TaskInfo taskInfo = new TaskInfo(nTaskName, dynamicTask.getTaskClassName(), taskProperties, triggerInfo);
+ taskManager.registerTask(taskInfo);
+ taskManager.scheduleTask(nTaskName);
+ if (!dynamicTask.isEnabled()) {
+ taskManager.pauseTask(nTaskName);
}
TaskManagementDAOFactory.commitTransaction();
@@ -137,19 +141,20 @@ public class TaskManagementServiceImpl implements TaskManagementService {
}
@Override
- public void updateTask(int dynamicTaskId, DynamicTask dynamicTask) throws TaskManagementException
- , TaskNotFoundException {
+ public void updateTask(int dynamicTaskId, DynamicTask dynamicTask)
+ throws TaskManagementException, TaskNotFoundException {
+ int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
try {
//Update dynamic task table
TaskManagementDAOFactory.beginTransaction();
- DynamicTask existingTask = dynamicTaskDAO.getDynamicTaskById(dynamicTaskId);
+ DynamicTask existingTask = dynamicTaskDAO.getDynamicTask(dynamicTaskId, tenantId);
if (existingTask != null) {
existingTask.setEnabled(dynamicTask.isEnabled());
existingTask.setCronExpression(dynamicTask.getCronExpression());
- dynamicTaskDAO.updateDynamicTask(existingTask);
+ dynamicTaskDAO.updateDynamicTask(existingTask, tenantId);
if (!dynamicTask.getProperties().isEmpty()) {
- dynamicTaskPropDAO.updateDynamicTaskProps(dynamicTaskId, dynamicTask.getProperties());
+ dynamicTaskPropDAO.updateDynamicTaskProps(dynamicTaskId, dynamicTask.getProperties(), tenantId);
}
} else {
String msg = "Task '" + dynamicTaskId + "' is not exists in the dynamic task table.";
@@ -158,12 +163,14 @@ public class TaskManagementServiceImpl implements TaskManagementService {
}
// Update task in the ntask core
- String taskId = TaskManagementUtil.generateTaskId(existingTask.getDynamicTaskId());
- if (isTaskExists(taskId)) {
- TaskInfo taskInfo = taskManager.getTask(taskId);
- if (!dynamicTask.getProperties().isEmpty()) {
- taskInfo.setProperties(dynamicTask.getProperties());
- }
+ String nTaskName = TaskManagementUtil.generateNTaskName(existingTask.getDynamicTaskId());
+ if (isTaskExists(nTaskName)) {
+ TaskInfo taskInfo = taskManager.getTask(nTaskName);
+
+ Map taskProperties = TaskManagementUtil
+ .populateNTaskProperties(dynamicTask, nTaskName);
+ taskInfo.setProperties(taskProperties);
+
TaskInfo.TriggerInfo triggerInfo;
if (taskInfo.getTriggerInfo() == null) {
triggerInfo = new TaskInfo.TriggerInfo();
@@ -173,9 +180,9 @@ public class TaskManagementServiceImpl implements TaskManagementService {
triggerInfo.setCronExpression(dynamicTask.getCronExpression());
taskInfo.setTriggerInfo(triggerInfo);
taskManager.registerTask(taskInfo);
- taskManager.rescheduleTask(taskId);
+ taskManager.rescheduleTask(nTaskName);
} else {
- String msg = "Task '" + taskId + "' is not exists in the n task core "
+ String msg = "Task '" + nTaskName + "' is not exists in the n task core "
+ "Hence cannot update the task.";
log.error(msg);
}
@@ -200,16 +207,17 @@ public class TaskManagementServiceImpl implements TaskManagementService {
}
@Override
- public void toggleTask(int dynamicTaskId, boolean isEnabled) throws TaskManagementException
- , TaskNotFoundException {
+ public void toggleTask(int dynamicTaskId, boolean isEnabled)
+ throws TaskManagementException, TaskNotFoundException {
+ int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
try {
//update dynamic task table
TaskManagementDAOFactory.beginTransaction();
- DynamicTask existingTask = dynamicTaskDAO.getDynamicTaskById(dynamicTaskId);
+ DynamicTask existingTask = dynamicTaskDAO.getDynamicTask(dynamicTaskId, tenantId);
if (existingTask != null) {
existingTask.setEnabled(isEnabled);
- dynamicTaskDAO.updateDynamicTask(existingTask);
+ dynamicTaskDAO.updateDynamicTask(existingTask, tenantId);
} else {
String msg = "Task '" + dynamicTaskId + "' is not exists.";
log.error(msg);
@@ -217,15 +225,15 @@ public class TaskManagementServiceImpl implements TaskManagementService {
}
// Update task in the ntask core
- String taskId = TaskManagementUtil.generateTaskId(existingTask.getDynamicTaskId());
- if (isTaskExists(taskId)) {
+ String taskName = TaskManagementUtil.generateNTaskName(existingTask.getDynamicTaskId());
+ if (isTaskExists(taskName)) {
if (isEnabled) {
- taskManager.resumeTask(taskId);
+ taskManager.resumeTask(taskName);
} else {
- taskManager.pauseTask(taskId);
+ taskManager.pauseTask(taskName);
}
} else {
- String msg = "Task '" + taskId + "' is not exists in the ntask core "
+ String msg = "Task '" + taskName + "' is not exists in the ntask core "
+ "Hence cannot toggle the task in the ntask.";
log.error(msg);
}
@@ -251,22 +259,23 @@ public class TaskManagementServiceImpl implements TaskManagementService {
@Override
public void deleteTask(int dynamicTaskId) throws TaskManagementException, TaskNotFoundException {
// delete task from dynamic task table
+ int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
try {
TaskManagementDAOFactory.beginTransaction();
- DynamicTask existingTask = dynamicTaskDAO.getDynamicTaskById(dynamicTaskId);
+ DynamicTask existingTask = dynamicTaskDAO.getDynamicTask(dynamicTaskId, tenantId);
if (existingTask != null) {
- dynamicTaskDAO.deleteDynamicTask(dynamicTaskId);
+ dynamicTaskDAO.deleteDynamicTask(dynamicTaskId, tenantId);
} else {
String msg = "Task '" + dynamicTaskId + "' is not exists.";
log.error(msg);
throw new TaskNotFoundException(msg);
}
- String taskId = TaskManagementUtil.generateTaskId(existingTask.getDynamicTaskId());
- if (isTaskExists(taskId)) {
- taskManager.deleteTask(taskId);
+ String taskName = TaskManagementUtil.generateNTaskName(existingTask.getDynamicTaskId());
+ if (isTaskExists(taskName)) {
+ taskManager.deleteTask(taskName);
} else {
- String msg = "Task '" + taskId + "' is not exists in the ntask core "
+ String msg = "Task '" + taskName + "' is not exists in the ntask core "
+ "Hence cannot delete from the ntask core.";
log.error(msg);
}
@@ -292,22 +301,21 @@ public class TaskManagementServiceImpl implements TaskManagementService {
@Override
public List getAllDynamicTasks() throws TaskManagementException {
+ int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
List dynamicTasks;
try {
- if (log.isDebugEnabled()) {
- log.debug("Fetching the details of all dynamic tasks");
+ if (log.isTraceEnabled()) {
+ log.trace("Fetching the details of all dynamic tasks");
}
- TaskManagementDAOFactory.beginTransaction();
- dynamicTasks = dynamicTaskDAO.getAllDynamicTasks();
+ TaskManagementDAOFactory.openConnection();
+ dynamicTasks = dynamicTaskDAO.getAllDynamicTasks(tenantId);
if (dynamicTasks != null) {
for (DynamicTask dynamicTask : dynamicTasks) {
dynamicTask.setProperties(dynamicTaskPropDAO
- .getDynamicTaskProps(dynamicTask.getDynamicTaskId()));
+ .getDynamicTaskProps(dynamicTask.getDynamicTaskId(), tenantId));
}
}
- TaskManagementDAOFactory.commitTransaction();
} catch (TaskManagementDAOException e) {
- TaskManagementDAOFactory.rollbackTransaction();
String msg = "Error occurred while fetching all dynamic tasks";
log.error(msg, e);
throw new TaskManagementException(msg, e);
@@ -322,20 +330,62 @@ public class TaskManagementServiceImpl implements TaskManagementService {
}
@Override
- public DynamicTask getDynamicTaskById(int dynamicTaskId) throws TaskManagementException {
+ public Map> getDynamicTasksForAllTenants() throws TaskManagementException {
+ List dynamicTasks;
+ try {
+ if (log.isTraceEnabled()) {
+ log.trace("Fetching the details of dynamic tasks for all tenants");
+ }
+ TaskManagementDAOFactory.openConnection();
+ dynamicTasks = dynamicTaskDAO.getAllDynamicTasks();
+ if (dynamicTasks != null) {
+ for (DynamicTask dynamicTask : dynamicTasks) {
+ dynamicTask.setProperties(dynamicTaskPropDAO
+ .getDynamicTaskProps(dynamicTask.getDynamicTaskId(), dynamicTask.getTenantId()));
+ }
+ }
+ } catch (TaskManagementDAOException e) {
+ String msg = "Error occurred while fetching all dynamic tasks";
+ log.error(msg, e);
+ throw new TaskManagementException(msg, e);
+ } catch (TransactionManagementException e) {
+ String msg = "Failed to start/open transaction to get all dynamic tasks";
+ log.error(msg, e);
+ throw new TaskManagementException(msg, e);
+ } finally {
+ TaskManagementDAOFactory.closeConnection();
+ }
+ Map> tenantedDynamicTasks = new HashMap<>();
+ List dts;
+ if (dynamicTasks != null) {
+ for (DynamicTask dt : dynamicTasks) {
+ if (tenantedDynamicTasks.containsKey(dt.getTenantId())) {
+ dts = tenantedDynamicTasks.get(dt.getTenantId());
+ } else {
+ dts = new ArrayList<>();
+ }
+ dts.add(dt);
+ tenantedDynamicTasks.put(dt.getTenantId(), dts);
+ }
+ }
+ return tenantedDynamicTasks;
+ }
+
+ @Override
+ public DynamicTask getDynamicTask(int dynamicTaskId) throws TaskManagementException {
+ int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
DynamicTask dynamicTask;
try {
if (log.isDebugEnabled()) {
log.debug("Fetching the details of dynamic task '" + dynamicTaskId + "'");
}
- TaskManagementDAOFactory.beginTransaction();
- dynamicTask = dynamicTaskDAO.getDynamicTaskById(dynamicTaskId);
+ TaskManagementDAOFactory.openConnection();
+ dynamicTask = dynamicTaskDAO.getDynamicTask(dynamicTaskId, tenantId);
if (dynamicTask != null) {
- dynamicTask.setProperties(dynamicTaskPropDAO.getDynamicTaskProps(dynamicTask.getDynamicTaskId()));
+ dynamicTask.setProperties(dynamicTaskPropDAO.getDynamicTaskProps(dynamicTask.getDynamicTaskId(),
+ tenantId));
}
- TaskManagementDAOFactory.commitTransaction();
} catch (TaskManagementDAOException e) {
- TaskManagementDAOFactory.rollbackTransaction();
String msg = "Error occurred while fetching dynamic task '" + dynamicTaskId + "'";
log.error(msg, e);
throw new TaskManagementException(msg, e);
@@ -351,21 +401,21 @@ public class TaskManagementServiceImpl implements TaskManagementService {
@Override
public List getActiveDynamicTasks() throws TaskManagementException {
+ int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
List dynamicTasks;
try {
if (log.isDebugEnabled()) {
log.debug("Fetching the details of all active dynamic tasks");
}
- TaskManagementDAOFactory.beginTransaction();
- dynamicTasks = dynamicTaskDAO.getActiveDynamicTasks();
+ TaskManagementDAOFactory.openConnection();
+ dynamicTasks = dynamicTaskDAO.getActiveDynamicTasks(tenantId);
if (dynamicTasks != null) {
for (DynamicTask dynamicTask : dynamicTasks) {
- dynamicTask.setProperties(dynamicTaskPropDAO.getDynamicTaskProps(dynamicTask.getDynamicTaskId()));
+ dynamicTask.setProperties(dynamicTaskPropDAO.getDynamicTaskProps(dynamicTask.getDynamicTaskId(),
+ tenantId));
}
}
- TaskManagementDAOFactory.commitTransaction();
} catch (TaskManagementDAOException e) {
- TaskManagementDAOFactory.rollbackTransaction();
String msg = "Error occurred while fetching all active dynamic tasks";
log.error(msg, e);
throw new TaskManagementException(msg, e);
@@ -380,18 +430,19 @@ public class TaskManagementServiceImpl implements TaskManagementService {
}
// check whether task exist in the ntask core
- private boolean isTaskExists(String taskId) throws TaskManagementException, TaskException {
- if (StringUtils.isEmpty(taskId)) {
- String msg = "Task ID must not be null or empty.";
+ private boolean isTaskExists(String taskName) throws TaskManagementException, TaskException {
+ if (StringUtils.isEmpty(taskName)) {
+ String msg = "Task Name must not be null or empty.";
log.error(msg);
throw new TaskManagementException(msg);
}
List tasks = taskManager.getAllTasks();
for (TaskInfo t : tasks) {
- if (taskId.equals(t.getName())) {
+ if (taskName.equals(t.getName())) {
return true;
}
}
return false;
}
+
}
diff --git a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/util/TaskManagementUtil.java b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/util/TaskManagementUtil.java
index c060451a6bb..2a284f30219 100755
--- a/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/util/TaskManagementUtil.java
+++ b/components/task-mgt/task-manager/io.entgra.device.mgt.core.task.mgt.core/src/main/java/io/entgra/device/mgt/core/task/mgt/core/util/TaskManagementUtil.java
@@ -17,20 +17,21 @@
*/
package io.entgra.device.mgt.core.task.mgt.core.util;
-import com.google.gson.Gson;
import io.entgra.device.mgt.core.server.bootup.heartbeat.beacon.exception.HeartBeatManagementException;
+import io.entgra.device.mgt.core.task.mgt.common.bean.DynamicTask;
import io.entgra.device.mgt.core.task.mgt.common.constant.TaskMgtConstants;
import io.entgra.device.mgt.core.task.mgt.common.exception.TaskManagementException;
import io.entgra.device.mgt.core.task.mgt.core.internal.TaskManagerDataHolder;
-import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;
+import org.wso2.carbon.context.PrivilegedCarbonContext;
import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
+import java.util.HashMap;
import java.util.Map;
/**
@@ -55,11 +56,11 @@ public class TaskManagementUtil {
}
}
- public static String generateTaskId(int dynamicTaskId) throws TaskManagementException {
+ public static String generateNTaskName(int dynamicTaskId) throws TaskManagementException {
try {
int serverHashIdx = TaskManagerDataHolder.getInstance().getHeartBeatService()
.getServerCtxInfo().getLocalServerHashIdx();
- return generateTaskId(dynamicTaskId, serverHashIdx);
+ return generateNTaskName(dynamicTaskId, serverHashIdx);
} catch (HeartBeatManagementException e) {
String msg = "Failed to generate task id for a dynamic task " + dynamicTaskId;
log.error(msg, e);
@@ -67,18 +68,33 @@ public class TaskManagementUtil {
}
}
- public static String generateTaskId(int dynamicTaskId, int serverHashIdx) {
+ public static String generateNTaskName(int dynamicTaskId, int serverHashIdx) {
return TaskMgtConstants.Task.DYNAMIC_TASK_TYPE + TaskMgtConstants.Task.NAME_SEPARATOR + dynamicTaskId
+ TaskMgtConstants.Task.NAME_SEPARATOR + serverHashIdx;
}
- public static String generateTaskPropsMD5(Map taskProperties) {
- taskProperties.remove(TaskMgtConstants.Task.TENANT_ID_PROP);
- taskProperties.remove(TaskMgtConstants.Task.LOCAL_HASH_INDEX);
- taskProperties.remove(TaskMgtConstants.Task.LOCAL_TASK_NAME);
- Gson gson = new Gson();
- String json = gson.toJson(taskProperties);
- return DigestUtils.md5Hex(json);
+ public static Map populateNTaskProperties(DynamicTask dynamicTask,
+ String nTaskName) throws TaskManagementException {
+ try {
+ int serverHashIdx = TaskManagerDataHolder.getInstance().getHeartBeatService()
+ .getServerCtxInfo().getLocalServerHashIdx();
+ return populateNTaskProperties(dynamicTask, nTaskName, serverHashIdx);
+ } catch (HeartBeatManagementException e) {
+ String msg = "Failed to populate nTask properties a dynamic task " + dynamicTask.getDynamicTaskId();
+ log.error(msg, e);
+ throw new TaskManagementException(msg, e);
+ }
+ }
+
+ public static Map populateNTaskProperties(DynamicTask dynamicTask,
+ String nTaskName, int serverHashIdx) {
+ Map taskProperties = new HashMap<>();
+ taskProperties.put(TaskMgtConstants.Task.DYNAMIC_TASK_ID, String.valueOf(dynamicTask.getDynamicTaskId()));
+ taskProperties.put(TaskMgtConstants.Task.LOCAL_TASK_NAME, nTaskName);
+ taskProperties.put(TaskMgtConstants.Task.LOCAL_HASH_INDEX, String.valueOf(serverHashIdx));
+ taskProperties.put(TaskMgtConstants.Task.TENANT_ID_PROP,
+ String.valueOf(PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId()));
+ return taskProperties;
}
}
diff --git a/components/task-mgt/task-manager/pom.xml b/components/task-mgt/task-manager/pom.xml
index a42c74abeef..a74dafdd107 100755
--- a/components/task-mgt/task-manager/pom.xml
+++ b/components/task-mgt/task-manager/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
task-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/task-mgt/task-watcher/io.entgra.device.mgt.core.task.mgt.watcher/pom.xml b/components/task-mgt/task-watcher/io.entgra.device.mgt.core.task.mgt.watcher/pom.xml
index 5587e2987e5..07846711841 100755
--- a/components/task-mgt/task-watcher/io.entgra.device.mgt.core.task.mgt.watcher/pom.xml
+++ b/components/task-mgt/task-watcher/io.entgra.device.mgt.core.task.mgt.watcher/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
task-watcher
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/task-mgt/task-watcher/io.entgra.device.mgt.core.task.mgt.watcher/src/main/java/io/entgra/device/mgt/core/task/mgt/watcher/IoTSStartupHandler.java b/components/task-mgt/task-watcher/io.entgra.device.mgt.core.task.mgt.watcher/src/main/java/io/entgra/device/mgt/core/task/mgt/watcher/IoTSStartupHandler.java
index 716c3cabf91..5b1945e6868 100755
--- a/components/task-mgt/task-watcher/io.entgra.device.mgt.core.task.mgt.watcher/src/main/java/io/entgra/device/mgt/core/task/mgt/watcher/IoTSStartupHandler.java
+++ b/components/task-mgt/task-watcher/io.entgra.device.mgt.core.task.mgt.watcher/src/main/java/io/entgra/device/mgt/core/task/mgt/watcher/IoTSStartupHandler.java
@@ -36,7 +36,13 @@ import org.wso2.carbon.user.api.Tenant;
import org.wso2.carbon.user.api.UserStoreException;
import org.wso2.carbon.user.core.service.RealmService;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Timer;
+import java.util.TimerTask;
public class IoTSStartupHandler implements ServerStartupObserver {
private static final Log log = LogFactory.getLog(IoTSStartupHandler.class);
@@ -62,47 +68,38 @@ public class IoTSStartupHandler implements ServerStartupObserver {
private void compareTasks() {
if (log.isDebugEnabled()) {
- log.debug("Comparing Tasks from carbon nTask manager and entgra task manager");
+ log.debug("Comparing Tasks from carbon nTask manager and Entgra task manager.");
}
TaskService nTaskService = TaskWatcherDataHolder.getInstance().getnTaskService();
if (nTaskService == null) {
- String msg = "Unable to load TaskService from the carbon nTask core";
+ String msg = "Unable to load TaskService from the carbon nTask core.";
log.error(msg);
return;
}
try {
- List dynamicTasks = TaskWatcherDataHolder.getInstance().getTaskManagementService()
- .getAllDynamicTasks();
+ Map> tenantedDynamicTasks = TaskWatcherDataHolder.getInstance()
+ .getTaskManagementService().getDynamicTasksForAllTenants();
- scheduleMissingTasks(nTaskService, dynamicTasks);
- deleteObsoleteTasks(nTaskService, dynamicTasks);
+ scheduleMissingTasks(nTaskService, tenantedDynamicTasks);
+ deleteObsoleteTasks(nTaskService, tenantedDynamicTasks);
if (log.isDebugEnabled()) {
- log.debug("Task Comparison Completed and all tasks in current node are updated");
+ log.debug("Task Comparison Completed and all tasks in current node are updated.");
}
} catch (TaskException e) {
String msg = "Error occurred while accessing carbon nTask manager.";
log.error(msg, e);
} catch (TaskManagementException e) {
- String msg = "Error occurred while retrieving all active tasks from entgra task manager";
+ String msg = "Error occurred while retrieving all active tasks from Entgra task manager.";
log.error(msg, e);
}
}
- private static void scheduleMissingTasks(TaskService nTaskService, List dynamicTasks)
+ private static void scheduleMissingTasks(TaskService nTaskService, Map> tenantedDynamicTasks)
throws TaskException, TaskManagementException {
- Map> tenantedDynamicTasks = new HashMap<>();
- List dts;
- for (DynamicTask dt : dynamicTasks) {
- if (tenantedDynamicTasks.containsKey(dt.getTenantId())) {
- dts = tenantedDynamicTasks.get(dt.getTenantId());
- } else {
- dts = new ArrayList<>();
- }
- dts.add(dt);
- tenantedDynamicTasks.put(dt.getTenantId(), dts);
- }
+
TaskManager taskManager;
for (Integer tenantId : tenantedDynamicTasks.keySet()) {
if (tenantId == -1) {
@@ -119,36 +116,56 @@ public class IoTSStartupHandler implements ServerStartupObserver {
List tasks = taskManager.getAllTasks();
// add or update task into nTask core
for (DynamicTask dt : tenantedDynamicTasks.get(tenantId)) {
- String generatedTaskId = TaskManagementUtil.generateTaskId(dt.getDynamicTaskId());
+ int serverHashIdx;
+ try {
+ serverHashIdx = TaskWatcherDataHolder.getInstance().getHeartBeatService()
+ .getServerCtxInfo().getLocalServerHashIdx();
+ } catch (HeartBeatManagementException e) {
+ String msg = "Failed to get server hash index for dynamic task " + dt.getDynamicTaskId();
+ log.error(msg, e);
+ throw new TaskManagementException(msg, e);
+ }
+
+ String nTaskName = TaskManagementUtil.generateNTaskName(dt.getDynamicTaskId(), serverHashIdx);
boolean isExist = false;
for (TaskInfo taskInfo : tasks) {
- if (taskInfo.getName().equals(generatedTaskId)) {
- isExist = true;
+ if (taskInfo.getName().equals(nTaskName)) {
+
TaskInfo.TriggerInfo triggerInfo = taskInfo.getTriggerInfo();
- String dynamicTaskPropMD5 = TaskManagementUtil.generateTaskPropsMD5(dt.getProperties());
- String existingTaskPropMD5 = TaskManagementUtil.generateTaskPropsMD5(taskInfo.getProperties());
- if (!triggerInfo.getCronExpression().equals(dt.getCronExpression())
- || !dynamicTaskPropMD5.equals(existingTaskPropMD5)) {
+ if (taskInfo.getProperties() == null) {
+ String msg = "Task properties not found for task " + nTaskName
+ + ". Therefore deleting the nTask schedule.";
+ log.warn(msg);
+ taskManager.deleteTask(nTaskName);
+ break;
+ }
+
+ isExist = true;
+ if (!triggerInfo.getCronExpression().equals(dt.getCronExpression())) {
triggerInfo.setCronExpression(dt.getCronExpression());
taskInfo.setTriggerInfo(triggerInfo);
- taskInfo.setProperties(populateTaskProperties(tenantId, generatedTaskId, dt.getProperties()));
+ taskInfo.setProperties(TaskManagementUtil
+ .populateNTaskProperties(dt, taskInfo.getName(), serverHashIdx));
taskManager.registerTask(taskInfo);
- taskManager.rescheduleTask(generatedTaskId);
+ taskManager.rescheduleTask(nTaskName);
if (log.isDebugEnabled()) {
- log.debug("Task - '" + generatedTaskId + "' updated according to the dynamic task table");
+ log.debug("Task - '" + nTaskName
+ + "' updated according to the dynamic task table.");
}
}
if (dt.isEnabled()
- && taskManager.getTaskState(generatedTaskId) == TaskManager.TaskState.PAUSED) {
- taskManager.resumeTask(generatedTaskId);
+ && taskManager.getTaskState(nTaskName) == TaskManager.TaskState.PAUSED) {
+ taskManager.resumeTask(nTaskName);
if (log.isDebugEnabled()) {
- log.debug("Task - '" + generatedTaskId + "' enabled according to the dynamic task table");
+ log.debug("Task - '" + nTaskName
+ + "' enabled according to the dynamic task table.");
}
} else if (!dt.isEnabled()
- && taskManager.getTaskState(generatedTaskId) != TaskManager.TaskState.PAUSED) {
- taskManager.pauseTask(generatedTaskId);
+ && taskManager.getTaskState(nTaskName) != TaskManager.TaskState.PAUSED) {
+ taskManager.pauseTask(nTaskName);
if (log.isDebugEnabled()) {
- log.debug("Task - '" + generatedTaskId + "' disabled according to the dynamic task table");
+ log.debug("Task - '" + nTaskName
+ + "' disabled according to the dynamic task table.");
}
}
break;
@@ -157,12 +174,12 @@ public class IoTSStartupHandler implements ServerStartupObserver {
if (!isExist) {
TaskInfo.TriggerInfo triggerInfo = new TaskInfo.TriggerInfo();
triggerInfo.setCronExpression(dt.getCronExpression());
- TaskInfo taskInfo = new TaskInfo(generatedTaskId, dt.getTaskClassName(),
- populateTaskProperties(tenantId, generatedTaskId, dt.getProperties()), triggerInfo);
+ TaskInfo taskInfo = new TaskInfo(nTaskName, dt.getTaskClassName(), TaskManagementUtil
+ .populateNTaskProperties(dt, nTaskName, serverHashIdx), triggerInfo);
taskManager.registerTask(taskInfo);
- taskManager.scheduleTask(generatedTaskId);
+ taskManager.scheduleTask(nTaskName);
if (log.isDebugEnabled()) {
- log.debug("New task -'" + generatedTaskId + "' created according to the dynamic task table");
+ log.debug("New task -'" + nTaskName + "' created according to the dynamic task table.");
}
}
}
@@ -170,24 +187,8 @@ public class IoTSStartupHandler implements ServerStartupObserver {
}
}
- private static Map populateTaskProperties(int tenantId, String generatedTaskId,
- Map taskProperties)
- throws TaskManagementException {
- try {
- int serverHashIdx = TaskWatcherDataHolder.getInstance().getHeartBeatService()
- .getServerCtxInfo().getLocalServerHashIdx();
- taskProperties.put(TaskMgtConstants.Task.LOCAL_HASH_INDEX, String.valueOf(serverHashIdx));
- taskProperties.put(TaskMgtConstants.Task.LOCAL_TASK_NAME, generatedTaskId);
- taskProperties.put(TaskMgtConstants.Task.TENANT_ID_PROP, String.valueOf(tenantId));
- return taskProperties;
- } catch (HeartBeatManagementException e) {
- String msg = "Unexpected exception when getting server hash index.";
- log.error(msg, e);
- throw new TaskManagementException(msg, e);
- }
- }
-
- private static void deleteObsoleteTasks(TaskService nTaskService, List dynamicTasks)
+ private static void deleteObsoleteTasks(TaskService nTaskService,
+ Map> tenantedDynamicTasks)
throws TaskManagementException, TaskException {
List tenants = new ArrayList<>();
@@ -217,6 +218,13 @@ public class IoTSStartupHandler implements ServerStartupObserver {
}
for (Tenant tenant : tenants) {
+ if (tenantedDynamicTasks.get(tenant.getId()) == null) {
+ if (log.isTraceEnabled()) {
+ log.trace("Dynamic tasks not running for tenant: [" + tenant.getId() + "] "
+ + tenant.getDomain());
+ }
+ continue;
+ }
PrivilegedCarbonContext.startTenantFlow();
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(tenant.getId(), true);
if (!nTaskService.getRegisteredTaskTypes().contains(TaskMgtConstants.Task.DYNAMIC_TASK_TYPE)) {
@@ -227,10 +235,10 @@ public class IoTSStartupHandler implements ServerStartupObserver {
// Remove deleted items from the nTask core
for (TaskInfo taskInfo : tasks) {
boolean isExist = false;
- for (DynamicTask dt : dynamicTasks) {
+ for (DynamicTask dt : tenantedDynamicTasks.get(tenant.getId())) {
for (int hid : hashIds) {
if (tenant.getId() == dt.getTenantId() &&
- taskInfo.getName().equals(TaskManagementUtil.generateTaskId(dt.getDynamicTaskId(), hid))) {
+ taskInfo.getName().equals(TaskManagementUtil.generateNTaskName(dt.getDynamicTaskId(), hid))) {
isExist = true;
break;
}
diff --git a/components/task-mgt/task-watcher/pom.xml b/components/task-mgt/task-watcher/pom.xml
index 963641ebe5b..f075b06b9ca 100755
--- a/components/task-mgt/task-watcher/pom.xml
+++ b/components/task-mgt/task-watcher/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
task-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.common/pom.xml b/components/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.common/pom.xml
index cac5e20889c..b3673971329 100644
--- a/components/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.common/pom.xml
+++ b/components/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.common/pom.xml
@@ -20,7 +20,7 @@
tenant-mgt
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.core/pom.xml b/components/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.core/pom.xml
index d0665df982e..beb1a890e0d 100644
--- a/components/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.core/pom.xml
+++ b/components/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.core/pom.xml
@@ -20,7 +20,7 @@
tenant-mgt
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/tenant-mgt/pom.xml b/components/tenant-mgt/pom.xml
index 73e3006b3a6..b5addd2794a 100644
--- a/components/tenant-mgt/pom.xml
+++ b/components/tenant-mgt/pom.xml
@@ -20,7 +20,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/transport-mgt/email-sender/io.entgra.device.mgt.core.transport.mgt.email.sender.core/pom.xml b/components/transport-mgt/email-sender/io.entgra.device.mgt.core.transport.mgt.email.sender.core/pom.xml
index 59da6fc5827..e8de74b3c5a 100644
--- a/components/transport-mgt/email-sender/io.entgra.device.mgt.core.transport.mgt.email.sender.core/pom.xml
+++ b/components/transport-mgt/email-sender/io.entgra.device.mgt.core.transport.mgt.email.sender.core/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
email-sender
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/email-sender/pom.xml b/components/transport-mgt/email-sender/pom.xml
index 045b7fc8944..b8e4ebb5f6a 100644
--- a/components/transport-mgt/email-sender/pom.xml
+++ b/components/transport-mgt/email-sender/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
transport-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/pom.xml b/components/transport-mgt/pom.xml
index e27928bcad3..cf83a5a86d2 100644
--- a/components/transport-mgt/pom.xml
+++ b/components/transport-mgt/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.api/pom.xml b/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.api/pom.xml
index 114f191b42c..c9800175967 100644
--- a/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.api/pom.xml
+++ b/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.api/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
sms-handler
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.common/pom.xml b/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.common/pom.xml
index b3d412ac0df..bdeaf8c537b 100644
--- a/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.common/pom.xml
+++ b/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.common/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
sms-handler
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.core/pom.xml b/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.core/pom.xml
index e0f519db339..a48bccdf5e1 100644
--- a/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.core/pom.xml
+++ b/components/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.core/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
sms-handler
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/sms-handler/pom.xml b/components/transport-mgt/sms-handler/pom.xml
index 3bdfdf8d072..10c48a75ecb 100644
--- a/components/transport-mgt/sms-handler/pom.xml
+++ b/components/transport-mgt/sms-handler/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
transport-mgt
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/pom.xml b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/pom.xml
index 5a44f12d158..19690b5363b 100644
--- a/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/pom.xml
+++ b/components/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor/pom.xml
@@ -21,7 +21,7 @@
ui-request-interceptor
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
4.0.0
diff --git a/components/ui-request-interceptor/pom.xml b/components/ui-request-interceptor/pom.xml
index 70afb85317b..0c6244c963e 100644
--- a/components/ui-request-interceptor/pom.xml
+++ b/components/ui-request-interceptor/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/components/webapp-authenticator-framework/io.entgra.device.mgt.core.webapp.authenticator.framework/pom.xml b/components/webapp-authenticator-framework/io.entgra.device.mgt.core.webapp.authenticator.framework/pom.xml
index 91566b67f87..35b07df4066 100644
--- a/components/webapp-authenticator-framework/io.entgra.device.mgt.core.webapp.authenticator.framework/pom.xml
+++ b/components/webapp-authenticator-framework/io.entgra.device.mgt.core.webapp.authenticator.framework/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
webapp-authenticator-framework
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/components/webapp-authenticator-framework/pom.xml b/components/webapp-authenticator-framework/pom.xml
index 55a5a379477..b2dbd49b654 100644
--- a/components/webapp-authenticator-framework/pom.xml
+++ b/components/webapp-authenticator-framework/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api.feature/pom.xml b/features/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api.feature/pom.xml
index b5f659ef6f8..5ee2379a0c1 100644
--- a/features/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api.feature/pom.xml
+++ b/features/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
grafana-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.server.feature/pom.xml b/features/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.server.feature/pom.xml
index 3b147dfb41f..84c8edb65c1 100644
--- a/features/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.server.feature/pom.xml
+++ b/features/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.server.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
grafana-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/analytics-mgt/grafana-mgt/pom.xml b/features/analytics-mgt/grafana-mgt/pom.xml
index 6ec765b1fbf..f8dffca5f72 100644
--- a/features/analytics-mgt/grafana-mgt/pom.xml
+++ b/features/analytics-mgt/grafana-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
analytics-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/analytics-mgt/pom.xml b/features/analytics-mgt/pom.xml
index 67d07adfd57..28c032bfc24 100644
--- a/features/analytics-mgt/pom.xml
+++ b/features/analytics-mgt/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension.feature/pom.xml b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension.feature/pom.xml
index 149df8e6ba1..68397e5fd15 100644
--- a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension.feature/pom.xml
+++ b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension.feature/pom.xml
@@ -20,7 +20,7 @@
io.entgra.device.mgt.core
apimgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.feature/pom.xml b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.feature/pom.xml
index 80f1de004d2..34162d786e1 100644
--- a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.feature/pom.xml
+++ b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.feature/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
apimgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api.feature/pom.xml b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api.feature/pom.xml
index 3fb77250fcd..7e97d37e80f 100644
--- a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api.feature/pom.xml
+++ b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
apimgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.feature/pom.xml b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.feature/pom.xml
index dbbf514d29b..2afa1b66154 100644
--- a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.feature/pom.xml
+++ b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.feature/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
apimgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher.feature/pom.xml b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher.feature/pom.xml
index 44fbd11cbe4..e3f3d3f28b1 100644
--- a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher.feature/pom.xml
+++ b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher.feature/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
apimgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml
index 8629097a0d1..e442524a65f 100644
--- a/features/apimgt-extensions/pom.xml
+++ b/features/apimgt-extensions/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/application-mgt/io.entgra.device.mgt.core.application.mgt.server.feature/pom.xml b/features/application-mgt/io.entgra.device.mgt.core.application.mgt.server.feature/pom.xml
index 4386c0d1022..6615e46d12b 100644
--- a/features/application-mgt/io.entgra.device.mgt.core.application.mgt.server.feature/pom.xml
+++ b/features/application-mgt/io.entgra.device.mgt.core.application.mgt.server.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
application-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/application-mgt/pom.xml b/features/application-mgt/pom.xml
index 10875e5695a..cc19155edff 100644
--- a/features/application-mgt/pom.xml
+++ b/features/application-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/cea-mgt-feature/io.entgra.device.mgt.core.cea.mgt.admin.api.feature/pom.xml b/features/cea-mgt-feature/io.entgra.device.mgt.core.cea.mgt.admin.api.feature/pom.xml
index 6fea61c90dd..ec1828cb6c2 100644
--- a/features/cea-mgt-feature/io.entgra.device.mgt.core.cea.mgt.admin.api.feature/pom.xml
+++ b/features/cea-mgt-feature/io.entgra.device.mgt.core.cea.mgt.admin.api.feature/pom.xml
@@ -18,13 +18,11 @@
~
-->
-
+
io.entgra.device.mgt.core
cea-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/cea-mgt-feature/io.entgra.device.mgt.core.cea.mgt.server.feature/pom.xml b/features/cea-mgt-feature/io.entgra.device.mgt.core.cea.mgt.server.feature/pom.xml
index c75f8807428..fa0608b7606 100644
--- a/features/cea-mgt-feature/io.entgra.device.mgt.core.cea.mgt.server.feature/pom.xml
+++ b/features/cea-mgt-feature/io.entgra.device.mgt.core.cea.mgt.server.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
cea-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/cea-mgt-feature/pom.xml b/features/cea-mgt-feature/pom.xml
index 93fce41bcaa..5641cfe43cf 100644
--- a/features/cea-mgt-feature/pom.xml
+++ b/features/cea-mgt-feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.api.feature/pom.xml b/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.api.feature/pom.xml
index 830486fede1..6343a00c207 100644
--- a/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.api.feature/pom.xml
+++ b/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
certificate-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.cert.admin.api.feature/pom.xml b/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.cert.admin.api.feature/pom.xml
index 2daf077b92c..e94b775e2e4 100644
--- a/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.cert.admin.api.feature/pom.xml
+++ b/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.cert.admin.api.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
certificate-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.server.feature/pom.xml b/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.server.feature/pom.xml
index d6c387eeb81..44ff923f265 100644
--- a/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.server.feature/pom.xml
+++ b/features/certificate-mgt/io.entgra.device.mgt.core.certificate.mgt.server.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
certificate-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/pom.xml b/features/certificate-mgt/pom.xml
index 45b91de3199..1cd8e2f9a53 100644
--- a/features/certificate-mgt/pom.xml
+++ b/features/certificate-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.defaultrole.manager.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.defaultrole.manager.feature/pom.xml
index c10f02c48d8..8cc3dc09331 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.defaultrole.manager.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.defaultrole.manager.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api.feature/pom.xml
index 11c43c203a3..028e2d72493 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.api.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
4.0.0
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.feature/pom.xml
index d43ddb34c4c..4486e06cdd1 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.organization.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.type.deployer.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.type.deployer.feature/pom.xml
index bdb32cc76b3..ff8bd881f42 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.type.deployer.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.device.type.deployer.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.logger.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.logger.feature/pom.xml
index 6be67813700..e27b0bb6d90 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.logger.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.logger.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
index 49cb616b231..238d0841a59 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
index ab42b82f9de..07b6f9226b0 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
index a0ab85641f3..003ee60333e 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
index 875cc881225..e978938c148 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.stateengine.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.stateengine.feature/pom.xml
index a1eba3b3816..fa391ff69dc 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.stateengine.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.stateengine.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.userstore.role.mapper/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.userstore.role.mapper/pom.xml
index 7cfdf72a683..b15e6b8148b 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.userstore.role.mapper/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.core.device.mgt.extensions.userstore.role.mapper/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-extensions-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/pom.xml b/features/device-mgt-extensions/pom.xml
index 6da74f22269..4be5bb83157 100644
--- a/features/device-mgt-extensions/pom.xml
+++ b/features/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.api.feature/pom.xml b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.api.feature/pom.xml
index 71b943828c6..b9d04a4bb4d 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.api.feature/pom.xml
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/pom.xml b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/pom.xml
index 36fc420fe7f..4d7e9af4385 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/pom.xml
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql
index ff71e3be1b2..d9efaf48fce 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql
@@ -782,9 +782,9 @@ CREATE TABLE IF NOT EXISTS DM_EXT_PERMISSION_MAPPING (
CREATE TABLE IF NOT EXISTS DYNAMIC_TASK (
DYNAMIC_TASK_ID INTEGER AUTO_INCREMENT NOT NULL,
NAME VARCHAR(300) DEFAULT NULL ,
- CRON VARCHAR(8000) DEFAULT NULL,
+ CRON VARCHAR(100) DEFAULT NULL,
IS_ENABLED BOOLEAN NOT NULL DEFAULT FALSE,
- TASK_CLASS_NAME VARCHAR(8000) DEFAULT NULL,
+ TASK_CLASS_NAME VARCHAR(1000) DEFAULT NULL,
TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (DYNAMIC_TASK_ID)
);
@@ -792,8 +792,8 @@ CREATE TABLE IF NOT EXISTS DYNAMIC_TASK (
CREATE TABLE IF NOT EXISTS DYNAMIC_TASK_PROPERTIES (
DYNAMIC_TASK_ID INTEGER NOT NULL,
PROPERTY_NAME VARCHAR(100) DEFAULT 0,
- PROPERTY_VALUE VARCHAR(100) DEFAULT NULL,
- TENANT_ID VARCHAR(100),
+ PROPERTY_VALUE VARCHAR(8000) DEFAULT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (DYNAMIC_TASK_ID, PROPERTY_NAME, TENANT_ID),
CONSTRAINT FK_DYNAMIC_TASK_TASK_PROPERTIES FOREIGN KEY (DYNAMIC_TASK_ID) REFERENCES
DYNAMIC_TASK (DYNAMIC_TASK_ID) ON DELETE CASCADE ON UPDATE CASCADE
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql
index 318dfd2a763..cee731c0342 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql
@@ -852,10 +852,10 @@ CREATE TABLE DM_GEOFENCE_EVENT_MAPPING (
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[DYNAMIC_TASK]') AND TYPE IN (N'U'))
CREATE TABLE DYNAMIC_TASK (
DYNAMIC_TASK_ID INTEGER IDENTITY(1,1) NOT NULL,
- NAME VARCHAR(255) DEFAULT NULL ,
- CRON VARCHAR(8000) DEFAULT NULL,
+ NAME VARCHAR(300) DEFAULT NULL ,
+ CRON VARCHAR(100) DEFAULT NULL,
IS_ENABLED BIT NOT NULL DEFAULT 0,
- TASK_CLASS_NAME VARCHAR(8000) DEFAULT NULL,
+ TASK_CLASS_NAME VARCHAR(1000) DEFAULT NULL,
TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (DYNAMIC_TASK_ID)
);
@@ -864,8 +864,8 @@ IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[D
CREATE TABLE DYNAMIC_TASK_PROPERTIES (
DYNAMIC_TASK_ID INTEGER NOT NULL,
PROPERTY_NAME VARCHAR(100) DEFAULT 0,
- PROPERTY_VALUE VARCHAR(100) DEFAULT NULL,
- TENANT_ID VARCHAR(100),
+ PROPERTY_VALUE VARCHAR(8000) DEFAULT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (DYNAMIC_TASK_ID, PROPERTY_NAME, TENANT_ID),
CONSTRAINT FK_DYNAMIC_TASK_TASK_PROPERTIES FOREIGN KEY (DYNAMIC_TASK_ID) REFERENCES
DYNAMIC_TASK (DYNAMIC_TASK_ID) ON DELETE CASCADE ON UPDATE CASCADE
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql
index b0de3dc5901..7ddaf22af60 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql
@@ -853,9 +853,9 @@ CREATE TABLE IF NOT EXISTS DM_EXT_PERMISSION_MAPPING (
CREATE TABLE IF NOT EXISTS DYNAMIC_TASK (
DYNAMIC_TASK_ID INTEGER AUTO_INCREMENT NOT NULL,
NAME VARCHAR(300) DEFAULT NULL ,
- CRON VARCHAR(8000) DEFAULT NULL,
+ CRON VARCHAR(100) DEFAULT NULL,
IS_ENABLED BOOLEAN NOT NULL DEFAULT FALSE,
- TASK_CLASS_NAME VARCHAR(8000) DEFAULT NULL,
+ TASK_CLASS_NAME VARCHAR(1000) DEFAULT NULL,
TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (DYNAMIC_TASK_ID)
) ENGINE=InnoDB;
@@ -863,8 +863,8 @@ CREATE TABLE IF NOT EXISTS DYNAMIC_TASK (
CREATE TABLE IF NOT EXISTS DYNAMIC_TASK_PROPERTIES (
DYNAMIC_TASK_ID INTEGER NOT NULL,
PROPERTY_NAME VARCHAR(100) DEFAULT 0,
- PROPERTY_VALUE VARCHAR(100) DEFAULT NULL,
- TENANT_ID VARCHAR(100),
+ PROPERTY_VALUE TEXT DEFAULT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (DYNAMIC_TASK_ID, PROPERTY_NAME, TENANT_ID),
CONSTRAINT FK_DYNAMIC_TASK_TASK_PROPERTIES FOREIGN KEY (DYNAMIC_TASK_ID) REFERENCES
DYNAMIC_TASK (DYNAMIC_TASK_ID) ON DELETE CASCADE ON UPDATE CASCADE
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql
index d632be52aa8..6e99bb43ee2 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql
@@ -1127,9 +1127,9 @@ CREATE TABLE DM_GEOFENCE (
CREATE TABLE IF NOT EXISTS DYNAMIC_TASK (
DYNAMIC_TASK_ID NUMBER(10) NOT NULL,
NAME VARCHAR2(300) DEFAULT NULL ,
- CRON VARCHAR2(8000) DEFAULT NULL,
+ CRON VARCHAR2(100) DEFAULT NULL,
IS_ENABLED BOOLEAN NOT NULL DEFAULT FALSE,
- TASK_CLASS_NAME VARCHAR2(8000) DEFAULT NULL,
+ TASK_CLASS_NAME VARCHAR2(1000) DEFAULT NULL,
TENANT_ID INTEGER DEFAULT 0,
CONSTRAINT PK_DYNAMIC_TASK PRIMARY KEY (DYNAMIC_TASK_ID)
) ENGINE=InnoDB;
@@ -1137,8 +1137,8 @@ CREATE TABLE IF NOT EXISTS DYNAMIC_TASK (
CREATE TABLE IF NOT EXISTS DYNAMIC_TASK_PROPERTIES (
DYNAMIC_TASK_ID INTEGER NOT NULL,
PROPERTY_NAME VARCHAR2(100) DEFAULT 0,
- PROPERTY_VALUE VARCHAR2(100) DEFAULT NULL,
- TENANT_ID VARCHAR2(100),
+ PROPERTY_VALUE VARCHAR2(8000) DEFAULT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
CONSTRAINT PK_DYNAMIC_TASK_PROPERTIES PRIMARY KEY (DYNAMIC_TASK_ID, PROPERTY_NAME, TENANT_ID),
CONSTRAINT FK_DYNAMIC_TASK_TASK_PROPERTIES FOREIGN KEY (DYNAMIC_TASK_ID) REFERENCES
DYNAMIC_TASK (DYNAMIC_TASK_ID) ON DELETE CASCADE ON UPDATE CASCADE
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql
index bc22e6db633..5d5c7446e6a 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql
@@ -772,9 +772,9 @@ CREATE TABLE IF NOT EXISTS DM_GEOFENCE (
CREATE TABLE IF NOT EXISTS DYNAMIC_TASK (
DYNAMIC_TASK_ID INTEGER DEFAULT NEXTVAL ('DYNAMIC_TASK_seq') NOT NULL,
NAME VARCHAR(300) DEFAULT NULL ,
- CRON VARCHAR(8000) DEFAULT NULL,
+ CRON VARCHAR(100) DEFAULT NULL,
IS_ENABLED BOOLEAN NOT NULL DEFAULT FALSE,
- TASK_CLASS_NAME VARCHAR(8000) DEFAULT NULL,
+ TASK_CLASS_NAME VARCHAR(1000) DEFAULT NULL,
TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (DYNAMIC_TASK_ID)
) ENGINE=InnoDB;
@@ -782,8 +782,8 @@ CREATE TABLE IF NOT EXISTS DYNAMIC_TASK (
CREATE TABLE IF NOT EXISTS DYNAMIC_TASK_PROPERTIES (
DYNAMIC_TASK_ID INTEGER NOT NULL,
PROPERTY_NAME VARCHAR(100) DEFAULT 0,
- PROPERTY_VALUE VARCHAR(100) DEFAULT NULL,
- TENANT_ID VARCHAR(100),
+ PROPERTY_VALUE TEXT DEFAULT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (DYNAMIC_TASK_ID, PROPERTY_NAME, TENANT_ID),
CONSTRAINT FK_DYNAMIC_TASK_TASK_PROPERTIES FOREIGN KEY (DYNAMIC_TASK_ID) REFERENCES
DYNAMIC_TASK (DYNAMIC_TASK_ID) ON DELETE CASCADE ON UPDATE CASCADE
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.extensions.feature/pom.xml b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.extensions.feature/pom.xml
index 2f1850ca89e..bca456b02e2 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.extensions.feature/pom.xml
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.extensions.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.feature/pom.xml b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.feature/pom.xml
index 409fe2223f1..ab66829646b 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.feature/pom.xml
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.server.feature/pom.xml b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.server.feature/pom.xml
index 33404d4119b..76c430b7868 100644
--- a/features/device-mgt/io.entgra.device.mgt.core.device.mgt.server.feature/pom.xml
+++ b/features/device-mgt/io.entgra.device.mgt.core.device.mgt.server.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
device-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml
index fc265fab423..9ba5f836862 100644
--- a/features/device-mgt/pom.xml
+++ b/features/device-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/heartbeat-management/io.entgra.device.mgt.core.server.heart.beat.feature/pom.xml b/features/heartbeat-management/io.entgra.device.mgt.core.server.heart.beat.feature/pom.xml
index 24f851209fd..c2b39e1872b 100644
--- a/features/heartbeat-management/io.entgra.device.mgt.core.server.heart.beat.feature/pom.xml
+++ b/features/heartbeat-management/io.entgra.device.mgt.core.server.heart.beat.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
heart-beat-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/heartbeat-management/pom.xml b/features/heartbeat-management/pom.xml
index 52208d947fa..52bf889e4cf 100644
--- a/features/heartbeat-management/pom.xml
+++ b/features/heartbeat-management/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/jwt-client/io.entgra.device.mgt.core.identity.jwt.client.extension.feature/pom.xml b/features/jwt-client/io.entgra.device.mgt.core.identity.jwt.client.extension.feature/pom.xml
index 2db8c2a2f2e..2d172748d81 100644
--- a/features/jwt-client/io.entgra.device.mgt.core.identity.jwt.client.extension.feature/pom.xml
+++ b/features/jwt-client/io.entgra.device.mgt.core.identity.jwt.client.extension.feature/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
jwt-client-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/jwt-client/pom.xml b/features/jwt-client/pom.xml
index 9ec000c096a..d63af936d70 100644
--- a/features/jwt-client/pom.xml
+++ b/features/jwt-client/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/logger/io.entgra.device.mgt.core.notification.logger.feature/pom.xml b/features/logger/io.entgra.device.mgt.core.notification.logger.feature/pom.xml
index 70bea2ba1dd..0ae0cb9ac2a 100644
--- a/features/logger/io.entgra.device.mgt.core.notification.logger.feature/pom.xml
+++ b/features/logger/io.entgra.device.mgt.core.notification.logger.feature/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
logger-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/logger/pom.xml b/features/logger/pom.xml
index a084424445c..ddf8e91e8d2 100644
--- a/features/logger/pom.xml
+++ b/features/logger/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/operation-template-mgt-plugin-feature/io.entgra.device.mgt.core.operation.template.feature/pom.xml b/features/operation-template-mgt-plugin-feature/io.entgra.device.mgt.core.operation.template.feature/pom.xml
index 6906eb042f2..3d232765c77 100644
--- a/features/operation-template-mgt-plugin-feature/io.entgra.device.mgt.core.operation.template.feature/pom.xml
+++ b/features/operation-template-mgt-plugin-feature/io.entgra.device.mgt.core.operation.template.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
operation-template-mgt-plugin-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/operation-template-mgt-plugin-feature/pom.xml b/features/operation-template-mgt-plugin-feature/pom.xml
index 4bc9c9ab6e8..3a29bf350c1 100644
--- a/features/operation-template-mgt-plugin-feature/pom.xml
+++ b/features/operation-template-mgt-plugin-feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/policy-mgt/io.entgra.device.mgt.core.policy.mgt.server.feature/pom.xml b/features/policy-mgt/io.entgra.device.mgt.core.policy.mgt.server.feature/pom.xml
index 5d2b251126c..65602bcff42 100644
--- a/features/policy-mgt/io.entgra.device.mgt.core.policy.mgt.server.feature/pom.xml
+++ b/features/policy-mgt/io.entgra.device.mgt.core.policy.mgt.server.feature/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
policy-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/policy-mgt/pom.xml b/features/policy-mgt/pom.xml
index 2d751c66444..b1b05d45c9c 100644
--- a/features/policy-mgt/pom.xml
+++ b/features/policy-mgt/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/subtype-mgt/io.entgra.device.mgt.core.subtype.mgt.feature/pom.xml b/features/subtype-mgt/io.entgra.device.mgt.core.subtype.mgt.feature/pom.xml
index d6c4b8894b0..d19239d1b83 100644
--- a/features/subtype-mgt/io.entgra.device.mgt.core.subtype.mgt.feature/pom.xml
+++ b/features/subtype-mgt/io.entgra.device.mgt.core.subtype.mgt.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../../pom.xml
diff --git a/features/subtype-mgt/pom.xml b/features/subtype-mgt/pom.xml
index 8e2beb2d65e..7c8b555c8aa 100644
--- a/features/subtype-mgt/pom.xml
+++ b/features/subtype-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/task-mgt/io.entgra.device.mgt.core.task.mgt.feature/pom.xml b/features/task-mgt/io.entgra.device.mgt.core.task.mgt.feature/pom.xml
index f25fa7b7bac..12cb222542e 100755
--- a/features/task-mgt/io.entgra.device.mgt.core.task.mgt.feature/pom.xml
+++ b/features/task-mgt/io.entgra.device.mgt.core.task.mgt.feature/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../../pom.xml
diff --git a/features/task-mgt/pom.xml b/features/task-mgt/pom.xml
index 0a6401dd4ed..16b841f8dc0 100755
--- a/features/task-mgt/pom.xml
+++ b/features/task-mgt/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.server.feature/pom.xml b/features/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.server.feature/pom.xml
index 8ddb3480488..8ec47e9bbb3 100644
--- a/features/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.server.feature/pom.xml
+++ b/features/tenant-mgt/io.entgra.device.mgt.core.tenant.mgt.server.feature/pom.xml
@@ -20,7 +20,7 @@
tenant-mgt-feature
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/tenant-mgt/pom.xml b/features/tenant-mgt/pom.xml
index d34902afa09..28e985f8324 100644
--- a/features/tenant-mgt/pom.xml
+++ b/features/tenant-mgt/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/transport-mgt/email-sender/io.entgra.device.mgt.core.email.sender.feature/pom.xml b/features/transport-mgt/email-sender/io.entgra.device.mgt.core.email.sender.feature/pom.xml
index a411db2c52c..4ac63d5493e 100644
--- a/features/transport-mgt/email-sender/io.entgra.device.mgt.core.email.sender.feature/pom.xml
+++ b/features/transport-mgt/email-sender/io.entgra.device.mgt.core.email.sender.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
email-sender-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/transport-mgt/email-sender/pom.xml b/features/transport-mgt/email-sender/pom.xml
index 0b89dc59c7d..f58f655efc2 100644
--- a/features/transport-mgt/email-sender/pom.xml
+++ b/features/transport-mgt/email-sender/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
transport-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/transport-mgt/pom.xml b/features/transport-mgt/pom.xml
index d5b2168e61b..cf5f83d5c3c 100644
--- a/features/transport-mgt/pom.xml
+++ b/features/transport-mgt/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.api.feature/pom.xml b/features/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.api.feature/pom.xml
index 241b45c78f3..c6204f96ebe 100644
--- a/features/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.api.feature/pom.xml
+++ b/features/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.api.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
sms-handler-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.server.feature/pom.xml b/features/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.server.feature/pom.xml
index 904cd374af8..950f6bccd35 100644
--- a/features/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.server.feature/pom.xml
+++ b/features/transport-mgt/sms-handler/io.entgra.device.mgt.core.transport.mgt.sms.handler.server.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
sms-handler-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/transport-mgt/sms-handler/pom.xml b/features/transport-mgt/sms-handler/pom.xml
index 3d98b52859a..52c2807727f 100644
--- a/features/transport-mgt/sms-handler/pom.xml
+++ b/features/transport-mgt/sms-handler/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
transport-mgt-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor.feature/pom.xml b/features/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor.feature/pom.xml
index 43550a3381d..ac3a9b3cf92 100644
--- a/features/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor.feature/pom.xml
+++ b/features/ui-request-interceptor/io.entgra.device.mgt.core.ui.request.interceptor.feature/pom.xml
@@ -21,7 +21,7 @@
ui-request-interceptor-feature
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
4.0.0
diff --git a/features/ui-request-interceptor/pom.xml b/features/ui-request-interceptor/pom.xml
index f8b1dbb5379..0628bc0b09d 100644
--- a/features/ui-request-interceptor/pom.xml
+++ b/features/ui-request-interceptor/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/features/webapp-authenticator-framework/io.entgra.device.mgt.core.webapp.authenticator.framework.server.feature/pom.xml b/features/webapp-authenticator-framework/io.entgra.device.mgt.core.webapp.authenticator.framework.server.feature/pom.xml
index f48a871a7b3..6929a135aa7 100644
--- a/features/webapp-authenticator-framework/io.entgra.device.mgt.core.webapp.authenticator.framework.server.feature/pom.xml
+++ b/features/webapp-authenticator-framework/io.entgra.device.mgt.core.webapp.authenticator.framework.server.feature/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
webapp-authenticator-framework-feature
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../pom.xml
diff --git a/features/webapp-authenticator-framework/pom.xml b/features/webapp-authenticator-framework/pom.xml
index 1de93df005c..f9b3f7dc690 100644
--- a/features/webapp-authenticator-framework/pom.xml
+++ b/features/webapp-authenticator-framework/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
../../pom.xml
diff --git a/pom.xml b/pom.xml
index 85a67355249..0f3c78a5588 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
pom
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
WSO2 Carbon - Device Management - Parent
https://entgra.io
WSO2 Connected Device Manager Components
@@ -875,6 +875,13 @@
jaxb-impl
2.3.1
+
+ org.wso2.orbit.javax.xml.bind
+ jaxb-api
+ 2.3.1.wso2v1
+ compile
+
+
org.apache.axis2.transport
axis2-transport-mail
@@ -2077,7 +2084,7 @@
1.2.11-wso2v25
- 5.0.40-SNAPSHOT
+ 5.0.41-SNAPSHOT
4.9.2