/** @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];
 }
Пример #3
0
 /* (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);
 }
Пример #4
0
 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 "";
 }
Пример #6
0
 /** @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;
  }
Пример #9
0
 /**
  * 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;
 }
Пример #10
0
 /* (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();
   }
 }
Пример #11
0
 /* (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;
        }