⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exampleprocesstest.java

📁 一个java工作流引擎
💻 JAVA
字号:
package org.jbpm.example;

import java.io.*;
import org.jbpm.*;
import org.jbpm.model.definition.*;
import org.jbpm.model.execution.*;
import org.jbpm.model.log.InvocationLog;
import org.jbpm.par.*;
import junit.framework.*;

public class ExampleProcessTest extends TestCase {

  private static JbpmServiceLocator jbpmServiceLocator = null;
  private static DefinitionService definitionService = null;
  private static ExecutionService executionService = null;

  static {
    jbpmServiceLocator = JbpmServiceLocator.getInstance();
    definitionService = jbpmServiceLocator.getDefinitionService();
    executionService = jbpmServiceLocator.getExecutionService();
    try {
      InputStream is = ExampleProcessTest.class.getClassLoader().getResourceAsStream("exampleprocess.xml");
      ArchiveBuilder archiveBuilder = new ArchiveBuilder(is);

      // adding class file
      is = ExampleProcessTest.class.getClassLoader().getResourceAsStream("org/jbpm/example/ExampleActionHandler.class");
      archiveBuilder.add( "classes/org/jbpm/example/ExampleActionHandler.class", is );
      
      definitionService.deployProcessArchive(archiveBuilder.getJarInputStream());

    } catch (Exception e) {
      e.printStackTrace();
      throw new RuntimeException("couldn't load the process archive");
    }
  }
  
  // you should create one test for each possible scenario
  public void testExampleProcess() throws Exception {

    // retrieve the definition
    Definition definition = executionService.getLatestDefinition("example process");

    // start a process instance
    InvocationLog invocationLog = executionService.startProcessInstance( "testrunner", definition.getId() );
    ProcessInstance pi = invocationLog.getProcessInstance();
    Long tokenId = pi.getRoot().getId();
    
    assertFalse( pi.hasEnded() );
    assertFalse( pi.getRoot().hasEnded() );
    assertEquals( "example process", pi.getDefinition().getName() );
    assertEquals( "only state", pi.getRoot().getState().getName() );
    
    // get the variables
    executionService.endOfState("testrunner", tokenId);
    
    pi = executionService.getProcessInstance( pi.getId(), null );

    assertTrue( pi.hasEnded() );
    assertTrue( pi.getRoot().hasEnded() );
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -