|
@@ -1,14 +1,19 @@
|
|
package com.flow.flowable.converter;
|
|
package com.flow.flowable.converter;
|
|
|
|
|
|
|
|
+import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.flow.flowable.model.CopyServiceTask;
|
|
import com.flow.flowable.model.CopyServiceTask;
|
|
import com.flow.flowable.model.JumpServiceTask;
|
|
import com.flow.flowable.model.JumpServiceTask;
|
|
|
|
+import com.flow.flowable.model.MicroServiceTask;
|
|
import com.flow.flowable.utils.ProcessElementUtil;
|
|
import com.flow.flowable.utils.ProcessElementUtil;
|
|
import org.flowable.bpmn.converter.ServiceTaskXMLConverter;
|
|
import org.flowable.bpmn.converter.ServiceTaskXMLConverter;
|
|
import org.flowable.bpmn.model.BaseElement;
|
|
import org.flowable.bpmn.model.BaseElement;
|
|
import org.flowable.bpmn.model.BpmnModel;
|
|
import org.flowable.bpmn.model.BpmnModel;
|
|
import org.flowable.bpmn.model.ServiceTask;
|
|
import org.flowable.bpmn.model.ServiceTask;
|
|
|
|
+import org.flowable.engine.impl.util.CommandContextUtil;
|
|
|
|
|
|
import javax.xml.stream.XMLStreamReader;
|
|
import javax.xml.stream.XMLStreamReader;
|
|
|
|
+import java.util.Map;
|
|
|
|
|
|
public class CustomServiceTaskXMLConverter extends ServiceTaskXMLConverter {
|
|
public class CustomServiceTaskXMLConverter extends ServiceTaskXMLConverter {
|
|
public CustomServiceTaskXMLConverter() {
|
|
public CustomServiceTaskXMLConverter() {
|
|
@@ -31,6 +36,11 @@ public class CustomServiceTaskXMLConverter extends ServiceTaskXMLConverter {
|
|
jumpServiceTask.setValues(serviceTask);
|
|
jumpServiceTask.setValues(serviceTask);
|
|
this.convertJumpServiceTaskXMLProperties(jumpServiceTask, model, xtr);
|
|
this.convertJumpServiceTaskXMLProperties(jumpServiceTask, model, xtr);
|
|
return jumpServiceTask;
|
|
return jumpServiceTask;
|
|
|
|
+ } else if ("micro".equals(serviceTaskType)) {
|
|
|
|
+ MicroServiceTask microServiceTask = new MicroServiceTask();
|
|
|
|
+ microServiceTask.setValues(serviceTask);
|
|
|
|
+ this.convertMicroServiceTaskXMLProperties(microServiceTask, model, xtr);
|
|
|
|
+ return microServiceTask;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return baseElement;
|
|
return baseElement;
|
|
@@ -45,4 +55,22 @@ public class CustomServiceTaskXMLConverter extends ServiceTaskXMLConverter {
|
|
String targetNode = ProcessElementUtil.getFieldExtensionValue(jumpServiceTask, "targetNode");
|
|
String targetNode = ProcessElementUtil.getFieldExtensionValue(jumpServiceTask, "targetNode");
|
|
jumpServiceTask.setTargetNode(targetNode);
|
|
jumpServiceTask.setTargetNode(targetNode);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ protected void convertMicroServiceTaskXMLProperties(MicroServiceTask microServiceTask, BpmnModel bpmnModel, XMLStreamReader xtr) throws Exception {
|
|
|
|
+ String serviceId = ProcessElementUtil.getFieldExtensionValue(microServiceTask, "serviceId");
|
|
|
|
+ String url = ProcessElementUtil.getFieldExtensionValue(microServiceTask, "url");
|
|
|
|
+ String method = ProcessElementUtil.getFieldExtensionValue(microServiceTask, "method");
|
|
|
|
+ String headers = ProcessElementUtil.getFieldExtensionValue(microServiceTask, "headers");
|
|
|
|
+ String params = ProcessElementUtil.getFieldExtensionValue(microServiceTask, "params");
|
|
|
|
+ String body = ProcessElementUtil.getFieldExtensionValue(microServiceTask, "body");
|
|
|
|
+ String responseVariableName = ProcessElementUtil.getFieldExtensionValue(microServiceTask, "responseVariableName");
|
|
|
|
+ microServiceTask.setServiceId(serviceId);
|
|
|
|
+ microServiceTask.setUrl(url);
|
|
|
|
+ microServiceTask.setMethod(method);
|
|
|
|
+ ObjectMapper objectMapper = CommandContextUtil.getProcessEngineConfiguration().getObjectMapper();
|
|
|
|
+ microServiceTask.setHeaders(objectMapper.readValue(headers, new TypeReference<Map<String, Object>>() {}));
|
|
|
|
+ microServiceTask.setParams(objectMapper.readValue(params, new TypeReference<Map<String, Object>>() {}));
|
|
|
|
+ microServiceTask.setBody(objectMapper.readValue(body, new TypeReference<Map<String, Object>>() {}));
|
|
|
|
+ microServiceTask.setResponseVariableName(responseVariableName);
|
|
|
|
+ }
|
|
}
|
|
}
|