Esempio n. 1
0
  @PostConstruct
  public void init() {
    // make sure it has tx manager as it runs as background thread - no request scope available
    if (!((JbpmServicesPersistenceManagerImpl) pm).hasTransactionManager()) {
      ((JbpmServicesPersistenceManagerImpl) pm)
          .setTransactionManager(new JbpmJTATransactionManager());
    }

    long now = System.currentTimeMillis();
    List<DeadlineSummaryImpl> resultList =
        (List<DeadlineSummaryImpl>) pm.queryInTransaction("UnescalatedStartDeadlines");
    for (DeadlineSummaryImpl summary : resultList) {
      long delay = summary.getDate().getTime() - now;
      schedule(summary.getTaskId(), summary.getDeadlineId(), delay, DeadlineType.START);
    }

    resultList = (List<DeadlineSummaryImpl>) pm.queryInTransaction("UnescalatedEndDeadlines");
    for (DeadlineSummaryImpl summary : resultList) {
      long delay = summary.getDate().getTime() - now;
      schedule(summary.getTaskId(), summary.getDeadlineId(), delay, DeadlineType.END);
    }
  }