package org.jbpm.seam; import org.jbpm.db.AbstractDbTestCase; import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.job.executor.JobExecutor; public class JobExecutorCustomizationTest extends AbstractDbTestCase { protected String getJbpmTestConfig() { return "org/jbpm/seam/custom.job.executor.jbpm.cfg.xml"; } protected void tearDown() throws Exception { super.tearDown(); jbpmConfiguration.close(); } public void testCustomJobExecutor() { JobExecutor jobExecutor = getJbpmConfiguration().getJobExecutor(); assertEquals(CustomJobExecutor.class, jobExecutor.getClass()); ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='custom job exec'>" + " <start-state name='start'>" + " <transition to='end'/>" + " </start-state>" + " <end-state name='end' async='true' />" + "</process-definition>"); deployProcessDefinition(processDefinition); ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate("custom job exec"); processInstance.signal(); processJobs(); processInstance = jbpmContext.loadProcessInstance(processInstance.getId()); assertEquals(Boolean.TRUE, processInstance.getContextInstance().getVariable("custom")); } }