/** * Retrieve a list of scheduled tasks currently configured in nexus. * * @param allTasks If true, will return all tasks, even non-exposed tasks. */ @Override @GET @ResourceMethodSignature(output = ScheduledServiceListResourceResponse.class) public Object get(Context context, Request request, Response response, Variant variant) throws ResourceException { boolean allTasks = isAllTasks(request); Map<String, List<ScheduledTask<?>>> tasksMap = getNexusScheduler().getAllTasks(); ScheduledServiceListResourceResponse result = new ScheduledServiceListResourceResponse(); for (String key : tasksMap.keySet()) { List<ScheduledTask<?>> tasks = tasksMap.get(key); for (ScheduledTask<?> task : tasks) { boolean isExposed = true; SchedulerTask<?> st = task.getSchedulerTask(); if (st != null && st instanceof NexusTask<?>) { isExposed = ((NexusTask<?>) st).isExposed(); } if (allTasks || isExposed) { if (getLogger().isDebugEnabled()) { getLogger() .debug("Building task '" + task.getName() + "' of type '" + task.getType() + "'."); } ScheduledServiceListResource item = new ScheduledServiceListResource(); item.setResourceURI(createChildReference(request, this, task.getId()).toString()); item.setLastRunResult(getLastRunResult(task)); item.setId(task.getId()); item.setName(task.getName()); item.setStatus(task.getTaskState().toString()); item.setReadableStatus(getReadableState(task.getTaskState())); item.setTypeId(task.getType()); ScheduledTaskDescriptor descriptor = getNexusConfiguration().getScheduledTaskDescriptor(task.getType()); if (descriptor != null) { item.setTypeName(descriptor.getName()); } item.setCreated(task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString()); item.setLastRunTime(task.getLastRun() == null ? "n/a" : task.getLastRun().toString()); final Date nextRunTime = getNextRunTime(task); item.setNextRunTime(nextRunTime == null ? "n/a" : nextRunTime.toString()); if (task.getScheduledAt() != null) { item.setCreatedInMillis(task.getScheduledAt().getTime()); } if (task.getLastRun() != null) { item.setLastRunTimeInMillis(task.getLastRun().getTime()); } if (nextRunTime != null) { item.setNextRunTimeInMillis(nextRunTime.getTime()); } item.setSchedule(getScheduleShortName(task.getSchedule())); item.setEnabled(task.isEnabled()); result.addData(item); } } } return result; }