@Override public boolean isValid(final SchedTask task, final ConstraintValidatorContext context) { boolean isValid = true; if (task.getCronExpression() != null) { try { new CronExpression(task.getCronExpression()); } catch (ParseException e) { LOG.error("Invalid cron expression '" + task.getCronExpression() + "'", e); isValid = false; context.disableDefaultConstraintViolation(); context.buildConstraintViolationWithTemplate( getTemplate(EntityViolationType.InvalidSchedTask, "Invalid cron expression")). addPropertyNode("cronExpression").addConstraintViolation(); } } return isValid; } }
JobNamer.getJobKey(task).getName(), job, task.getCronExpression(), startAt, jobMap);
private void fill(final SchedTaskTO schedTaskTO, final SchedTask schedTask) { schedTaskTO.setName(schedTask.getName()); schedTaskTO.setDescription(schedTask.getDescription()); schedTaskTO.setStart(schedTask.getStartAt()); schedTaskTO.setCronExpression(schedTask.getCronExpression()); schedTaskTO.setActive(schedTask.isActive()); schedTaskTO.setLastExec(schedTaskTO.getStart()); String triggerName = JobNamer.getTriggerName(JobNamer.getJobKey(schedTask).getName()); try { Trigger trigger = scheduler.getScheduler().getTrigger(new TriggerKey(triggerName, Scheduler.DEFAULT_GROUP)); if (trigger != null) { schedTaskTO.setLastExec(trigger.getPreviousFireTime()); schedTaskTO.setNextExec(trigger.getNextFireTime()); } } catch (SchedulerException e) { LOG.warn("While trying to get to " + triggerName, e); } if (schedTaskTO instanceof ProvisioningTaskTO && schedTask instanceof ProvisioningTask) { ProvisioningTaskTO provisioningTaskTO = (ProvisioningTaskTO) schedTaskTO; ProvisioningTask provisioningTask = (ProvisioningTask) schedTask; provisioningTaskTO.setResource(provisioningTask.getResource().getKey()); provisioningTaskTO.getActions().addAll( provisioningTask.getActions().stream().map(Entity::getKey).collect(Collectors.toList())); provisioningTaskTO.setPerformCreate(provisioningTask.isPerformCreate()); provisioningTaskTO.setPerformUpdate(provisioningTask.isPerformUpdate()); provisioningTaskTO.setPerformDelete(provisioningTask.isPerformDelete()); provisioningTaskTO.setSyncStatus(provisioningTask.isSyncStatus()); } }