Мой сценарий: На одном этапе моего рабочего процесса jira должна быть возможность отменить расписание задачи, т.е. установить для версии исправления значение «Нет» ".
Я заметил, что мне не удалось обновить версию исправления в функции публикации рабочего процесса - я точно не знаю почему, но в любом случае я реализовал плагин jira, чтобы помочь мне решить мою проблему , но я знаю, что иду против структуры jira (даже хороших практик программирования java :)). Я не уверен, что моя реализация может вызвать проблемы, но на самом деле она работает в моем экземпляре jira 4.1.x.
Как я реализовал плагин для обновления версии исправления в функции публикации, 2 очень похожих способа:
public class BrandsclubPostFunctionUnschedule extends AbstractJiraFunctionProvider {
// Here I create an empty Collection to be the new value of FixVersion (empty because I need no version in Fix Version)
public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException {
MutableIssue issue = this.getIssue(transientVars);
Collection<Version> newFixVersion = new ArrayList<Version>();
issue.setFixVersions(newFixVersion);
issue.store();
}
}
public class BrandsclubPostFunctionUnschedule extends AbstractJiraFunctionProvider {
// here I clear the Collection I got from "old" Fix Version and I have to set it again to make it work.
public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException {
MutableIssue issue = this.getIssue(transientVars);
Collection fixVersions = issue.getFixVersions();
fixVersions.clear();
issue.setFixVersions(fixVersions);
issue.store();
}
}
Я предполагаю, что реальное решение должно использовать такие классы, как: ChangeItemBean, ModifiedValue, IssueChangeHolder - на примере методов updateValue из CustomFieldImpl (из исходного кода jira, project: jira, package: com.atlassian.jira.issue.fields) .
Я собираюсь опубликовать это здесь: