private void registerPurgingTasks(String scriptFilePath) throws DeploymentException {
   File deploymentFileData = new File(scriptFilePath);
   int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
   log.info(
       "Deploying purging task : " + deploymentFileData.getName() + " for tenant : " + tenantId);
   try {
     AnalyticsDataPurgingConfiguration purgingConfiguration =
         getAnalyticsDataPurgingConfiguration(deploymentFileData);
     if (purgingConfiguration != null) {
       if (purgingConfiguration.getPurgingIncludeTables() != null) {
         TaskManager taskManager =
             AnalyticsServiceHolder.getTaskService()
                 .getTaskManager(Constants.ANALYTICS_DATA_PURGING);
         for (AnalyticsDataPurgingIncludeTable analyticsDataPurgingIncludeTable :
             purgingConfiguration.getPurgingIncludeTables()) {
           if (analyticsDataPurgingIncludeTable.getValue() != null
               && !analyticsDataPurgingIncludeTable.getValue().isEmpty()) {
             TaskInfo dataPurgingTask =
                 createDataPurgingTask(
                     analyticsDataPurgingIncludeTable.getValue(),
                     purgingConfiguration.getCronExpression(),
                     purgingConfiguration.getRetentionDays());
             taskManager.registerTask(dataPurgingTask);
             taskManager.rescheduleTask(dataPurgingTask.getName());
           }
         }
       }
     }
   } catch (TaskException e) {
     log.error(
         "Unable to get task manager instance for ANALYTICS_DATA_PURGING:" + e.getMessage(), e);
   }
 }
 private void deletePurgingTasks(String scriptFilePath) {
   File deploymentFileData = new File(scriptFilePath);
   int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
   log.info(
       "Undeploying purging task : " + deploymentFileData.getName() + " for tenant : " + tenantId);
   try {
     AnalyticsDataPurgingConfiguration purgingConfiguration =
         getAnalyticsDataPurgingConfiguration(deploymentFileData);
     if (purgingConfiguration != null) {
       if (purgingConfiguration.getPurgingIncludeTables() != null) {
         TaskManager taskManager =
             AnalyticsServiceHolder.getTaskService()
                 .getTaskManager(Constants.ANALYTICS_DATA_PURGING);
         for (AnalyticsDataPurgingIncludeTable analyticsDataPurgingIncludeTable :
             purgingConfiguration.getPurgingIncludeTables()) {
           if (analyticsDataPurgingIncludeTable.getValue() != null
               && !analyticsDataPurgingIncludeTable.getValue().isEmpty()) {
             taskManager.deleteTask(
                 getDataPurgingTaskName(analyticsDataPurgingIncludeTable.getValue()));
           }
         }
       }
     }
   } catch (TaskException e) {
     log.error(
         "Unable to get task manager instance for ANALYTICS_DATA_PURGING:" + e.getMessage(), e);
   }
 }
 @SuppressWarnings({"rawtypes", "unchecked"})
 private void loadHazelcast() {
   BundleContext ctx = FrameworkUtil.getBundle(AnalyticsServiceHolder.class).getBundleContext();
   ServiceReference ref = ctx.getServiceReference(HazelcastInstance.class);
   if (ref != null) {
     AnalyticsServiceHolder.setHazelcastInstance((HazelcastInstance) ctx.getService(ref));
   }
 }
 protected void activate(ComponentContext ctx) {
   if (log.isDebugEnabled()) {
     log.debug("Starting AnalyticsDataServiceComponent#activate");
   }
   BundleContext bundleContext = ctx.getBundleContext();
   try {
     AnalyticsDataServiceConfiguration config = this.loadAnalyticsDataServiceConfig();
     bundleContext.registerService(
         AnalyticsDataService.class, new AnalyticsDataServiceImpl(config), null);
     this.loadHazelcast();
     AnalyticsClusterManager clusterManager = new AnalyticsClusterManagerImpl();
     bundleContext.registerService(AnalyticsClusterManager.class, clusterManager, null);
     AnalyticsServiceHolder.setAnalyticsClusterManager(clusterManager);
     if (log.isDebugEnabled()) {
       log.debug("Finished AnalyticsDataServiceComponent#activate");
     }
   } catch (AnalyticsException e) {
     log.error("Error in activating analytics data service: " + e.getMessage(), e);
   }
 }