osworkflow的config代码分析

我们知道,分别有BasicWorkflow,EJBWorkflow,SOAPWorkflow,OfbizWorkflow等实现了
Workflow的接口,但这些实现肯定有一些可以重用的代码,这就是AbstractWorkflow.
工作流configuration的load就是在AbstractWorkflow中调用config包实现的,而且由它负责
控制只能解析一次文件.

com.opensymphony.workflow.config包中,Configuration是一个接口,分别有
DefaultConfiguration和SpringConfiguration两个实现.

我们知道,一般的有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>
系统解析过程如下:
1)DefaultConfiguration中,getInputStream()方法负责load上面的osworkflow.xml文件
 它按这样的顺序来找:
  指定的URL;osworkflow.xml;/osworkflow.xml;META-INF/osworkflow.xml;
  /META-INF/osworkflow.xml
2)找到文件后,load()方法解析文件,并load相应的工厂类.

你可能感兴趣的:(xml,工作,workflow)