Кварцевый Композитор - Структура Key Member ошибка? - PullRequest
1 голос
/ 11 ноября 2009

Я пытаюсь использовать Quartz Composer для создания радиатора непрерывной интеграции.

Я собрал простой XML-файл для описания проектов и последних успехов каждого из их рабочих процессов:

<projects>
  <project>
    <title>Project A</title>
    <workflows>
      <workflow>
        <title>Build 1.0</title>
        <status>success</status>
      </workflow>
      <workflow>
        <title>Build 2.0</title>
        <status>success</status>
      </workflow>
    </workflows>
  </project>
  <project>
    <title>Project B</title>
    <workflows>
      <workflow>
        <title>Build 1.0</title>
        <status>success</status>
      </workflow>
    </workflows>
  </project>
</projects>

Это, очевидно, будет иметь больше информации, но я сейчас пытаюсь заставить основы работать. Я настроил композицию и использую XML Downloader для загрузки вышеуказанного XML-файла из файловой системы.

Проблема, с которой я столкнулся, заключается в следующем: когда я использую патч Member Key для элемента с несколькими дочерними элементами, я возвращаю несколько дочерних элементов, НО, когда я использую Structure Key Member для элемента с одним дочерним элементом, одинокий ребенок вместо коллекции из 1 предмета.

Я проиллюстрировал проблему ниже в примере композиции:

Quartz Composition

Я что-то не так делаю? Это ожидаемое поведение? Почему нижняя цепь также не возвращает QCStructure?

1 Ответ

2 голосов
/ 11 ноября 2009

К сожалению, патч XML Downloader неправильно обрабатывает несколько смежных пустых элементов.

Одним из возможных путей решения этой проблемы может быть реструктуризация XML-файла для удаления группы «projects», и просто сделать «project» свойством каждого «рабочего процесса»:

<workflows>
  <workflow project="Project A">
    <title>Build 1.0</title>
    <status>success</status>
  </workflow>
  <workflow project="Project A">
    <title>Build 2.0</title>
    <status>success</status>
  </workflow>
  <workflow project="Project B">
    <title>Build 1.0</title>
    <status>success</status>
  </workflow>
</workflows>

Создает структуру с полезными результатами.

(Когда XML Downloader строит структуру из XML, атрибуты эквивалентны дочерним тегам, поэтому «проект» может быть любым, и вы получите тот же результат).

...