上一個文章介紹了在啟動tomat服務的時候自動發布流程。這里介紹如何手動的把定義好的processdefinition.xml持久化到數據庫中。這里使用的是junit測試代碼
1. 建兩個包cn.edu.ujn.wsjx.test.process以及cn.edu.ujn.wsjx.test.service
2. 在service包中新建測試基類BaseServiceTest.java
package cn.edu.ujn.wsjx.test.process;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.zip.ZipInputStream;

import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;

import cn.edu.ujn.wsjx.test.service.BaseServiceTest;

public class ProcessDeployTest extends BaseServiceTest
{
public void testAddProcessDefinition()
{
JbpmConfiguration jbpmConfiguration = (JbpmConfiguration)context.getBean("jbpmConfiguration");
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try
{
File file = new File("E:/work/work.zip");
FileInputStream fis = new FileInputStream(file);
ZipInputStream zip = new ZipInputStream(fis);
ProcessDefinition processDefinition = ProcessDefinition.parseParZipInputStream(zip);
jbpmContext.deployProcessDefinition(processDefinition);
}catch(FileNotFoundException e)
{
e.printStackTrace();
}finally
{
jbpmContext.close();
}
}
public void testDestroyProcess()
{
JbpmConfiguration jbpmConfiguration = (JbpmConfiguration)context.getBean("jbpmConfiguration");
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
jbpmContext.getGraphSession().deleteProcessDefinition(1);
jbpmContext.close();
}
}
說明:testAddProcessDefinition()是發布流程定義的zip包到數據庫中,testDestroyProcess()是通過數據庫中存儲的流程id刪除相應的流程
1. 建兩個包cn.edu.ujn.wsjx.test.process以及cn.edu.ujn.wsjx.test.service
2. 在service包中新建測試基類BaseServiceTest.java
1
package cn.edu.ujn.wsjx.test.service;
2
3
import org.springframework.context.ApplicationContext;
4
import org.springframework.context.support.ClassPathXmlApplicationContext;
5
6
import junit.framework.TestCase;
7
8
public class BaseServiceTest extends TestCase
9
{
10
protected ApplicationContext context;
11
12
public ApplicationContext getApplicationContext()
13
{
14
return context;
15
}
16
17
@Override
18
protected void setUp() throws Exception
19
{
20
// TODO Auto-generated method stub
21
super.setUp();
22
23
context = new ClassPathXmlApplicationContext(new String[]
24
{ "spring/applicationContext.xml", "spring/applicationContext-jbpm.xml",
25
"spring/applicationContext-shi.xml", "spring/applicationContext-wu.xml",
26
"spring/applicationContext-zhou.xml", "spring/daoContext.xml" });
27
}
28
}
29
3. 在包process中新建類ProcessDeployTest繼承上面的類
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29


















































