Java瑣事

          -I am not alone
          posts - 54, comments - 30, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          手動發布流程定義(jbpm3)

          Posted on 2011-04-27 17:19 石子路口 閱讀(1765) 評論(0)  編輯  收藏 所屬分類: 工作流
               上一個文章介紹了在啟動tomat服務的時候自動發布流程。這里介紹如何手動的把定義好的processdefinition.xml持久化到數據庫中。這里使用的是junit測試代碼

          1. 建兩個包cn.edu.ujn.wsjx.test.process以及cn.edu.ujn.wsjx.test.service
          2. 在service包中新建測試基類BaseServiceTest.java
           1package cn.edu.ujn.wsjx.test.service;
           2
           3import org.springframework.context.ApplicationContext;
           4import org.springframework.context.support.ClassPathXmlApplicationContext;
           5
           6import junit.framework.TestCase;
           7
           8public 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繼承上面的類
          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刪除相應的流程
          主站蜘蛛池模板: 从化市| 微山县| 金门县| 东台市| 万全县| 禄丰县| 敦化市| 沙田区| 舞钢市| 江孜县| 阿图什市| 密山市| 汤原县| 巴林左旗| 南皮县| 贡山| 万全县| 德庆县| 南通市| 永宁县| 周宁县| 板桥市| 永春县| 元阳县| 定南县| 鹤庆县| 额济纳旗| 海丰县| 梁河县| 二连浩特市| 呼伦贝尔市| 德昌县| 玉田县| 慈溪市| 江门市| 滕州市| 永安市| 闸北区| 铁岭市| 灵璧县| 沁水县|