schedulertest.java

来自「一个java工作流引擎」· Java 代码 · 共 68 行

JAVA
68
字号
package org.jbpm.scheduler;

import java.util.*;
import org.jbpm.*;
import org.jbpm.delegation.*;
import org.jbpm.model.scheduler.*;
import org.jbpm.persistence.*;
import org.jbpm.service.*;

import junit.framework.*;

public class SchedulerTest extends TestCase {
  
  private static int nbrOfScheduledExecutions = 0;
  private JbpmConfiguration jbpmConfiguration = new JbpmConfiguration( new Properties() );
  private PersistenceSessionFactory persistenceSessionFactory = (PersistenceSessionFactory) jbpmConfiguration.instantiate( "jbpm.persistence.session.factory", PersistenceSessionFactory.class );
  
  public static class SchedulableTestActionHandler implements ActionHandler {
    public void execute(ExecutionContext executionContext) {
      nbrOfScheduledExecutions++;
    }
  }
  
  public void testSchedulerServer() throws Exception {
    PersistenceSessionTx sessionTx = persistenceSessionFactory.createPersistenceSessionTx();
    SchedulerService schedulerService = new SchedulerServiceImpl( sessionTx );
    
    int currentCount = nbrOfScheduledExecutions;
    
    Job job = new Job( "org.jbpm.scheduler.SchedulerTest$SchedulableTestActionHandler", 0 );
    schedulerService.schedule( job );
    schedulerService.schedule( job );
    schedulerService.schedule( job );
    
    sessionTx.commitAndClose();
    sessionTx = persistenceSessionFactory.createPersistenceSessionTx();
    
    SchedulerServerImpl schedulerServer = new SchedulerServerImpl( jbpmConfiguration );
    schedulerServer.checkJobs();
    
    assertEquals( currentCount+3, nbrOfScheduledExecutions );
  }

  public void testSchedulerCancellation() throws Exception {
    PersistenceSessionTx sessionTx = persistenceSessionFactory.createPersistenceSessionTx();
    SchedulerService schedulerService = new SchedulerServiceImpl( sessionTx );
    
    int currentCount = nbrOfScheduledExecutions;
    
    Job job = new Job( "org.jbpm.scheduler.SchedulerTest$SchedulableTestActionHandler", 0 );
    schedulerService.schedule( job, "haleluya" );
    schedulerService.schedule( job, "haleluya" );
    
    sessionTx.commitAndClose();
    sessionTx = persistenceSessionFactory.createPersistenceSessionTx();
    
    schedulerService = new SchedulerServiceImpl( sessionTx );
    schedulerService.cancel( "haleluya" );

    sessionTx.commitAndClose();
    sessionTx = persistenceSessionFactory.createPersistenceSessionTx();
    
    SchedulerServerImpl schedulerServer = new SchedulerServerImpl( jbpmConfiguration );
    schedulerServer.checkJobs();
    
    assertEquals( currentCount, nbrOfScheduledExecutions );
  }
}

⌨️ 快捷键说明

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