osworkflow有以下几个常用组件
WorkflowStore ,WorkflowFactory,Configuration,Workflow,TypeResolver
WorkflowStore 让workflow实例参与(希望的)到当前事务中。保存状态,持久化等等
WorkflowFactory 管理流程配置文件,读取流程配置文件
TypeResolver 允许osworkflow获取业务逻辑组件(条件、函数等)。 解析流程中的条件,函数,表达式等等
Configuration 是工作流配置接口的实现,它包含存储及工厂,这使得容器可以能够注入或操作它。
Workflow 提供对外的访问接口。也是我们主要要操作的组件
他们之间的关系可以从这里例子中看出一斑
osworkflow.xml
<osworkflow>
<persistence class="com.opensymphony.workflow.spi.memory.MemoryWorkflowStore"/>
<factory class="com.opensymphony.workflow.loader.XMLWorkflowFactory">
<property key="resource" value="workflows.xml" />
</factory>
</osworkflow>
<workflows>
<workflow name="mytest" type="resource" location="myworkflow.xml"/>
</workflows>
Workflow workflow = new BasicWorkflow("testuser");
DefaultConfiguration config = new DefaultConfiguration();
workflow.setConfiguration(config);
long workflowId = workflow.initialize("mytest", 1, null);
流程大概就是workflow需要Configuration 的信息来运行,Configuration 读取osworkflow.xml文件,该文件定义了
WorkflowStore 和WorkflowFactory ,WorkflowFactory 来读取具体的一个或者多个流程配置文件。在WorkflowStore 中可能会涉及到propertySet得存储。
可以参考官方
http://www.opensymphony.com/osworkflow/2.%20Testing%20your%20workflow.html
http://www.opensymphony.com/osworkflow/2.3%20Spring%20framework.html
osworkflow 所控制的流程涉及到以下几个概念。这些概念也很容易在网上找到更详细的描述
Step 流程当前所停留在位置
Action 导致流程流转所执行的动作,其中有global action ,common action和init action 等。action是step最大的实体,包含了条件,前处理,后处理,结果(result)等等多个概念。
split/join 流程的分支和合并
更多的内容可以查看这里
http://www.360doc.com/showWeb/0/0/27866.aspx
http://www.opensymphony.com/osworkflow/3.2%20Workflow%20Concepts.html
和spring的集成。
这片文章有个大概地介绍
http://www.opensymphony.com/osworkflow/2.3%20Spring%20framework.html
可惜的是,对propertySetDelegate没有hibernate3得支持,需要自己来编码实现。