gitextract_yjh79igv/ ├── .gitignore ├── LICENSE.txt ├── NOTICE.txt ├── README-zh.md ├── README.md ├── easyflow-flow/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jd/ │ │ │ └── easyflow/ │ │ │ └── flow/ │ │ │ ├── common/ │ │ │ │ └── FlowExecutor.java │ │ │ ├── el/ │ │ │ │ ├── ElEvaluator.java │ │ │ │ ├── ElFactory.java │ │ │ │ ├── ElRootMap.java │ │ │ │ └── SpelEvaluator.java │ │ │ ├── engine/ │ │ │ │ ├── FlowContext.java │ │ │ │ ├── FlowEngine.java │ │ │ │ ├── FlowParam.java │ │ │ │ ├── FlowResult.java │ │ │ │ ├── FlowRunner.java │ │ │ │ ├── builder/ │ │ │ │ │ └── FlowParamBuilder.java │ │ │ │ ├── event/ │ │ │ │ │ ├── BaseFlowEventListener.java │ │ │ │ │ ├── ExpFlowEventListener.java │ │ │ │ │ ├── FlowEvent.java │ │ │ │ │ ├── FlowEventListener.java │ │ │ │ │ ├── FlowEventTrigger.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── EventFlowListener.java │ │ │ │ │ └── InterruptFlowListener.java │ │ │ │ ├── filter/ │ │ │ │ │ ├── FlowEngineFilter.java │ │ │ │ │ ├── FlowEngineFilterManager.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── BaseFlowEngineFilter.java │ │ │ │ └── impl/ │ │ │ │ ├── BaseFlowRunner.java │ │ │ │ ├── CoreFlowEngine.java │ │ │ │ ├── ExpFlowRunner.java │ │ │ │ ├── FlowContextImpl.java │ │ │ │ ├── FlowEngineImpl.java │ │ │ │ ├── MultipleThreadFlowRunner.java │ │ │ │ ├── ReusableThreadFlowRunner.java │ │ │ │ └── SingleThreadFlowRunner.java │ │ │ ├── exception/ │ │ │ │ └── FlowException.java │ │ │ ├── filter/ │ │ │ │ ├── BaseFilter.java │ │ │ │ ├── ExpFilter.java │ │ │ │ ├── Filter.java │ │ │ │ ├── FilterChain.java │ │ │ │ └── FilterChainImpl.java │ │ │ ├── model/ │ │ │ │ ├── Flow.java │ │ │ │ ├── FlowLifeCycle.java │ │ │ │ ├── FlowNode.java │ │ │ │ ├── FlowPostHandler.java │ │ │ │ ├── FlowPreHandler.java │ │ │ │ ├── InitContext.java │ │ │ │ ├── NodeAction.java │ │ │ │ ├── NodeContext.java │ │ │ │ ├── NodeContextAccessor.java │ │ │ │ ├── NodeExecutor.java │ │ │ │ ├── NodePostHandler.java │ │ │ │ ├── NodePreHandler.java │ │ │ │ ├── action/ │ │ │ │ │ ├── ActionResultEl.java │ │ │ │ │ ├── CompensateNodeAction.java │ │ │ │ │ ├── EventNodeAction.java │ │ │ │ │ ├── ExecutorNodeAction.java │ │ │ │ │ ├── ExpNodeAction.java │ │ │ │ │ ├── FlowNodeAction.java │ │ │ │ │ ├── InterruptNodeAction.java │ │ │ │ │ ├── LoopNodeAction.java │ │ │ │ │ ├── ParamExecutorNodeAction.java │ │ │ │ │ └── compensate/ │ │ │ │ │ ├── CompensateAction.java │ │ │ │ │ ├── CompensateFlowFilter.java │ │ │ │ │ ├── CompensateFlowParseEventListener.java │ │ │ │ │ ├── CompensateHelper.java │ │ │ │ │ ├── CompensateNodeFilter.java │ │ │ │ │ ├── CompensateNodePreHandlerFilter.java │ │ │ │ │ └── FlowCompensateAction.java │ │ │ │ ├── builder/ │ │ │ │ │ └── FlowBuilder.java │ │ │ │ ├── definition/ │ │ │ │ │ └── DefConstants.java │ │ │ │ ├── filter/ │ │ │ │ │ ├── FlowFilter.java │ │ │ │ │ ├── FlowFilterManager.java │ │ │ │ │ ├── FlowPostHandlerFilter.java │ │ │ │ │ ├── FlowPreHandlerFilter.java │ │ │ │ │ ├── NodeActionFilter.java │ │ │ │ │ ├── NodeFilter.java │ │ │ │ │ ├── NodePostHandlerFilter.java │ │ │ │ │ ├── NodePreHandlerFilter.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── BaseFlowFilter.java │ │ │ │ │ ├── BaseFlowPostHandlerFilter.java │ │ │ │ │ ├── BaseFlowPreHandlerFilter.java │ │ │ │ │ ├── BaseNodeActionFilter.java │ │ │ │ │ ├── BaseNodeFilter.java │ │ │ │ │ ├── BaseNodePostHandlerFilter.java │ │ │ │ │ └── BaseNodePreHandlerFilter.java │ │ │ │ ├── flow/ │ │ │ │ │ ├── post/ │ │ │ │ │ │ └── ExpFlowPostHandler.java │ │ │ │ │ └── pre/ │ │ │ │ │ └── ExpFlowPreHandler.java │ │ │ │ ├── node/ │ │ │ │ │ └── NodeImpl.java │ │ │ │ ├── parser/ │ │ │ │ │ ├── FlowParser.java │ │ │ │ │ ├── FlowParserImpl.java │ │ │ │ │ ├── event/ │ │ │ │ │ │ ├── ExpFlowParseEventListener.java │ │ │ │ │ │ ├── FlowParseEvent.java │ │ │ │ │ │ ├── FlowParseEventListener.java │ │ │ │ │ │ └── FlowParseEventTypes.java │ │ │ │ │ └── param/ │ │ │ │ │ ├── ActionParseParam.java │ │ │ │ │ ├── FlowParseParam.java │ │ │ │ │ ├── PostParseParam.java │ │ │ │ │ └── PreParseParam.java │ │ │ │ ├── post/ │ │ │ │ │ ├── AbstractNodePostHandler.java │ │ │ │ │ ├── ConditionalNodePostHandler.java │ │ │ │ │ ├── EventPostHandler.java │ │ │ │ │ ├── ExecutorNodePostHandler.java │ │ │ │ │ ├── ExpNodePostHandler.java │ │ │ │ │ └── FixedNodePostHandler.java │ │ │ │ └── pre/ │ │ │ │ ├── ExpNodePreHandler.java │ │ │ │ ├── InclusiveCheckPreHandler.java │ │ │ │ ├── MultiCheckPreHandler.java │ │ │ │ ├── NodePreHandlerHelper.java │ │ │ │ └── NodePrePropertyGetter.java │ │ │ └── util/ │ │ │ ├── ExceptionUtil.java │ │ │ ├── FlowConstants.java │ │ │ ├── FlowEventTypes.java │ │ │ ├── FlowIOUtil.java │ │ │ ├── FlowNodeLinkUtil.java │ │ │ ├── FlowStringUtil.java │ │ │ ├── FlowUtil.java │ │ │ ├── JsonFacade.java │ │ │ ├── JsonFacadeJacksonImpl.java │ │ │ ├── JsonPrettyHelper.java │ │ │ ├── JsonUtil.java │ │ │ ├── LockUtil.java │ │ │ ├── Pair.java │ │ │ └── Triple.java │ │ └── resources/ │ │ └── pretty/ │ │ └── pretty-flow.json │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── jd/ │ │ └── easyflow/ │ │ └── flow/ │ │ ├── FlowTestSuite.java │ │ ├── cases/ │ │ │ ├── action/ │ │ │ │ ├── ActionTest.java │ │ │ │ ├── CompensateTest.java │ │ │ │ ├── LoopNodeActionTest.java │ │ │ │ ├── MockActionClass.java │ │ │ │ ├── MockClassMethodAction.java │ │ │ │ ├── MockInputOutputEventListener.java │ │ │ │ └── MultipleActionTest.java │ │ │ ├── common/ │ │ │ │ └── TestNodeExecutor.java │ │ │ ├── event/ │ │ │ │ ├── EventFlowTest.java │ │ │ │ └── TestEventNodeAction.java │ │ │ ├── filter/ │ │ │ │ └── FilterTest.java │ │ │ ├── flowengine/ │ │ │ │ ├── FlowEngineImplTest.java │ │ │ │ ├── PocFlowEngineImpl.java │ │ │ │ └── PocNodeImpl.java │ │ │ ├── inclusive/ │ │ │ │ └── InclusiveTest.java │ │ │ ├── interrupt/ │ │ │ │ └── InterruptTest.java │ │ │ ├── listener/ │ │ │ │ └── InterruptFlowListenerTest.java │ │ │ ├── logflag/ │ │ │ │ └── LogFlagTest.java │ │ │ ├── mockbiz/ │ │ │ │ ├── CheckBiz.java │ │ │ │ ├── LimitBiz.java │ │ │ │ ├── LoanBiz.java │ │ │ │ ├── LoanContractSignBiz.java │ │ │ │ ├── MockFlowListener.java │ │ │ │ └── MockLoanTest.java │ │ │ ├── parallel/ │ │ │ │ └── ParallelTest.java │ │ │ ├── parser/ │ │ │ │ ├── FlowParserTest.java │ │ │ │ ├── TestAddFilterParseListener.java │ │ │ │ ├── TestFlowParamAndResultPrintFilter.java │ │ │ │ ├── TestFlowParseListener.java │ │ │ │ └── TestFlowParserImpl.java │ │ │ ├── performance/ │ │ │ │ ├── EmptyStepAction.java │ │ │ │ ├── LoopStepAction.java │ │ │ │ ├── MemoryTest.java │ │ │ │ └── PerformanceTest.java │ │ │ ├── posthandler/ │ │ │ │ ├── ConditionalPostHandlerTest.java │ │ │ │ ├── FlowIndexTest.java │ │ │ │ ├── NodePostHandlerTest.java │ │ │ │ ├── PostHandlerFilterTest.java │ │ │ │ ├── PostParamNode1Action.java │ │ │ │ ├── PostParamNode2Action.java │ │ │ │ ├── PostParamNode3Action.java │ │ │ │ └── TestPostHandlerFilter.java │ │ │ ├── prehandler/ │ │ │ │ └── PreHandlerTest.java │ │ │ ├── pretty/ │ │ │ │ └── FlowDefPrettyHelperTest.java │ │ │ ├── runner/ │ │ │ │ ├── MultiThreadTest.java │ │ │ │ ├── ReusableThreadTest.java │ │ │ │ ├── TestInterruptNodeAction.java │ │ │ │ ├── TestMultiRunner.java │ │ │ │ └── TestReusableThreadRunner.java │ │ │ ├── share/ │ │ │ │ └── nodeaction/ │ │ │ │ └── TestStepAction.java │ │ │ ├── spring/ │ │ │ │ └── SpringFlowTest.java │ │ │ └── subflow/ │ │ │ ├── SubFlowTest.java │ │ │ └── TestInvokeSubFlowNodeAction.java │ │ ├── quickstart/ │ │ │ ├── QuickStart001Node01Action.java │ │ │ ├── QuickStart002Node01Action.java │ │ │ ├── QuickStart003Node01Action.java │ │ │ └── QuickStartTest.java │ │ └── unit/ │ │ └── util/ │ │ ├── JsonTest.java │ │ └── TreeMapTest.java │ └── resources/ │ ├── flow/ │ │ ├── cases/ │ │ │ ├── action/ │ │ │ │ ├── action_interrupt_001.json │ │ │ │ ├── compensate_001.json │ │ │ │ ├── compensate_002.json │ │ │ │ ├── compensate_flow_001.json │ │ │ │ ├── loop_test_001.json │ │ │ │ └── multiple_action_001.json │ │ │ ├── event/ │ │ │ │ ├── flow_event_001.json │ │ │ │ ├── flow_event_002.json │ │ │ │ ├── flow_event_003.json │ │ │ │ └── flow_event_nolistener_001.json │ │ │ ├── filter/ │ │ │ │ ├── inner_flow_engine_filter_001.json │ │ │ │ ├── inner_flow_filter_001.json │ │ │ │ └── inner_node_action_filter_001.json │ │ │ ├── inclusive/ │ │ │ │ ├── flow_inclusive201.json │ │ │ │ ├── flow_inclusive202.json │ │ │ │ ├── flow_inclusive203.json │ │ │ │ └── flow_inclusive303.json │ │ │ ├── interrupt/ │ │ │ │ ├── interrupt_001.json │ │ │ │ └── interrupt_002.json │ │ │ ├── listener/ │ │ │ │ ├── interrupt_listener_001.json │ │ │ │ ├── interrupt_listener_002.json │ │ │ │ └── interrupt_listener_003.json │ │ │ ├── logflag/ │ │ │ │ └── logflag_001.json │ │ │ ├── mockbiz/ │ │ │ │ └── mock_loan_001.json │ │ │ ├── parallel/ │ │ │ │ └── flow_parallel001.json │ │ │ ├── parser/ │ │ │ │ ├── flow_multiple001.json │ │ │ │ ├── parser_test_001.json │ │ │ │ ├── parser_test_002.json │ │ │ │ ├── parser_test_003.json │ │ │ │ ├── parser_test_subflow_001.json │ │ │ │ └── parser_test_subflow_002.json │ │ │ ├── performance/ │ │ │ │ ├── flow_memory001.json │ │ │ │ └── flow_performance001.json │ │ │ ├── posthandler/ │ │ │ │ ├── flow_createexp_post_to_001.json │ │ │ │ ├── flow_exp_post_to_001.json │ │ │ │ ├── flow_index001.json │ │ │ │ ├── flow_post_handler_filter_001.json │ │ │ │ ├── flow_post_param_001.json │ │ │ │ ├── flow_postdata_001.json │ │ │ │ └── flow_when_createexp_001.json │ │ │ ├── prehandler/ │ │ │ │ └── flow_prehandler_001.json │ │ │ ├── pretty/ │ │ │ │ ├── pretty_multiple_test.json │ │ │ │ └── pretty_test.json │ │ │ ├── runner/ │ │ │ │ ├── flow_interrupt001.json │ │ │ │ ├── flow_interrupt002.json │ │ │ │ ├── flow_interrupt003.json │ │ │ │ ├── flow_multi001.json │ │ │ │ ├── flow_multi002.json │ │ │ │ ├── flow_multi003.json │ │ │ │ ├── flow_multi004.json │ │ │ │ ├── flow_reusable001.json │ │ │ │ ├── flow_reusable002.json │ │ │ │ ├── flow_reusable003.json │ │ │ │ └── flow_reusable004.json │ │ │ ├── spring/ │ │ │ │ ├── applicationContext-flow-test.xml │ │ │ │ └── flow_spring_001.json │ │ │ └── subflow/ │ │ │ ├── flow_subflow_001.json │ │ │ ├── flow_subflow_002.json │ │ │ ├── flow_subflow_002_01.json │ │ │ ├── flow_subflow_003.json │ │ │ └── flow_subflow_003_01.json │ │ └── quickstart/ │ │ └── quickstart_001.json │ └── logback.xml ├── easyflow-flow-bpmn/ │ ├── BPMNDesigner.html │ ├── pom.xml │ ├── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ ├── .gitkeep │ │ │ └── com/ │ │ │ └── jd/ │ │ │ └── easyflow/ │ │ │ └── flow/ │ │ │ └── bpmn/ │ │ │ ├── BpmnFlowParser.java │ │ │ └── converter/ │ │ │ ├── BaseFlowNodeConverter.java │ │ │ ├── BpmnConverter.java │ │ │ ├── FlowNodeConverter.java │ │ │ ├── activity/ │ │ │ │ ├── AdhocSubProcessConverter.java │ │ │ │ ├── BusinessRuleTaskConverter.java │ │ │ │ ├── CallActivityConverter.java │ │ │ │ ├── EventSubProcessConverter.java │ │ │ │ ├── ManualTaskConverter.java │ │ │ │ ├── ReceiveTaskConverter.java │ │ │ │ ├── ScriptTaskConverter.java │ │ │ │ ├── SendTaskConverter.java │ │ │ │ ├── ServiceTaskConverter.java │ │ │ │ ├── SubProcessConverter.java │ │ │ │ ├── TaskConverter.java │ │ │ │ ├── TransactionConverter.java │ │ │ │ └── UserTaskConverter.java │ │ │ ├── event/ │ │ │ │ ├── EndEventConverter.java │ │ │ │ ├── IntermediateCatchEventConverter.java │ │ │ │ ├── StartEventConverter.java │ │ │ │ └── ThrowEventConverter.java │ │ │ ├── gateway/ │ │ │ │ ├── ComplexGatewayConverter.java │ │ │ │ ├── EventGatewayConverter.java │ │ │ │ ├── ExclusiveGatewayConverter.java │ │ │ │ ├── InclusiveGatewayConverter.java │ │ │ │ └── ParallelGatewayConverter.java │ │ │ └── util/ │ │ │ ├── BpmnXmlConstants.java │ │ │ └── ConvertUtil.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jd/ │ │ │ └── easyflow/ │ │ │ └── flow/ │ │ │ └── bpmn/ │ │ │ ├── FlowBpmnTestSuite.java │ │ │ ├── cases/ │ │ │ │ ├── callactivity/ │ │ │ │ │ └── BpmnCallActivityTest.java │ │ │ │ ├── chain/ │ │ │ │ │ └── FlowChainTest.java │ │ │ │ ├── converter/ │ │ │ │ │ ├── BpmnConverterTest.java │ │ │ │ │ └── BpmnTestService.java │ │ │ │ ├── defaultflow/ │ │ │ │ │ └── DefaultFlowTest.java │ │ │ │ ├── extension/ │ │ │ │ │ └── BpmnExtensionTest.java │ │ │ │ ├── inclusive/ │ │ │ │ │ └── BpmnInclusiveTest.java │ │ │ │ ├── logflag/ │ │ │ │ │ └── LogFlagTest.java │ │ │ │ ├── parallel/ │ │ │ │ │ └── BpmnParallelTest.java │ │ │ │ ├── share/ │ │ │ │ │ └── nodeaction/ │ │ │ │ │ ├── TestEventNodeAction.java │ │ │ │ │ └── TestStepAction.java │ │ │ │ ├── subprocess/ │ │ │ │ │ └── BpmnSubProcessTest.java │ │ │ │ ├── terminate/ │ │ │ │ │ └── BpmnTerminateTest.java │ │ │ │ └── throwevent/ │ │ │ │ └── BpmnThrowEventTest.java │ │ │ ├── ext/ │ │ │ │ └── cases/ │ │ │ │ └── chain/ │ │ │ │ ├── ChainTest.java │ │ │ │ ├── ChainTestService.java │ │ │ │ ├── Plugin1.java │ │ │ │ ├── Plugin2.java │ │ │ │ └── Plugin3.java │ │ │ └── quickstart/ │ │ │ ├── QuickStart001Node01Action.java │ │ │ ├── QuickStart002Node01Action.java │ │ │ ├── QuickStart003Node01Action.java │ │ │ └── QuickStartTest.java │ │ └── resources/ │ │ ├── flow/ │ │ │ ├── cases/ │ │ │ │ ├── callactivity/ │ │ │ │ │ ├── flow_callactivity_test_001.bpmn │ │ │ │ │ └── flow_sub_of_called.bpmn │ │ │ │ ├── chain/ │ │ │ │ │ └── flow_chaintest1.bpmn │ │ │ │ ├── converter/ │ │ │ │ │ ├── compensate001.bpmn │ │ │ │ │ ├── flow001.json │ │ │ │ │ ├── flow_multiple_001.bpmn │ │ │ │ │ ├── process_1.bpmn │ │ │ │ │ └── process_1_simple.bpmn │ │ │ │ ├── defaultflow/ │ │ │ │ │ └── default_flow_001.bpmn │ │ │ │ ├── extension/ │ │ │ │ │ └── process_1.bpmn │ │ │ │ ├── inclusive/ │ │ │ │ │ ├── flow_inclusive001.bpmn │ │ │ │ │ └── flow_inclusive002.bpmn │ │ │ │ ├── logflag/ │ │ │ │ │ └── logflag_001.bpmn │ │ │ │ ├── parallel/ │ │ │ │ │ ├── flow_multi_parallel_subflow_001.bpmn │ │ │ │ │ └── flow_parallel001.bpmn │ │ │ │ ├── subprocess/ │ │ │ │ │ └── flow_subprocess_test_001.bpmn │ │ │ │ ├── terminate/ │ │ │ │ │ └── flow_terminate001.bpmn │ │ │ │ └── throwevent/ │ │ │ │ └── flow_throwevent001.bpmn │ │ │ ├── ext/ │ │ │ │ └── cases/ │ │ │ │ └── chain/ │ │ │ │ └── flow_chaintest1.bpmn │ │ │ └── quickstart/ │ │ │ └── quickstart_001.bpmn │ │ └── logback.xml │ └── static/ │ ├── plugins/ │ │ ├── bootstrap/ │ │ │ ├── css/ │ │ │ │ ├── bootstrap-grid.css │ │ │ │ ├── bootstrap-reboot.css │ │ │ │ └── bootstrap.css │ │ │ └── js/ │ │ │ ├── bootstrap.bundle.js │ │ │ └── bootstrap.js │ │ ├── bootstrap-multiselect/ │ │ │ ├── css/ │ │ │ │ └── bootstrap-multiselect.css │ │ │ ├── js/ │ │ │ │ └── bootstrap-multiselect.js │ │ │ └── less/ │ │ │ └── bootstrap-multiselect.less │ │ ├── bpmnjs/ │ │ │ ├── assets/ │ │ │ │ ├── bpmn-font/ │ │ │ │ │ └── css/ │ │ │ │ │ ├── bpmn-codes.css │ │ │ │ │ ├── bpmn-embedded.css │ │ │ │ │ └── bpmn.css │ │ │ │ ├── bpmn-js.css │ │ │ │ └── diagram-js.css │ │ │ ├── bpmn-modeler.development.js │ │ │ ├── bpmn-navigated-viewer.development.js │ │ │ ├── bpmn-viewer.development.js │ │ │ └── changeForEasyflow/ │ │ │ ├── changelog.txt │ │ │ └── rollup.config.js │ │ ├── flow/ │ │ │ ├── bpmn.js │ │ │ ├── flow.css │ │ │ └── flow.js │ │ ├── fontawesome/ │ │ │ └── css/ │ │ │ └── all.css │ │ ├── jquery/ │ │ │ └── jquery-3.6.0.js │ │ ├── jquery-validation/ │ │ │ └── jquery.validate.js │ │ └── std-common/ │ │ ├── common.css │ │ ├── common.js │ │ ├── messages_default.js │ │ └── messages_zh.js │ └── test/ │ └── JsonPropertyEditor.html ├── easyflow-flow-extension/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── jd/ │ │ └── easyflow/ │ │ └── flow/ │ │ └── ext/ │ │ ├── chain/ │ │ │ ├── BaseChainPlugin.java │ │ │ ├── ChainConstants.java │ │ │ ├── ChainInvoker.java │ │ │ └── TargetAction.java │ │ ├── check/ │ │ │ ├── CheckErrorItem.java │ │ │ ├── CheckParam.java │ │ │ ├── CheckResult.java │ │ │ ├── FlowChecker.java │ │ │ └── impl/ │ │ │ ├── AllFlowNodeLinkChecker.java │ │ │ ├── ExpNodeActionDotCheckFlowParseListener.java │ │ │ ├── FlowNodeLinkCheckConfig.java │ │ │ ├── FlowNodeLinkCheckFlowParseListener.java │ │ │ ├── FlowNodeLinkChecker.java │ │ │ ├── InfiniteLoopCheckFlowParseListener.java │ │ │ └── SubFlowCheckFlowParseListener.java │ │ ├── funcall/ │ │ │ ├── FunCallConstants.java │ │ │ ├── FunCallEventListener.java │ │ │ ├── FunCallFlowPostHandler.java │ │ │ ├── FunCallFlowPreHandler.java │ │ │ └── FunCallNodeAction.java │ │ ├── interrupt/ │ │ │ ├── ExtInterruptNodeAction.java │ │ │ ├── ExtNodeThreadHolder.java │ │ │ ├── ExtNodeThreadInterruptFlowFilter.java │ │ │ ├── ExtNodeThreadInterruptHelper.java │ │ │ └── ExtNodeThreadInterruptNodeFilter.java │ │ ├── model/ │ │ │ └── action/ │ │ │ ├── JavaScriptNodeAction.java │ │ │ └── ShellNodeAction.java │ │ ├── serialize/ │ │ │ ├── FlowParamAssembleData.java │ │ │ ├── FlowParamAssembleManager.java │ │ │ ├── FlowParamAssembler.java │ │ │ ├── FlowParamSerializeManager.java │ │ │ ├── FlowParamSerializer.java │ │ │ └── impl/ │ │ │ ├── BaseFlowParamSerializer.java │ │ │ ├── DefaultFlowParamAssembler.java │ │ │ ├── JavaFlowParamSerializer.java │ │ │ └── JsonFlowParamSerializer.java │ │ ├── session/ │ │ │ ├── FlowSession.java │ │ │ ├── FlowSessionConstants.java │ │ │ ├── FlowSessionImpl.java │ │ │ └── SessionMultiCheckPreHandler.java │ │ └── timeout/ │ │ ├── TimeoutFlowFilter.java │ │ ├── TimeoutNodeActionFilter.java │ │ └── TimeoutTemplate.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── jd/ │ │ └── easyflow/ │ │ └── flow/ │ │ └── ext/ │ │ ├── FlowExtTestSuite.java │ │ ├── cases/ │ │ │ ├── chain/ │ │ │ │ ├── ChainTest.java │ │ │ │ ├── ChainTestService.java │ │ │ │ ├── Filter1.java │ │ │ │ ├── Filter2.java │ │ │ │ ├── Filter3.java │ │ │ │ ├── Plugin1.java │ │ │ │ ├── Plugin2.java │ │ │ │ └── Plugin3.java │ │ │ ├── check/ │ │ │ │ ├── FlowNodeLinkCheckTest.java │ │ │ │ └── InfiniteLoopCheckTest.java │ │ │ ├── funcall/ │ │ │ │ ├── FunCallTest.java │ │ │ │ └── MockActionClass.java │ │ │ ├── interrupt/ │ │ │ │ └── ExtInterruptTest.java │ │ │ ├── model/ │ │ │ │ └── action/ │ │ │ │ ├── JavaScriptNodeActionTest.java │ │ │ │ └── ShellNodeActionTest.java │ │ │ ├── session/ │ │ │ │ ├── MockRequestAsyncCall.java │ │ │ │ └── SessionFlowTest.java │ │ │ └── timeout/ │ │ │ ├── TestTimeoutNodeAction.java │ │ │ └── TimeoutFilterTest.java │ │ └── serialize/ │ │ └── impl/ │ │ └── JsonFlowParamSerializerTest.java │ └── resources/ │ └── flow/ │ └── cases/ │ ├── chain/ │ │ └── flow_chaintest2.json │ ├── check/ │ │ ├── check_infinite_loop_001.json │ │ ├── check_infinite_loop_002.json │ │ ├── check_infinite_loop_003.json │ │ ├── check_isolated_001.json │ │ ├── check_isolated_002.json │ │ ├── check_nonEnd_001.json │ │ ├── check_nonStart_001.json │ │ ├── check_notexists_001.json │ │ └── check_preCheckNodesNotExists_001.json │ ├── funcall/ │ │ ├── funcall_test_001.json │ │ └── funcall_test_002.json │ ├── interrupt/ │ │ └── ext_interrupt_001.json │ ├── model/ │ │ └── action/ │ │ ├── javascript_test_001.json │ │ └── shell_test_001.json │ ├── session/ │ │ └── flow_session_001.json │ └── timeout/ │ ├── flow_timeout_001.json │ └── flow_timeout_002.json ├── easyflow-fsm/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── jd/ │ │ └── easyflow/ │ │ └── fsm/ │ │ ├── CoreFsmManager.java │ │ ├── Fsm.java │ │ ├── FsmContext.java │ │ ├── FsmManager.java │ │ ├── FsmParam.java │ │ ├── FsmResult.java │ │ ├── builder/ │ │ │ ├── FsmBuilder.java │ │ │ └── FsmContextBuilder.java │ │ ├── el/ │ │ │ ├── ElEvaluator.java │ │ │ ├── ElFactory.java │ │ │ ├── ElRootMap.java │ │ │ └── SpelEvaluator.java │ │ ├── event/ │ │ │ ├── ExpFsmEventListener.java │ │ │ ├── FsmEvent.java │ │ │ ├── FsmEventListener.java │ │ │ └── FsmEventTrigger.java │ │ ├── exception/ │ │ │ └── FsmException.java │ │ ├── filter/ │ │ │ ├── ExpFilter.java │ │ │ ├── Filter.java │ │ │ └── FilterChain.java │ │ ├── listener/ │ │ │ └── FsmCommonListener.java │ │ ├── model/ │ │ │ ├── Event.java │ │ │ ├── FsmLifeCycle.java │ │ │ ├── FsmPostHandler.java │ │ │ ├── FsmPreHandler.java │ │ │ ├── InitContext.java │ │ │ ├── PostHandleResult.java │ │ │ ├── State.java │ │ │ ├── Transition.java │ │ │ ├── TransitionAction.java │ │ │ ├── TransitionContext.java │ │ │ ├── TransitionExecutor.java │ │ │ ├── TransitionPostHandler.java │ │ │ ├── TransitionPreHandler.java │ │ │ ├── builder/ │ │ │ │ └── TransitionBuilder.java │ │ │ ├── check/ │ │ │ │ ├── CheckErrorItem.java │ │ │ │ ├── CheckParam.java │ │ │ │ ├── CheckResult.java │ │ │ │ ├── FsmChecker.java │ │ │ │ └── impl/ │ │ │ │ ├── AllFsmStateLinkChecker.java │ │ │ │ ├── FsmStateLinkCheckConfig.java │ │ │ │ ├── FsmStateLinkCheckFsmParseListener.java │ │ │ │ └── FsmStateLinkChecker.java │ │ │ ├── definition/ │ │ │ │ └── DefConstants.java │ │ │ └── impl/ │ │ │ ├── EventImpl.java │ │ │ ├── StateImpl.java │ │ │ ├── TransitionImpl.java │ │ │ ├── action/ │ │ │ │ ├── ActionResultEl.java │ │ │ │ └── ExpTransitionAction.java │ │ │ ├── fsm/ │ │ │ │ ├── post/ │ │ │ │ │ └── ExpFsmPostHandler.java │ │ │ │ └── pre/ │ │ │ │ └── ExpFsmPreHandler.java │ │ │ ├── post/ │ │ │ │ ├── AbstractTransitionPostHandler.java │ │ │ │ ├── ConditionalTransitionPostHandler.java │ │ │ │ ├── ExpTransitionPostHandler.java │ │ │ │ ├── FixedTransitionPostHandler.java │ │ │ │ └── TransitionContextResultPostHandler.java │ │ │ └── pre/ │ │ │ └── ExpTransitionPreHandler.java │ │ ├── parser/ │ │ │ ├── FsmParser.java │ │ │ └── event/ │ │ │ ├── ExpFsmParseEventListener.java │ │ │ ├── FsmParseEvent.java │ │ │ ├── FsmParseEventListener.java │ │ │ └── FsmParseEventTypes.java │ │ └── util/ │ │ ├── FsmConstants.java │ │ ├── FsmEventTypes.java │ │ ├── FsmIOUtil.java │ │ ├── FsmStateLinkUtil.java │ │ ├── FsmStringUtil.java │ │ ├── FsmUtil.java │ │ ├── JsonFacade.java │ │ ├── JsonFacadeJacksonImpl.java │ │ ├── JsonUtil.java │ │ ├── Pair.java │ │ ├── TransitionUtil.java │ │ └── Triple.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── jd/ │ │ └── easyflow/ │ │ └── fsm/ │ │ ├── FsmTestSuite.java │ │ ├── cases/ │ │ │ ├── check/ │ │ │ │ └── FsmStateLinkCheckTest.java │ │ │ ├── event/ │ │ │ │ └── MultipleEventTest.java │ │ │ ├── filter/ │ │ │ │ ├── FsmFilterTest.java │ │ │ │ ├── PreHandlerPostConstructTestFilter.java │ │ │ │ ├── StateTransitionPreHandlerTestFilter.java │ │ │ │ ├── TransitionEmptyFilter.java │ │ │ │ └── TransitionPreHandlerTestFilter.java │ │ │ ├── fsmmanager/ │ │ │ │ ├── PocFsm.java │ │ │ │ ├── PocFsmManager.java │ │ │ │ └── PocTransition.java │ │ │ ├── mockbiz/ │ │ │ │ ├── CompanyAuthService.java │ │ │ │ ├── FsmMockBizTest.java │ │ │ │ └── WhitelistService.java │ │ │ ├── parser/ │ │ │ │ ├── FsmParserTest.java │ │ │ │ └── TestTransitionAction.java │ │ │ ├── post/ │ │ │ │ ├── PostTest.java │ │ │ │ └── TestPostManuallyTransitionPreHandlerFilter.java │ │ │ └── postevent/ │ │ │ └── PostEventTest.java │ │ └── quickstart/ │ │ ├── AStateE1EventTstAction.java │ │ └── FsmQuickStartTest.java │ └── resources/ │ ├── fsm/ │ │ ├── cases/ │ │ │ ├── check/ │ │ │ │ ├── check_isolated_001.json │ │ │ │ ├── check_nonEndNoNext_001.json │ │ │ │ ├── check_nonStartNoPrevious_001.json │ │ │ │ └── check_notExists_001.json │ │ │ ├── filter/ │ │ │ │ ├── tst_empty_filter_001.json │ │ │ │ ├── tst_prehandler_filter_001.json │ │ │ │ ├── tst_prehandler_filter_002.json │ │ │ │ └── tst_prehandler_filter_003.json │ │ │ ├── mockbiz/ │ │ │ │ └── fsm_mockbiz.json │ │ │ ├── multipleevent/ │ │ │ │ └── fsm_multipleevent.json │ │ │ ├── parser/ │ │ │ │ ├── fsm_parser_test.json │ │ │ │ └── fsm_parser_test_create_exp.json │ │ │ ├── post/ │ │ │ │ └── fsm_post_manually.json │ │ │ └── postevent/ │ │ │ └── fsm_postevent.json │ │ └── quickstart/ │ │ └── quickstart_001.json │ └── logback.xml ├── easyflow-process/ │ ├── easyflow-process-admin/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jd/ │ │ │ └── easyflow/ │ │ │ ├── admin/ │ │ │ │ ├── form/ │ │ │ │ │ └── adapter/ │ │ │ │ │ └── page/ │ │ │ │ │ ├── FormTemplateAdminController.java │ │ │ │ │ └── converter/ │ │ │ │ │ └── PagerConverter.java │ │ │ │ ├── process/ │ │ │ │ │ └── adapter/ │ │ │ │ │ └── page/ │ │ │ │ │ ├── Bpmn2JsonController.java │ │ │ │ │ ├── ProcessDefinitionController.java │ │ │ │ │ ├── ProcessInstanceController.java │ │ │ │ │ ├── ProcessTaskController.java │ │ │ │ │ ├── converter/ │ │ │ │ │ │ ├── PagerConverter.java │ │ │ │ │ │ ├── ProcessDefinitionConverter.java │ │ │ │ │ │ ├── ProcessInstanceConverter.java │ │ │ │ │ │ └── ProcessTaskConverter.java │ │ │ │ │ ├── dto/ │ │ │ │ │ │ ├── CommonTaskExecuteDTO.java │ │ │ │ │ │ ├── CommonTaskProcessInstanceCreateDTO.java │ │ │ │ │ │ ├── ProcessDefDTO.java │ │ │ │ │ │ ├── ProcessInstanceInfoForPagerDTO.java │ │ │ │ │ │ └── ProcessTaskInfoForPagerDTO.java │ │ │ │ │ ├── extension/ │ │ │ │ │ │ └── UserGroupAdminExtension.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── AdminProcessConstants.java │ │ │ │ │ └── ClientErrorCode.java │ │ │ │ └── processunit/ │ │ │ │ └── adapter/ │ │ │ │ └── page/ │ │ │ │ ├── ProcessUnitController.java │ │ │ │ └── converter/ │ │ │ │ └── PagerConverter.java │ │ │ └── common/ │ │ │ └── adapter/ │ │ │ └── page/ │ │ │ ├── BasePageController.java │ │ │ ├── WebResponse.java │ │ │ └── WebResponseCode.java │ │ └── resources/ │ │ ├── easyflow/ │ │ │ └── messages/ │ │ │ ├── easyflow-admin-framework.properties │ │ │ ├── easyflow-admin-framework_zh.properties │ │ │ ├── easyflow-form-admin.properties │ │ │ ├── easyflow-form-admin_zh.properties │ │ │ ├── easyflow-process-admin.properties │ │ │ ├── easyflow-process-admin_zh.properties │ │ │ ├── easyflow-processunit-admin.properties │ │ │ └── easyflow-processunit-admin_zh.properties │ │ ├── static/ │ │ │ ├── css/ │ │ │ │ ├── common.css │ │ │ │ └── frame.css │ │ │ ├── js/ │ │ │ │ ├── biz.js │ │ │ │ ├── common.js │ │ │ │ ├── messages_default.js │ │ │ │ └── messages_zh.js │ │ │ └── plugins/ │ │ │ ├── bootstrap-multiselect/ │ │ │ │ ├── css/ │ │ │ │ │ └── bootstrap-multiselect.css │ │ │ │ ├── js/ │ │ │ │ │ └── bootstrap-multiselect.js │ │ │ │ └── less/ │ │ │ │ └── bootstrap-multiselect.less │ │ │ ├── bootstrap-table/ │ │ │ │ ├── bootstrap-table-locale-all.js │ │ │ │ ├── bootstrap-table-locale-all.min.js │ │ │ │ ├── bootstrap-table.css │ │ │ │ ├── bootstrap-table.js │ │ │ │ ├── bootstrap-table.min.css │ │ │ │ └── bootstrap-table.min.js │ │ │ ├── bootstrap4/ │ │ │ │ ├── css/ │ │ │ │ │ ├── bootstrap-grid.css │ │ │ │ │ ├── bootstrap-grid.css.map │ │ │ │ │ ├── bootstrap-grid.min.css │ │ │ │ │ ├── bootstrap-grid.min.css.map │ │ │ │ │ ├── bootstrap-reboot.css │ │ │ │ │ ├── bootstrap-reboot.css.map │ │ │ │ │ ├── bootstrap-reboot.min.css │ │ │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ │ │ ├── bootstrap.css │ │ │ │ │ ├── bootstrap.css.map │ │ │ │ │ ├── bootstrap.min.css │ │ │ │ │ └── bootstrap.min.css.map │ │ │ │ └── js/ │ │ │ │ ├── bootstrap.bundle.js │ │ │ │ ├── bootstrap.bundle.js.map │ │ │ │ ├── bootstrap.bundle.min.js │ │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.js.map │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── bootstrap.min.js.map │ │ │ ├── bpmnjs/ │ │ │ │ ├── assets/ │ │ │ │ │ ├── bpmn-font/ │ │ │ │ │ │ └── css/ │ │ │ │ │ │ ├── bpmn-codes.css │ │ │ │ │ │ ├── bpmn-embedded.css │ │ │ │ │ │ └── bpmn.css │ │ │ │ │ ├── bpmn-js.css │ │ │ │ │ └── diagram-js.css │ │ │ │ ├── bpmn-modeler.development.js │ │ │ │ ├── bpmn-modeler.production.min.js │ │ │ │ ├── bpmn-navigated-viewer.development.js │ │ │ │ ├── bpmn-navigated-viewer.production.min.js │ │ │ │ ├── bpmn-viewer.development.js │ │ │ │ ├── bpmn-viewer.production.min.js │ │ │ │ └── changeForEasyflow/ │ │ │ │ ├── changelog.txt │ │ │ │ └── rollup.config.js │ │ │ ├── dataview/ │ │ │ │ ├── dataview-app.js │ │ │ │ ├── dataview-biz.js │ │ │ │ ├── dataview-config.js │ │ │ │ ├── dataview-demo.html │ │ │ │ ├── dataview.css │ │ │ │ └── dataview.js │ │ │ ├── flow/ │ │ │ │ ├── bpmn.js │ │ │ │ ├── flow.css │ │ │ │ └── flow.js │ │ │ ├── fontawesome/ │ │ │ │ └── css/ │ │ │ │ ├── all.css │ │ │ │ └── all.min.css │ │ │ ├── jquery/ │ │ │ │ ├── jquery-3.6.0.js │ │ │ │ ├── jquery-3.6.0.min.js │ │ │ │ └── jquery-3.6.0.min.map │ │ │ └── jquery-validation/ │ │ │ ├── custom.validate.js │ │ │ ├── jquery.validate.js │ │ │ ├── jquery.validate.min.js │ │ │ └── messages_zh.js │ │ └── templates/ │ │ ├── easyflow/ │ │ │ ├── formtemplate/ │ │ │ │ ├── formTemplateAdd.html │ │ │ │ ├── formTemplateDetail.html │ │ │ │ ├── formTemplateEdit.html │ │ │ │ └── formTemplateList.html │ │ │ ├── process/ │ │ │ │ ├── processdefinition/ │ │ │ │ │ ├── processDefinitionAdd.html │ │ │ │ │ ├── processDefinitionDetail.html │ │ │ │ │ ├── processDefinitionEdit.html │ │ │ │ │ ├── processDefinitionList.html │ │ │ │ │ └── processSelectFrame.html │ │ │ │ ├── processinstance/ │ │ │ │ │ ├── commonTaskProcessInstanceAdd.html │ │ │ │ │ ├── processInstanceCreate.html │ │ │ │ │ ├── processInstanceDetail.html │ │ │ │ │ └── processInstanceList.html │ │ │ │ └── processtask/ │ │ │ │ ├── commonProcessTaskDetail.html │ │ │ │ ├── commonProcessTaskExecute.html │ │ │ │ ├── commonProcessTaskPassReject.html │ │ │ │ └── processTaskList.html │ │ │ └── processunit/ │ │ │ ├── processUnitExecutionDetail.html │ │ │ ├── processUnitExecutionList.html │ │ │ ├── processUnitInstanceDetail.html │ │ │ └── processUnitInstanceList.html │ │ └── layout.html │ ├── easyflow-process-api/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── jd/ │ │ └── easyflow/ │ │ ├── codegenerator/ │ │ │ └── adapter/ │ │ │ └── export/ │ │ │ ├── CodeGenerateExport.java │ │ │ └── dto/ │ │ │ ├── BatchGenerateParam.java │ │ │ ├── BatchGenerateResult.java │ │ │ ├── GenerateParam.java │ │ │ └── GenerateResult.java │ │ ├── common/ │ │ │ ├── adapter/ │ │ │ │ ├── export/ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ ├── ExportRequest.java │ │ │ │ │ │ ├── ExportResponse.java │ │ │ │ │ │ ├── ExportResponseCode.java │ │ │ │ │ │ └── pager/ │ │ │ │ │ │ ├── FieldEntry.java │ │ │ │ │ │ ├── PagerCondition.java │ │ │ │ │ │ ├── PagerConditionHelper.java │ │ │ │ │ │ ├── PagerResult.java │ │ │ │ │ │ └── SortEntry.java │ │ │ │ │ └── util/ │ │ │ │ │ └── ExportResponseUtil.java │ │ │ │ └── message/ │ │ │ │ └── BaseMessage.java │ │ │ └── client/ │ │ │ └── dto/ │ │ │ ├── ClientRequest.java │ │ │ ├── ClientResponse.java │ │ │ └── ClientResponseCode.java │ │ ├── form/ │ │ │ └── adapter/ │ │ │ └── export/ │ │ │ ├── FormTemplateExport.java │ │ │ └── dto/ │ │ │ └── FormTemplateDTO.java │ │ ├── process/ │ │ │ ├── adapter/ │ │ │ │ ├── export/ │ │ │ │ │ ├── ProcessDefinitionExport.java │ │ │ │ │ ├── ProcessInstanceExport.java │ │ │ │ │ ├── ProcessScheduleExport.java │ │ │ │ │ ├── ProcessTaskExport.java │ │ │ │ │ ├── ProcessToolExport.java │ │ │ │ │ ├── ProcessTransactionExport.java │ │ │ │ │ ├── constant/ │ │ │ │ │ │ ├── ProcessInstanceConstants.java │ │ │ │ │ │ ├── ProcessTaskConstants.java │ │ │ │ │ │ ├── ProcessTransactionConstants.java │ │ │ │ │ │ └── ShardingConstants.java │ │ │ │ │ ├── dto/ │ │ │ │ │ │ ├── definition/ │ │ │ │ │ │ │ ├── NodeDTO.java │ │ │ │ │ │ │ ├── ProcessDTO.java │ │ │ │ │ │ │ ├── ProcessDefinitionDTO.java │ │ │ │ │ │ │ ├── QueryNodeReq.java │ │ │ │ │ │ │ └── QueryProcessDefinitionReq.java │ │ │ │ │ │ ├── instance/ │ │ │ │ │ │ │ ├── CanCancelProcessInstanceReq.java │ │ │ │ │ │ │ ├── CanCancelProcessInstanceRes.java │ │ │ │ │ │ │ ├── CancelProcessInstanceReq.java │ │ │ │ │ │ │ ├── CancelProcessInstanceRes.java │ │ │ │ │ │ │ ├── CreateProcessInstanceReq.java │ │ │ │ │ │ │ ├── CreateProcessInstanceRes.java │ │ │ │ │ │ │ ├── LockProcessInstanceReq.java │ │ │ │ │ │ │ ├── PersistDTO.java │ │ │ │ │ │ │ ├── ProcessInstanceDTO.java │ │ │ │ │ │ │ ├── ProcessNodeExecutionDTO.java │ │ │ │ │ │ │ ├── ProcessNodeInstanceDTO.java │ │ │ │ │ │ │ ├── QueryOpenNodeInstanceReq.java │ │ │ │ │ │ │ ├── QueryProcessInstanceReq.java │ │ │ │ │ │ │ ├── QueryProcessNodeReqDTO.java │ │ │ │ │ │ │ ├── RollbackNodeReq.java │ │ │ │ │ │ │ ├── RollbackNodeRes.java │ │ │ │ │ │ │ ├── StdProcessContextDTO.java │ │ │ │ │ │ │ ├── StdProcessDTO.java │ │ │ │ │ │ │ └── UnlockProcessInstanceReq.java │ │ │ │ │ │ ├── schedule/ │ │ │ │ │ │ │ ├── ScheduleProcessReq.java │ │ │ │ │ │ │ └── ScheduleProcessRes.java │ │ │ │ │ │ ├── task/ │ │ │ │ │ │ │ ├── CanWithdrawTaskReq.java │ │ │ │ │ │ │ ├── CanWithdrawTaskRes.java │ │ │ │ │ │ │ ├── ExecuteTaskReq.java │ │ │ │ │ │ │ ├── ExecuteTaskRes.java │ │ │ │ │ │ │ ├── ProcessTaskAssignDTO.java │ │ │ │ │ │ │ ├── ProcessTaskDTO.java │ │ │ │ │ │ │ ├── ProcessTaskEventDTO.java │ │ │ │ │ │ │ ├── QueryTaskReq.java │ │ │ │ │ │ │ ├── TaskOperateCmd.java │ │ │ │ │ │ │ ├── TaskOperateCmdResult.java │ │ │ │ │ │ │ ├── TaskOperateCommand.java │ │ │ │ │ │ │ ├── TaskOperateCommandResult.java │ │ │ │ │ │ │ ├── TaskOperationsReq.java │ │ │ │ │ │ │ ├── TaskOperationsRes.java │ │ │ │ │ │ │ ├── WithdrawTaskReq.java │ │ │ │ │ │ │ ├── WithdrawTaskRes.java │ │ │ │ │ │ │ ├── cmd/ │ │ │ │ │ │ │ │ ├── TaskCreateCmd.java │ │ │ │ │ │ │ │ └── TaskExecuteCmd.java │ │ │ │ │ │ │ └── command/ │ │ │ │ │ │ │ ├── MultipleTaskCreateCommand.java │ │ │ │ │ │ │ ├── MultipleTaskCreateCommandResult.java │ │ │ │ │ │ │ ├── TaskCreateCommand.java │ │ │ │ │ │ │ ├── TaskCreateCommandResult.java │ │ │ │ │ │ │ ├── TaskExecuteCommand.java │ │ │ │ │ │ │ └── TaskExecuteCommandResult.java │ │ │ │ │ │ └── transaction/ │ │ │ │ │ │ ├── BatchObjectIdReq.java │ │ │ │ │ │ ├── BatchObjectIdRes.java │ │ │ │ │ │ ├── TxnCommand.java │ │ │ │ │ │ ├── TxnCommandResult.java │ │ │ │ │ │ ├── TxnReq.java │ │ │ │ │ │ ├── TxnRes.java │ │ │ │ │ │ └── command/ │ │ │ │ │ │ ├── BatchUpdateTxnCommand.java │ │ │ │ │ │ ├── BatchUpdateTxnCommandResult.java │ │ │ │ │ │ ├── InterruptTxnCommand.java │ │ │ │ │ │ └── InterruptTxnCommandResult.java │ │ │ │ │ └── enums/ │ │ │ │ │ └── ProcessExportResponseCode.java │ │ │ │ └── message/ │ │ │ │ ├── ProcessInstanceStatusMessage.java │ │ │ │ ├── ProcessNodeInstanceStatusMessage.java │ │ │ │ └── ProcessTaskStatusMessage.java │ │ │ └── spi/ │ │ │ └── client/ │ │ │ ├── ProcessScheduleClientService.java │ │ │ ├── ProcessTaskClientService.java │ │ │ ├── dto/ │ │ │ │ ├── ProcessExecuteReq.java │ │ │ │ ├── ProcessExecuteRes.java │ │ │ │ ├── ProcessTaskCallReq.java │ │ │ │ └── ProcessTaskCallRes.java │ │ │ └── enums/ │ │ │ └── ProcessClientResponseCode.java │ │ └── processunit/ │ │ ├── adapter/ │ │ │ └── export/ │ │ │ ├── ProcessUnitExport.java │ │ │ └── dto/ │ │ │ ├── ExecPolicyDTO.java │ │ │ ├── ProcessUnitCreateReq.java │ │ │ ├── ProcessUnitCreateRes.java │ │ │ ├── ProcessUnitDTO.java │ │ │ ├── ProcessUnitExecuteReq.java │ │ │ ├── ProcessUnitExecuteRes.java │ │ │ ├── ProcessUnitExecutionDTO.java │ │ │ ├── ProcessUnitExecutionQueryReq.java │ │ │ ├── ProcessUnitInstanceDTO.java │ │ │ ├── ProcessUnitInstanceQueryReq.java │ │ │ ├── ProcessUnitQueryReq.java │ │ │ ├── ProcessUnitUpdateReq.java │ │ │ ├── ProcessUnitUpdateRes.java │ │ │ ├── ShardingInfoDTO.java │ │ │ ├── ShardingInfoQueryReq.java │ │ │ ├── ShutdownReq.java │ │ │ ├── ShutdownRes.java │ │ │ ├── SyncAfterCallReq.java │ │ │ ├── SyncAfterCallRes.java │ │ │ ├── SyncBeforeCallReq.java │ │ │ └── SyncBeforeCallRes.java │ │ └── spi/ │ │ └── client/ │ │ ├── ProcessUnitClientService.java │ │ └── dto/ │ │ ├── AsyncCallRealReq.java │ │ └── AsyncCallRealRes.java │ ├── easyflow-process-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jd/ │ │ │ └── easyflow/ │ │ │ ├── codegenerator/ │ │ │ │ └── client/ │ │ │ │ ├── CodeGenerateHelper.java │ │ │ │ └── CodeGenerateParam.java │ │ │ ├── process/ │ │ │ │ └── client/ │ │ │ │ ├── common/ │ │ │ │ │ └── PropertiesUtil.java │ │ │ │ ├── flow/ │ │ │ │ │ ├── StdFlowEngineImpl.java │ │ │ │ │ ├── StdFlowProcessConstants.java │ │ │ │ │ ├── StdProcessFlowEngineFilter.java │ │ │ │ │ ├── StdProcessFlowFilter.java │ │ │ │ │ ├── StdProcessFlowListener.java │ │ │ │ │ ├── StdProcessFlowNodeFilter.java │ │ │ │ │ ├── asyncnode/ │ │ │ │ │ │ ├── CreateAsyncProcessUnitNodeAction.java │ │ │ │ │ │ └── ExecuteAsyncProcessUnitNodeEl.java │ │ │ │ │ ├── compensate/ │ │ │ │ │ │ ├── StdProcessCompensateFlowFilter.java │ │ │ │ │ │ ├── StdProcessCompensateHelper.java │ │ │ │ │ │ └── StdProcessCompensateNodeFilter.java │ │ │ │ │ ├── eventinfo/ │ │ │ │ │ │ └── StdFlowProcessEventInfoListener.java │ │ │ │ │ ├── flowretry/ │ │ │ │ │ │ ├── FlowRetryEl.java │ │ │ │ │ │ └── FlowRetryFilter.java │ │ │ │ │ ├── noderetry/ │ │ │ │ │ │ └── NodeActionRetryFilter.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── StdFlowEl.java │ │ │ │ │ └── StdProcessFlowUtil.java │ │ │ │ ├── fsm/ │ │ │ │ │ ├── StdFsmManager.java │ │ │ │ │ ├── StdFsmProcessConstants.java │ │ │ │ │ ├── StdProcessFsmFilter.java │ │ │ │ │ ├── StdProcessFsmListener.java │ │ │ │ │ ├── StdProcessFsmManagerFilter.java │ │ │ │ │ ├── StdProcessFsmTransitionFilter.java │ │ │ │ │ └── eventinfo/ │ │ │ │ │ └── StdFsmProcessEventInfoListener.java │ │ │ │ ├── runtime/ │ │ │ │ │ ├── CacheObject.java │ │ │ │ │ ├── ObjectIdManager.java │ │ │ │ │ ├── ProcessCache.java │ │ │ │ │ ├── ProcessConverter.java │ │ │ │ │ ├── ProcessInclusiveCheckHelper.java │ │ │ │ │ ├── ProcessRuntimeErrorCode.java │ │ │ │ │ ├── ProcessRuntimeManager.java │ │ │ │ │ ├── ProcessRuntimeService.java │ │ │ │ │ ├── StdNode.java │ │ │ │ │ ├── StdNodeContext.java │ │ │ │ │ ├── StdProcess.java │ │ │ │ │ ├── StdProcessConstants.java │ │ │ │ │ ├── StdProcessContext.java │ │ │ │ │ ├── core/ │ │ │ │ │ │ ├── Node.java │ │ │ │ │ │ ├── NodeContext.java │ │ │ │ │ │ ├── Process.java │ │ │ │ │ │ ├── ProcessContext.java │ │ │ │ │ │ ├── ProcessEngine.java │ │ │ │ │ │ ├── ProcessEngineImpl.java │ │ │ │ │ │ ├── ProcessException.java │ │ │ │ │ │ ├── ProcessParam.java │ │ │ │ │ │ └── ProcessResult.java │ │ │ │ │ └── eventinfo/ │ │ │ │ │ ├── NodeInstanceEventInfo.java │ │ │ │ │ ├── ProcessEventInfoCache.java │ │ │ │ │ ├── ProcessEventInfoListener.java │ │ │ │ │ └── ProcessInstanceEventInfo.java │ │ │ │ ├── schedule/ │ │ │ │ │ └── ProcessScheduleClientServiceImpl.java │ │ │ │ ├── task/ │ │ │ │ │ ├── TaskConstants.java │ │ │ │ │ ├── TaskErrorCode.java │ │ │ │ │ ├── biz/ │ │ │ │ │ │ ├── TaskBizService.java │ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ │ ├── TaskBizParam.java │ │ │ │ │ │ │ └── TaskBizResult.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── CallTaskBizService.java │ │ │ │ │ │ ├── FlowTaskBizService.java │ │ │ │ │ │ ├── RuleAndCallTaskBizService.java │ │ │ │ │ │ └── RuleTaskBizService.java │ │ │ │ │ ├── flow/ │ │ │ │ │ │ ├── BaseTaskNodeAction.java │ │ │ │ │ │ ├── TaskCreateAndExecuteNodeAction.java │ │ │ │ │ │ ├── TaskCreateNodeAction.java │ │ │ │ │ │ ├── TaskExecuteNodeAction.java │ │ │ │ │ │ └── TaskFlowListener.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── TaskClientManager.java │ │ │ │ │ │ ├── TaskClientOperation.java │ │ │ │ │ │ ├── TaskClientService.java │ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ │ ├── TaskCreateParam.java │ │ │ │ │ │ │ └── TaskExecuteParam.java │ │ │ │ │ │ └── operation/ │ │ │ │ │ │ ├── BaseTaskOperation.java │ │ │ │ │ │ ├── ExecuteTaskOperation.java │ │ │ │ │ │ └── SaveTaskOperation.java │ │ │ │ │ └── util/ │ │ │ │ │ └── TaskEl.java │ │ │ │ └── util/ │ │ │ │ ├── ElUtil.java │ │ │ │ ├── ExportRequestBuilder.java │ │ │ │ ├── Pair.java │ │ │ │ ├── ProcessConstants.java │ │ │ │ ├── ProcessUtil.java │ │ │ │ └── StdProcessUtil.java │ │ │ └── processunit/ │ │ │ └── client/ │ │ │ ├── ProcessUnitClient.java │ │ │ ├── ProcessUnitHelper.java │ │ │ ├── bean/ │ │ │ │ ├── ExecContext.java │ │ │ │ ├── ExecParam.java │ │ │ │ ├── ExecPolicy.java │ │ │ │ ├── ExecResult.java │ │ │ │ ├── ProcessUnit.java │ │ │ │ ├── ProcessUnitCreateAndExecuteReq.java │ │ │ │ ├── ProcessUnitCreateAndExecuteRes.java │ │ │ │ ├── ProcessUnitExecution.java │ │ │ │ └── ProcessUnitInstance.java │ │ │ ├── converter/ │ │ │ │ └── ProcessUnitConverter.java │ │ │ ├── gateway/ │ │ │ │ └── ProcessUnitServerGateway.java │ │ │ ├── message/ │ │ │ │ └── ProcessUnitClientServiceMessageListener.java │ │ │ ├── service/ │ │ │ │ ├── ProcessUnitExecutor.java │ │ │ │ └── impl/ │ │ │ │ ├── AsyncClientProcessUnitExecutor.java │ │ │ │ ├── BaseProcessUnitExecutor.java │ │ │ │ ├── ProcessUnitClientAsyncExecuteSpel.java │ │ │ │ ├── ProcessUnitClientServiceImpl.java │ │ │ │ └── SyncClientProcessUnitExecutor.java │ │ │ └── util/ │ │ │ └── ProcessUnitConstants.java │ │ └── resources/ │ │ └── easyflow/ │ │ ├── easyflow-spring-process-client-processunit.xml │ │ ├── easyflow-spring-process-client.xml │ │ └── easyflow-spring-processunit-client.xml │ ├── easyflow-process-common/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jd/ │ │ │ └── easyflow/ │ │ │ ├── common/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── BaseRequest.java │ │ │ │ │ ├── BaseResponse.java │ │ │ │ │ ├── DataRequest.java │ │ │ │ │ ├── DataResponse.java │ │ │ │ │ └── pager/ │ │ │ │ │ ├── FieldEntry.java │ │ │ │ │ ├── PagerCondition.java │ │ │ │ │ ├── PagerConditionHelper.java │ │ │ │ │ ├── PagerResult.java │ │ │ │ │ └── SortEntry.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── EasyFlowException.java │ │ │ │ │ ├── UserException.java │ │ │ │ │ └── util/ │ │ │ │ │ └── ExceptionUtil.java │ │ │ │ └── util/ │ │ │ │ ├── AssertUtils.java │ │ │ │ ├── CommonErrorCode.java │ │ │ │ ├── IAssertUtils.java │ │ │ │ ├── MessageUtil.java │ │ │ │ └── UUIDUtil.java │ │ │ ├── el/ │ │ │ │ ├── ElEvaluator.java │ │ │ │ ├── ElFactory.java │ │ │ │ └── SpelEvaluator.java │ │ │ ├── message/ │ │ │ │ ├── BaseMessageListener.java │ │ │ │ ├── Message.java │ │ │ │ ├── MessageListener.java │ │ │ │ ├── MessageSendService.java │ │ │ │ ├── impl/ │ │ │ │ │ └── NoopMessageSendServiceImpl.java │ │ │ │ ├── spring/ │ │ │ │ │ ├── EventMessage.java │ │ │ │ │ ├── EventMessageListener.java │ │ │ │ │ └── SpringMessageSendServiceImpl.java │ │ │ │ └── util/ │ │ │ │ └── MsgBizIdWrapper.java │ │ │ ├── net/ │ │ │ │ └── NetUtils.java │ │ │ ├── objects/ │ │ │ │ └── factory/ │ │ │ │ ├── DefaultObjectFactory.java │ │ │ │ ├── ObjectFactory.java │ │ │ │ ├── ObjectFactorys.java │ │ │ │ ├── ObjectProvider.java │ │ │ │ └── spring/ │ │ │ │ └── SpringObjectProvider.java │ │ │ ├── properties/ │ │ │ │ ├── PropertiesAccessor.java │ │ │ │ ├── PropertyUtil.java │ │ │ │ ├── classpath/ │ │ │ │ │ └── ClassPathPropertiesAccessor.java │ │ │ │ └── spring/ │ │ │ │ ├── SpringEnvPropertiesAccessor.java │ │ │ │ └── SpringPropertySourcesPropertiesAccessor.java │ │ │ ├── spel/ │ │ │ │ └── SpelHelper.java │ │ │ └── utils/ │ │ │ └── json/ │ │ │ ├── JSON.java │ │ │ ├── JsonFacade.java │ │ │ ├── JsonFacadeJacksonImpl.java │ │ │ └── JsonSerializeConfig.java │ │ └── resources/ │ │ └── easyflow/ │ │ └── easyflow-spring-message-spring.xml │ ├── easyflow-process-sample/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jd/ │ │ │ └── easyflow/ │ │ │ └── integration/ │ │ │ ├── all/ │ │ │ │ └── admin/ │ │ │ │ ├── IndexController.java │ │ │ │ ├── filter/ │ │ │ │ │ ├── JakartaSampleAuthFilter.java │ │ │ │ │ └── SampleAuthFilter.java │ │ │ │ ├── process/ │ │ │ │ │ └── SampleUserGroupAdminExtensionImpl.java │ │ │ │ └── sample/ │ │ │ │ └── SampleUserHolder.java │ │ │ └── open/ │ │ │ └── IntegrationOpenApplication.java │ │ ├── resources/ │ │ │ ├── application-open-all.yml │ │ │ ├── config/ │ │ │ │ └── sampleUserGroup.json │ │ │ ├── flow/ │ │ │ │ ├── client/ │ │ │ │ │ └── flow_empty.json │ │ │ │ └── server/ │ │ │ │ ├── flow_task_001.bpmn │ │ │ │ └── flow_task_001.json │ │ │ ├── fsm/ │ │ │ │ └── client/ │ │ │ │ └── fsm_empty.json │ │ │ ├── logback.xml │ │ │ └── spring/ │ │ │ └── open/ │ │ │ ├── easyflow-spring-open-all.xml │ │ │ ├── spring-datasource-sharding.xml │ │ │ └── spring-datasource.xml │ │ └── script/ │ │ └── sql/ │ │ ├── create_all_table.sql │ │ ├── drop_all_table.sql │ │ ├── sample_form_template.sql │ │ ├── sample_form_template_zh_CN.sql │ │ └── sample_sharding.sql │ ├── easyflow-process-server/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jd/ │ │ │ │ └── easyflow/ │ │ │ │ ├── action/ │ │ │ │ │ ├── Action.java │ │ │ │ │ ├── ActionAspect.java │ │ │ │ │ ├── ActionConstants.java │ │ │ │ │ ├── ActionInfo.java │ │ │ │ │ └── SimpleExportAopFunction.java │ │ │ │ ├── alert/ │ │ │ │ │ ├── AlertClient.java │ │ │ │ │ ├── AlertParam.java │ │ │ │ │ ├── AlertUtil.java │ │ │ │ │ └── LogAlertClient.java │ │ │ │ ├── cache/ │ │ │ │ │ ├── CacheService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── LocalCacheServiceImpl.java │ │ │ │ │ ├── NoopCacheServiceImpl.java │ │ │ │ │ └── UnsupportedCacheServiceImpl.java │ │ │ │ ├── codegenerator/ │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ └── export/ │ │ │ │ │ │ └── CodeGenerateExportImpl.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── constant/ │ │ │ │ │ │ │ └── CodeGeneratorConstants.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ │ └── SequenceEntity.java │ │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ │ └── CodeGenerateReq.java │ │ │ │ │ │ ├── repository/ │ │ │ │ │ │ │ └── SequenceRepository.java │ │ │ │ │ │ └── service/ │ │ │ │ │ │ ├── CodeGenerateDomainService.java │ │ │ │ │ │ └── CodeGenerator.java │ │ │ │ │ └── infrastructure/ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ └── SequenceConverter.java │ │ │ │ │ ├── persistence/ │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ └── SequenceMapper.java │ │ │ │ │ │ └── po/ │ │ │ │ │ │ └── Sequence.java │ │ │ │ │ └── repository/ │ │ │ │ │ └── SequenceRepositoryImpl.java │ │ │ │ ├── common/ │ │ │ │ │ └── app/ │ │ │ │ │ ├── AppResponseTransformer.java │ │ │ │ │ └── dto/ │ │ │ │ │ ├── AppRequest.java │ │ │ │ │ └── AppResponse.java │ │ │ │ ├── form/ │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ └── export/ │ │ │ │ │ │ ├── FormTemplateExportImpl.java │ │ │ │ │ │ └── converter/ │ │ │ │ │ │ ├── FormTemplateConverter.java │ │ │ │ │ │ └── PagerConverter.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ └── entity/ │ │ │ │ │ │ │ └── FormTemplateEntity.java │ │ │ │ │ │ ├── repository/ │ │ │ │ │ │ │ └── FormTemplateRepository.java │ │ │ │ │ │ └── service/ │ │ │ │ │ │ └── FormTemplateDomainService.java │ │ │ │ │ └── infrastructure/ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ └── FormTemplateConverter.java │ │ │ │ │ ├── persistence/ │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ └── FormTemplateMapper.java │ │ │ │ │ │ └── po/ │ │ │ │ │ │ └── FormTemplate.java │ │ │ │ │ └── repository/ │ │ │ │ │ └── FormTemplateRepositoryImpl.java │ │ │ │ ├── lock/ │ │ │ │ │ ├── LockService.java │ │ │ │ │ ├── LockUtil.java │ │ │ │ │ ├── Locker.java │ │ │ │ │ ├── db/ │ │ │ │ │ │ └── DbLockService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── BaseLockService.java │ │ │ │ │ ├── LockerImpl.java │ │ │ │ │ └── NoopLocker.java │ │ │ │ ├── process/ │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ └── export/ │ │ │ │ │ │ ├── ProcessDefinitionExportImpl.java │ │ │ │ │ │ ├── ProcessInstanceExportImpl.java │ │ │ │ │ │ ├── ProcessScheduleExportImpl.java │ │ │ │ │ │ ├── ProcessTaskExportImpl.java │ │ │ │ │ │ ├── ProcessToolExportImpl.java │ │ │ │ │ │ ├── ProcessTransactionExportImpl.java │ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ │ ├── PagerConverter.java │ │ │ │ │ │ │ ├── ProcessDefinitionConverter.java │ │ │ │ │ │ │ ├── ProcessInstanceConverter.java │ │ │ │ │ │ │ ├── ProcessScheduleConverter.java │ │ │ │ │ │ │ ├── ProcessTaskConverter.java │ │ │ │ │ │ │ └── ProcessToolConverter.java │ │ │ │ │ │ └── sharding/ │ │ │ │ │ │ ├── ProcessInstanceExportShardingImpl.java │ │ │ │ │ │ ├── ProcessTaskExportShardingImpl.java │ │ │ │ │ │ ├── ProcessToolExportShardingImpl.java │ │ │ │ │ │ └── ProcessTransactionExportShardingImpl.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── constant/ │ │ │ │ │ │ │ ├── ProcessConstants.java │ │ │ │ │ │ │ ├── ProcessDefinitionConstants.java │ │ │ │ │ │ │ ├── ProcessTaskConstants.java │ │ │ │ │ │ │ └── StdProcessConstants.java │ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ │ ├── ProcessInstanceDomainConverter.java │ │ │ │ │ │ │ └── ProcessTaskDomainConverter.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ │ ├── ProcessDefinitionEntity.java │ │ │ │ │ │ │ │ ├── ProcessInstanceEntity.java │ │ │ │ │ │ │ │ ├── ProcessNodeExecutionEntity.java │ │ │ │ │ │ │ │ ├── ProcessNodeInstanceEntity.java │ │ │ │ │ │ │ │ ├── ProcessTaskAssignEntity.java │ │ │ │ │ │ │ │ ├── ProcessTaskEntity.java │ │ │ │ │ │ │ │ └── ProcessTaskEventEntity.java │ │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ │ └── ProcessResponseCode.java │ │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ │ ├── CreateProcessInstanceReqVO.java │ │ │ │ │ │ │ ├── CreateProcessInstanceResVO.java │ │ │ │ │ │ │ ├── CreateProcessTaskVO.java │ │ │ │ │ │ │ ├── DoExecuteProcessTaskReqVO.java │ │ │ │ │ │ │ ├── ExecuteProcessTaskReqVO.java │ │ │ │ │ │ │ ├── ProcessDefinitionForListVO.java │ │ │ │ │ │ │ ├── QueryProcessNodeReq.java │ │ │ │ │ │ │ ├── QueryTaskAssignReqVO.java │ │ │ │ │ │ │ ├── QueryTaskEventReqVO.java │ │ │ │ │ │ │ ├── QueryTaskReqVO.java │ │ │ │ │ │ │ ├── RollbackNodeReqVO.java │ │ │ │ │ │ │ ├── ScheduleProcessReqVO.java │ │ │ │ │ │ │ ├── ScheduleProcessResVO.java │ │ │ │ │ │ │ └── TaskInfoForPagerVO.java │ │ │ │ │ │ ├── repository/ │ │ │ │ │ │ │ ├── ProcessRepository.java │ │ │ │ │ │ │ └── ProcessTaskRepository.java │ │ │ │ │ │ └── service/ │ │ │ │ │ │ ├── ProcessDefinitionDomainService.java │ │ │ │ │ │ ├── ProcessInstanceDomainService.java │ │ │ │ │ │ ├── ProcessScheduleDomainService.java │ │ │ │ │ │ ├── ProcessScheduleInvoker.java │ │ │ │ │ │ ├── ProcessTaskDomainService.java │ │ │ │ │ │ ├── ProcessToolDomainService.java │ │ │ │ │ │ ├── TaskOperateDomainService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── ProcessScheduleSpiInvoker.java │ │ │ │ │ └── infrastructure/ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ ├── ProcessConverter.java │ │ │ │ │ │ └── ProcessTaskConverter.java │ │ │ │ │ ├── persistence/ │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── ProcessDefinitionMapper.java │ │ │ │ │ │ │ ├── ProcessInstanceMapper.java │ │ │ │ │ │ │ ├── ProcessNodeExecutionMapper.java │ │ │ │ │ │ │ ├── ProcessNodeInstanceMapper.java │ │ │ │ │ │ │ ├── ProcessTaskAssignMapper.java │ │ │ │ │ │ │ ├── ProcessTaskEventMapper.java │ │ │ │ │ │ │ └── ProcessTaskMapper.java │ │ │ │ │ │ └── po/ │ │ │ │ │ │ ├── ProcessDefinition.java │ │ │ │ │ │ ├── ProcessInstance.java │ │ │ │ │ │ ├── ProcessNodeExecution.java │ │ │ │ │ │ ├── ProcessNodeInstance.java │ │ │ │ │ │ ├── ProcessTask.java │ │ │ │ │ │ ├── ProcessTaskAssign.java │ │ │ │ │ │ └── ProcessTaskEvent.java │ │ │ │ │ ├── repository/ │ │ │ │ │ │ ├── ProcessRepositoryImpl.java │ │ │ │ │ │ └── ProcessTaskRepositoryImpl.java │ │ │ │ │ └── sharding/ │ │ │ │ │ └── ProcessShardingDataQuerier.java │ │ │ │ ├── processunit/ │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ ├── export/ │ │ │ │ │ │ │ ├── ProcessUnitExportImpl.java │ │ │ │ │ │ │ └── converter/ │ │ │ │ │ │ │ ├── PagerConverter.java │ │ │ │ │ │ │ └── ProcessUnitConverter.java │ │ │ │ │ │ ├── message/ │ │ │ │ │ │ │ ├── ProcessUnitCreateMessageListener.java │ │ │ │ │ │ │ ├── ProcessUnitExecuteMessageListener.java │ │ │ │ │ │ │ └── ProcessUnitUpdateMessageListener.java │ │ │ │ │ │ └── task/ │ │ │ │ │ │ ├── ProcessUnitAutoRunFlagUpdateTask.java │ │ │ │ │ │ ├── ProcessUnitAutoRunTask.java │ │ │ │ │ │ ├── ProcessUnitShardingCompareTask.java │ │ │ │ │ │ └── ProcessUnitShardingMigrateTask.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── constant/ │ │ │ │ │ │ │ ├── ContextDataKeys.java │ │ │ │ │ │ │ └── ProcessUnitConstants.java │ │ │ │ │ │ ├── gateway/ │ │ │ │ │ │ │ └── ProcessUnitClientGateway.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ │ │ └── ProcessUnitExecuteConverter.java │ │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ │ ├── ProcessUnitEntity.java │ │ │ │ │ │ │ │ ├── ProcessUnitExecutionEntity.java │ │ │ │ │ │ │ │ └── ProcessUnitInstanceEntity.java │ │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ │ └── ProcessUnitErrorCodeEnum.java │ │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ │ ├── BatchExecuteReq.java │ │ │ │ │ │ │ ├── BatchExecuteRes.java │ │ │ │ │ │ │ ├── ExecContext.java │ │ │ │ │ │ │ ├── ExecParam.java │ │ │ │ │ │ │ ├── ExecPolicy.java │ │ │ │ │ │ │ ├── ExecResult.java │ │ │ │ │ │ │ ├── ExecuteReq.java │ │ │ │ │ │ │ ├── ExecuteRes.java │ │ │ │ │ │ │ ├── ProcessUnitExecuteMessage.java │ │ │ │ │ │ │ ├── ProcessUnitInstanceKey.java │ │ │ │ │ │ │ ├── QueryAsyncInstanceVO.java │ │ │ │ │ │ │ ├── ShardingCompareContext.java │ │ │ │ │ │ │ ├── ShardingMigrateContext.java │ │ │ │ │ │ │ ├── SyncAfterCallReq.java │ │ │ │ │ │ │ ├── SyncAfterCallRes.java │ │ │ │ │ │ │ ├── SyncBeforeCallReq.java │ │ │ │ │ │ │ └── SyncBeforeCallRes.java │ │ │ │ │ │ ├── repository/ │ │ │ │ │ │ │ └── ProcessUnitRepository.java │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ ├── ProcessUnitExecutionPersistHandler.java │ │ │ │ │ │ │ ├── ProcessUnitExecutor.java │ │ │ │ │ │ │ ├── ProcessUnitService.java │ │ │ │ │ │ │ ├── ProcessUnitShardingToolService.java │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ ├── AsyncServerProcessUnitExecutor.java │ │ │ │ │ │ │ ├── BaseProcessUnitExecutor.java │ │ │ │ │ │ │ ├── SyncServerProcessUnitExecutor.java │ │ │ │ │ │ │ └── execution/ │ │ │ │ │ │ │ ├── DummyPersistHandler.java │ │ │ │ │ │ │ ├── ExecutionPersister.java │ │ │ │ │ │ │ ├── SyncPersistHandler.java │ │ │ │ │ │ │ └── ThreadPoolAsyncPersistHandler.java │ │ │ │ │ │ └── support/ │ │ │ │ │ │ ├── LockManager.java │ │ │ │ │ │ └── PuTransactionTemplate.java │ │ │ │ │ └── infrastructure/ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ └── ProcessUnitConverter.java │ │ │ │ │ ├── gateway/ │ │ │ │ │ │ ├── ProcessUnitClientGatewayImpl.java │ │ │ │ │ │ └── ProcessUnitClientServiceMessageImpl.java │ │ │ │ │ ├── persistence/ │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── ProcessUnitExecutionMapper.java │ │ │ │ │ │ │ └── ProcessUnitInstanceMapper.java │ │ │ │ │ │ └── po/ │ │ │ │ │ │ ├── ProcessUnitExecution.java │ │ │ │ │ │ └── ProcessUnitInstance.java │ │ │ │ │ └── repository/ │ │ │ │ │ ├── ProcessUnitConfigCache.java │ │ │ │ │ ├── ProcessUnitConfigFileCache.java │ │ │ │ │ └── ProcessUnitRepositoryImpl.java │ │ │ │ └── sharding/ │ │ │ │ ├── CurrentShardInfo.java │ │ │ │ ├── ShardingHolder.java │ │ │ │ ├── config/ │ │ │ │ │ ├── DataSourceInfo.java │ │ │ │ │ ├── ShardGroupInfo.java │ │ │ │ │ ├── ShardInfo.java │ │ │ │ │ ├── ShardingConfig.java │ │ │ │ │ ├── ShardingConfigManager.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ShardingConfigManagerFileImpl.java │ │ │ │ │ └── ShardingConfigManagerImpl.java │ │ │ │ ├── datasource/ │ │ │ │ │ ├── DataSourceFactory.java │ │ │ │ │ ├── ShardingDataSource.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── HikariDataSourceFactory.java │ │ │ │ ├── mybatis/ │ │ │ │ │ ├── ShardingNotSupportedMapper.java │ │ │ │ │ └── ShardingSupportedMapper.java │ │ │ │ ├── service/ │ │ │ │ │ ├── ExportRequestShardComputer.java │ │ │ │ │ ├── ShardingComputeResult.java │ │ │ │ │ ├── ShardingData.java │ │ │ │ │ ├── ShardingDataQueryer.java │ │ │ │ │ ├── ShardingService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── ShardingServiceImpl.java │ │ │ │ └── transaction/ │ │ │ │ └── ShardingSpringManagedTransactionFactory.java │ │ │ └── resources/ │ │ │ └── easyflow/ │ │ │ ├── easyflow-spring-codegenerator-server.xml │ │ │ ├── easyflow-spring-form-server.xml │ │ │ ├── easyflow-spring-lock-db.xml │ │ │ ├── easyflow-spring-process-server-sharding.xml │ │ │ ├── easyflow-spring-process-server.xml │ │ │ ├── easyflow-spring-processunit-server-sharding.xml │ │ │ ├── easyflow-spring-processunit-server.xml │ │ │ ├── mapper/ │ │ │ │ ├── FormTemplateMapper.xml │ │ │ │ ├── ProcessDefinitionMapper.xml │ │ │ │ ├── ProcessInstanceMapper.xml │ │ │ │ ├── ProcessNodeExecutionMapper.xml │ │ │ │ ├── ProcessNodeInstanceMapper.xml │ │ │ │ ├── ProcessTaskAssignMapper.xml │ │ │ │ ├── ProcessTaskEventMapper.xml │ │ │ │ ├── ProcessTaskMapper.xml │ │ │ │ ├── ProcessUnitExecutionMapper.xml │ │ │ │ ├── ProcessUnitInstanceMapper.xml │ │ │ │ └── SequenceMapper.xml │ │ │ ├── messages/ │ │ │ │ ├── easyflow-process-server.properties │ │ │ │ └── easyflow-process-server_zh.properties │ │ │ └── shardingmapper/ │ │ │ ├── ProcessInstanceMapper.xml │ │ │ ├── ProcessNodeExecutionMapper.xml │ │ │ ├── ProcessNodeInstanceMapper.xml │ │ │ ├── ProcessTaskAssignMapper.xml │ │ │ ├── ProcessTaskEventMapper.xml │ │ │ ├── ProcessTaskMapper.xml │ │ │ ├── ProcessUnitExecutionMapper.xml │ │ │ └── ProcessUnitInstanceMapper.xml │ │ └── script/ │ │ ├── codegenerator-latest.sql │ │ ├── form-latest.sql │ │ ├── lock-latest.sql │ │ ├── process-latest.sql │ │ └── process-latest_zh.sql │ └── pom.xml └── pom.xml