实例介绍
【实例简介】
compileflow:🎨 高性能流程编排引擎是阿里巴巴Halo平台的核心业务流程引擎,在交易场景中表现出色。这是一个高性能流程编排引擎的源码下载。Compileflow是一个非常轻量、高性能、可集成和可扩展的流程引擎。Compileflow流程引擎是淘宝商业流程管理(TBBPM)的重要组成部分,致力于优化阿里巴巴的淘宝市场操作。具体而言,Compileflow通过将流程文件转换为生成、编译和执行Java代码来专注于纯内存执行和无状态流程引擎。目前,Compileflow为阿里巴巴的电子商务店铺和交易等多个核心系统提供支持。Compileflow允许开发人员通过流程编辑器设计自己的业务流程,该编辑器可以可视化复杂的业务逻辑,并在设计师和开发工程师之间建立桥梁。
【实例截图】
【核心代码】
文件清单
└── compileflow-e96a05224f71bf4aa3d9fb37bba85764b2fc153f
├── appveyor.yml
├── doc
│ ├── compileflow-logo-large.png
│ ├── compileflow-logo.png
│ ├── image
│ │ ├── known_users
│ │ │ ├── alibaba.png
│ │ │ ├── alipay.png
│ │ │ ├── aliyun.png
│ │ │ ├── taobao.png
│ │ │ └── tmall.png
│ │ ├── ktv_demo_s1.png
│ │ ├── ktv_demo_s2_basic_setting.png
│ │ ├── ktv_demo_s2_params_setting.png
│ │ ├── ktv_demo_s3.png
│ │ ├── ktv_demo_s5_auto_pay_action_setting.png
│ │ ├── ktv_demo_s5_auto_pay.png
│ │ ├── ktv_demo_s5_auto_sing_action_setting.png
│ │ ├── ktv_demo_s5_auto_sing.png
│ │ ├── ktv_demo_s5_decision_action_setting.png
│ │ ├── ktv_demo_s5_decision_branch.png
│ │ ├── ktv_demo_s5_decision_left_branch.png
│ │ ├── ktv_demo_s5_decision.png
│ │ ├── ktv_demo_s5_decison_right_branch.png
│ │ ├── ktv_demo_s5_java_code.png
│ │ ├── ktv_demo_s5_loop_action_setting.png
│ │ ├── ktv_demo_s5_loop.png
│ │ ├── ktv_demo_s5_script_original_action_setting.png
│ │ ├── ktv_demo_s5_script_original.png
│ │ ├── ktv_demo_s5_script_promotion_action_setting.png
│ │ └── ktv_demo_s5_script_promotion.png
│ └── README.md
├── LICENSE
├── mvnw
├── mvnw.cmd
├── pom.xml
├── README_CN.md
├── README.md
├── scripts
│ ├── bash-buddy
│ ├── bump_version
│ ├── integration_test
│ └── show_spotbugs_report
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── alibaba
│ │ └── compileflow
│ │ └── engine
│ │ ├── common
│ │ │ ├── ClassWrapper.java
│ │ │ ├── CompileFlowException.java
│ │ │ ├── constant
│ │ │ │ ├── FlowModelType.java
│ │ │ │ └── ProcessType.java
│ │ │ ├── DirectedGraph.java
│ │ │ ├── extension
│ │ │ │ ├── annotation
│ │ │ │ │ ├── Extension.java
│ │ │ │ │ ├── ExtensionPoint.java
│ │ │ │ │ ├── PluginDependency.java
│ │ │ │ │ ├── PluginDependsOn.java
│ │ │ │ │ └── Plugin.java
│ │ │ │ ├── config
│ │ │ │ │ ├── PluginConfig.java
│ │ │ │ │ └── PluginDependencyConfig.java
│ │ │ │ ├── constant
│ │ │ │ │ ├── FlatType.java
│ │ │ │ │ ├── PluginStatus.java
│ │ │ │ │ └── ReducePolicy.java
│ │ │ │ ├── descriptor
│ │ │ │ │ └── PluginDependencyDescriptor.java
│ │ │ │ ├── exception
│ │ │ │ │ └── PluginException.java
│ │ │ │ ├── ExtensionInvoker.java
│ │ │ │ ├── ExtensionManager.java
│ │ │ │ ├── filter
│ │ │ │ │ └── ReduceFilter.java
│ │ │ │ ├── helper
│ │ │ │ │ └── PropertyHelper.java
│ │ │ │ ├── IExtensionPoint.java
│ │ │ │ ├── invoker
│ │ │ │ │ ├── FastMethodInvoker.java
│ │ │ │ │ └── MethodInvoker.java
│ │ │ │ ├── Plugin.java
│ │ │ │ ├── PluginManager.java
│ │ │ │ └── spec
│ │ │ │ ├── BaseSpec.java
│ │ │ │ ├── ClassExtensionPointSpec.java
│ │ │ │ ├── ClassExtensionSpec.java
│ │ │ │ ├── ExtensionPointSpec.java
│ │ │ │ ├── ExtensionSpec.java
│ │ │ │ ├── MethodExtensionPointSpec.java
│ │ │ │ └── MethodExtensionSpec.java
│ │ │ ├── Lifecycle.java
│ │ │ ├── MultiMap.java
│ │ │ └── util
│ │ │ ├── ArrayUtils.java
│ │ │ ├── ClassLoaderUtils.java
│ │ │ ├── ClassUtils.java
│ │ │ ├── DataType.java
│ │ │ ├── FileUtils.java
│ │ │ ├── IOUtils.java
│ │ │ ├── MapUtils.java
│ │ │ ├── MethodUtils.java
│ │ │ ├── ObjectFactory.java
│ │ │ ├── PackageUtils.java
│ │ │ ├── ParamChecker.java
│ │ │ ├── ProcessUtils.java
│ │ │ └── VarUtils.java
│ │ ├── definition
│ │ │ ├── bpmn
│ │ │ │ ├── Activity.java
│ │ │ │ ├── AdHocOrdering.java
│ │ │ │ ├── AdHocSubProcess.java
│ │ │ │ ├── Artifact.java
│ │ │ │ ├── Assignment.java
│ │ │ │ ├── AssociationDirection.java
│ │ │ │ ├── Association.java
│ │ │ │ ├── Auditing.java
│ │ │ │ ├── BaseElement.java
│ │ │ │ ├── BaseElementWithMixedContent.java
│ │ │ │ ├── BoundaryEvent.java
│ │ │ │ ├── BpmnModelConstants.java
│ │ │ │ ├── BpmnModel.java
│ │ │ │ ├── BusinessRuleTask.java
│ │ │ │ ├── CallableElement.java
│ │ │ │ ├── CallActivity.java
│ │ │ │ ├── CallChoreography.java
│ │ │ │ ├── CallConversation.java
│ │ │ │ ├── CancelEventDefinition.java
│ │ │ │ ├── CatchEvent.java
│ │ │ │ ├── Category.java
│ │ │ │ ├── CategoryValue.java
│ │ │ │ ├── ChoreographyActivity.java
│ │ │ │ ├── Choreography.java
│ │ │ │ ├── ChoreographyLoopType.java
│ │ │ │ ├── ChoreographyTask.java
│ │ │ │ ├── Collaboration.java
│ │ │ │ ├── CompensateEventDefinition.java
│ │ │ │ ├── ComplexBehaviorDefinition.java
│ │ │ │ ├── ComplexGateway.java
│ │ │ │ ├── ConditionalEventDefinition.java
│ │ │ │ ├── ConversationAssociation.java
│ │ │ │ ├── Conversation.java
│ │ │ │ ├── ConversationLink.java
│ │ │ │ ├── ConversationNode.java
│ │ │ │ ├── CorrelationKey.java
│ │ │ │ ├── CorrelationPropertyBinding.java
│ │ │ │ ├── CorrelationProperty.java
│ │ │ │ ├── CorrelationPropertyRetrievalExpression.java
│ │ │ │ ├── CorrelationSubscription.java
│ │ │ │ ├── DataAssociation.java
│ │ │ │ ├── DataInputAssociation.java
│ │ │ │ ├── DataInput.java
│ │ │ │ ├── DataObject.java
│ │ │ │ ├── DataObjectReference.java
│ │ │ │ ├── DataOutputAssociation.java
│ │ │ │ ├── DataOutput.java
│ │ │ │ ├── DataState.java
│ │ │ │ ├── DataStore.java
│ │ │ │ ├── DataStoreReference.java
│ │ │ │ ├── Definitions.java
│ │ │ │ ├── Documentation.java
│ │ │ │ ├── EndEvent.java
│ │ │ │ ├── EndPoint.java
│ │ │ │ ├── ErrorEventDefinition.java
│ │ │ │ ├── Error.java
│ │ │ │ ├── EscalationEventDefinition.java
│ │ │ │ ├── Escalation.java
│ │ │ │ ├── EventBasedGateway.java
│ │ │ │ ├── EventBasedGatewayType.java
│ │ │ │ ├── EventDefinition.java
│ │ │ │ ├── Event.java
│ │ │ │ ├── ExclusiveGateway.java
│ │ │ │ ├── Expression.java
│ │ │ │ ├── ExtensionElements.java
│ │ │ │ ├── Extension.java
│ │ │ │ ├── FlowElement.java
│ │ │ │ ├── FlowNode.java
│ │ │ │ ├── FormalExpression.java
│ │ │ │ ├── GatewayDirection.java
│ │ │ │ ├── Gateway.java
│ │ │ │ ├── GlobalBusinessRuleTask.java
│ │ │ │ ├── GlobalChoreographyTask.java
│ │ │ │ ├── GlobalConversation.java
│ │ │ │ ├── GlobalManualTask.java
│ │ │ │ ├── GlobalScriptTask.java
│ │ │ │ ├── GlobalTask.java
│ │ │ │ ├── GlobalUserTask.java
│ │ │ │ ├── Group.java
│ │ │ │ ├── HumanPerformer.java
│ │ │ │ ├── ImplicitThrowEvent.java
│ │ │ │ ├── Import.java
│ │ │ │ ├── InclusiveGateway.java
│ │ │ │ ├── InputOutputBinding.java
│ │ │ │ ├── InputOutputSpecification.java
│ │ │ │ ├── InputSet.java
│ │ │ │ ├── Interface.java
│ │ │ │ ├── IntermediateCatchEvent.java
│ │ │ │ ├── IntermediateThrowEvent.java
│ │ │ │ ├── ItemDefinition.java
│ │ │ │ ├── ItemKind.java
│ │ │ │ ├── Lane.java
│ │ │ │ ├── LaneSet.java
│ │ │ │ ├── LinkEventDefinition.java
│ │ │ │ ├── LoopCharacteristics.java
│ │ │ │ ├── ManualTask.java
│ │ │ │ ├── MessageEventDefinition.java
│ │ │ │ ├── MessageFlowAssociation.java
│ │ │ │ ├── MessageFlow.java
│ │ │ │ ├── Message.java
│ │ │ │ ├── Monitoring.java
│ │ │ │ ├── MultiInstanceFlowCondition.java
│ │ │ │ ├── MultiInstanceLoopCharacteristics.java
│ │ │ │ ├── Operation.java
│ │ │ │ ├── OutputSet.java
│ │ │ │ ├── ParallelGateway.java
│ │ │ │ ├── ParticipantAssociation.java
│ │ │ │ ├── Participant.java
│ │ │ │ ├── ParticipantMultiplicity.java
│ │ │ │ ├── PartnerEntity.java
│ │ │ │ ├── PartnerRole.java
│ │ │ │ ├── Performer.java
│ │ │ │ ├── PotentialOwner.java
│ │ │ │ ├── Process.java
│ │ │ │ ├── ProcessType.java
│ │ │ │ ├── Property.java
│ │ │ │ ├── ReceiveTask.java
│ │ │ │ ├── RelationshipDirection.java
│ │ │ │ ├── Relationship.java
│ │ │ │ ├── Rendering.java
│ │ │ │ ├── ResourceAssignmentExpression.java
│ │ │ │ ├── Resource.java
│ │ │ │ ├── ResourceParameterBinding.java
│ │ │ │ ├── ResourceParameter.java
│ │ │ │ ├── ResourceRole.java
│ │ │ │ ├── RootElement.java
│ │ │ │ ├── Script.java
│ │ │ │ ├── ScriptTask.java
│ │ │ │ ├── SendTask.java
│ │ │ │ ├── SequenceFlow.java
│ │ │ │ ├── ServiceTask.java
│ │ │ │ ├── SignalEventDefinition.java
│ │ │ │ ├── Signal.java
│ │ │ │ ├── StandardLoopCharacteristics.java
│ │ │ │ ├── StartEvent.java
│ │ │ │ ├── SubChoreography.java
│ │ │ │ ├── SubConversation.java
│ │ │ │ ├── SubProcess.java
│ │ │ │ ├── Task.java
│ │ │ │ ├── TerminateEventDefinition.java
│ │ │ │ ├── TextAnnotation.java
│ │ │ │ ├── Text.java
│ │ │ │ ├── ThrowEvent.java
│ │ │ │ ├── TimerEventDefinition.java
│ │ │ │ ├── Transaction.java
│ │ │ │ └── UserTask.java
│ │ │ ├── common
│ │ │ │ ├── AbstractElement.java
│ │ │ │ ├── AbstractFlowModel.java
│ │ │ │ ├── action
│ │ │ │ │ ├── HasAction.java
│ │ │ │ │ ├── HasInOutAction.java
│ │ │ │ │ ├── IActionHandle.java
│ │ │ │ │ ├── IAction.java
│ │ │ │ │ ├── IInAction.java
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── ActionHandle.java
│ │ │ │ │ │ ├── Action.java
│ │ │ │ │ │ ├── FlowActionHandle.java
│ │ │ │ │ │ ├── InAction.java
│ │ │ │ │ │ ├── JavaActionHandle.java
│ │ │ │ │ │ ├── OutAction.java
│ │ │ │ │ │ ├── ScriptActionHandle.java
│ │ │ │ │ │ ├── SpringBeanActionHandle.java
│ │ │ │ │ │ └── SubBpmActionHandle.java
│ │ │ │ │ └── IOutAction.java
│ │ │ │ ├── ElementContainer.java
│ │ │ │ ├── Element.java
│ │ │ │ ├── EndElement.java
│ │ │ │ ├── extension
│ │ │ │ │ ├── AbstractExtensionElement.java
│ │ │ │ │ ├── ExtensionAttribute.java
│ │ │ │ │ └── ExtensionElement.java
│ │ │ │ ├── FlowModel.java
│ │ │ │ ├── GatewayElement.java
│ │ │ │ ├── HasExpression.java
│ │ │ │ ├── HasVar.java
│ │ │ │ ├── NodeContainer.java
│ │ │ │ ├── Node.java
│ │ │ │ ├── StartElement.java
│ │ │ │ ├── Stateless.java
│ │ │ │ ├── TransitionNode.java
│ │ │ │ ├── TransitionSupport.java
│ │ │ │ ├── var
│ │ │ │ │ ├── impl
│ │ │ │ │ │ └── Var.java
│ │ │ │ │ └── IVar.java
│ │ │ │ ├── VarSupport.java
│ │ │ │ └── WaitElement.java
│ │ │ └── tbbpm
│ │ │ ├── ActionNode.java
│ │ │ ├── ActivityNode.java
│ │ │ ├── AutoTaskNode.java
│ │ │ ├── BaseNode.java
│ │ │ ├── BpmNode.java
│ │ │ ├── BreakNode.java
│ │ │ ├── ContinueNode.java
│ │ │ ├── DecisionNode.java
│ │ │ ├── DiagramNode.java
│ │ │ ├── EndNode.java
│ │ │ ├── EventNode.java
│ │ │ ├── FlowElementNode.java
│ │ │ ├── FlowListener.java
│ │ │ ├── FlowNode.java
│ │ │ ├── GatewayNode.java
│ │ │ ├── InOutActionNode.java
│ │ │ ├── LoopProcessNode.java
│ │ │ ├── NoteNode.java
│ │ │ ├── ScriptTaskNode.java
│ │ │ ├── StartNode.java
│ │ │ ├── SubBpmNode.java
│ │ │ ├── TbbpmModelConstants.java
│ │ │ ├── TbbpmModel.java
│ │ │ ├── Transition.java
│ │ │ ├── WaitEventTaskNode.java
│ │ │ └── WaitTaskNode.java
│ │ ├── FlowModel.java
│ │ ├── process
│ │ │ ├── impl
│ │ │ │ ├── AbstractProcessEngine.java
│ │ │ │ ├── BpmnProcessEngineImpl.java
│ │ │ │ └── TbbpmProcessEngineImpl.java
│ │ │ └── preruntime
│ │ │ ├── compiler
│ │ │ │ ├── CompileOption.java
│ │ │ │ ├── Compiler.java
│ │ │ │ ├── FlowClassLoaderFactory.java
│ │ │ │ ├── impl
│ │ │ │ │ ├── CompileConstants.java
│ │ │ │ │ ├── CompilerImpl.java
│ │ │ │ │ ├── DefaultFlowClassLoaderFactory.java
│ │ │ │ │ ├── FlowUrlClassLoader.java
│ │ │ │ │ └── support
│ │ │ │ │ ├── EcJavaCompiler.java
│ │ │ │ │ └── JdkJavaCompiler.java
│ │ │ │ ├── JavaCompiler.java
│ │ │ │ └── JavaSource.java
│ │ │ ├── converter
│ │ │ │ ├── FlowModelConverter.java
│ │ │ │ └── impl
│ │ │ │ ├── BpmnModelConverter.java
│ │ │ │ ├── parser
│ │ │ │ │ ├── constants
│ │ │ │ │ │ ├── ActionType.java
│ │ │ │ │ │ ├── ImplementTypeConstants.java
│ │ │ │ │ │ └── ParseConstants.java
│ │ │ │ │ ├── FlowElementParser.java
│ │ │ │ │ ├── FlowParser.java
│ │ │ │ │ ├── FlowStreamParser.java
│ │ │ │ │ ├── model
│ │ │ │ │ │ ├── AbstractFlowSource.java
│ │ │ │ │ │ ├── FileFlowStreamSource.java
│ │ │ │ │ │ ├── FlowSource.java
│ │ │ │ │ │ ├── FlowStreamSource.java
│ │ │ │ │ │ ├── ParseConfig.java
│ │ │ │ │ │ ├── ParseContext.java
│ │ │ │ │ │ ├── ResourceFlowStreamSource.java
│ │ │ │ │ │ ├── StringFlowStreamSource.java
│ │ │ │ │ │ ├── UrlFlowStreamSource.java
│ │ │ │ │ │ ├── XMLSource.java
│ │ │ │ │ │ └── XMLStreamReaderSource.java
│ │ │ │ │ ├── Parser.java
│ │ │ │ │ ├── provider
│ │ │ │ │ │ ├── ParserProvider.java
│ │ │ │ │ │ ├── ParserProviderSupport.java
│ │ │ │ │ │ └── support
│ │ │ │ │ │ ├── AbstractFlowElementParserProvider.java
│ │ │ │ │ │ ├── AbstractParserProvider.java
│ │ │ │ │ │ ├── BpmnElementParserProvider.java
│ │ │ │ │ │ └── TbbpmElementParserProvider.java
│ │ │ │ │ └── support
│ │ │ │ │ ├── AbstractBpmnElementParser.java
│ │ │ │ │ ├── AbstractFlowElementParser.java
│ │ │ │ │ ├── AbstractFlowStreamParser.java
│ │ │ │ │ ├── AbstractTbbpmElementParser.java
│ │ │ │ │ ├── bpmn
│ │ │ │ │ │ ├── BpmnStreamParser.java
│ │ │ │ │ │ ├── CallActivityParser.java
│ │ │ │ │ │ ├── ConditionExpressionParser.java
│ │ │ │ │ │ ├── DefinitionsParser.java
│ │ │ │ │ │ ├── EndEventParser.java
│ │ │ │ │ │ ├── ExclusiveGatewayParser.java
│ │ │ │ │ │ ├── ExtensionElementsParser.java
│ │ │ │ │ │ ├── InclusiveGatewayParser.java
│ │ │ │ │ │ ├── MultiInstanceLoopCharacteristicsParser.java
│ │ │ │ │ │ ├── ParallelGatewayParser.java
│ │ │ │ │ │ ├── ProcessParser.java
│ │ │ │ │ │ ├── ReceiveTaskParser.java
│ │ │ │ │ │ ├── ScriptParser.java
│ │ │ │ │ │ ├── ScriptTaskParser.java
│ │ │ │ │ │ ├── SequenceFlowParser.java
│ │ │ │ │ │ ├── ServiceTaskParser.java
│ │ │ │ │ │ ├── SignalParser.java
│ │ │ │ │ │ ├── StandardLoopCharacteristicsParser.java
│ │ │ │ │ │ ├── StartEventParser.java
│ │ │ │ │ │ ├── SubProcessParser.java
│ │ │ │ │ │ └── UserTaskParser.java
│ │ │ │ │ └── tbbpm
│ │ │ │ │ ├── ActionHandleParser.java
│ │ │ │ │ ├── ActionParser.java
│ │ │ │ │ ├── AutoTaskParser.java
│ │ │ │ │ ├── BpmParser.java
│ │ │ │ │ ├── BreakParser.java
│ │ │ │ │ ├── ContinueParser.java
│ │ │ │ │ ├── DecisionParser.java
│ │ │ │ │ ├── EndParser.java
│ │ │ │ │ ├── FlowActionHandleParser.java
│ │ │ │ │ ├── InActionParser.java
│ │ │ │ │ ├── JavaActionHandleParser.java
│ │ │ │ │ ├── LoopProcessParser.java
│ │ │ │ │ ├── MvelActionHandleParser.java
│ │ │ │ │ ├── NoteParser.java
│ │ │ │ │ ├── OutActionParser.java
│ │ │ │ │ ├── QLActionHandleParser.java
│ │ │ │ │ ├── ScriptActionHandleParser.java
│ │ │ │ │ ├── ScriptTaskParser.java
│ │ │ │ │ ├── SpringBeanActionHandleParser.java
│ │ │ │ │ ├── StartParser.java
│ │ │ │ │ ├── SubBpmParser.java
│ │ │ │ │ ├── TbbpmStreamParser.java
│ │ │ │ │ ├── TransitionParser.java
│ │ │ │ │ ├── VarParser.java
│ │ │ │ │ ├── WaitEventTaskParser.java
│ │ │ │ │ └── WaitTaskParser.java
│ │ │ │ ├── TbbpmModelConverter.java
│ │ │ │ └── writer
│ │ │ │ ├── FlowElementWriter.java
│ │ │ │ ├── FlowStreamWriter.java
│ │ │ │ ├── provider
│ │ │ │ │ ├── FlowElementWriterProvider.java
│ │ │ │ │ └── support
│ │ │ │ │ ├── AbstractFlowElementWriterProvider.java
│ │ │ │ │ └── TbbpmFlowElementWriterProvider.java
│ │ │ │ └── support
│ │ │ │ ├── AbstractFlowElementWriter.java
│ │ │ │ ├── AbstractFlowStreamWriter.java
│ │ │ │ ├── AbstractFlowWriterSupport.java
│ │ │ │ └── tbbpm
│ │ │ │ ├── AbstractActionHandleWriter.java
│ │ │ │ ├── AbstractTbbpmActionNodeWriter.java
│ │ │ │ ├── AbstractTbbpmFlowElementWriter.java
│ │ │ │ ├── AbstractTbbpmInOutActionNodeWriter.java
│ │ │ │ ├── AutoTaskWriter.java
│ │ │ │ ├── BreakWriter.java
│ │ │ │ ├── ContinueWriter.java
│ │ │ │ ├── DecisionWriter.java
│ │ │ │ ├── EndWriter.java
│ │ │ │ ├── JavaActionHandleWriter.java
│ │ │ │ ├── LoopProcessWriter.java
│ │ │ │ ├── NodeContainerWriter.java
│ │ │ │ ├── NoteWriter.java
│ │ │ │ ├── ScriptActionHandleWriter.java
│ │ │ │ ├── ScriptTaskWriter.java
│ │ │ │ ├── SpringBeanActionHandleWriter.java
│ │ │ │ ├── StartWriter.java
│ │ │ │ ├── SubBpmWriter.java
│ │ │ │ ├── TbbpmStreamWriter.java
│ │ │ │ ├── WaitEventTaskWriter.java
│ │ │ │ └── WaitTaskWriter.java
│ │ │ ├── generator
│ │ │ │ ├── bean
│ │ │ │ │ ├── BeanHolder.java
│ │ │ │ │ ├── BeanProvider.java
│ │ │ │ │ ├── SpringApplicationContextProvider.java
│ │ │ │ │ └── SpringBeanHolder.java
│ │ │ │ ├── code
│ │ │ │ │ ├── AbstractCodeTargetSupport.java
│ │ │ │ │ ├── ClassTarget.java
│ │ │ │ │ ├── CodeTarget.java
│ │ │ │ │ ├── CodeTargetSupport.java
│ │ │ │ │ ├── FieldTarget.java
│ │ │ │ │ ├── MethodTarget.java
│ │ │ │ │ └── ParamTarget.java
│ │ │ │ ├── constansts
│ │ │ │ │ ├── ActionType.java
│ │ │ │ │ ├── CodeConstants.java
│ │ │ │ │ ├── MethodConstants.java
│ │ │ │ │ ├── Modifier.java
│ │ │ │ │ └── SymbolConstants.java
│ │ │ │ ├── factory
│ │ │ │ │ ├── GeneratorFactory.java
│ │ │ │ │ └── GeneratorProviderFactory.java
│ │ │ │ ├── Generator.java
│ │ │ │ ├── impl
│ │ │ │ │ ├── AbstractActionNodeGenerator.java
│ │ │ │ │ ├── AbstractGenerator.java
│ │ │ │ │ ├── AbstractInOutActionNodeGenerator.java
│ │ │ │ │ ├── AbstractNodeGenerator.java
│ │ │ │ │ ├── AbstractRuntimeGenerator.java
│ │ │ │ │ ├── AbstractWrapperGenerator.java
│ │ │ │ │ ├── action
│ │ │ │ │ │ ├── AbstractActionGenerator.java
│ │ │ │ │ │ ├── AbstractScriptActionGenerator.java
│ │ │ │ │ │ ├── ActionGenerator.java
│ │ │ │ │ │ ├── ActionMethodGenerator.java
│ │ │ │ │ │ └── support
│ │ │ │ │ │ ├── JavaActionGenerator.java
│ │ │ │ │ │ ├── MVELActionGenerator.java
│ │ │ │ │ │ ├── QLActionGenerator.java
│ │ │ │ │ │ ├── SpringActionGenerator.java
│ │ │ │ │ │ └── SubBpmActionGenerator.java
│ │ │ │ │ ├── bpmn
│ │ │ │ │ │ ├── AbstractBpmnActionNodeGenerator.java
│ │ │ │ │ │ ├── AbstractBpmnInOutActionNodeGenerator.java
│ │ │ │ │ │ ├── AbstractBpmnNodeGenerator.java
│ │ │ │ │ │ ├── EndEventGenerator.java
│ │ │ │ │ │ ├── ExclusiveGatewayGenerator.java
│ │ │ │ │ │ ├── ReceiveTaskGenerator.java
│ │ │ │ │ │ ├── ScriptTaskGenerator.java
│ │ │ │ │ │ ├── ServiceTaskGenerator.java
│ │ │ │ │ │ ├── StandardLoopCharacteristicsGenerator.java
│ │ │ │ │ │ ├── StartEventGenerator.java
│ │ │ │ │ │ └── SubProcessGenerator.java
│ │ │ │ │ ├── container
│ │ │ │ │ │ ├── AbstractContainerGenerator.java
│ │ │ │ │ │ └── ContainerGenerator.java
│ │ │ │ │ ├── EventTriggerMethodGenerator.java
│ │ │ │ │ ├── tbbpm
│ │ │ │ │ │ ├── AbstractTbbpmActionNodeGenerator.java
│ │ │ │ │ │ ├── AbstractTbbpmInOutActionNodeGenerator.java
│ │ │ │ │ │ ├── AbstractTbbpmNodeGenerator.java
│ │ │ │ │ │ ├── AutoTaskGenerator.java
│ │ │ │ │ │ ├── BreakGenerator.java
│ │ │ │ │ │ ├── ContinueGenerator.java
│ │ │ │ │ │ ├── DecisionGenerator.java
│ │ │ │ │ │ ├── EndGenerator.java
│ │ │ │ │ │ ├── LoopProcessGenerator.java
│ │ │ │ │ │ ├── NoteGenerator.java
│ │ │ │ │ │ ├── ScriptTaskGenerator.java
│ │ │ │ │ │ ├── StartGenerator.java
│ │ │ │ │ │ ├── SubBpmGenerator.java
│ │ │ │ │ │ ├── WaitEventTaskGenerator.java
│ │ │ │ │ │ └── WaitTaskGenerator.java
│ │ │ │ │ └── TriggerMethodGenerator.java
│ │ │ │ ├── provider
│ │ │ │ │ ├── AbstractNodeGeneratorProvider.java
│ │ │ │ │ ├── ActionGeneratorProvider.java
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── BpmnNodeGeneratorProvider.java
│ │ │ │ │ │ └── TbbpmNodeGeneratorProvider.java
│ │ │ │ │ └── NodeGeneratorProvider.java
│ │ │ │ └── script
│ │ │ │ ├── impl
│ │ │ │ │ ├── MvelExecutor.java
│ │ │ │ │ └── QLExecutor.java
│ │ │ │ ├── ScriptExecutor.java
│ │ │ │ └── ScriptExecutorProvider.java
│ │ │ ├── loader
│ │ │ │ ├── DefaultFlowSourceLoader.java
│ │ │ │ └── FlowSourceLoader.java
│ │ │ └── validator
│ │ │ ├── BpmnModelValidator.java
│ │ │ ├── factory
│ │ │ │ └── ModelValidatorFactory.java
│ │ │ ├── FlowModelValidator.java
│ │ │ ├── impl
│ │ │ │ ├── AbstractFlowModelValidator.java
│ │ │ │ ├── BpmnModelValidator.java
│ │ │ │ └── TbbpmModelValidator.java
│ │ │ ├── TbbpmModelValidator.java
│ │ │ └── ValidateMessage.java
│ │ ├── ProcessEngineFactory.java
│ │ ├── ProcessEngine.java
│ │ └── runtime
│ │ ├── impl
│ │ │ ├── AbstractProcessRuntime.java
│ │ │ ├── BpmnProcessRuntime.java
│ │ │ └── TbbpmProcessRuntime.java
│ │ ├── instance
│ │ │ ├── FlowInstance.java
│ │ │ ├── ProcessInstance.java
│ │ │ └── StatefulProcessInstance.java
│ │ └── ProcessRuntime.java
│ └── resources
│ ├── BPMN20.xsd
│ ├── BPMNDI.xsd
│ ├── DC.xsd
│ ├── DI.xsd
│ ├── META-INF
│ │ └── extensions
│ │ ├── com.alibaba.compileflow.engine.process.preruntime.compiler.FlowClassLoaderFactory
│ │ ├── com.alibaba.compileflow.engine.process.preruntime.compiler.JavaCompiler
│ │ └── com.alibaba.compileflow.engine.process.preruntime.loader.FlowSourceLoader
│ ├── Semantic.xsd
│ └── TBBPM.xsd
├── test
│ ├── java
│ │ └── com
│ │ └── allibaba
│ │ └── compileflow
│ │ └── test
│ │ ├── mock
│ │ │ ├── KtvService.java
│ │ │ ├── MockJavaClazz.java
│ │ │ └── TestRunTime.java
│ │ ├── om
│ │ │ ├── activity
│ │ │ │ ├── AutoChargeActivity.java
│ │ │ │ ├── BaseOmActivity.java
│ │ │ │ ├── DeliveredCallbackActivity.java
│ │ │ │ ├── DeliveryOrderCreateActivity.java
│ │ │ │ ├── DeliveryValidateActivity.java
│ │ │ │ ├── InventoryReduceActivity.java
│ │ │ │ ├── OrderCreateActivity.java
│ │ │ │ ├── OrderGroupCreateActivity.java
│ │ │ │ ├── OrderReverseActivity.java
│ │ │ │ ├── OrderValidateActivity.java
│ │ │ │ ├── PaymentCallbackInfoUpdateActivity.java
│ │ │ │ ├── PaymentFundApportionActivity.java
│ │ │ │ ├── PaymentOrderCreateActivity.java
│ │ │ │ ├── PaymentPendingCallbackActivity.java
│ │ │ │ ├── PriceCalculateActivity.java
│ │ │ │ ├── PriceValidateActivity.java
│ │ │ │ ├── PromotionValidateActivity.java
│ │ │ │ ├── SecurityManualCheckCallbackActivity.java
│ │ │ │ ├── SecurityValidateStatusUpdateActivity.java
│ │ │ │ ├── TimeoutCancelActivity.java
│ │ │ │ ├── UserTagUpdateActivity.java
│ │ │ │ ├── WaitPaymentSuccessActivity.java
│ │ │ │ └── ZeroPayActivity.java
│ │ │ ├── context
│ │ │ │ └── BusinessContext.java
│ │ │ └── router
│ │ │ └── WorkFlowRouter.java
│ │ └── ProcessEngineTest.java
│ └── resources
│ ├── bean
│ │ ├── common.xml
│ │ ├── ktv.xml
│ │ └── orderFulfillment.xml
│ ├── bpm
│ │ ├── ktv
│ │ │ └── ktvExample.bpm
│ │ ├── om
│ │ │ ├── generalOrderFulfillmentFlow.bpm
│ │ │ ├── paySuccessCallbackSubFlow.bpm
│ │ │ ├── validateBeforeSavingSubFlow.bpm
│ │ │ └── waitPaySuccessFlow.bpm
│ │ ├── OutpatientMaterialFulfillmentSubProcess.bpm
│ │ └── route
│ │ └── uopOrderFullLinkRouteDecide.bpm
│ └── bpmn20
│ └── ktv
│ └── ktvExample.bpmn20
└── versions-rules.xml
100 directories, 559 files
compileflow:🎨 高性能流程编排引擎是阿里巴巴Halo平台的核心业务流程引擎,在交易场景中表现出色。这是一个高性能流程编排引擎的源码下载。Compileflow是一个非常轻量、高性能、可集成和可扩展的流程引擎。Compileflow流程引擎是淘宝商业流程管理(TBBPM)的重要组成部分,致力于优化阿里巴巴的淘宝市场操作。具体而言,Compileflow通过将流程文件转换为生成、编译和执行Java代码来专注于纯内存执行和无状态流程引擎。目前,Compileflow为阿里巴巴的电子商务店铺和交易等多个核心系统提供支持。Compileflow允许开发人员通过流程编辑器设计自己的业务流程,该编辑器可以可视化复杂的业务逻辑,并在设计师和开发工程师之间建立桥梁。
【实例截图】
【核心代码】
文件清单
└── compileflow-e96a05224f71bf4aa3d9fb37bba85764b2fc153f
├── appveyor.yml
├── doc
│ ├── compileflow-logo-large.png
│ ├── compileflow-logo.png
│ ├── image
│ │ ├── known_users
│ │ │ ├── alibaba.png
│ │ │ ├── alipay.png
│ │ │ ├── aliyun.png
│ │ │ ├── taobao.png
│ │ │ └── tmall.png
│ │ ├── ktv_demo_s1.png
│ │ ├── ktv_demo_s2_basic_setting.png
│ │ ├── ktv_demo_s2_params_setting.png
│ │ ├── ktv_demo_s3.png
│ │ ├── ktv_demo_s5_auto_pay_action_setting.png
│ │ ├── ktv_demo_s5_auto_pay.png
│ │ ├── ktv_demo_s5_auto_sing_action_setting.png
│ │ ├── ktv_demo_s5_auto_sing.png
│ │ ├── ktv_demo_s5_decision_action_setting.png
│ │ ├── ktv_demo_s5_decision_branch.png
│ │ ├── ktv_demo_s5_decision_left_branch.png
│ │ ├── ktv_demo_s5_decision.png
│ │ ├── ktv_demo_s5_decison_right_branch.png
│ │ ├── ktv_demo_s5_java_code.png
│ │ ├── ktv_demo_s5_loop_action_setting.png
│ │ ├── ktv_demo_s5_loop.png
│ │ ├── ktv_demo_s5_script_original_action_setting.png
│ │ ├── ktv_demo_s5_script_original.png
│ │ ├── ktv_demo_s5_script_promotion_action_setting.png
│ │ └── ktv_demo_s5_script_promotion.png
│ └── README.md
├── LICENSE
├── mvnw
├── mvnw.cmd
├── pom.xml
├── README_CN.md
├── README.md
├── scripts
│ ├── bash-buddy
│ ├── bump_version
│ ├── integration_test
│ └── show_spotbugs_report
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── alibaba
│ │ └── compileflow
│ │ └── engine
│ │ ├── common
│ │ │ ├── ClassWrapper.java
│ │ │ ├── CompileFlowException.java
│ │ │ ├── constant
│ │ │ │ ├── FlowModelType.java
│ │ │ │ └── ProcessType.java
│ │ │ ├── DirectedGraph.java
│ │ │ ├── extension
│ │ │ │ ├── annotation
│ │ │ │ │ ├── Extension.java
│ │ │ │ │ ├── ExtensionPoint.java
│ │ │ │ │ ├── PluginDependency.java
│ │ │ │ │ ├── PluginDependsOn.java
│ │ │ │ │ └── Plugin.java
│ │ │ │ ├── config
│ │ │ │ │ ├── PluginConfig.java
│ │ │ │ │ └── PluginDependencyConfig.java
│ │ │ │ ├── constant
│ │ │ │ │ ├── FlatType.java
│ │ │ │ │ ├── PluginStatus.java
│ │ │ │ │ └── ReducePolicy.java
│ │ │ │ ├── descriptor
│ │ │ │ │ └── PluginDependencyDescriptor.java
│ │ │ │ ├── exception
│ │ │ │ │ └── PluginException.java
│ │ │ │ ├── ExtensionInvoker.java
│ │ │ │ ├── ExtensionManager.java
│ │ │ │ ├── filter
│ │ │ │ │ └── ReduceFilter.java
│ │ │ │ ├── helper
│ │ │ │ │ └── PropertyHelper.java
│ │ │ │ ├── IExtensionPoint.java
│ │ │ │ ├── invoker
│ │ │ │ │ ├── FastMethodInvoker.java
│ │ │ │ │ └── MethodInvoker.java
│ │ │ │ ├── Plugin.java
│ │ │ │ ├── PluginManager.java
│ │ │ │ └── spec
│ │ │ │ ├── BaseSpec.java
│ │ │ │ ├── ClassExtensionPointSpec.java
│ │ │ │ ├── ClassExtensionSpec.java
│ │ │ │ ├── ExtensionPointSpec.java
│ │ │ │ ├── ExtensionSpec.java
│ │ │ │ ├── MethodExtensionPointSpec.java
│ │ │ │ └── MethodExtensionSpec.java
│ │ │ ├── Lifecycle.java
│ │ │ ├── MultiMap.java
│ │ │ └── util
│ │ │ ├── ArrayUtils.java
│ │ │ ├── ClassLoaderUtils.java
│ │ │ ├── ClassUtils.java
│ │ │ ├── DataType.java
│ │ │ ├── FileUtils.java
│ │ │ ├── IOUtils.java
│ │ │ ├── MapUtils.java
│ │ │ ├── MethodUtils.java
│ │ │ ├── ObjectFactory.java
│ │ │ ├── PackageUtils.java
│ │ │ ├── ParamChecker.java
│ │ │ ├── ProcessUtils.java
│ │ │ └── VarUtils.java
│ │ ├── definition
│ │ │ ├── bpmn
│ │ │ │ ├── Activity.java
│ │ │ │ ├── AdHocOrdering.java
│ │ │ │ ├── AdHocSubProcess.java
│ │ │ │ ├── Artifact.java
│ │ │ │ ├── Assignment.java
│ │ │ │ ├── AssociationDirection.java
│ │ │ │ ├── Association.java
│ │ │ │ ├── Auditing.java
│ │ │ │ ├── BaseElement.java
│ │ │ │ ├── BaseElementWithMixedContent.java
│ │ │ │ ├── BoundaryEvent.java
│ │ │ │ ├── BpmnModelConstants.java
│ │ │ │ ├── BpmnModel.java
│ │ │ │ ├── BusinessRuleTask.java
│ │ │ │ ├── CallableElement.java
│ │ │ │ ├── CallActivity.java
│ │ │ │ ├── CallChoreography.java
│ │ │ │ ├── CallConversation.java
│ │ │ │ ├── CancelEventDefinition.java
│ │ │ │ ├── CatchEvent.java
│ │ │ │ ├── Category.java
│ │ │ │ ├── CategoryValue.java
│ │ │ │ ├── ChoreographyActivity.java
│ │ │ │ ├── Choreography.java
│ │ │ │ ├── ChoreographyLoopType.java
│ │ │ │ ├── ChoreographyTask.java
│ │ │ │ ├── Collaboration.java
│ │ │ │ ├── CompensateEventDefinition.java
│ │ │ │ ├── ComplexBehaviorDefinition.java
│ │ │ │ ├── ComplexGateway.java
│ │ │ │ ├── ConditionalEventDefinition.java
│ │ │ │ ├── ConversationAssociation.java
│ │ │ │ ├── Conversation.java
│ │ │ │ ├── ConversationLink.java
│ │ │ │ ├── ConversationNode.java
│ │ │ │ ├── CorrelationKey.java
│ │ │ │ ├── CorrelationPropertyBinding.java
│ │ │ │ ├── CorrelationProperty.java
│ │ │ │ ├── CorrelationPropertyRetrievalExpression.java
│ │ │ │ ├── CorrelationSubscription.java
│ │ │ │ ├── DataAssociation.java
│ │ │ │ ├── DataInputAssociation.java
│ │ │ │ ├── DataInput.java
│ │ │ │ ├── DataObject.java
│ │ │ │ ├── DataObjectReference.java
│ │ │ │ ├── DataOutputAssociation.java
│ │ │ │ ├── DataOutput.java
│ │ │ │ ├── DataState.java
│ │ │ │ ├── DataStore.java
│ │ │ │ ├── DataStoreReference.java
│ │ │ │ ├── Definitions.java
│ │ │ │ ├── Documentation.java
│ │ │ │ ├── EndEvent.java
│ │ │ │ ├── EndPoint.java
│ │ │ │ ├── ErrorEventDefinition.java
│ │ │ │ ├── Error.java
│ │ │ │ ├── EscalationEventDefinition.java
│ │ │ │ ├── Escalation.java
│ │ │ │ ├── EventBasedGateway.java
│ │ │ │ ├── EventBasedGatewayType.java
│ │ │ │ ├── EventDefinition.java
│ │ │ │ ├── Event.java
│ │ │ │ ├── ExclusiveGateway.java
│ │ │ │ ├── Expression.java
│ │ │ │ ├── ExtensionElements.java
│ │ │ │ ├── Extension.java
│ │ │ │ ├── FlowElement.java
│ │ │ │ ├── FlowNode.java
│ │ │ │ ├── FormalExpression.java
│ │ │ │ ├── GatewayDirection.java
│ │ │ │ ├── Gateway.java
│ │ │ │ ├── GlobalBusinessRuleTask.java
│ │ │ │ ├── GlobalChoreographyTask.java
│ │ │ │ ├── GlobalConversation.java
│ │ │ │ ├── GlobalManualTask.java
│ │ │ │ ├── GlobalScriptTask.java
│ │ │ │ ├── GlobalTask.java
│ │ │ │ ├── GlobalUserTask.java
│ │ │ │ ├── Group.java
│ │ │ │ ├── HumanPerformer.java
│ │ │ │ ├── ImplicitThrowEvent.java
│ │ │ │ ├── Import.java
│ │ │ │ ├── InclusiveGateway.java
│ │ │ │ ├── InputOutputBinding.java
│ │ │ │ ├── InputOutputSpecification.java
│ │ │ │ ├── InputSet.java
│ │ │ │ ├── Interface.java
│ │ │ │ ├── IntermediateCatchEvent.java
│ │ │ │ ├── IntermediateThrowEvent.java
│ │ │ │ ├── ItemDefinition.java
│ │ │ │ ├── ItemKind.java
│ │ │ │ ├── Lane.java
│ │ │ │ ├── LaneSet.java
│ │ │ │ ├── LinkEventDefinition.java
│ │ │ │ ├── LoopCharacteristics.java
│ │ │ │ ├── ManualTask.java
│ │ │ │ ├── MessageEventDefinition.java
│ │ │ │ ├── MessageFlowAssociation.java
│ │ │ │ ├── MessageFlow.java
│ │ │ │ ├── Message.java
│ │ │ │ ├── Monitoring.java
│ │ │ │ ├── MultiInstanceFlowCondition.java
│ │ │ │ ├── MultiInstanceLoopCharacteristics.java
│ │ │ │ ├── Operation.java
│ │ │ │ ├── OutputSet.java
│ │ │ │ ├── ParallelGateway.java
│ │ │ │ ├── ParticipantAssociation.java
│ │ │ │ ├── Participant.java
│ │ │ │ ├── ParticipantMultiplicity.java
│ │ │ │ ├── PartnerEntity.java
│ │ │ │ ├── PartnerRole.java
│ │ │ │ ├── Performer.java
│ │ │ │ ├── PotentialOwner.java
│ │ │ │ ├── Process.java
│ │ │ │ ├── ProcessType.java
│ │ │ │ ├── Property.java
│ │ │ │ ├── ReceiveTask.java
│ │ │ │ ├── RelationshipDirection.java
│ │ │ │ ├── Relationship.java
│ │ │ │ ├── Rendering.java
│ │ │ │ ├── ResourceAssignmentExpression.java
│ │ │ │ ├── Resource.java
│ │ │ │ ├── ResourceParameterBinding.java
│ │ │ │ ├── ResourceParameter.java
│ │ │ │ ├── ResourceRole.java
│ │ │ │ ├── RootElement.java
│ │ │ │ ├── Script.java
│ │ │ │ ├── ScriptTask.java
│ │ │ │ ├── SendTask.java
│ │ │ │ ├── SequenceFlow.java
│ │ │ │ ├── ServiceTask.java
│ │ │ │ ├── SignalEventDefinition.java
│ │ │ │ ├── Signal.java
│ │ │ │ ├── StandardLoopCharacteristics.java
│ │ │ │ ├── StartEvent.java
│ │ │ │ ├── SubChoreography.java
│ │ │ │ ├── SubConversation.java
│ │ │ │ ├── SubProcess.java
│ │ │ │ ├── Task.java
│ │ │ │ ├── TerminateEventDefinition.java
│ │ │ │ ├── TextAnnotation.java
│ │ │ │ ├── Text.java
│ │ │ │ ├── ThrowEvent.java
│ │ │ │ ├── TimerEventDefinition.java
│ │ │ │ ├── Transaction.java
│ │ │ │ └── UserTask.java
│ │ │ ├── common
│ │ │ │ ├── AbstractElement.java
│ │ │ │ ├── AbstractFlowModel.java
│ │ │ │ ├── action
│ │ │ │ │ ├── HasAction.java
│ │ │ │ │ ├── HasInOutAction.java
│ │ │ │ │ ├── IActionHandle.java
│ │ │ │ │ ├── IAction.java
│ │ │ │ │ ├── IInAction.java
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── ActionHandle.java
│ │ │ │ │ │ ├── Action.java
│ │ │ │ │ │ ├── FlowActionHandle.java
│ │ │ │ │ │ ├── InAction.java
│ │ │ │ │ │ ├── JavaActionHandle.java
│ │ │ │ │ │ ├── OutAction.java
│ │ │ │ │ │ ├── ScriptActionHandle.java
│ │ │ │ │ │ ├── SpringBeanActionHandle.java
│ │ │ │ │ │ └── SubBpmActionHandle.java
│ │ │ │ │ └── IOutAction.java
│ │ │ │ ├── ElementContainer.java
│ │ │ │ ├── Element.java
│ │ │ │ ├── EndElement.java
│ │ │ │ ├── extension
│ │ │ │ │ ├── AbstractExtensionElement.java
│ │ │ │ │ ├── ExtensionAttribute.java
│ │ │ │ │ └── ExtensionElement.java
│ │ │ │ ├── FlowModel.java
│ │ │ │ ├── GatewayElement.java
│ │ │ │ ├── HasExpression.java
│ │ │ │ ├── HasVar.java
│ │ │ │ ├── NodeContainer.java
│ │ │ │ ├── Node.java
│ │ │ │ ├── StartElement.java
│ │ │ │ ├── Stateless.java
│ │ │ │ ├── TransitionNode.java
│ │ │ │ ├── TransitionSupport.java
│ │ │ │ ├── var
│ │ │ │ │ ├── impl
│ │ │ │ │ │ └── Var.java
│ │ │ │ │ └── IVar.java
│ │ │ │ ├── VarSupport.java
│ │ │ │ └── WaitElement.java
│ │ │ └── tbbpm
│ │ │ ├── ActionNode.java
│ │ │ ├── ActivityNode.java
│ │ │ ├── AutoTaskNode.java
│ │ │ ├── BaseNode.java
│ │ │ ├── BpmNode.java
│ │ │ ├── BreakNode.java
│ │ │ ├── ContinueNode.java
│ │ │ ├── DecisionNode.java
│ │ │ ├── DiagramNode.java
│ │ │ ├── EndNode.java
│ │ │ ├── EventNode.java
│ │ │ ├── FlowElementNode.java
│ │ │ ├── FlowListener.java
│ │ │ ├── FlowNode.java
│ │ │ ├── GatewayNode.java
│ │ │ ├── InOutActionNode.java
│ │ │ ├── LoopProcessNode.java
│ │ │ ├── NoteNode.java
│ │ │ ├── ScriptTaskNode.java
│ │ │ ├── StartNode.java
│ │ │ ├── SubBpmNode.java
│ │ │ ├── TbbpmModelConstants.java
│ │ │ ├── TbbpmModel.java
│ │ │ ├── Transition.java
│ │ │ ├── WaitEventTaskNode.java
│ │ │ └── WaitTaskNode.java
│ │ ├── FlowModel.java
│ │ ├── process
│ │ │ ├── impl
│ │ │ │ ├── AbstractProcessEngine.java
│ │ │ │ ├── BpmnProcessEngineImpl.java
│ │ │ │ └── TbbpmProcessEngineImpl.java
│ │ │ └── preruntime
│ │ │ ├── compiler
│ │ │ │ ├── CompileOption.java
│ │ │ │ ├── Compiler.java
│ │ │ │ ├── FlowClassLoaderFactory.java
│ │ │ │ ├── impl
│ │ │ │ │ ├── CompileConstants.java
│ │ │ │ │ ├── CompilerImpl.java
│ │ │ │ │ ├── DefaultFlowClassLoaderFactory.java
│ │ │ │ │ ├── FlowUrlClassLoader.java
│ │ │ │ │ └── support
│ │ │ │ │ ├── EcJavaCompiler.java
│ │ │ │ │ └── JdkJavaCompiler.java
│ │ │ │ ├── JavaCompiler.java
│ │ │ │ └── JavaSource.java
│ │ │ ├── converter
│ │ │ │ ├── FlowModelConverter.java
│ │ │ │ └── impl
│ │ │ │ ├── BpmnModelConverter.java
│ │ │ │ ├── parser
│ │ │ │ │ ├── constants
│ │ │ │ │ │ ├── ActionType.java
│ │ │ │ │ │ ├── ImplementTypeConstants.java
│ │ │ │ │ │ └── ParseConstants.java
│ │ │ │ │ ├── FlowElementParser.java
│ │ │ │ │ ├── FlowParser.java
│ │ │ │ │ ├── FlowStreamParser.java
│ │ │ │ │ ├── model
│ │ │ │ │ │ ├── AbstractFlowSource.java
│ │ │ │ │ │ ├── FileFlowStreamSource.java
│ │ │ │ │ │ ├── FlowSource.java
│ │ │ │ │ │ ├── FlowStreamSource.java
│ │ │ │ │ │ ├── ParseConfig.java
│ │ │ │ │ │ ├── ParseContext.java
│ │ │ │ │ │ ├── ResourceFlowStreamSource.java
│ │ │ │ │ │ ├── StringFlowStreamSource.java
│ │ │ │ │ │ ├── UrlFlowStreamSource.java
│ │ │ │ │ │ ├── XMLSource.java
│ │ │ │ │ │ └── XMLStreamReaderSource.java
│ │ │ │ │ ├── Parser.java
│ │ │ │ │ ├── provider
│ │ │ │ │ │ ├── ParserProvider.java
│ │ │ │ │ │ ├── ParserProviderSupport.java
│ │ │ │ │ │ └── support
│ │ │ │ │ │ ├── AbstractFlowElementParserProvider.java
│ │ │ │ │ │ ├── AbstractParserProvider.java
│ │ │ │ │ │ ├── BpmnElementParserProvider.java
│ │ │ │ │ │ └── TbbpmElementParserProvider.java
│ │ │ │ │ └── support
│ │ │ │ │ ├── AbstractBpmnElementParser.java
│ │ │ │ │ ├── AbstractFlowElementParser.java
│ │ │ │ │ ├── AbstractFlowStreamParser.java
│ │ │ │ │ ├── AbstractTbbpmElementParser.java
│ │ │ │ │ ├── bpmn
│ │ │ │ │ │ ├── BpmnStreamParser.java
│ │ │ │ │ │ ├── CallActivityParser.java
│ │ │ │ │ │ ├── ConditionExpressionParser.java
│ │ │ │ │ │ ├── DefinitionsParser.java
│ │ │ │ │ │ ├── EndEventParser.java
│ │ │ │ │ │ ├── ExclusiveGatewayParser.java
│ │ │ │ │ │ ├── ExtensionElementsParser.java
│ │ │ │ │ │ ├── InclusiveGatewayParser.java
│ │ │ │ │ │ ├── MultiInstanceLoopCharacteristicsParser.java
│ │ │ │ │ │ ├── ParallelGatewayParser.java
│ │ │ │ │ │ ├── ProcessParser.java
│ │ │ │ │ │ ├── ReceiveTaskParser.java
│ │ │ │ │ │ ├── ScriptParser.java
│ │ │ │ │ │ ├── ScriptTaskParser.java
│ │ │ │ │ │ ├── SequenceFlowParser.java
│ │ │ │ │ │ ├── ServiceTaskParser.java
│ │ │ │ │ │ ├── SignalParser.java
│ │ │ │ │ │ ├── StandardLoopCharacteristicsParser.java
│ │ │ │ │ │ ├── StartEventParser.java
│ │ │ │ │ │ ├── SubProcessParser.java
│ │ │ │ │ │ └── UserTaskParser.java
│ │ │ │ │ └── tbbpm
│ │ │ │ │ ├── ActionHandleParser.java
│ │ │ │ │ ├── ActionParser.java
│ │ │ │ │ ├── AutoTaskParser.java
│ │ │ │ │ ├── BpmParser.java
│ │ │ │ │ ├── BreakParser.java
│ │ │ │ │ ├── ContinueParser.java
│ │ │ │ │ ├── DecisionParser.java
│ │ │ │ │ ├── EndParser.java
│ │ │ │ │ ├── FlowActionHandleParser.java
│ │ │ │ │ ├── InActionParser.java
│ │ │ │ │ ├── JavaActionHandleParser.java
│ │ │ │ │ ├── LoopProcessParser.java
│ │ │ │ │ ├── MvelActionHandleParser.java
│ │ │ │ │ ├── NoteParser.java
│ │ │ │ │ ├── OutActionParser.java
│ │ │ │ │ ├── QLActionHandleParser.java
│ │ │ │ │ ├── ScriptActionHandleParser.java
│ │ │ │ │ ├── ScriptTaskParser.java
│ │ │ │ │ ├── SpringBeanActionHandleParser.java
│ │ │ │ │ ├── StartParser.java
│ │ │ │ │ ├── SubBpmParser.java
│ │ │ │ │ ├── TbbpmStreamParser.java
│ │ │ │ │ ├── TransitionParser.java
│ │ │ │ │ ├── VarParser.java
│ │ │ │ │ ├── WaitEventTaskParser.java
│ │ │ │ │ └── WaitTaskParser.java
│ │ │ │ ├── TbbpmModelConverter.java
│ │ │ │ └── writer
│ │ │ │ ├── FlowElementWriter.java
│ │ │ │ ├── FlowStreamWriter.java
│ │ │ │ ├── provider
│ │ │ │ │ ├── FlowElementWriterProvider.java
│ │ │ │ │ └── support
│ │ │ │ │ ├── AbstractFlowElementWriterProvider.java
│ │ │ │ │ └── TbbpmFlowElementWriterProvider.java
│ │ │ │ └── support
│ │ │ │ ├── AbstractFlowElementWriter.java
│ │ │ │ ├── AbstractFlowStreamWriter.java
│ │ │ │ ├── AbstractFlowWriterSupport.java
│ │ │ │ └── tbbpm
│ │ │ │ ├── AbstractActionHandleWriter.java
│ │ │ │ ├── AbstractTbbpmActionNodeWriter.java
│ │ │ │ ├── AbstractTbbpmFlowElementWriter.java
│ │ │ │ ├── AbstractTbbpmInOutActionNodeWriter.java
│ │ │ │ ├── AutoTaskWriter.java
│ │ │ │ ├── BreakWriter.java
│ │ │ │ ├── ContinueWriter.java
│ │ │ │ ├── DecisionWriter.java
│ │ │ │ ├── EndWriter.java
│ │ │ │ ├── JavaActionHandleWriter.java
│ │ │ │ ├── LoopProcessWriter.java
│ │ │ │ ├── NodeContainerWriter.java
│ │ │ │ ├── NoteWriter.java
│ │ │ │ ├── ScriptActionHandleWriter.java
│ │ │ │ ├── ScriptTaskWriter.java
│ │ │ │ ├── SpringBeanActionHandleWriter.java
│ │ │ │ ├── StartWriter.java
│ │ │ │ ├── SubBpmWriter.java
│ │ │ │ ├── TbbpmStreamWriter.java
│ │ │ │ ├── WaitEventTaskWriter.java
│ │ │ │ └── WaitTaskWriter.java
│ │ │ ├── generator
│ │ │ │ ├── bean
│ │ │ │ │ ├── BeanHolder.java
│ │ │ │ │ ├── BeanProvider.java
│ │ │ │ │ ├── SpringApplicationContextProvider.java
│ │ │ │ │ └── SpringBeanHolder.java
│ │ │ │ ├── code
│ │ │ │ │ ├── AbstractCodeTargetSupport.java
│ │ │ │ │ ├── ClassTarget.java
│ │ │ │ │ ├── CodeTarget.java
│ │ │ │ │ ├── CodeTargetSupport.java
│ │ │ │ │ ├── FieldTarget.java
│ │ │ │ │ ├── MethodTarget.java
│ │ │ │ │ └── ParamTarget.java
│ │ │ │ ├── constansts
│ │ │ │ │ ├── ActionType.java
│ │ │ │ │ ├── CodeConstants.java
│ │ │ │ │ ├── MethodConstants.java
│ │ │ │ │ ├── Modifier.java
│ │ │ │ │ └── SymbolConstants.java
│ │ │ │ ├── factory
│ │ │ │ │ ├── GeneratorFactory.java
│ │ │ │ │ └── GeneratorProviderFactory.java
│ │ │ │ ├── Generator.java
│ │ │ │ ├── impl
│ │ │ │ │ ├── AbstractActionNodeGenerator.java
│ │ │ │ │ ├── AbstractGenerator.java
│ │ │ │ │ ├── AbstractInOutActionNodeGenerator.java
│ │ │ │ │ ├── AbstractNodeGenerator.java
│ │ │ │ │ ├── AbstractRuntimeGenerator.java
│ │ │ │ │ ├── AbstractWrapperGenerator.java
│ │ │ │ │ ├── action
│ │ │ │ │ │ ├── AbstractActionGenerator.java
│ │ │ │ │ │ ├── AbstractScriptActionGenerator.java
│ │ │ │ │ │ ├── ActionGenerator.java
│ │ │ │ │ │ ├── ActionMethodGenerator.java
│ │ │ │ │ │ └── support
│ │ │ │ │ │ ├── JavaActionGenerator.java
│ │ │ │ │ │ ├── MVELActionGenerator.java
│ │ │ │ │ │ ├── QLActionGenerator.java
│ │ │ │ │ │ ├── SpringActionGenerator.java
│ │ │ │ │ │ └── SubBpmActionGenerator.java
│ │ │ │ │ ├── bpmn
│ │ │ │ │ │ ├── AbstractBpmnActionNodeGenerator.java
│ │ │ │ │ │ ├── AbstractBpmnInOutActionNodeGenerator.java
│ │ │ │ │ │ ├── AbstractBpmnNodeGenerator.java
│ │ │ │ │ │ ├── EndEventGenerator.java
│ │ │ │ │ │ ├── ExclusiveGatewayGenerator.java
│ │ │ │ │ │ ├── ReceiveTaskGenerator.java
│ │ │ │ │ │ ├── ScriptTaskGenerator.java
│ │ │ │ │ │ ├── ServiceTaskGenerator.java
│ │ │ │ │ │ ├── StandardLoopCharacteristicsGenerator.java
│ │ │ │ │ │ ├── StartEventGenerator.java
│ │ │ │ │ │ └── SubProcessGenerator.java
│ │ │ │ │ ├── container
│ │ │ │ │ │ ├── AbstractContainerGenerator.java
│ │ │ │ │ │ └── ContainerGenerator.java
│ │ │ │ │ ├── EventTriggerMethodGenerator.java
│ │ │ │ │ ├── tbbpm
│ │ │ │ │ │ ├── AbstractTbbpmActionNodeGenerator.java
│ │ │ │ │ │ ├── AbstractTbbpmInOutActionNodeGenerator.java
│ │ │ │ │ │ ├── AbstractTbbpmNodeGenerator.java
│ │ │ │ │ │ ├── AutoTaskGenerator.java
│ │ │ │ │ │ ├── BreakGenerator.java
│ │ │ │ │ │ ├── ContinueGenerator.java
│ │ │ │ │ │ ├── DecisionGenerator.java
│ │ │ │ │ │ ├── EndGenerator.java
│ │ │ │ │ │ ├── LoopProcessGenerator.java
│ │ │ │ │ │ ├── NoteGenerator.java
│ │ │ │ │ │ ├── ScriptTaskGenerator.java
│ │ │ │ │ │ ├── StartGenerator.java
│ │ │ │ │ │ ├── SubBpmGenerator.java
│ │ │ │ │ │ ├── WaitEventTaskGenerator.java
│ │ │ │ │ │ └── WaitTaskGenerator.java
│ │ │ │ │ └── TriggerMethodGenerator.java
│ │ │ │ ├── provider
│ │ │ │ │ ├── AbstractNodeGeneratorProvider.java
│ │ │ │ │ ├── ActionGeneratorProvider.java
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── BpmnNodeGeneratorProvider.java
│ │ │ │ │ │ └── TbbpmNodeGeneratorProvider.java
│ │ │ │ │ └── NodeGeneratorProvider.java
│ │ │ │ └── script
│ │ │ │ ├── impl
│ │ │ │ │ ├── MvelExecutor.java
│ │ │ │ │ └── QLExecutor.java
│ │ │ │ ├── ScriptExecutor.java
│ │ │ │ └── ScriptExecutorProvider.java
│ │ │ ├── loader
│ │ │ │ ├── DefaultFlowSourceLoader.java
│ │ │ │ └── FlowSourceLoader.java
│ │ │ └── validator
│ │ │ ├── BpmnModelValidator.java
│ │ │ ├── factory
│ │ │ │ └── ModelValidatorFactory.java
│ │ │ ├── FlowModelValidator.java
│ │ │ ├── impl
│ │ │ │ ├── AbstractFlowModelValidator.java
│ │ │ │ ├── BpmnModelValidator.java
│ │ │ │ └── TbbpmModelValidator.java
│ │ │ ├── TbbpmModelValidator.java
│ │ │ └── ValidateMessage.java
│ │ ├── ProcessEngineFactory.java
│ │ ├── ProcessEngine.java
│ │ └── runtime
│ │ ├── impl
│ │ │ ├── AbstractProcessRuntime.java
│ │ │ ├── BpmnProcessRuntime.java
│ │ │ └── TbbpmProcessRuntime.java
│ │ ├── instance
│ │ │ ├── FlowInstance.java
│ │ │ ├── ProcessInstance.java
│ │ │ └── StatefulProcessInstance.java
│ │ └── ProcessRuntime.java
│ └── resources
│ ├── BPMN20.xsd
│ ├── BPMNDI.xsd
│ ├── DC.xsd
│ ├── DI.xsd
│ ├── META-INF
│ │ └── extensions
│ │ ├── com.alibaba.compileflow.engine.process.preruntime.compiler.FlowClassLoaderFactory
│ │ ├── com.alibaba.compileflow.engine.process.preruntime.compiler.JavaCompiler
│ │ └── com.alibaba.compileflow.engine.process.preruntime.loader.FlowSourceLoader
│ ├── Semantic.xsd
│ └── TBBPM.xsd
├── test
│ ├── java
│ │ └── com
│ │ └── allibaba
│ │ └── compileflow
│ │ └── test
│ │ ├── mock
│ │ │ ├── KtvService.java
│ │ │ ├── MockJavaClazz.java
│ │ │ └── TestRunTime.java
│ │ ├── om
│ │ │ ├── activity
│ │ │ │ ├── AutoChargeActivity.java
│ │ │ │ ├── BaseOmActivity.java
│ │ │ │ ├── DeliveredCallbackActivity.java
│ │ │ │ ├── DeliveryOrderCreateActivity.java
│ │ │ │ ├── DeliveryValidateActivity.java
│ │ │ │ ├── InventoryReduceActivity.java
│ │ │ │ ├── OrderCreateActivity.java
│ │ │ │ ├── OrderGroupCreateActivity.java
│ │ │ │ ├── OrderReverseActivity.java
│ │ │ │ ├── OrderValidateActivity.java
│ │ │ │ ├── PaymentCallbackInfoUpdateActivity.java
│ │ │ │ ├── PaymentFundApportionActivity.java
│ │ │ │ ├── PaymentOrderCreateActivity.java
│ │ │ │ ├── PaymentPendingCallbackActivity.java
│ │ │ │ ├── PriceCalculateActivity.java
│ │ │ │ ├── PriceValidateActivity.java
│ │ │ │ ├── PromotionValidateActivity.java
│ │ │ │ ├── SecurityManualCheckCallbackActivity.java
│ │ │ │ ├── SecurityValidateStatusUpdateActivity.java
│ │ │ │ ├── TimeoutCancelActivity.java
│ │ │ │ ├── UserTagUpdateActivity.java
│ │ │ │ ├── WaitPaymentSuccessActivity.java
│ │ │ │ └── ZeroPayActivity.java
│ │ │ ├── context
│ │ │ │ └── BusinessContext.java
│ │ │ └── router
│ │ │ └── WorkFlowRouter.java
│ │ └── ProcessEngineTest.java
│ └── resources
│ ├── bean
│ │ ├── common.xml
│ │ ├── ktv.xml
│ │ └── orderFulfillment.xml
│ ├── bpm
│ │ ├── ktv
│ │ │ └── ktvExample.bpm
│ │ ├── om
│ │ │ ├── generalOrderFulfillmentFlow.bpm
│ │ │ ├── paySuccessCallbackSubFlow.bpm
│ │ │ ├── validateBeforeSavingSubFlow.bpm
│ │ │ └── waitPaySuccessFlow.bpm
│ │ ├── OutpatientMaterialFulfillmentSubProcess.bpm
│ │ └── route
│ │ └── uopOrderFullLinkRouteDecide.bpm
│ └── bpmn20
│ └── ktv
│ └── ktvExample.bpmn20
└── versions-rules.xml
100 directories, 559 files
好例子网口号:伸出你的我的手 — 分享!
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论