/** @see javax.swing.tree.TreeModel#getChildCount(java.lang.Object) */ public int getChildCount(Object parent) { if (parent instanceof IProject) { if (activeOnly()) { return CurrentProject.getTaskList().getActiveSubTasks(null, CurrentDate.get()).size(); } else return CurrentProject.getTaskList().getTopLevelTasks().size(); } ITask t = (ITask) parent; if (activeOnly()) return CurrentProject.getTaskList().getActiveSubTasks(t.getID(), CurrentDate.get()).size(); else return t.getSubTasks().size(); }
/** @see javax.swing.tree.TreeModel#getChild(java.lang.Object, int) */ public Object getChild(Object parent, int index) { if (parent instanceof IProject) if (activeOnly()) return CurrentProject.getTaskList() .getActiveSubTasks(null, CurrentDate.get()) .toArray()[index]; else return CurrentProject.getTaskList().getTopLevelTasks().toArray()[index]; ITask t = (ITask) parent; if (activeOnly()) return CurrentProject.getTaskList() .getActiveSubTasks(t.getID(), CurrentDate.get()) .toArray()[index]; else return t.getSubTasks().toArray()[index]; }
/* (non-Javadoc) * @see org.rascalmpl.tasks.ITaskRegistry#produce(org.rascalmpl.interpreter.IRascalMonitor, org.rascalmpl.tasks.ITransaction, Type, IValue) */ @Override public boolean produce( IRascalMonitor monitor, ITransaction<Type, IValue, IValue> tr, Type key, IValue name) { ITask<Type, IValue, IValue> producer = null; lock.lock(); try { producer = getProducer(key, name); } finally { lock.unlock(); } if (producer == null) throw new ImplementationError("No registered fact producer for " + key.toString()); return producer.produce(monitor, tr, key, name); }
public void run() { LOGGER.info("Running tasks"); /* * while (true) { Task task = getTask(); IDataPlugin plugin = * task.getPlugin(); Settings settings = task.getSettings(); * plugin.doJob(_dataEngine, _environment, settings); */ TaskInfo taskInfo = null; for (ITask task : _tasks) { try { taskInfo = ((Task) task).getInfo(); LOGGER.info("task: " + taskInfo.getName()); ISettings settings = task.getSettings(); taskInfo.setStatus(TaskInfo.REALIZATION); // changing status taskInfo.save(); _dbManager.commit(); // // processing task // ILocalPlugin plugin = task.getPlugin(); LOGGER.debug("plugin: " + plugin + " id: " + plugin.getInfo().getId()); IResult result = plugin.doJob(getDataEngine(), _environment, settings); // // saving result of its execution // task.setResult(result); taskInfo.save(); _dbManager.commit(); // // if task was not processed correctly // exception is caught and shoul be handled here // } catch (Exception e) { LOGGER.fatal("TASK PROCESSING ERROR", e); try { taskInfo.setStatus(TaskInfo.EXCEPTION); taskInfo.save(); } catch (Exception ex) { LOGGER.fatal("", ex); } _dbManager.commit(); } } }
/** @see net.sf.memoranda.ui.treetable.ITreeTableModel#getValueAt(java.lang.Object, int) */ public Object getValueAt(Object node, int column) { if (node instanceof IProject) return null; ITask t = (ITask) node; switch (column) { case 0: return ""; case 1: return t; case 2: return t.getStartDate().getDate(); case 3: if (t.getEndDate() == null) return null; else return t.getEndDate().getDate(); case 4: return getPriorityString(t.getPriority()); case 5: return getStatusString(t.getStatus(CurrentDate.get())); case 6: // return new Integer(t.getProgress()); return t; case TaskTable.TASK_ID: return t.getID(); case TaskTable.TASK: return t; } return ""; }
/** @see salomon.engine.task.ITaskManager#addTask(salomon.platform.task.ITask) */ public void addTask(ITask task) throws PlatformException { try { task.getInfo().save(); _dbManager.commit(); } catch (Exception e) { _dbManager.rollback(); LOGGER.fatal("", e); throw new PlatformException(e.getLocalizedMessage()); } _tasks.add(task); }
public Object getChild(Object parent, int index) { Collection c = null; if (parent instanceof IProject) { if (activeOnly()) c = CurrentProject.getTaskList().getActiveSubTasks(null, CurrentDate.get()); else c = CurrentProject.getTaskList().getTopLevelTasks(); } else { ITask t = (ITask) parent; if (activeOnly()) c = CurrentProject.getTaskList().getActiveSubTasks(t.getID(), CurrentDate.get()); else c = t.getSubTasks(); } Object array[] = c.toArray(); Arrays.sort(array, comparator); if (opposite) { return array[array.length - index - 1]; } return array[index]; }
private synchronized boolean checkAndSubmitNextTask(Set<String> closedShardIds) { boolean submittedNewTask = false; if ((future == null) || future.isCancelled() || future.isDone()) { if ((future != null) && future.isDone()) { try { TaskResult result = future.get(); if (result.getException() != null) { LOG.error( "Caught exception running " + currentTask.getTaskType() + " task: ", result.getException()); } } catch (InterruptedException | ExecutionException e) { LOG.warn(currentTask.getTaskType() + " task encountered exception.", e); } } currentTask = new MetricsCollectingTaskDecorator( new ShardSyncTask( kinesisProxy, leaseManager, initialPositionInStream, cleanupLeasesUponShardCompletion, shardSyncIdleTimeMillis), metricsFactory); future = executorService.submit(currentTask); submittedNewTask = true; if (LOG.isDebugEnabled()) { LOG.debug("Submitted new " + currentTask.getTaskType() + " task."); } } else { if (LOG.isDebugEnabled()) { LOG.debug( "Previous " + currentTask.getTaskType() + " task still pending. Not submitting new task."); } } return submittedNewTask; }
/** * Removes given tasks. * * @see salomon.engine.task.ITaskManager#removeTask(salomon.engine.task.ITask) */ public boolean removeTask(ITask task) throws PlatformException { SQLDelete delete = new SQLDelete(TaskInfo.TABLE_NAME); IProject currProject = _managerEngine.getProjectManager().getCurrentProject(); delete.addCondition("project_id =", currProject.getInfo().getId()); delete.addCondition("task_id = ", task.getInfo().getId()); boolean retVal = false; int deletedRows = 0; try { deletedRows = _dbManager.delete(delete); _dbManager.commit(); // removing from list _tasks.remove(task); retVal = (deletedRows > 0); } catch (SQLException e) { _dbManager.rollback(); LOGGER.fatal("", e); throw new PlatformException(e.getLocalizedMessage()); } return retVal; }
/* (non-Javadoc) * @see org.rascalmpl.tasks.ITaskRegistry#registerProducer(org.rascalmpl.tasks.ITask) */ @Override public void registerProducer(ITask<Type, IValue, IValue> producer) { lock.lock(); try { for (Type key : producer.getKeys()) { if (key.isTuple()) { Type key1 = key.getFieldType(0); Type key2 = key.getFieldType(1); Map<Type, ITask<Type, IValue, IValue>> map = keyedProducers.get(key1); if (map == null) map = new HashMap<Type, ITask<Type, IValue, IValue>>(); map.put(key2, producer); keyedProducers.put(key1, map); } else { producers.put(key, producer); } } } finally { lock.unlock(); } }
/* (non-Javadoc) * @see org.rascalmpl.tasks.ITaskRegistry#unregisterProducer(org.rascalmpl.tasks.ITask) */ @Override public void unregisterProducer(ITask<Type, IValue, IValue> producer) { lock.lock(); try { for (Type key : producer.getKeys()) { if (key.isTuple()) { Type key1 = key.getFieldType(0); Map<Type, ITask<Type, IValue, IValue>> map = keyedProducers.get(key1); if (map != null) { for (Map.Entry<Type, ITask<Type, IValue, IValue>> entry : map.entrySet()) { if (entry.getValue().equals(producer)) map.remove(entry.getKey()); } if (map.isEmpty()) keyedProducers.remove(key1); else keyedProducers.put(key1, map); } } else { if (producers.get(key) == producer) producers.remove(key); } } } finally { lock.unlock(); } }
public int compare(Object o1, Object o2) { if (sorting_column == -1) return 0; if ((o1 instanceof ITask) == false) return 0; if ((o2 instanceof ITask) == false) return 0; ITask task1 = (ITask) o1; ITask task2 = (ITask) o2; // based on TaskTableModel.columnNames switch (sorting_column) { case 1: return task1.getText().compareTo(task2.getText()); case 2: return task1.getStartDate().getDate().compareTo(task2.getStartDate().getDate()); case 3: return task1.getEndDate().getDate().compareTo(task2.getEndDate().getDate()); case 0: // task priority, same as 4 case 4: return task1.getPriority() - task2.getPriority(); case 5: return task1.getStatus(CurrentDate.get()) - task2.getStatus(CurrentDate.get()); case 6: return task1.getProgress() - task2.getProgress(); } return 0; }