@SuppressWarnings("unchecked") private FunctionDescriptor makeFunctionDescriptor(Class<? extends FunctionProvider> clazz, Map<String, String> params) { FunctionDescriptor functionDescriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); functionDescriptor.setType("class"); final Map conditionArgs = functionDescriptor.getArgs(); conditionArgs.put(CLASS_NAME_KEY, clazz.getName()); conditionArgs.putAll(params); return functionDescriptor; }
@SuppressWarnings("unchecked") private ConditionDescriptor makeConditionDescriptor(Class<? extends Condition> clazz, Map<String, String> params) { ConditionDescriptor conditionDescriptor = DescriptorFactory.getFactory().createConditionDescriptor(); conditionDescriptor.setType("class"); final Map conditionArgs = conditionDescriptor.getArgs(); conditionArgs.put(CLASS_NAME_KEY, clazz.getName()); conditionArgs.putAll(params); return conditionDescriptor; }
public static FunctionDescriptor makeDescriptor() { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", CreateCommentFunction.class.getName()); return descriptor; } }
public static FunctionDescriptor makeDescriptor() { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", IssueReindexFunction.class.getName()); return descriptor; } }
public static FunctionDescriptor makeDescriptor() { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", GenerateChangeHistoryFunction.class.getName()); return descriptor; } }
public static FunctionDescriptor makeDescriptor() { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", IssueStoreFunction.class.getName()); return descriptor; } }
public static FunctionDescriptor makeDescriptor() { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", FlushCachesFunction.class.getName()); return descriptor; }
public static FunctionDescriptor makeDescriptor() { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", UpdateIssueStatusFunction.class.getName()); return descriptor; } }
public static FunctionDescriptor makeDescriptor() { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); //noinspection unchecked descriptor.getArgs().put("class.name", IssueCreateFunction.class.getName()); return descriptor; } }
public static FunctionDescriptor makeDescriptor() { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", CreateJobFunction.class.getName()); return descriptor; } }
@SuppressWarnings ("unchecked") public static ValidatorDescriptor makeDescriptor(final String permission) { final ValidatorDescriptor permValidator = DescriptorFactory.getFactory().createValidatorDescriptor(); permValidator.setType("class"); permValidator.getArgs().put("class.name", PermissionValidator.class.getName()); permValidator.getArgs().put("permission", permission); return permValidator; }
public static FunctionDescriptor makeDescriptor(Long eventTypeId) { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", FireIssueEventFunction.class.getName()); descriptor.getArgs().put("eventTypeId", eventTypeId); return descriptor; } }
public static FunctionDescriptor makeDescriptor(String eventType) { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", UberIssueWorkflowFunction.class.getName()); if (eventType != null) { descriptor.getArgs().put("eventType", eventType); } return descriptor; }
public static FunctionDescriptor makeDescriptor(String fieldName, String fieldValue) { FunctionDescriptor descriptor = DescriptorFactory.getFactory().createFunctionDescriptor(); descriptor.setType("class"); descriptor.getArgs().put("class.name", UpdateIssueFieldFunction.class.getName()); descriptor.getArgs().put("field.name", fieldName); descriptor.getArgs().put("field.value", fieldValue); return descriptor; } }
public ConfigurableJiraWorkflow(final String name, final WorkflowManager workflowManager) { super(workflowManager, new WorkflowDescriptor()); this.name = name; // create the initial step - useful to have one of these :) 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); // create the initial action final ActionDescriptor initialAction = DescriptorFactory.getFactory().createActionDescriptor(); initialAction.setId(1); initialAction.setName("Create"); initialAction.setParent(descriptor); descriptor.addInitialAction(initialAction); // add create issue permission validator initialAction.getValidators().add(PermissionValidator.makeDescriptor("Create Issue")); // setup result to always be step 1 final ResultDescriptor resultDescriptor = DescriptorFactory.getFactory().createResultDescriptor(); resultDescriptor.setStep(1); resultDescriptor.setStatus("open"); initialAction.setUnconditionalResult(resultDescriptor); // setup post functions resultDescriptor.getPostFunctions().add(IssueCreateFunction.makeDescriptor()); resultDescriptor.getPostFunctions().add(IssueReindexFunction.makeDescriptor()); resultDescriptor.getPostFunctions().add(FireIssueEventFunction.makeDescriptor(EventType.ISSUE_CREATED_ID)); }
@Override public void doUpgrade(boolean setupMode) throws Exception { DescriptorFactory descriptorFactory = DescriptorFactory.getFactory(); WorkflowManager workflowManager = ComponentAccessor.getComponentOfType(WorkflowManager.class); for (JiraWorkflow workflow : workflowManager.getWorkflows()) { if (workflow instanceof ConfigurableJiraWorkflow) { ConfigurableJiraWorkflow mutableWorkflow = (ConfigurableJiraWorkflow) workflow; try { Element upgradedDescriptor = upgradeDescriptor(mutableWorkflow.getDescriptor().asXML()); WorkflowDescriptor workflowDescriptor = descriptorFactory.createWorkflowDescriptor(upgradedDescriptor); mutableWorkflow.setDescriptor(workflowDescriptor); workflowManager.saveWorkflowWithoutAudit(mutableWorkflow); log.debug("Upgraded workflow '{}'", mutableWorkflow.getName()); } catch (Exception e) { throw new RuntimeException("Failed to upgrade workflow: " + workflow.getName(), e); } } } }
protected void addWorkflowDescriptor() throws WorkflowException { ValidatorDescriptor validatorDescriptor = DescriptorFactory.getFactory().createValidatorDescriptor(); validatorDescriptor.setType("class"); final Map validatorArgs = validatorDescriptor.getArgs(); validatorArgs.put("class.name", getDescriptor().getImplementationClass().getName()); // Add parameters to the workflow validator descriptor // Make the factory process it WorkflowPluginValidatorFactory workflowPluginValidatorFactory = (WorkflowPluginValidatorFactory) getDescriptor().getModule(); validatorArgs.putAll(workflowPluginValidatorFactory.getDescriptorParams(getDescriptorParams())); if (getTransition().getValidators() != null) { getTransition().getValidators().add(validatorDescriptor); currentValidatorCount = "" + getTransition().getValidators().size(); } else { throw new InfrastructureException("Validators collection is null for workflow '" + getWorkflow().getName() + "' step '" + getStep().getName() + "' transition '" + getTransition().getName() + "'."); } workflowService.updateWorkflow(getJiraServiceContext(), getWorkflow()); }
protected void addWorkflowDescriptor() throws WorkflowException { ConditionDescriptor condition = DescriptorFactory.getFactory().createConditionDescriptor(); condition.setType("class"); final Map conditionArgs = condition.getArgs(); conditionArgs.put("class.name", getDescriptor().getImplementationClass().getName()); // Add parameters to the workflow condition descriptor // Make the factory process it WorkflowPluginConditionFactory workflowConditionFactory = (WorkflowPluginConditionFactory) getDescriptor().getModule(); conditionArgs.putAll(workflowConditionFactory.getDescriptorParams(getDescriptorParams())); // Now create a nested ConditionsDescriptor with the new condition WorkflowEditorTransitionConditionUtil wetcu = new WorkflowEditorTransitionConditionUtil(); if (isNested()) currentConditionCount = wetcu.addNestedCondition(getTransition(), getCount(), condition); else currentConditionCount = wetcu.addCondition(getTransition(), getCount(), condition); workflowService.updateWorkflow(getJiraServiceContext(), getWorkflow()); }
@RequiresXsrfCheck protected String doExecute() throws Exception { // setup the transition action ActionDescriptor action = DescriptorFactory.getFactory().createActionDescriptor(); action.setId(getWorkflow().getNextActionId()); action.setName(getTransitionName()); action.getMetaAttributes().put(JiraWorkflow.WORKFLOW_DESCRIPTION_ATTRIBUTE, getDescription()); setActionScreen(action, stringSet(getView()) ? getFieldScreen() : null); // setup the result ResultDescriptor result = DescriptorFactory.getFactory().createResultDescriptor(); action.setUnconditionalResult(result); result.setStep(getDestinationStep()); result.setOldStatus("Not Done"); result.setStatus("Done"); initialiseTransition(action); action.setParent(getStep()); getStep().getActions().add(action); workflowService.updateWorkflow(getJiraServiceContext(), getWorkflow()); return getRedirect(getCancelUrl()); }
StepDescriptor newStep = DescriptorFactory.getFactory().createStepDescriptor(); newStep.setName(getStepName()); newStep.setId(WorkflowUtil.getNextId(getWorkflow().getDescriptor().getSteps()));