com.opensymphony.workflow.basic
这个包里只包括两个类:
BasicWorkflow:继承自AbstractWorkflow。
作用说明:提供一种最最基本的workflow实现方式。不支持事务回滚机制。
方法:继承自abstractworkflow的方法有:
canInitialize, canInitialize, canModifyEntryState, changeEntryState, checkImplicitFinish, completeEntry, doAction, executeTriggerFunction, getAvailableActions, getAvailableActions, getAvailableActionsForStep, getAvailableAutoActions, getAvailableAutoActionsForStep, getConfiguration, getCurrentSteps, getEntryState, getHistorySteps, getPersistence, getPersistenceProperties, getPropertySet, getSecurityPermissions, getWorkflowDescriptor, getWorkflowName, getWorkflowNames, initialize, loadObject, passesCondition, passesConditions, populateTransientMap, query, query, removeWorkflowDescriptor, saveWorkflowDescriptor, setConfiguration, verifyInputs
BasicWorkflowContext:实现WorkflowContext接口,子类:OfbizWorkflowContext
作用说明:
构造函数:参数为caller
方法解释:
getCaller():获取caller
setRollbackOnly():将当前transaction事务回滚。
com.opensymphony.workflow.config
这个包里的东西很关键,包括主要的配置类。
接口:Configuration:
Configuration object that is responsible for all 'static' workflow information. This includes loading of workflow configurations, setting up the workflow descriptor factory, as well as proxying calls to the underlying descriptor factory. Date: Mar 22, 2004 Time: 3:42:19 PM
作用说明:加载工作流配置定义,建立workflow descriptor factory。
方法解释:一些只要看名字,懂英语就可以理解了。
1、
getPersistence
():返回持久存储的类名
2、
getPersistenceArgs
() 为持久存储获得参数
3、
getWorkflow
(java.lang.String name)获取指定的workflow descriptor。
4、
getWorkflowNames
()获取所有有效的workflow descriptor的名字。
5、
getWorkflowStore
()返回workflowstore,先String clazz = getPersistence();然后将clazz的对象返回。
6、
isInitialized
()
7、
*load
(java.net.URL url)加载指定地址的配置文件
8、
removeWorkflow
(java.lang.String workflow)移除指定的工作流
9、
saveWorkflow
(java.lang.String name, WorkflowDescriptor descriptor, boolean replace)
类:包括两个
它implements Configuration.
这里面最主要的两个大方法体就是load和getInputStream,其中getInputStream负责根据指定的url加载定义文件,然后将流返回给load。而load则负责将加载过来的xml流进行解析,在解析过程中分别设置持久类参数和工厂初始化任务。
在这个类里用到的是URLWorkflowFactory
这是osworkflow提供给spring的配置文件的类,其中加载的是加载的spring里的标签。
private AbstractWorkflowFactory factory;
private WorkflowStore store;
这两个也是在spring配置文件中需要进行配置的。需要利用spring的DI特性把这两个类的相应对象注入到osworkflow提供的这个类里面。
spring 的配置文件:
<bean id="osworkflowConfiguration"
class="com.opensymphony.workflow.config.SpringConfiguration">
<property name="store">
<ref local="workflowStore" />
</property>
<property name="factory">
<ref local="workflowFactory" />
</property>
</bean>
当然在spring配置部分还有对workflowstore和workflowfactory的配置部分。
未完待续……