protected void setPropertyFieldValue(String propertyName, String fieldName, ServiceTask task, ObjectNode propertiesNode) { for (FieldExtension extension : task.getFieldExtensions()) { if (fieldName.equalsIgnoreCase(extension.getFieldName())) { if (StringUtils.isNotEmpty(extension.getStringValue())) { setPropertyValue(propertyName, extension.getStringValue(), propertiesNode); } else if (StringUtils.isNotEmpty(extension.getExpression())) { setPropertyValue(propertyName, extension.getExpression(), propertiesNode); } } } }
protected void addField(String name, JsonNode elementNode, ServiceTask task) { FieldExtension field = new FieldExtension(); field.setFieldName(name.substring(8)); String value = getPropertyValueAsString(name, elementNode); if (StringUtils.isNotEmpty(value)) { if ((value.contains("${") || value.contains("#{")) && value.contains("}")) { field.setExpression(value); } else { field.setStringValue(value); } task.getFieldExtensions().add(field); } }
protected void validateFieldDeclarationsForDmn(org.activiti.bpmn.model.Process process, TaskWithFieldExtensions task, List<FieldExtension> fieldExtensions, List<ValidationError> errors) { boolean keyDefined = false; for (FieldExtension fieldExtension : fieldExtensions) { String fieldName = fieldExtension.getFieldName(); String fieldValue = fieldExtension.getStringValue(); if (fieldName.equals("decisionTableReferenceKey") && fieldValue != null && fieldValue.length() > 0) { keyDefined = true; } } if (!keyDefined) { addError(errors, Problems.DMN_TASK_NO_KEY, process, task, "No decision table reference key is defined on the dmn activity"); } }
protected FieldExtension buildFieldExtension(String name, String expression) { FieldExtension exceptionField = new FieldExtension(); exceptionField.setFieldName(name); exceptionField.setExpression(expression); return exceptionField; }
protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { ServiceTask serviceTask = new ServiceTask(); serviceTask.setType(ServiceTask.DMN_TASK); JsonNode decisionTableReferenceNode = getProperty(PROPERTY_DECISIONTABLE_REFERENCE, elementNode); if (decisionTableReferenceNode != null && decisionTableReferenceNode.has("id") && !(decisionTableReferenceNode.get("id").isNull())) { String decisionTableId = decisionTableReferenceNode.get("id").asText(); if (decisionTableMap != null) { String decisionTableKey = decisionTableMap.get(decisionTableId); FieldExtension decisionTableKeyField = new FieldExtension(); decisionTableKeyField.setFieldName(PROPERTY_DECISIONTABLE_REFERENCE_KEY); decisionTableKeyField.setStringValue(decisionTableKey); serviceTask.getFieldExtensions().add(decisionTableKeyField); } } return serviceTask; }
/** * Creates an {@link Expression} for the {@link FieldExtension}. */ public static Expression createExpressionForField(FieldExtension fieldExtension) { if (StringUtils.isNotEmpty(fieldExtension.getExpression())) { ExpressionManager expressionManager = Context.getProcessEngineConfiguration().getExpressionManager(); return expressionManager.createExpression(fieldExtension.getExpression()); } else { return new FixedValue(fieldExtension.getStringValue()); } }
public static FieldExtension getFlowElementField(DelegateExecution execution, String fieldName) { List<FieldExtension> fieldExtensions = getFlowElementFields(execution); if (fieldExtensions == null || fieldExtensions.size() == 0) { return null; } for (FieldExtension fieldExtension : fieldExtensions) { if (fieldExtension.getFieldName() != null && fieldExtension.getFieldName().equals(fieldName)) { return fieldExtension; } } return null; }
private List<FieldExtension> getScriptStepsFieldExtension() { List<FieldExtension> fieldExtensionList = new ArrayList<>(); FieldExtension exceptionField = new FieldExtension(); exceptionField.setFieldName("scriptLocation"); exceptionField.setExpression("${scriptLocation}"); fieldExtensionList.add(exceptionField); exceptionField = new FieldExtension(); exceptionField.setFieldName("scriptArguments"); exceptionField.setExpression("${scriptArguments}"); fieldExtensionList.add(exceptionField); return fieldExtensionList; } }
protected void validateFieldDeclarationsForShell(org.activiti.bpmn.model.Process process, TaskWithFieldExtensions task, List<FieldExtension> fieldExtensions, List<ValidationError> errors) { boolean shellCommandDefined = false; for (FieldExtension fieldExtension : fieldExtensions) { String fieldName = fieldExtension.getFieldName(); String fieldValue = fieldExtension.getStringValue(); if (fieldName.equals("command")) { shellCommandDefined = true; } if ((fieldName.equals("wait") || fieldName.equals("redirectError") || fieldName.equals("cleanEnv")) && !fieldValue.toLowerCase().equals("true") && !fieldValue.toLowerCase().equals("false")) { addError(errors, Problems.SHELL_TASK_INVALID_PARAM, process, task, "Undefined parameter value for shell field"); } } if (!shellCommandDefined) { addError(errors, Problems.SHELL_TASK_NO_COMMAND, process, task, "No shell command is defined on the shell activity"); } }
protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { ServiceTask serviceTask = new ServiceTask(); serviceTask.setType(ServiceTask.DMN_TASK); JsonNode decisionTableReferenceNode = getProperty(PROPERTY_DECISIONTABLE_REFERENCE, elementNode); if (decisionTableReferenceNode != null && decisionTableReferenceNode.has("id") && decisionTableReferenceNode.get("id").isNull() == false) { String decisionTableId = decisionTableReferenceNode.get("id").asText(); if (decisionTableMap != null) { String decisionTableKey = decisionTableMap.get(decisionTableId); FieldExtension decisionTableKeyField = new FieldExtension(); decisionTableKeyField.setFieldName(PROPERTY_DECISIONTABLE_REFERENCE_KEY); decisionTableKeyField.setStringValue(decisionTableKey); serviceTask.getFieldExtensions().add(decisionTableKeyField); } } return serviceTask; }
/** * Creates an {@link Expression} for the {@link FieldExtension}. */ public static Expression createExpressionForField(FieldExtension fieldExtension) { if (StringUtils.isNotEmpty(fieldExtension.getExpression())) { ExpressionManager expressionManager = Context.getProcessEngineConfiguration().getExpressionManager(); return expressionManager.createExpression(fieldExtension.getExpression()); } else { return new FixedValue(fieldExtension.getStringValue()); } }
public static FieldExtension getListenerField(DelegateExecution execution, String fieldName) { List<FieldExtension> fieldExtensions = getListenerFields(execution); if (fieldExtensions == null || fieldExtensions.size() == 0) { return null; } for (FieldExtension fieldExtension : fieldExtensions) { if (fieldExtension.getFieldName() != null && fieldExtension.getFieldName().equals(fieldName)) { return fieldExtension; } } return null; }
protected void addField(String name, String propertyName, JsonNode elementNode, ServiceTask task) { FieldExtension field = new FieldExtension(); field.setFieldName(name); String value = getPropertyValueAsString(propertyName, elementNode); if (StringUtils.isNotEmpty(value)) { if ((value.contains("${") || value.contains("#{")) && value.contains("}")) { field.setExpression(value); } else { field.setStringValue(value); } task.getFieldExtensions().add(field); } }
protected void setPropertyFieldValue(String name, ServiceTask task, ObjectNode propertiesNode) { for (FieldExtension extension : task.getFieldExtensions()) { if (name.substring(8).equalsIgnoreCase(extension.getFieldName())) { if (StringUtils.isNotEmpty(extension.getStringValue())) { setPropertyValue(name, extension.getStringValue(), propertiesNode); } else if (StringUtils.isNotEmpty(extension.getExpression())) { setPropertyValue(name, extension.getExpression(), propertiesNode); } } } }
private List<FieldExtension> getOptionalFieldExtensions() { List<FieldExtension> fieldExtensionList = new ArrayList<>(); FieldExtension fieldExtension = new FieldExtension(); fieldExtension.setFieldName("emrClusterId"); fieldExtension.setExpression("${createClusterServiceTask_emrClusterId}"); fieldExtensionList.add(fieldExtension); fieldExtension = new FieldExtension(); fieldExtension.setFieldName("verbose"); fieldExtension.setExpression("${verbose}"); fieldExtensionList.add(fieldExtension); fieldExtension = new FieldExtension(); fieldExtension.setFieldName("retrieveInstanceFleets"); fieldExtension.setExpression("${retrieveInstanceFleets}"); fieldExtensionList.add(fieldExtension); return fieldExtensionList; } }
protected ActivityBehavior createCamelActivityBehavior(TaskWithFieldExtensions task, List<FieldExtension> fieldExtensions) { try { Class<?> theClass = null; FieldExtension behaviorExtension = null; for (FieldExtension fieldExtension : fieldExtensions) { if ("camelBehaviorClass".equals(fieldExtension.getFieldName()) && StringUtils.isNotEmpty(fieldExtension.getStringValue())) { theClass = Class.forName(fieldExtension.getStringValue()); behaviorExtension = fieldExtension; break; } } if (behaviorExtension != null) { fieldExtensions.remove(behaviorExtension); } if (theClass == null) { // Default Camel behavior class theClass = Class.forName("org.activiti.camel.impl.CamelBehaviorDefaultImpl"); } List<FieldDeclaration> fieldDeclarations = createFieldDeclarations(fieldExtensions); addExceptionMapAsFieldDeclaration(fieldDeclarations, task.getMapExceptions()); return (ActivityBehavior) ClassDelegate.defaultInstantiateDelegate( theClass, fieldDeclarations); } catch (ClassNotFoundException e) { throw new ActivitiException("Could not find org.activiti.camel.CamelBehavior: ", e); } }
taskListener.setImplementation("org.activiti.engine.impl.bpmn.listener.ScriptTaskListener"); FieldExtension languageField = new FieldExtension(); languageField.setFieldName("language"); languageField.setStringValue("JavaScript"); FieldExtension scriptField = new FieldExtension(); scriptField.setFieldName("script"); scriptField.setStringValue(script.toString());
public void execute(DelegateExecution execution) { FieldExtension fieldExtension = DelegateHelper.getFlowElementField(execution, EXPRESSION_DECISION_TABLE_REFERENCE_KEY); if (fieldExtension == null || ((fieldExtension.getStringValue() == null || fieldExtension.getStringValue().length() == 0) && (fieldExtension.getExpression() == null || fieldExtension.getExpression().length() == 0))) { if (fieldExtension.getExpression() != null && fieldExtension.getExpression().length() > 0) { activeDecisionTableKey = fieldExtension.getExpression(); activeDecisionTableKey = fieldExtension.getStringValue();
protected void validateFieldDeclarationsForEmail(org.activiti.bpmn.model.Process process, TaskWithFieldExtensions task, List<FieldExtension> fieldExtensions, List<ValidationError> errors) { boolean toDefined = false; boolean textOrHtmlDefined = false; for (FieldExtension fieldExtension : fieldExtensions) { if (fieldExtension.getFieldName().equals("to")) { toDefined = true; } if (fieldExtension.getFieldName().equals("html")) { textOrHtmlDefined = true; } if (fieldExtension.getFieldName().equals("htmlVar")) { textOrHtmlDefined = true; } if (fieldExtension.getFieldName().equals("text")) { textOrHtmlDefined = true; } if (fieldExtension.getFieldName().equals("textVar")) { textOrHtmlDefined = true; } } if (!toDefined) { addError(errors, Problems.MAIL_TASK_NO_RECIPIENT, process, task, "No recipient is defined on the mail activity"); } if (!textOrHtmlDefined) { addError(errors, Problems.MAIL_TASK_NO_CONTENT, process, task, "Text, html, textVar or htmlVar field should be provided"); } }
return; FieldExtension extension = new FieldExtension(); BpmnXMLUtil.addXMLLocation(extension, xtr); extension.setFieldName(xtr.getAttributeValue(null, ATTRIBUTE_FIELD_NAME)); extension.setStringValue(xtr.getAttributeValue(null, ATTRIBUTE_FIELD_STRING)); extension.setExpression(xtr.getAttributeValue(null, ATTRIBUTE_FIELD_EXPRESSION)); xtr.next(); if (xtr.isStartElement() && ELEMENT_FIELD_STRING.equalsIgnoreCase(xtr.getLocalName())) { extension.setStringValue(xtr.getElementText().trim()); extension.setExpression(xtr.getElementText().trim());