[jbpm-commits] JBoss JBPM SVN: r3708 - in jbpm3/trunk/modules: core/src/test/java/org/jbpm/db and 8 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Jan 23 03:05:52 EST 2009


Author: alex.guizar at jboss.com
Date: 2009-01-23 03:05:52 -0500 (Fri, 23 Jan 2009)
New Revision: 3708

Added:
   jbpm3/trunk/modules/examples/src/test/resources/taskinstance/CustomTaskInstance.hbm.xml
Modified:
   jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml
   jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.hsqldb.xml
   jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java
   jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java
   jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/businesstrip/BusinessTripRequestTest.java
   jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/raise/RaiseRequestTest.java
   jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java
   jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java
   jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/websale/WebsaleTest.java
   jbpm3/trunk/modules/examples/src/test/resources/hibernate.extra.hbm.xml
   jbpm3/trunk/modules/examples/src/test/resources/taskinstance/jbpm.cfg.xml
Log:
JBPM-1812 leverage AbstractDbTestCase to clean up examples
prevent create-drop cycle at each test run

Modified: jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml	2009-01-23 08:05:52 UTC (rev 3708)
@@ -17,6 +17,10 @@
     <!-- # common settings                 # -->
     <!-- ################################### -->
 
+    <!-- Automatic schema creation (begin) -->
+    <property name="hibernate.hbm2ddl.auto">create</property>
+    <!-- Automatic schema creation (end) -->
+
     <!-- Simple memory-only cache -->
     <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
 

Modified: jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.hsqldb.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.hsqldb.xml	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.hsqldb.xml	2009-01-23 08:05:52 UTC (rev 3708)
@@ -8,7 +8,3 @@
     <property name="hibernate.connection.username">sa</property>
     <property name="hibernate.connection.password"></property>
     <!-- JDBC connection properties (end) -->
-
-    <!-- Automatic schema creation (begin) -->
-    <property name="hibernate.hbm2ddl.auto">create</property>
-    <!-- Automatic schema creation (end) -->

Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java	2009-01-23 08:05:52 UTC (rev 3708)
@@ -21,7 +21,6 @@
  */
 package org.jbpm.db;
 
-import java.util.Iterator;
 import java.util.List;
 
 import org.jbpm.context.exe.ContextInstance;
@@ -154,18 +153,18 @@
     newTransaction();
 
     try {
-      List allProcessDefinitions = graphSession.findAllProcessDefinitions();
+      List<ProcessDefinition> allProcessDefinitions = graphSession.findAllProcessDefinitions();
       assertEquals(5, allProcessDefinitions.size());
-      assertEquals(3, ((ProcessDefinition) allProcessDefinitions.get(0)).getVersion());
-      assertEquals("auction", ((ProcessDefinition) allProcessDefinitions.get(0)).getName());
-      assertEquals(2, ((ProcessDefinition) allProcessDefinitions.get(1)).getVersion());
-      assertEquals("auction", ((ProcessDefinition) allProcessDefinitions.get(1)).getName());
-      assertEquals(1, ((ProcessDefinition) allProcessDefinitions.get(2)).getVersion());
-      assertEquals("auction", ((ProcessDefinition) allProcessDefinitions.get(2)).getName());
-      assertEquals(2, ((ProcessDefinition) allProcessDefinitions.get(3)).getVersion());
-      assertEquals("bake cake", ((ProcessDefinition) allProcessDefinitions.get(3)).getName());
-      assertEquals(1, ((ProcessDefinition) allProcessDefinitions.get(4)).getVersion());
-      assertEquals("bake cake", ((ProcessDefinition) allProcessDefinitions.get(4)).getName());
+      assertEquals(3, allProcessDefinitions.get(0).getVersion());
+      assertEquals("auction", allProcessDefinitions.get(0).getName());
+      assertEquals(2, allProcessDefinitions.get(1).getVersion());
+      assertEquals("auction", allProcessDefinitions.get(1).getName());
+      assertEquals(1, allProcessDefinitions.get(2).getVersion());
+      assertEquals("auction", allProcessDefinitions.get(2).getName());
+      assertEquals(2, allProcessDefinitions.get(3).getVersion());
+      assertEquals("bake cake", allProcessDefinitions.get(3).getName());
+      assertEquals(1, allProcessDefinitions.get(4).getVersion());
+      assertEquals("bake cake", allProcessDefinitions.get(4).getName());
 
       newTransaction();
     }
@@ -213,21 +212,21 @@
     newTransaction();
 
     try {
-      List allProcessDefinitionVersions = graphSession.findAllProcessDefinitionVersions("auction");
+      List<ProcessDefinition> allProcessDefinitionVersions = graphSession.findAllProcessDefinitionVersions("auction");
       assertEquals(3, allProcessDefinitionVersions.size());
-      assertEquals(3, ((ProcessDefinition) allProcessDefinitionVersions.get(0)).getVersion());
-      assertEquals("auction", ((ProcessDefinition) allProcessDefinitionVersions.get(0)).getName());
-      assertEquals(2, ((ProcessDefinition) allProcessDefinitionVersions.get(1)).getVersion());
-      assertEquals("auction", ((ProcessDefinition) allProcessDefinitionVersions.get(1)).getName());
-      assertEquals(1, ((ProcessDefinition) allProcessDefinitionVersions.get(2)).getVersion());
-      assertEquals("auction", ((ProcessDefinition) allProcessDefinitionVersions.get(2)).getName());
+      assertEquals(3, allProcessDefinitionVersions.get(0).getVersion());
+      assertEquals("auction", allProcessDefinitionVersions.get(0).getName());
+      assertEquals(2, allProcessDefinitionVersions.get(1).getVersion());
+      assertEquals("auction", allProcessDefinitionVersions.get(1).getName());
+      assertEquals(1, allProcessDefinitionVersions.get(2).getVersion());
+      assertEquals("auction", allProcessDefinitionVersions.get(2).getName());
 
       allProcessDefinitionVersions = graphSession.findAllProcessDefinitionVersions("bake cake");
       assertEquals(2, allProcessDefinitionVersions.size());
-      assertEquals(2, ((ProcessDefinition) allProcessDefinitionVersions.get(0)).getVersion());
-      assertEquals("bake cake", ((ProcessDefinition) allProcessDefinitionVersions.get(0)).getName());
-      assertEquals(1, ((ProcessDefinition) allProcessDefinitionVersions.get(1)).getVersion());
-      assertEquals("bake cake", ((ProcessDefinition) allProcessDefinitionVersions.get(1)).getName());
+      assertEquals(2, allProcessDefinitionVersions.get(0).getVersion());
+      assertEquals("bake cake", allProcessDefinitionVersions.get(0).getName());
+      assertEquals(1, allProcessDefinitionVersions.get(1).getVersion());
+      assertEquals("bake cake", allProcessDefinitionVersions.get(1).getName());
 
       newTransaction();
     }
@@ -303,14 +302,12 @@
 
       newTransaction();
 
-      List processInstances = graphSession.findProcessInstances(processDefinition.getId());
+      List<ProcessInstance> processInstances = graphSession.findProcessInstances(processDefinition.getId());
       assertEquals(3, processInstances.size());
 
       // process instances should be ordered from recent to old
       long previousStart = System.currentTimeMillis();
