コード例 #1
0
  /*
   * Синхронизация проектов с аплановской системой ведения проектов
   * По адресу OQurl находится список проектов вместе с сотрудниками
   * в виде xml (файл синхронизации)
   *
   * <project id="" name="" description="" customer="" ending="" status="7-архив" pm="CN=Somebody Dmitry/CN=Users/DC=aplana/DC=com" hc="CN=Zaitsev Dmitry/CN=Users/DC=aplana/DC=com" >
   *     <workgroup>
   *         <user>Ivanov Ivan</user>
   *         <user>Smirnov S***n</user>
   *         <user>Sidorov Igor</user>
   *     </workgroup>
   * </project>
   */
  @Transactional
  public void sync() {
    trace.setLength(0);
    try {
      trace.append("Начало синхронизации\n");
      projectDAO.setTrace(trace);
      // получим список веток project из xml файла
      NodeList nodes = getOQasNodeList();
      trace
          .append("В файле синхронизации найдено: ")
          .append(nodes.getLength())
          .append(" проектов\n");

      for (int i = 0; i < nodes.getLength(); i++) {
        createOrUpdateProject(nodes.item(i).getAttributes(), projectDAO);
      }
      trace.append("Синхронизация завершена\n");
    } catch (Exception e) {
      logger.error("oq project sync error: ", e);
      trace.append("Синхронизация прервана из-за ошибки: ").append(e.getMessage()).append("\n");
    }
  }