public ConfigurableJiraWorkflow(final String name, final WorkflowManager workflowManager)
{
super(workflowManager, new WorkflowDescriptor());
this.name = name;
final StepDescriptor step = DescriptorFactory.getFactory().createStepDescriptor();
step.setId(1);
step.setName("Open");
step.getMetaAttributes().put(JiraWorkflow.STEP_STATUS_KEY, "1");
step.setParent(descriptor);
descriptor.addStep(step);
final ActionDescriptor initialAction = DescriptorFactory.getFactory().createActionDescriptor();
initialAction.setId(1);
initialAction.setName("Create");
initialAction.setParent(descriptor);
descriptor.addInitialAction(initialAction);
initialAction.getValidators().add(PermissionValidator.makeDescriptor("Create Issue"));
final ResultDescriptor resultDescriptor = DescriptorFactory.getFactory().createResultDescriptor();
resultDescriptor.setStep(1);
resultDescriptor.setStatus("open");
initialAction.setUnconditionalResult(resultDescriptor);
resultDescriptor.getPostFunctions().add(IssueCreateFunction.makeDescriptor());
resultDescriptor.getPostFunctions().add(IssueReindexFunction.makeDescriptor());
resultDescriptor.getPostFunctions().add(FireIssueEventFunction.makeDescriptor(EventType.ISSUE_CREATED_ID));
}