-      Iterator iter = processInstances.iterator();
-      while (iter.hasNext()) {
-        ProcessInstance processInstance = (ProcessInstance) iter.next();
+      for (ProcessInstance processInstance : processInstances) {
         long processStart = processInstance.getStart().getTime();
         assertTrue(previousStart >= processStart);
         previousStart = processStart;
@@ -381,7 +378,7 @@
 
       newTransaction();
 
-      List processInstances = graphSession.findProcessInstances(processDefinition.getId());
+      List<ProcessInstance> processInstances = graphSession.findProcessInstances(processDefinition.getId());
       assertEquals(0, processInstances.size());
 
       newTransaction();
@@ -430,7 +427,7 @@
 
     newTransaction();
 
-    List latestProcessDefinitions = graphSession.findLatestProcessDefinitions();
+    List<ProcessDefinition> latestProcessDefinitions = graphSession.findLatestProcessDefinitions();
     assertEquals(2, latestProcessDefinitions.size());
     assertEquals(3, getVersionOfProcess("websale", latestProcessDefinitions));
     assertEquals(2, getVersionOfProcess("change nappy", latestProcessDefinitions));
@@ -443,25 +440,22 @@
   }
 
   private void ensureCleanProcessDefinitionTable() {
-    List processDefinitions = session.createCriteria(ProcessDefinition.class).list();
+    List<ProcessDefinition> processDefinitions = graphSession.findAllProcessDefinitions();
     if (!processDefinitions.isEmpty()) {
       System.err.println("FIXME: "+ getClass().getName() + "." + getName() +
           " found " + processDefinitions.size() + " process definitions left over");
-      for (Iterator i = processDefinitions.iterator(); i.hasNext();) {
-        ProcessDefinition processDefinition = (ProcessDefinition) i.next();
+      for (ProcessDefinition processDefinition : processDefinitions) {
         graphSession.deleteProcessDefinition(processDefinition);
       }
     }
   }
 
-  private int getVersionOfProcess(String name, List latestProcessDefinitions) {
-    Iterator iter = latestProcessDefinitions.iterator();
-    while (iter.hasNext()) {
-      ProcessDefinition processDefinition = (ProcessDefinition) iter.next();
+  private int getVersionOfProcess(String name, List<ProcessDefinition> latestProcessDefinitions) {
+    for (ProcessDefinition processDefinition : latestProcessDefinitions) {
       if (name.equals(processDefinition.getName())) {
         return processDefinition.getVersion();
       }
     }
-    return -2;
+    return -1;
   }
 }

Modified: jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java
===================================================================
--- jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/assignment/RulesAssignmentTest.java	2009-01-23 08:05:52 UTC (rev 3708)
@@ -21,167 +21,114 @@
  */
 package org.jbpm.examples.assignment;
 
-import java.util.Date;
-import java.util.Iterator;
 import java.util.List;
 
-import junit.framework.TestCase;
-
-import org.jbpm.JbpmConfiguration;
-import org.jbpm.JbpmContext;
 import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.db.AbstractDbTestCase;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.graph.exe.Token;
 import org.jbpm.identity.Entity;
+import org.jbpm.identity.Membership;
 import org.jbpm.identity.hibernate.IdentitySession;
 import org.jbpm.identity.xml.IdentityXmlParser;
-import org.jbpm.persistence.db.DbPersistenceServiceFactory;
-import org.jbpm.svc.Services;
 import org.jbpm.taskmgmt.exe.TaskInstance;
 
 /**
  * This example shows how to invoke JBoss Rules from an AssignmentHandler.
  */
-public class RulesAssignmentTest extends TestCase
-{
-  JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
+public class RulesAssignmentTest extends AbstractDbTestCase {
 
-  DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory)jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
+  private long processDefinitionId;
+  private Entity[] entities;
 
-  JbpmContext jbpmContext;
-  long processInstanceId;
-
-  public void setUp()
-  {
-    dbPersistenceServiceFactory.createSchema();
-
+  protected void setUp() throws Exception {
+    super.setUp();
     loadIdentities();
     deployProcess();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
-  protected void tearDown()
-  {
-    jbpmContext.close();
-    dbPersistenceServiceFactory.dropSchema();
-    jbpmContext = null;
+  protected void tearDown() throws Exception {
+    graphSession.deleteProcessDefinition(processDefinitionId);
+    deleteIdentities();
+    super.tearDown();
   }
 
-  public void deployProcess()
-  {
-    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-    try
-    {
-      ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("assignment/processdefinition.xml");
-      jbpmContext.deployProcessDefinition(processDefinition);
-    }
-    finally
-    {
-      jbpmContext.close();
-    }
+  @Override
+  protected String getJbpmTestConfig() {
+    return null; // use default configuration
   }
 
-  public void loadIdentities()
-  {
-    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-    try
-    {
-      Entity[] entities = IdentityXmlParser.parseEntitiesResource("assignment/identity.db.xml");
-      IdentitySession identitySession = new IdentitySession(jbpmContext.getSession());
-      for (int i = 0; i < entities.length; i++)
-      {
-        identitySession.saveEntity(entities[i]);
-      }
+  void deployProcess() {
+    ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("assignment/processdefinition.xml");
+    jbpmContext.deployProcessDefinition(processDefinition);
+    processDefinitionId = processDefinition.getId();
+  }
+
+  void loadIdentities() {
+    IdentitySession identitySession = new IdentitySession(jbpmContext.getSession());
+    entities = IdentityXmlParser.parseEntitiesResource("assignment/identity.db.xml");
+    for (Entity entity : entities) {
+      if (entity instanceof Membership) continue;
+      identitySession.saveEntity(entity);
     }
-    finally
-    {
-      jbpmContext.close();
-    }
   }
 
-  public void newTransaction()
-  {
-    jbpmContext.close();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
+  void deleteIdentities() {
+    for (Entity entity : entities) {
+      if (entity instanceof Membership) continue;
+      session.load(entity, entity.getId());
+      session.delete(entity);
+    }
   }
 
-  public void testRulesAssignment()
-  {
+  public void testRulesAssignment() {
     // start process
     newTransaction();
-    processInstanceId = createNewProcessInstance();
-    assertNotNull(processInstanceId);
+    long processInstanceId = createNewProcessInstance();
+    assertFalse("ProcessInstanceId is 0", processInstanceId == 0);
 
     // perform task
     newTransaction();
     long taskInstanceId = acquireTask("tom");
-    assertNotNull(taskInstanceId);
+    assertFalse("TaskInstanceId is 0", taskInstanceId == 0);
 
     newTransaction();
     completeTask(taskInstanceId);
 
     newTransaction();
     TaskInstance taskInstance = jbpmContext.loadTaskInstance(taskInstanceId);
-    Date end = taskInstance.getEnd();
-    assertNotNull(end);
+    assertTrue("TaskInstance has not ended", taskInstance.hasEnded());
 
     // complete process
     newTransaction();
-    ProcessInstance processInstance = getProcessInstance(processInstanceId);
-    Date processEnd = processInstance.getEnd();
-    assertNotNull(processEnd);
-
+    ProcessInstance processInstance = jbpmContext.loadProcessInstance(processInstanceId);
+    assertTrue("ProcessInstance has not ended", processInstance.hasEnded());
   }
 
-  public long createNewProcessInstance()
-  {
+  long createNewProcessInstance() {
     String processDefinitionName = "RulesAssignment";
     ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate(processDefinitionName);
-    long id = processInstance.getId();
+
     ContextInstance contextInstance = processInstance.getContextInstance();
     contextInstance.setVariable("processDefinitionName", processDefinitionName);
-    Order order = new Order(300);
-    contextInstance.setVariable("order", order);
-    Token token = processInstance.getRootToken();
-    token.signal();
-    return id;
+    contextInstance.setVariable("order", new Order(300));
+
+    processInstance.signal();
+    return processInstance.getId();
   }
 
-  public long acquireTask(String actorId)
-  {
-    List<TaskInstance> tasklist = getTaskList(actorId);
-    Iterator taskIterator = tasklist.iterator();
+  long acquireTask(String actorId) {
+    List<TaskInstance> taskList = jbpmContext.getTaskList(actorId);
+    assertEquals(1, taskList.size());
 
-    TaskInstance taskInstance = null;
-    long taskInstanceId = 0;
-    while (taskIterator.hasNext())
-    {
-      taskInstance = (TaskInstance)taskIterator.next();
-
-      taskInstanceId = taskInstance.getId();
-      taskInstance.start();
-    }
-    return taskInstanceId;
+    TaskInstance taskInstance = taskList.get(0);
+    taskInstance.start();
+    return taskInstance.getId();
   }
 
-  public void completeTask(long taskInstanceId)
-  {
+  void completeTask(long taskInstanceId) {
     TaskInstance taskInstance = jbpmContext.getTaskInstance(taskInstanceId);
     taskInstance.end();
   }
 
-  public List<TaskInstance> getTaskList(String actorId)
-  {
-    newTransaction();
-    List<TaskInstance> taskList = jbpmContext.getTaskList(actorId);
-    return taskList;
-  }
-
-  public ProcessInstance getProcessInstance(long processInstanceId)
-  {
-    ProcessInstance processInstance = jbpmContext.loadProcessInstanceForUpdate(processInstanceId);
-    return processInstance;
-  }
-
 }

Modified: jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/businesstrip/BusinessTripRequestTest.java
===================================================================
--- jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/businesstrip/BusinessTripRequestTest.java	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/businesstrip/BusinessTripRequestTest.java	2009-01-23 08:05:52 UTC (rev 3708)
@@ -4,131 +4,101 @@
 import java.util.List;
 import java.util.Map;
 
-import junit.framework.TestCase;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jbpm.JbpmConfiguration;
-import org.jbpm.JbpmContext;
 import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.db.AbstractDbTestCase;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.persistence.db.DbPersistenceServiceFactory;
-import org.jbpm.svc.Services;
 import org.jbpm.taskmgmt.exe.TaskInstance;
 import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
 
-public class BusinessTripRequestTest extends TestCase
-{
-  Log log = LogFactory.getLog(this.getClass());
+public class BusinessTripRequestTest extends AbstractDbTestCase {
 
-  JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
-  DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory)jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
+  private long processDefinitionId;
 
-  JbpmContext jbpmContext;
-
-  ProcessInstance processInstance;
-  ContextInstance contextInstance;
-  TaskMgmtInstance taskMgmtInstance;
-  long processInstanceId = -1;
-
-  public void setUp()
-  {
-    dbPersistenceServiceFactory.createSchema();
+  protected void setUp() throws Exception {
+    super.setUp();
     deployProcess();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
-  public void tearDown()
-  {
-    jbpmContext.close();
-    dbPersistenceServiceFactory.dropSchema();
-    jbpmContext = null;
+  protected void tearDown() throws Exception {
+    graphSession.deleteProcessDefinition(processDefinitionId);
+    super.tearDown();
   }
 
-  private void newTransaction()
-  {
-    jbpmContext.close();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
+  @Override
+  protected String getJbpmTestConfig() {
+    return null; // use default configuration
   }
 
-  private void deployProcess()
-  {
-    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-    try
-    {
-      ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("businesstrip/processdefinition.xml");
-      jbpmContext.deployProcessDefinition(processDefinition);
-    }
-    finally
-    {
-      jbpmContext.close();
-    }
+  void deployProcess() {
+    ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("businesstrip/processdefinition.xml");
+    jbpmContext.deployProcessDefinition(processDefinition);
+    processDefinitionId = processDefinition.getId();
   }
 
-  private TaskInstance createNewProcessInstance()
-  {
-    processInstance = jbpmContext.newProcessInstanceForUpdate("business trip request");
-    processInstanceId = processInstance.getId();
-    contextInstance = processInstance.getContextInstance();
-    taskMgmtInstance = processInstance.getTaskMgmtInstance();
+  TaskInstance createNewProcessInstance() {
+    ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate("business trip request");
     return processInstance.getTaskMgmtInstance().createStartTaskInstance();
   }
 
-  public void testTaskParameters()
-  {
+  public void testTaskParameters() {
     TaskInstance taskInstance = createNewProcessInstance();
     assertEquals("submit business trip request", taskInstance.getName());
     assertEquals(0, taskInstance.getVariables().size());
+
+    newTransaction();
   }
 
-  public void testSubmitRaiseRequestTask()
-  {
+  public void testSubmitRaiseRequestTask() {
     jbpmContext.setActorId("employee");
     TaskInstance taskInstance = createNewProcessInstance();
 
     Map<String, Object> taskVariables = new HashMap<String, Object>();
 
     taskVariables.put("purpose", "Conference in MIT");
-    taskVariables.put("description", "This conference is mainly to highlight to impact of ESB technologies on the current industries");
+    taskVariables.put("description",
+        "Highlight to impact of ESB technologies on the current industries");
     taskVariables.put("allocated budget", 3000);
     taskVariables.put("start date", "8/12/2009");
     taskVariables.put("end date", "8/21/2009");
     taskInstance.addVariables(taskVariables);
     taskInstance.end();
 
+    newTransaction();
+    ProcessInstance processInstance = jbpmContext.loadProcessInstance(taskInstance.getProcessInstance()
+        .getId());
+    ContextInstance contextInstance = processInstance.getContextInstance();
     assertEquals("Conference in MIT", contextInstance.getVariable("purpose"));
-    assertEquals("This conference is mainly to highlight to impact of ESB technologies on the current industries", contextInstance.getVariable("description"));
+    assertEquals("Highlight to impact of ESB technologies on the current industries",
+        contextInstance.getVariable("description"));
     assertEquals(3000, contextInstance.getVariable("allocated budget"));
     assertEquals("8/12/2009", contextInstance.getVariable("start date"));
     assertEquals("8/21/2009", contextInstance.getVariable("end date"));
+
+    TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
     assertEquals("employee", taskMgmtInstance.getSwimlaneInstance("employee").getActorId());
   }
 
-  @SuppressWarnings("unchecked")
-  public void testRejectBusinessTripRequest()
-  {
+  public void testRejectBusinessTripRequest() {
     // Employee submits a business trip request
     jbpmContext.setActorId("employee");
     TaskInstance taskInstance = createNewProcessInstance();
 
     Map<String, Object> taskVariables = new HashMap<String, Object>();
     taskVariables.put("purpose", "Conference in MIT");
-    taskVariables.put("description", "This conference is mainly to highlight to impact of ESB technologies on the current industries");
+    taskVariables.put("description",
+        "This conference is mainly to highlight to impact of ESB technologies on the current industries");
     taskVariables.put("allocated budget", 3000);
     taskVariables.put("start date", "8/12/2009");
     taskVariables.put("end date", "8/21/2009");
 
     taskInstance.addVariables(taskVariables);
     taskInstance.end();
-    jbpmContext.save(processInstance);
-    processInstanceId = processInstance.getId();
 
     // Manager rejects the raise request
     newTransaction();
-    log.info(jbpmContext.getTaskMgmtSession().findTaskInstancesByProcessInstance(processInstance).size());
-
-    List<TaskInstance> managerTasksList = jbpmContext.getTaskMgmtSession().findTaskInstances("manager");
+    List<TaskInstance> managerTasksList = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "manager");
     assertEquals(1, managerTasksList.size());
 
     TaskInstance managerTask = managerTasksList.get(0);
@@ -137,16 +107,15 @@
     assertEquals("manager", managerTask.getActorId());
   }
 
-  @SuppressWarnings("unchecked")
-  public void testAcceptBusinessTripRequest()
-  {
+  public void testAcceptBusinessTripRequest() {
     // Employee submits a raise request
     jbpmContext.setActorId("employee");
     TaskInstance taskInstance = createNewProcessInstance();
 
     Map<String, Object> taskVariables = new HashMap<String, Object>();
     taskVariables.put("purpose", "Conference in MIT");
-    taskVariables.put("description", "This conference is mainly to highlight to impact of ESB technologies on the current industries");
+    taskVariables.put("description",
+        "This conference is mainly to highlight to impact of ESB technologies on the current industries");
     taskVariables.put("allocated budget", 3000);
     taskVariables.put("start date", "8/12/2009");
     taskVariables.put("end date", "8/21/2009");
@@ -154,12 +123,11 @@
     taskVariables.put("city", "Kansas");
     taskInstance.addVariables(taskVariables);
     taskInstance.end();
-    jbpmContext.save(processInstance);
-    processInstanceId = processInstance.getId();
 
     // Manager rejects the raise request
     newTransaction();
-    List<TaskInstance> managerTasksList = jbpmContext.getTaskMgmtSession().findTaskInstances("manager");
+    List<TaskInstance> managerTasksList = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "manager");
     assertEquals(1, managerTasksList.size());
 
     TaskInstance managerTask = managerTasksList.get(0);
@@ -169,7 +137,8 @@
     jbpmContext.save(managerTask);
 
     newTransaction();
-    List<TaskInstance> accountantTasksList = jbpmContext.getTaskMgmtSession().findTaskInstances("accountant");
+    List<TaskInstance> accountantTasksList = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "accountant");
     assertEquals(1, accountantTasksList.size());
     TaskInstance accountantTask = accountantTasksList.get(0);
     accountantTask.end();

Modified: jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/raise/RaiseRequestTest.java
===================================================================
--- jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/raise/RaiseRequestTest.java	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/raise/RaiseRequestTest.java	2009-01-23 08:05:52 UTC (rev 3708)
@@ -4,86 +4,54 @@
 import java.util.List;
 import java.util.Map;
 
-import junit.framework.TestCase;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jbpm.JbpmConfiguration;
-import org.jbpm.JbpmContext;
 import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.db.AbstractDbTestCase;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.persistence.db.DbPersistenceServiceFactory;
-import org.jbpm.svc.Services;
 import org.jbpm.taskmgmt.exe.TaskInstance;
 import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
 
-public class RaiseRequestTest extends TestCase
-{
-  Log log = LogFactory.getLog(this.getClass());
+public class RaiseRequestTest extends AbstractDbTestCase {
 
-  JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
-  DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory)jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
+  private long processDefinitionId;
 
-  JbpmContext jbpmContext;
-
-  ProcessInstance processInstance = null;
-  ContextInstance contextInstance = null;
-  TaskMgmtInstance taskMgmtInstance = null;
-  long processInstanceId = -1;
-
-  public void setUp()
-  {
-    dbPersistenceServiceFactory.createSchema();
+  @Override
+  protected void setUp() throws Exception {
+    super.setUp();
     deployProcess();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
-  public void tearDown()
-  {
-    jbpmContext.close();
-    dbPersistenceServiceFactory.dropSchema();
-    jbpmContext = null;
+  @Override
+  protected void tearDown() throws Exception {
+    graphSession.deleteProcessDefinition(processDefinitionId);
+    super.tearDown();
   }
 
-  private void newTransaction()
-  {
-    jbpmContext.close();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
+  @Override
+  protected String getJbpmTestConfig() {
+    return null; // use default configuration
   }
 
-  private void deployProcess()
-  {
-    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-    try
-    {
-      ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("raise/processdefinition.xml");
-      jbpmContext.deployProcessDefinition(processDefinition);
-    }
-    finally
-    {
-      jbpmContext.close();
-    }
+  void deployProcess() {
+    ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("raise/processdefinition.xml");
+    jbpmContext.deployProcessDefinition(processDefinition);
+    processDefinitionId = processDefinition.getId();
   }
 
-  private TaskInstance createNewProcessInstance()
-  {
-    processInstance = jbpmContext.newProcessInstanceForUpdate("raise request");
-    processInstanceId = processInstance.getId();
-    contextInstance = processInstance.getContextInstance();
-    taskMgmtInstance = processInstance.getTaskMgmtInstance();
+  TaskInstance createNewProcessInstance() {
+    ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate("raise request");
     return processInstance.getTaskMgmtInstance().createStartTaskInstance();
   }
 
-  public void testTaskParameters()
-  {
+  public void testTaskParameters() {
     TaskInstance taskInstance = createNewProcessInstance();
     assertEquals("submit raise request", taskInstance.getName());
     assertEquals(0, taskInstance.getVariables().size());
+
+    newTransaction();
   }
 
-  public void testSubmitRaiseRequestTask()
-  {
+  public void testSubmitRaiseRequestTask() {
     jbpmContext.setActorId("employee");
     TaskInstance taskInstance = createNewProcessInstance();
 
@@ -94,23 +62,26 @@
     taskInstance.addVariables(taskVariables);
     taskInstance.end();
 
+    newTransaction();
+    ProcessInstance processInstance = jbpmContext.loadProcessInstance(taskInstance.getProcessInstance()
+        .getId());
+    ContextInstance contextInstance = processInstance.getContextInstance();
     assertEquals("I need to buy a jet", contextInstance.getVariable("reason"));
     assertEquals(600, contextInstance.getVariable("amount"));
+
+    TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
     assertEquals("employee", taskMgmtInstance.getSwimlaneInstance("employee").getActorId());
   }
 
-  @SuppressWarnings("unchecked")
-  public void testManagerEvaluationReject()
-  {
+  public void testManagerEvaluationReject() {
     TaskInstance taskInstance = createNewProcessInstance();
     Map<String, Object> taskVariables = new HashMap<String, Object>();
     taskVariables.put("reason", "I need to buy a jet");
     taskVariables.put("amount", 600);
     taskInstance.addVariables(taskVariables);
     taskInstance.end();
-    jbpmContext.save(processInstance);
-    newTransaction();
 
+    newTransaction();
     List<TaskInstance> managerTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("manager");
     assertEquals(1, managerTasks.size());
 
@@ -121,18 +92,15 @@
     assertEquals(0, foTasks.size());
   }
 
-  @SuppressWarnings("unchecked")
-  public void testManagerEvaluationAcceptFOReject()
-  {
+  public void testManagerEvaluationAcceptFOReject() {
     TaskInstance taskInstance = createNewProcessInstance();
     Map<String, Object> taskVariables = new HashMap<String, Object>();
     taskVariables.put("reason", "I need to buy a jet");
     taskVariables.put("amount", 600);
     taskInstance.addVariables(taskVariables);
     taskInstance.end();
-    jbpmContext.save(processInstance);
-    newTransaction();
 
+    newTransaction();
     List<TaskInstance> managerTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("manager");
     assertEquals(1, managerTasks.size());
     TaskInstance managerTask = managerTasks.get(0);
@@ -152,18 +120,15 @@
     assertEquals(0, managerTasks.size());
   }
 
-  @SuppressWarnings("unchecked")
-  public void testManagerEvaluationAcceptFOAccpet()
-  {
+  public void testManagerEvaluationAcceptFOAccpet() {
     TaskInstance taskInstance = createNewProcessInstance();
     Map<String, Object> taskVariables = new HashMap<String, Object>();
     taskVariables.put("reason", "I need to buy a jet");
     taskVariables.put("amount", 600);
     taskInstance.addVariables(taskVariables);
     taskInstance.end();
-    jbpmContext.save(processInstance);
-    newTransaction();
 
+    newTransaction();
     List<TaskInstance> managerTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("manager");
     assertEquals(1, managerTasks.size());
     TaskInstance managerTask = managerTasks.get(0);
@@ -180,7 +145,8 @@
     foTask.end("accept");
 
     newTransaction();
-    List<TaskInstance> accountantTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("accountant");
+    List<TaskInstance> accountantTasks = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "accountant");
     assertEquals(1, accountantTasks.size());
 
     TaskInstance accountantTask = accountantTasks.get(0);
@@ -189,18 +155,15 @@
     accountantTask.end("terminate");
   }
 
-  @SuppressWarnings("unchecked")
-  public void testManagerEvaluationAcceptFOMultipleIterationsAccpet()
-  {
+  public void testManagerEvaluationAcceptFOMultipleIterationsAccpet() {
     TaskInstance taskInstance = createNewProcessInstance();
     Map<String, Object> taskVariables = new HashMap<String, Object>();
     taskVariables.put("reason", "I need to buy a jet");
     taskVariables.put("amount", 600);
     taskInstance.addVariables(taskVariables);
     taskInstance.end();
-    jbpmContext.save(processInstance);
-    newTransaction();
 
+    newTransaction();
     List<TaskInstance> managerTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("manager");
     assertEquals(1, managerTasks.size());
     TaskInstance managerTask = managerTasks.get(0);
@@ -235,7 +198,8 @@
     foTask.end("accept");
 
     newTransaction();
-    List<TaskInstance> accountantTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("accountant");
+    List<TaskInstance> accountantTasks = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "accountant");
     assertEquals(1, accountantTasks.size());
 
     TaskInstance accountantTask = accountantTasks.get(0);

Modified: jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java
===================================================================
--- jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/rulesaction/RulesActionTest.java	2009-01-23 08:05:52 UTC (rev 3708)
@@ -21,104 +21,68 @@
  */
 package org.jbpm.examples.rulesaction;
 
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-import org.jbpm.JbpmConfiguration;
-import org.jbpm.JbpmContext;
 import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.db.AbstractDbTestCase;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.persistence.db.DbPersistenceServiceFactory;
-import org.jbpm.svc.Services;
-import org.jbpm.graph.exe.Token;
 
 /**
  * This example shows how to invoke JBoss Drools from an ActionHandler.
  */
-public class RulesActionTest extends TestCase
-{
+public class RulesActionTest extends AbstractDbTestCase {
 
-  JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
+  private long processDefinitionId;
 
-  DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory)jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
-
-  JbpmContext jbpmContext;
-  long processInstanceId;
-
-  public void setUp()
-  {
-    dbPersistenceServiceFactory.createSchema();
+  @Override
+  protected void setUp() throws Exception {
+    super.setUp();
     deployProcess();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
-  public void tearDown()
-  {
-    jbpmContext.close();
-    dbPersistenceServiceFactory.dropSchema();
-    jbpmContext = null;
+  @Override
+  protected void tearDown() throws Exception {
+    graphSession.deleteProcessDefinition(processDefinitionId);
+    super.tearDown();
   }
 
-  public void newTransaction()
-  {
-    jbpmContext.close();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
+  @Override
+  protected String getJbpmTestConfig() {
+    return null; // use default configuration
   }
 
-  public void deployProcess()
-  {
-    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-    try
-    {
-      ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("rulesaction/processdefinition.xml");
-      jbpmContext.deployProcessDefinition(processDefinition);
-    }
-    finally
-    {
-      jbpmContext.close();
-    }
+  void deployProcess() {
+    ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("rulesaction/processdefinition.xml");
+    jbpmContext.deployProcessDefinition(processDefinition);
+    processDefinitionId = processDefinition.getId();
   }
 
-  public void testRulesAssignment()
-  {
+  public void testRulesAssignment() {
     // start process
     newTransaction();
-    processInstanceId = createNewProcessInstance();
-    assertNotNull(processInstanceId);
+    long processInstanceId = createNewProcessInstance();
+    assertFalse("ProcessInstanceId is 0", processInstanceId == 0);
 
     newTransaction();
-    ProcessInstance processInstance = getProcessInstance(processInstanceId);
+    ProcessInstance processInstance = jbpmContext.loadProcessInstance(processInstanceId);
+    assertTrue("ProcessInstance has not ended", processInstance.hasEnded());
 
-    assertNotNull(processInstance);
-
-    Date processEnd = processInstance.getEnd();
-    assertNotNull(processEnd);
-    String shipper = (String)processInstance.getContextInstance().getVariable("shipper");
-    assertEquals("shipper is FEDX", shipper, "FEDX");
-
+    String shipper = (String) processInstance.getContextInstance().getVariable("shipper");
+    assertEquals("FEDX", shipper);
   }
 
-  public long createNewProcessInstance()
-  {
+  long createNewProcessInstance() {
     String processDefinitionName = "RulesAction";
     ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate(processDefinitionName);
-    long id = processInstance.getId();
+
     ContextInstance contextInstance = processInstance.getContextInstance();
     contextInstance.setVariable("processDefinitionName", processDefinitionName);
+
     Order order = new Order(300);
     Customer customer = new Customer("Fred", new Integer(5), new Integer(25), new Long(100000));
     contextInstance.setVariable("order", order);
     contextInstance.setVariable("customer", customer);
-    Token token = processInstance.getRootToken();
-    token.signal();
-    return id;
-  }
 
-  public ProcessInstance getProcessInstance(long processInstanceId)
-  {
-    ProcessInstance processInstance = jbpmContext.loadProcessInstanceForUpdate(processInstanceId);
-    return processInstance;
+    processInstance.signal();
+    return processInstance.getId();
   }
 }

Modified: jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java
===================================================================
--- jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java	2009-01-23 08:05:52 UTC (rev 3708)
@@ -21,112 +21,73 @@
  */
 package org.jbpm.examples.taskinstance;
 
-import java.util.Date;
 import java.util.List;
 
-import junit.framework.TestCase;
-
 import org.hibernate.Criteria;
 import org.hibernate.Session;
+import org.hibernate.cfg.Configuration;
 import org.hibernate.criterion.Restrictions;
 import org.jbpm.JbpmConfiguration;
-import org.jbpm.JbpmContext;
 import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.db.AbstractDbTestCase;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.graph.exe.Token;
-import org.jbpm.identity.Entity;
-import org.jbpm.identity.hibernate.IdentitySession;
-import org.jbpm.identity.xml.IdentityXmlParser;
 import org.jbpm.persistence.db.DbPersistenceServiceFactory;
 import org.jbpm.svc.Services;
 import org.jbpm.taskmgmt.exe.TaskInstance;
+import org.jbpm.util.CollectionUtil;
 
 /**
  * This example shows how to extend the TaskInstance by adding a custom property.
  */
-public class CustomTaskInstanceTest extends TestCase {
+public class CustomTaskInstanceTest extends AbstractDbTestCase {
 
-  JbpmConfiguration jbpmConfiguration = null;
-  // JbpmConfiguration.getInstance();
+  private long processDefinitionId;
 
-  DbPersistenceServiceFactory dbPersistenceServiceFactory;
-
-  JbpmContext jbpmContext;
-
-  ProcessInstance processInstance = null;
-
-  ContextInstance contextInstance = null;
-
-  protected void setUp() {
-    // the jbpm.cfg.xml file is modified to add the CustomTaskInstanceFactory
-    // so we will read in the file from the config directory of this example
-    jbpmConfiguration = JbpmConfiguration.parseResource("taskinstance/jbpm.cfg.xml");
-
-    dbPersistenceServiceFactory = (DbPersistenceServiceFactory) jbpmConfiguration
-        .getServiceFactory(Services.SERVICENAME_PERSISTENCE);
-
-    // the CustomTaskInstance mapping file reference
-    // <mapping resource="org/jbpm/taskinstance/CustomTaskInstance.hbm.xml"/>
-    // has been added to to the bottom of the hibernate.cfg.xml file in the config directory
-
-    // now create the schema
-    // this is also a step that typically would be performed as an independent step
-    // using the jbpm schema created from the jbpm mapping files
-
-    dbPersistenceServiceFactory.createSchema();
+  protected void setUp() throws Exception {
+    super.setUp();
     deployProcess();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
-  protected void tearDown() {
-    jbpmContext.close();
-    dbPersistenceServiceFactory.dropSchema();
-    jbpmContext = null;
+  protected void tearDown() throws Exception {
+    graphSession.deleteProcessDefinition(processDefinitionId);
+    super.tearDown();
+    jbpmConfiguration.close();
   }
 
-  void newTransaction() {
-    jbpmContext.close();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
-  }
+  @Override
+  protected JbpmConfiguration getJbpmConfiguration() {
+    if (jbpmConfiguration == null) {
+      // the jbpm.cfg.xml file is modified to add the CustomTaskInstanceFactory
+      // so we will read in the file from the config directory of this example
+      jbpmConfiguration = JbpmConfiguration.parseResource("taskinstance/jbpm.cfg.xml");
+      DbPersistenceServiceFactory factory = (DbPersistenceServiceFactory) jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
 
-  void deployProcess() {
-    jbpmContext = jbpmConfiguration.createJbpmContext();
-    try {
-      ProcessDefinition processDefinition = ProcessDefinition
-          .parseXmlResource("taskinstance/processdefinition.xml");
-      jbpmContext.deployProcessDefinition(processDefinition);
+      Configuration configuration = factory.getConfiguration();
+      configuration.addResource("taskinstance/CustomTaskInstance.hbm.xml");
+
+      // TODO https://jira.jboss.org/jira/browse/JBPM-1812
+      // JbpmSchema jbpmSchema = new JbpmSchema(configuration);
+      // jbpmSchema.updateTable("JBPM_TASKINSTANCE");
     }
-    finally {
-      jbpmContext.close();
-    }
+    return jbpmConfiguration;
   }
 
-  void loadIdentities() {
-    jbpmContext = jbpmConfiguration.createJbpmContext();
-    try {
-      Entity[] entities = IdentityXmlParser.parseEntitiesResource("identity.db.xml");
-      IdentitySession identitySession = new IdentitySession(jbpmContext.getSession());
-      for (int i = 0; i < entities.length; i++) {
-        identitySession.saveEntity(entities[i]);
-      }
-    }
-    finally {
-      jbpmContext.close();
-    }
+  void deployProcess() {
+    ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("taskinstance/processdefinition.xml");
+    jbpmContext.deployProcessDefinition(processDefinition);
+    processDefinitionId = processDefinition.getId();
   }
 
   public void testCustomTaskInstance() {
     // create processInstance
     newTransaction();
     long processInstanceId = createNewProcessInstance();
-    assertNotNull(processInstanceId);
     assertFalse("ProcessInstanceId is 0", processInstanceId == 0);
 
     // perform the task
     newTransaction();
     long taskInstanceId = acquireTask();
-    assertNotNull(taskInstanceId);
     assertFalse("TaskInstanceId is 0", taskInstanceId == 0);
     newTransaction();
 
@@ -134,27 +95,24 @@
 
     newTransaction();
     TaskInstance taskInstance = jbpmContext.loadTaskInstance(taskInstanceId);
-    Date end = taskInstance.getEnd();
-    assertNotNull(end);
+    assertTrue("TaskInstance has not ended", taskInstance.hasEnded());
 
     // check process is completed
     newTransaction();
-    Date processEnd = null;
-    processInstance = jbpmContext.getProcessInstance(processInstanceId);
-    processEnd = processInstance.getEnd();
-    assertNotNull(processEnd);
+    ProcessInstance processInstance = jbpmContext.getProcessInstance(processInstanceId);
+    assertTrue("ProcessInstance has not ended", processInstance.hasEnded());
   }
 
   long createNewProcessInstance() {
     String processDefinitionName = "CustomTaskInstance";
-    processInstance = jbpmContext.newProcessInstanceForUpdate(processDefinitionName);
-    long processInstanceId = processInstance.getId();
-    contextInstance = processInstance.getContextInstance();
+    ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate(processDefinitionName);
+
+    ContextInstance contextInstance = processInstance.getContextInstance();
     contextInstance.setVariable("processDefinitionName", processDefinitionName);
     contextInstance.setVariable("customId", "abc");
-    Token token = processInstance.getRootToken();
-    token.signal();
-    return processInstanceId;
+
+    processInstance.signal();
+    return processInstance.getId();
   }
 
   long acquireTask() {
@@ -171,22 +129,21 @@
   }
 
   void completeTask(long taskInstanceId) {
-    CustomTaskInstance taskInstance = (CustomTaskInstance) jbpmContext.getSession()
-        .load(CustomTaskInstance.class, new Long(taskInstanceId));
+    CustomTaskInstance taskInstance = (CustomTaskInstance) jbpmContext.getSession().load(
+        CustomTaskInstance.class, new Long(taskInstanceId));
     taskInstance.end();
   }
 
   List<CustomTaskInstance> findPooledTaskListByCustomId(String actorId, String customId) {
     Session session = jbpmContext.getSession();
-    return session.createCriteria(CustomTaskInstance.class)
-        // .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
+    Criteria criteria = session.createCriteria(CustomTaskInstance.class)
         .add(Restrictions.isNull("actorId"))
         .add(Restrictions.isNull("end"))
         .add(Restrictions.eq("isCancelled", false))
         .add(Restrictions.eq("customId", customId))
         .createCriteria("pooledActors")
-            .add(Restrictions.eq("actorId", actorId))
-        .list();
+        .add(Restrictions.eq("actorId", actorId));
+    return CollectionUtil.checkList(criteria.list(), CustomTaskInstance.class);
   }
 
 }

Modified: jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/websale/WebsaleTest.java
===================================================================
--- jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/websale/WebsaleTest.java	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/examples/src/test/java/org/jbpm/examples/websale/WebsaleTest.java	2009-01-23 08:05:52 UTC (rev 3708)
@@ -25,115 +25,57 @@
 import java.util.List;
 import java.util.Map;
 
-import junit.framework.TestCase;
-
-import org.jbpm.JbpmConfiguration;
-import org.jbpm.JbpmContext;
 import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.db.AbstractDbTestCase;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.identity.Entity;
-import org.jbpm.identity.hibernate.IdentitySession;
-import org.jbpm.identity.xml.IdentityXmlParser;
-import org.jbpm.persistence.db.DbPersistenceServiceFactory;
-import org.jbpm.svc.Services;
 import org.jbpm.taskmgmt.exe.TaskInstance;
 import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
 
-public class WebsaleTest extends TestCase
-{
-  JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
-  DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory)jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
+public class WebsaleTest extends AbstractDbTestCase {
 
-  JbpmContext jbpmContext;
+  private long processDefinitionId;
 
-  ProcessInstance processInstance;
-  ContextInstance contextInstance;
-  TaskMgmtInstance taskMgmtInstance;
-  long processInstanceId = -1;
-
-  public void setUp()
-  {
-    dbPersistenceServiceFactory.createSchema();
+  protected void setUp() throws Exception {
+    super.setUp();
     deployProcess();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
-  public void tearDown()
-  {
-    jbpmContext.close();
-    dbPersistenceServiceFactory.dropSchema();
-    jbpmContext = null;
+  protected void tearDown() throws Exception {
+    graphSession.deleteProcessDefinition(processDefinitionId);
+    super.tearDown();
   }
 
-  public void newTransaction()
-  {
-    jbpmContext.close();
-    jbpmContext = jbpmConfiguration.createJbpmContext();
+  @Override
+  protected String getJbpmTestConfig() {
+    return null; // use default configuration
   }
 
-  public void deployProcess()
-  {
-    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-    try
-    {
-      ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("websale/jpdl/processdefinition.xml");
-      jbpmContext.deployProcessDefinition(processDefinition);
-    }
-    finally
-    {
-      jbpmContext.close();
-    }
+  void deployProcess() {
+    ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("websale/jpdl/processdefinition.xml");
+    jbpmContext.deployProcessDefinition(processDefinition);
+    processDefinitionId = processDefinition.getId();
   }
 
-  public void loadIdentities()
-  {
-    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-    try
-    {
-      Entity[] entities = IdentityXmlParser.parseEntitiesResource("assignment/identity.db.xml");
-      IdentitySession identitySession = new IdentitySession(jbpmContext.getSession());
-      for (int i = 0; i < entities.length; i++)
-      {
-        identitySession.saveEntity(entities[i]);
-      }
-    }
-    finally
-    {
-      jbpmContext.close();
-    }
-  }
-
-  public TaskInstance createNewProcessInstance()
-  {
-    processInstance = jbpmContext.newProcessInstanceForUpdate("websale");
-    processInstanceId = processInstance.getId();
-    contextInstance = processInstance.getContextInstance();
-    taskMgmtInstance = processInstance.getTaskMgmtInstance();
+  TaskInstance createNewProcessInstance() {
+    ProcessInstance processInstance = jbpmContext.newProcessInstanceForUpdate("websale");
     return processInstance.getTaskMgmtInstance().createStartTaskInstance();
   }
 
-  public void reloadProcessInstance()
-  {
-    processInstance = jbpmContext.loadProcessInstanceForUpdate(processInstanceId);
-    contextInstance = processInstance.getContextInstance();
-    taskMgmtInstance = processInstance.getTaskMgmtInstance();
-  }
-
-  public void testWebSaleOrderTaskParameters()
-  {
+  public void testWebSaleOrderTaskParameters() {
     TaskInstance taskInstance = createNewProcessInstance();
     assertEquals("Create new web sale order", taskInstance.getName());
     assertEquals(0, taskInstance.getVariables().size());
+
+    newTransaction();
   }
 
-  public void testPerformWebSaleOrderTask()
-  {
+  public void testPerformWebSaleOrderTask() {
     jbpmContext.setActorId("user");
     // create a task to start the websale process
     TaskInstance taskInstance = createNewProcessInstance();
 
-    Map taskVariables = new HashMap();
+    Map<String, Object> taskVariables = new HashMap<String, Object>();
     taskVariables.put("item", "cookies");
     taskVariables.put("quantity", "lots of them");
     taskVariables.put("address", "46 Main St.");
@@ -141,28 +83,32 @@
     taskInstance.addVariables(taskVariables);
     taskInstance.end();
 
+    newTransaction();
+    ProcessInstance processInstance = jbpmContext.loadProcessInstance(taskInstance.getProcessInstance()
+        .getId());
+    ContextInstance contextInstance = processInstance.getContextInstance();
     assertEquals("cookies", contextInstance.getVariable("item"));
     assertEquals("lots of them", contextInstance.getVariable("quantity"));
     assertEquals("46 Main St.", contextInstance.getVariable("address"));
+
+    TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
     assertEquals("user", taskMgmtInstance.getSwimlaneInstance("buyer").getActorId());
   }
 
-  public void testEvaluateAssignment()
-  {
+  public void testEvaluateAssignment() {
     jbpmContext.setActorId("user");
+
     // create a task to start the websale process
     TaskInstance taskInstance = createNewProcessInstance();
     taskInstance.setVariable("item", "cookies");
     taskInstance.end();
-    jbpmContext.save(processInstance);
-    processInstanceId = processInstance.getId();
 
     newTransaction();
-
-    List sampleManagersTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("manager");
+    List<TaskInstance> sampleManagersTasks = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "manager");
     assertEquals(1, sampleManagersTasks.size());
 
-    TaskInstance evaluateTaskInstance = (TaskInstance)sampleManagersTasks.get(0);
+    TaskInstance evaluateTaskInstance = sampleManagersTasks.get(0);
     assertEquals("manager", evaluateTaskInstance.getActorId());
     assertEquals("Evaluate web order", evaluateTaskInstance.getName());
     assertNotNull(evaluateTaskInstance.getToken());
@@ -171,24 +117,21 @@
     assertNull(evaluateTaskInstance.getEnd());
   }
 
-  public void testEvaluateOk()
-  {
+  public void testEvaluateOk() {
     TaskInstance taskInstance = createNewProcessInstance();
     taskInstance.end();
-    jbpmContext.save(processInstance);
 
     newTransaction();
-
-    TaskInstance evaluateTaskInstance = (TaskInstance)jbpmContext.getTaskMgmtSession().findTaskInstances("manager").get(0);
+    TaskInstance evaluateTaskInstance = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "manager").get(0);
     evaluateTaskInstance.end("OK");
-    jbpmContext.save(evaluateTaskInstance);
 
     newTransaction();
-
-    List sampleShippersTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("shipper");
+    List<TaskInstance> sampleShippersTasks = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "shipper");
     assertEquals(1, sampleShippersTasks.size());
 
-    TaskInstance waitForMoneyTaskInstance = (TaskInstance)sampleShippersTasks.get(0);
+    TaskInstance waitForMoneyTaskInstance = sampleShippersTasks.get(0);
     assertEquals("shipper", waitForMoneyTaskInstance.getActorId());
     assertEquals("Wait for money", waitForMoneyTaskInstance.getName());
     assertNotNull(waitForMoneyTaskInstance.getToken());
@@ -197,63 +140,60 @@
     assertNull(waitForMoneyTaskInstance.getEnd());
   }
 
-  public void testUnwritableVariableException()
-  {
+  public void testUnwritableVariableException() {
     testEvaluateAssignment();
+
     newTransaction();
-    List sampleManagersTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("manager");
-    TaskInstance evaluateTaskInstance = (TaskInstance)sampleManagersTasks.get(0);
+    List<TaskInstance> sampleManagersTasks = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "manager");
+    TaskInstance evaluateTaskInstance = sampleManagersTasks.get(0);
     evaluateTaskInstance.end();
 
     newTransaction();
-
-    processInstance = jbpmContext.getGraphSession().loadProcessInstance(processInstanceId);
-    contextInstance = processInstance.getContextInstance();
+    ProcessInstance processInstance = jbpmContext.getGraphSession().loadProcessInstance(
+        evaluateTaskInstance.getProcessInstance().getId());
+    ContextInstance contextInstance = processInstance.getContextInstance();
     // so the cookies should still be in the item process variable.
     assertEquals("cookies", contextInstance.getVariable("item"));
   }
 
-  public void testEvaluateNok()
-  {
+  public void testEvaluateNok() {
     testEvaluateAssignment();
-    newTransaction();
 
-    List sampleManagersTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("manager");
-    TaskInstance evaluateTaskInstance = (TaskInstance)sampleManagersTasks.get(0);
+    newTransaction();
+    List<TaskInstance> sampleManagersTasks = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "manager");
+    TaskInstance evaluateTaskInstance = sampleManagersTasks.get(0);
     evaluateTaskInstance.setVariable("comment", "wtf");
     evaluateTaskInstance.end("More info needed");
     jbpmContext.save(evaluateTaskInstance);
 
     newTransaction();
-
-    List sampleUserTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("user");
+    List<TaskInstance> sampleUserTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("user");
     assertEquals(1, sampleUserTasks.size());
-    TaskInstance fixWebOrderDataTaskInstance = (TaskInstance)sampleUserTasks.get(0);
+    TaskInstance fixWebOrderDataTaskInstance = sampleUserTasks.get(0);
     assertEquals("user", fixWebOrderDataTaskInstance.getActorId());
     assertEquals("wtf", fixWebOrderDataTaskInstance.getVariable("comment"));
   }
 
-  public void testMoreInfoNeeded()
-  {
+  public void testMoreInfoNeeded() {
     jbpmContext.setActorId("user");
 
     // create a task to start the websale process
     TaskInstance taskInstance = createNewProcessInstance();
     taskInstance.end();
-    jbpmContext.save(processInstance);
 
     newTransaction();
-
-    TaskInstance evaluateTaskInstance = (TaskInstance)jbpmContext.getTaskMgmtSession().findTaskInstances("manager").get(0);
+    TaskInstance evaluateTaskInstance = jbpmContext.getTaskMgmtSession().findTaskInstances(
+        "manager").get(0);
     evaluateTaskInstance.end("More info needed");
     jbpmContext.save(evaluateTaskInstance);
 
     newTransaction();
-
-    List sampleUserTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("user");
+    List<TaskInstance> sampleUserTasks = jbpmContext.getTaskMgmtSession().findTaskInstances("user");
     assertEquals(1, sampleUserTasks.size());
 
-    TaskInstance fixWebOrderDataTaskInstance = (TaskInstance)sampleUserTasks.get(0);
+    TaskInstance fixWebOrderDataTaskInstance = sampleUserTasks.get(0);
     assertEquals("user", fixWebOrderDataTaskInstance.getActorId());
     assertEquals("Fix web order data", fixWebOrderDataTaskInstance.getName());
     assertNotNull(fixWebOrderDataTaskInstance.getToken());

Modified: jbpm3/trunk/modules/examples/src/test/resources/hibernate.extra.hbm.xml
===================================================================
--- jbpm3/trunk/modules/examples/src/test/resources/hibernate.extra.hbm.xml	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/examples/src/test/resources/hibernate.extra.hbm.xml	2009-01-23 08:05:52 UTC (rev 3708)
@@ -1,5 +1,4 @@
 <?xml version="1.0"?>
-
 <!DOCTYPE hibernate-mapping PUBLIC
       "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
       "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
@@ -9,11 +8,5 @@
   <!-- ################################################## -->
   <!-- # Additional mappings defined per module go here # -->
   <!-- ################################################## -->
-   
-  <subclass name="org.jbpm.examples.taskinstance.CustomTaskInstance" 
-         extends="org.jbpm.taskmgmt.exe.TaskInstance"
-         discriminator-value="C">
-    	<property name="customId" column="CUSTOMID_" />
-  </subclass>
-  
+
 </hibernate-mapping>

Added: jbpm3/trunk/modules/examples/src/test/resources/taskinstance/CustomTaskInstance.hbm.xml
===================================================================
--- jbpm3/trunk/modules/examples/src/test/resources/taskinstance/CustomTaskInstance.hbm.xml	                        (rev 0)
+++ jbpm3/trunk/modules/examples/src/test/resources/taskinstance/CustomTaskInstance.hbm.xml	2009-01-23 08:05:52 UTC (rev 3708)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+  <subclass name="org.jbpm.examples.taskinstance.CustomTaskInstance"
+    extends="org.jbpm.taskmgmt.exe.TaskInstance" discriminator-value="C">
+    <property name="customId" column="CUSTOMID_" />
+  </subclass>
+
+</hibernate-mapping>

Modified: jbpm3/trunk/modules/examples/src/test/resources/taskinstance/jbpm.cfg.xml
===================================================================
--- jbpm3/trunk/modules/examples/src/test/resources/taskinstance/jbpm.cfg.xml	2009-01-23 07:14:34 UTC (rev 3707)
+++ jbpm3/trunk/modules/examples/src/test/resources/taskinstance/jbpm.cfg.xml	2009-01-23 08:05:52 UTC (rev 3708)
@@ -1,49 +1,3 @@
 <jbpm-configuration>
-
-  <!-- 
-    This configuration is used when there is no jbpm.cfg.xml file found in the 
-    root of the classpath.  It is a very basic configuration without persistence
-    and message services.  Only the authorization service installed.
-    You can parse and create processes, but when you try to use one of the 
-    unavailable services, you'll get an exception.
-  -->
-  
-  <jbpm-context>
-    <service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory" />
-    <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
-    <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory" />
-    <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" />
-    <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
-    <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
-  </jbpm-context>
-
-  <!-- configuration property used by persistence service impl org.jbpm.persistence.db.DbPersistenceServiceFactory -->
-  <string name="resource.hibernate.cfg.xml" value="hibernate.cfg.xml" />
-
-  <!-- configuration resource files pointing to default configuration files in jbpm-{version}.jar -->
-  <string name="resource.business.calendar" value="org/jbpm/calendar/jbpm.business.calendar.properties" />
-  <string name="resource.default.modules" value="org/jbpm/graph/def/jbpm.default.modules.properties" />
-  <string name="resource.converter" value="org/jbpm/db/hibernate/jbpm.converter.properties" />
-  <string name="resource.action.types" value="org/jbpm/graph/action/action.types.xml" />
-  <string name="resource.node.types" value="org/jbpm/graph/node/node.types.xml" />
-  <string name="resource.parsers" value="org/jbpm/jpdl/par/jbpm.parsers.xml" />
-  <string name="resource.varmapping" value="org/jbpm/context/exe/jbpm.varmapping.xml" />
-  <string name="resource.mail.templates" value="jbpm.mail.templates.xml" />
-
-  <int    name="jbpm.byte.block.size" value="1024" singleton="true" />
-  <string name="jbpm.mail.smtp.host" value="localhost" />
-  <!-- bean name="jbpm.task.instance.factory" class="org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl" singleton="true" /-->
   <bean name="jbpm.task.instance.factory" class="org.jbpm.examples.taskinstance.CustomTaskInstanceFactoryImpl" singleton="true" />
-  <bean   name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true" />
-  <bean   name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver" singleton="true" />
-  
-  <bean name="jbpm.job.executor" class="org.jbpm.job.executor.JobExecutor">
-    <field name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></field>
-    <field name="name"><string value="JbpmJobExector" /></field>
-    <field name="nbrOfThreads"><int value="1" /></field>
-    <field name="idleInterval"><int value="2500" /></field>
-    <field name="maxIdleInterval"><int value="3600000" /></field>
-    <field name="historyMaxSize"><int value="20" /></field>
-  </bean>
-
 </jbpm-configuration>




More information about the jbpm-commits mailing list