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刪除相應的流程
          主站蜘蛛池模板: 灵丘县| 察雅县| 四子王旗| 山东省| 合川市| 公主岭市| 定西市| 顺平县| 营口市| 鲁山县| 那曲县| 公主岭市| 房山区| 哈尔滨市| 仙游县| 安丘市| 尤溪县| 井陉县| 庄浪县| 镇安县| 宜州市| 云梦县| 喀喇沁旗| 达拉特旗| 固原市| 德庆县| 外汇| 昆明市| 平遥县| 个旧市| 文安县| 固始县| 澄城县| 三门县| 南溪县| 安西县| 广河县| 东光县| 晋城| 睢宁县| 新沂市|