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 31f3ee6fbb..c86b9b207e 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 d785dc4985..e59e9abc44 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 957065ac02..0d134dae6c 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 c4591f4e67..6604c333c9 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 1b67f931d7..2527b4a26d 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 8075021a33..592b1ed792 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 1581c4dbfc..05e9c54049 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 b0f5410d28..69a7bc2541 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 42209a881a..0cb9ffd8f9 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 31e52840c3..244bd8c942 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 d3faeba0b7..a4593e6811 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 5fd353e02d..93e3e0289d 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 43e10f2ed6..0f898f0df6 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 522dd8c4b4..567e1f8883 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 21d7cb87e6..d62f719a14 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 7df876a94d..53cea397b0 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 2ddf33f65c..1f5c49fb81 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 861d1396ad..799eea1203 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 69f956e638..051c66e720 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 67938483a0..8c9d1b2346 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 671dfdf84f..e2ec105081 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 40774c0486..2d3b8e85ca 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 d0e495c5ec..23b7a2c082 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 fde5124a37..bb6cf9eabc 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 582e766c04..ffc6777ef1 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 8d9fc5a86c..f7e6018ac9 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 c623d45b07..d3ebc2fd55 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 7b7bfab5ab..0164f1703e 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 9fa160fe27..86a56d5549 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 4579ad4781..8029b28952 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 7c03218501..b3c6db4459 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 750ef6696f..3efe44aef8 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 9b534ced81..db013ea71b 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 13f3859a47..c0e88b8373 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 cfc669c767..699bf81370 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 9a4b2590be..6b801d1fe7 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 e384d3449d..7bdee363d5 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 084585676b..4c4ab54bf0 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 bfbd665d49..3994a32c05 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 432af7ff77..50da8c0bc1 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 55a141b9ad..efbd192641 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 dbebff85d6..df5d58e168 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 3ec106543e..14d15f7c65 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 94673c84d3..f32f725e26 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 ea912a9611..5794e51ab8 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 18db134545..83ccec27cb 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 0000000000..6f2638a266 --- /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 dee4e83d6b..e034d657c7 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 0a87897426..2f7cfec4cc 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 69818565ae..993b002523 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 2f728aa833..0c3039b552 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 98a95e4d41..cf1cee1e21 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 32c9ed3ac2..08f158a14d 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 1cc4838d97..999ce4cc3c 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 d6a5bb2545..d75a83e7b6 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 0cf012c990..b6fd06d8ff 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 b69e386773..fa3265289d 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 1df01c4983..2d8e3b66c5 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 57154985f5..5cf14e5ea8 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 240633038a..c3d37de986 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 3f2b125f1b..47764bdbfc 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 351b21d537..c46f035c50 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 9dcac705be..b48518e515 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 ec7cf1efe5..30d75ecf34 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 86db883873..47d2fe8529 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 8b266cd85f..975cafc901 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 a1229e28a4..566aaee6c0 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 24944a3b39..74a8b39962 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 08b4beb4f7..671b40923b 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 50d199b424..d09e7410d9 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 eabf786232..f2edc213d0 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 f41c8f8e49..7eaf4ffb6e 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 5a81e13870..685c67cc29 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 30776534a2..ad12e88935 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 19064258e8..dcabcda941 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 c2e5ec68bb..ade454924c 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 4487b32b4e..acf333455f 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 6401547684..eeda552280 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 7f8b9e1131..8b29c1d722 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 e9da87df6b..69c82689ef 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 546604bef3..ba27202abc 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 39ae440365..9ed56e0d47 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 420d94660e..777003a7bd 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 e6864e3943..7ee5c761ff 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 157795aa5a..1ef473e4d1 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 6efecd6a97..f4048ac905 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 60fa409d64..e4de14b47b 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 da28d6e40c..ac374a77f7 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 fd9ab1c8e4..fe830736a9 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 b79ef7718b..3ebebda810 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 00a24b380b..266a25d121 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 5fb2773598..30526524a7 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 1dbcb2e1c3..1e9ff562cf 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 2ce2aac257..f56e40b647 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 fce8bdc688..adf6351260 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 c2eb7bb037..6791c0f881 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 c60383a29c..d30eddcd04 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 87f5d80c9b..e4794b126e 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 f6ebe690c0..8d05b8586d 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 437105d4e0..f1f39df1b7 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 03bf590308..0f2a80f939 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 15af0229f5..946727e504 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 6d8f24178f..caf31d200d 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 17b743ed33..f0b861c909 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 316b3e5347..2f3d785212 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 30511e75bb..50c25c2982 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 4245b11877..9a8a5af862 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 1e40f4c990..18ebe836d6 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 d9a8f02d09..0b499f30e1 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 310aacfd33..62286e40b9 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 7532f6bfa3..7775b05fcd 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 6c2cc9c3d3..04ed5ee3e9 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 71c7667165..492d35162c 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 0864633471..f6e60da0e1 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 b1ea05f445..29285f6a54 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 e5458b6a06..0a6e33379e 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 54154ecbd1..968f73d0ec 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 15eba10bfa..5c28cc8ee6 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 759de555b4..7493e9a025 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 7a448da0fa..1ef3fd5a91 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 e332342814..6eccde8d84 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 31c256b73c..843b5c9189 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 d26406e1b3..8b084bf04e 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 285456ce0a..2b5a521507 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 c060451a6b..2a284f3021 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 a42c74abee..a74dafdd10 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 5587e2987e..0784671184 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 716c3cabf9..5b1945e686 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 963641ebe5..f075b06b9c 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 cac5e20889..b367397132 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 d0665df982..beb1a890e0 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 73e3006b3a..b5addd2794 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 59da6fc582..e8de74b3c5 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 045b7fc894..b8e4ebb5f6 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 e27928bcad..cf83a5a86d 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 114f191b42..c980017596 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 b3d412ac0d..bdeaf8c537 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 e0f519db33..a48bccdf5e 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 3bdfdf8d07..10c48a75ec 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 5a44f12d15..19690b5363 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 70afb85317..0c6244c963 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 91566b67f8..35b07df406 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 55a5a37947..b2dbd49b65 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 b5f659ef6f..5ee2379a0c 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 3b147dfb41..84c8edb65c 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 6ec765b1fb..f8dffca5f7 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 67d07adfd5..28c032bfc2 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 149df8e6ba..68397e5fd1 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 80f1de004d..34162d786e 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 3fb77250fc..7e97d37e80 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 dbbf514d29..2afa1b6615 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 44fbd11cbe..e3f3d3f28b 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 8629097a0d..e442524a65 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 4386c0d102..6615e46d12 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 10875e5695..cc19155edf 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 6fea61c90d..ec1828cb6c 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 c75f880742..fa0608b760 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 93fce41bca..5641cfe43c 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 830486fede..6343a00c20 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 2daf077b92..e94b775e2e 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 d6c387eeb8..44ff923f26 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 45b91de319..1cd8e2f9a5 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 c10f02c48d..8cc3dc0933 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 11c43c203a..028e2d7249 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 d43ddb34c4..4486e06cdd 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 bdb32cc76b..ff8bd881f4 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 6be6781370..e27b0bb6d9 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 49cb616b23..238d0841a5 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 ab42b82f9d..07b6f9226b 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 a0ab85641f..003ee60333 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 875cc88122..e978938c14 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 a1eba3b381..fa391ff69d 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 7cfdf72a68..b15e6b8148 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 6da74f2226..4be5bb8315 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 71b943828c..b9d04a4bb4 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 36fc420fe7..4d7e9af438 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 ff71e3be1b..d9efaf48fc 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 318dfd2a76..cee731c034 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 b0de3dc590..7ddaf22af6 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 d632be52aa..6e99bb43ee 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 bc22e6db63..5d5c7446e6 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 2f1850ca89..bca456b02e 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 409fe2223f..ab66829646 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 33404d4119..76c430b786 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 fc265fab42..9ba5f83686 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 24f851209f..c2b39e1872 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 52208d947f..52bf889e4c 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 2db8c2a2f2..2d172748d8 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 9ec000c096..d63af936d7 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 70bea2ba1d..0ae0cb9ac2 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 a084424445..ddf8e91e8d 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 6906eb042f..3d232765c7 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 4bc9c9ab6e..3a29bf350c 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 5d2b251126..65602bcff4 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 2d751c6644..b1b05d45c9 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 d6c4b8894b..d19239d1b8 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 8e2beb2d65..7c8b555c8a 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 f25fa7b7ba..12cb222542 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 0a6401dd4e..16b841f8dc 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 8ddb348048..8ec47e9bbb 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 d34902afa0..28e985f832 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 a411db2c52..4ac63d5493 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 0b89dc59c7..f58f655efc 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 d5b2168e61..cf5f83d5c3 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 241b45c78f..c6204f96eb 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 904cd374af..950f6bccd3 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 3d98b52859..52c2807727 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 43550a3381..ac3a9b3cf9 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 f8b1dbb537..0628bc0b09 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 f48a871a7b..6929a135aa 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 1de93df005..f9b3f7dc69 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 85a6735524..0f3c78a558 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