OSworkflow,spring1.27,hibernate3集成-4.测试

新建一个工程,然后将生成的 osworkflow-3.0-dev.jar 及其它所必需的 jar 文件、 spring 配置文件置入构建路径中。
在上面 spring 中的工作流定义是从数据库中读取,但是编程去构建一个工作流定义是相当麻烦的事情,这里打算首先从 designer 中生成定义文件然后读取工作流定义持久到数据库中。这里为了从 xml 文件中读取工作流的定义,需要 osworkflow.xml ,内容如下:

< osworkflow >
    < persistence class = "com.opensymphony.workflow.spi.memory.MemoryWorkflowStore" />
    < factory class = "com.opensymphony.workflow.loader.XMLWorkflowFactory" />
</ osworkflow >

 
另外还需要 workflows.xml ,内容如下:

< workflows >
    < workflow name = "example" type = "resource" location = "example.xml" />
</ workflows >

 
这两个文件并不是一定需要的,因为 osworkflow.xml 其中的内容已经在 spring 配置文件中定义了,这里只是为了方便测试,现在考虑是否可以改写 designer ,直接将工作流的定义导出到数据库中。
 
另外将 osworkflow 项目下的 src/test/sample/example.xml 工作流定义文件拷贝到类路径中,这是要测试的工作流定义文件。
 
完成后的测试项目结构如下:

               project

 
新建一个测试用例,代码如下:

protected Session session;
private Transaction tx;
public ApplicationContext ctx;
 
protected void setUp() throws Exception {       
    super.setUp();       
    ctx = new FileSystemXmlApplicationContext("/src/conf/application-context.xml");
    session=((SessionFactory)ctx.getBean("sessionFactory")).openSession();       
    System.out.println("begin..........");       
}
 
public void testOswf() throws
            MalformedURLException,
            InvalidActionException,
            InvalidRoleException,
            InvalidInputException,
            InvalidEntryStateException,
            WorkflowException
{
    // 从xml中读取工作流定义
    Workflow wf =new BasicWorkflow("test");
    Workflow wf1 = (Workflow)ctx.getBean("workflow");
    Configuration cf = new DefaultConfiguration();
    wf.setConfiguration(cf);
    //wf.initialize("example",100,null);
   
   
    SpringHibernateWorkflowFactory sf = (SpringHibernateWorkflowFactory)ctx.getBean("workflowFactory");
    // 将名称为"example"的工作流持久化到数据库中
    sf.saveWorkflow("example",wf.getWorkflowDescriptor("example"),true);
    // 从数据库中取出名称为"example"的工作流定义
    WorkflowDescriptor wfd = wf1.getWorkflowDescriptor("example");
   
    wf1.initialize("example",100,null);
    // 更多的测试...     
}
 
protected void tearDown() throws Exception {
    super.tearDown();
    try
    {
        tx.commit();
       
    }
    catch(Exception e)
    {
      
    }
    finally
    {           
        session.close();
        System.out.println("end..............");
    }
}

 
如果没有什么问题的话在数据库中会生成对应得表,并且在其中出入数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值