[jboss-svn-commits] JBL Code SVN: r22262 - in labs/jbossrules/trunk/drools-process/drools-process-task/src: test/java/org/drools/task and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Aug 30 18:16:47 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-08-30 18:16:47 -0400 (Sat, 30 Aug 2008)
New Revision: 22262

Modified:
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/BaseTest.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel
Log:
JBRULES-1745 WS-Human-Task
-Added more unit tests for scheduler and the scheduler gets it's own EntityManager.

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java	2008-08-30 21:54:11 UTC (rev 22261)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java	2008-08-30 22:16:47 UTC (rev 22262)
@@ -10,6 +10,7 @@
 import java.util.concurrent.TimeUnit;
 
 import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
 import javax.persistence.Query;
 
 import org.drools.task.Deadline;
@@ -19,6 +20,8 @@
 import org.drools.task.query.TaskSummary;
 
 public class TaskService {
+    EntityManagerFactory             emf;
+        
     EntityManager                    em;
 
     Query                            openOwnedTasksForUser;
@@ -28,9 +31,10 @@
 
     private EscalatedDeadlineHandler escalatedDeadlineHandler;
 
-    public TaskService(EntityManager em) {
-        this.em = em;
-
+    public TaskService(EntityManagerFactory emf) {
+        this.emf = emf;
+        em = emf.createEntityManager();
+        
         Reader reader = new InputStreamReader( getClass().getResourceAsStream( "OpenOwnedTasksForUser.txt" ) );
         try {
             openOwnedTasksForUser = em.createQuery( toString( reader ) );
@@ -60,6 +64,14 @@
                                         e );
         }
     }
+    
+    public EntityManagerFactory getEntityManagerFactory() {
+        return emf;
+    }
+    
+    public EntityManager getEntityManager() {
+        return em;
+    }    
 
     public void setEscalatedDeadlineHandler(EscalatedDeadlineHandler escalatedDeadlineHandler) {
         this.escalatedDeadlineHandler = escalatedDeadlineHandler;
@@ -80,7 +92,6 @@
     public void addTask(Task task) {
         em.getTransaction().begin();
         em.persist( task );
-        em.flush();
         em.getTransaction().commit();
         long now = System.currentTimeMillis();
         // schedule after it's been persisted, otherwise the id's won't be assigned
@@ -114,12 +125,13 @@
                     }
                 }
             }
-        }
+       }
     }
 
     public Task getTask(long taskId) {
-        return em.find( Task.class,
+        Task task = em.find( Task.class,
                         taskId );
+        return task;
     }
 
     public List<Object[]> getUnescalatedDeadlines() {
@@ -138,9 +150,10 @@
 
     public void executeEscalatedDeadline(long taskId,
                                          long deadlineId) {
-        Task task = em.find( Task.class,
+        EntityManager localEm = emf.createEntityManager();
+        Task task = localEm.find( Task.class,
                              taskId );
-        Deadline deadline = em.find( Deadline.class,
+        Deadline deadline = localEm.find( Deadline.class,
                                      deadlineId );
 
         if ( escalatedDeadlineHandler == null ) {
@@ -149,7 +162,8 @@
 
         escalatedDeadlineHandler.executeEscalatedDeadline( task,
                                                            deadline,
-                                                           em );
+                                                           localEm );
+        localEm.close();
     }
 
     public static String toString(Reader reader) throws IOException {

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/BaseTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/BaseTest.java	2008-08-30 21:54:11 UTC (rev 22261)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/BaseTest.java	2008-08-30 22:16:47 UTC (rev 22262)
@@ -51,7 +51,6 @@
 
 public abstract class BaseTest extends TestCase {
     protected EntityManagerFactory emf;
-    protected EntityManager em;
     
     protected Map<String, User> users;
     protected Map<String, Group> groups;
@@ -60,13 +59,11 @@
     
     protected void setUp() throws Exception {
         // Use persistence.xml configuration
-        emf = Persistence.createEntityManagerFactory( "org.drools.task" );
-        em = emf.createEntityManager(); // Retrieve an application managed entity manager        
+        emf = Persistence.createEntityManagerFactory( "org.drools.task" );        
         
-        taskService = new TaskService( em );
+        taskService = new TaskService( emf );
         
         Map  vars = new HashedMap();
-        //vars.put( "em", em );   
         
         Reader reader = new InputStreamReader( BaseTest.class.getResourceAsStream( "LoadUsers.mvel" ) );     
         users = ( Map<String, User> ) eval( reader, vars );   
@@ -82,7 +79,6 @@
     }
     
     protected void tearDown() throws Exception {
-        em.close();
         emf.close();
     }    
 

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java	2008-08-30 21:54:11 UTC (rev 22261)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java	2008-08-30 22:16:47 UTC (rev 22262)
@@ -178,6 +178,7 @@
         List<Deadline> startDeadlines = new ArrayList<Deadline>();
         deadlines.setStartDeadlines( startDeadlines );
         Deadline deadline = new Deadline();
+        deadline.setEscalated( true );
         startDeadlines.add( deadline );
         deadline.setDate( new Date( 10000000 ) );
         List<I18NText> docs = new ArrayList<I18NText>();
@@ -257,6 +258,7 @@
         List<Deadline> endDeadlines = new ArrayList<Deadline>();
         deadlines.setEndDeadlines( endDeadlines );
         deadline = new Deadline();
+        deadline.setEscalated( true );
         endDeadlines.add( deadline );
         deadline.setDate( new Date( 10000000 ) );
         docs = new ArrayList<I18NText>();
@@ -333,11 +335,11 @@
         potentialOwners.add( users.get( "stuart" ) );
         potentialOwners.add( users.get( "dalai" ) );        
 
-        taskService.addTask( task1 );        
+        taskService.addTask( task1 );                
         
-        em.clear();
+        taskService.getEntityManager().clear();
         
-        Task task2 = taskService.getTask( task1.getId( ) );
+        Task task2 = taskService.getTask( task1.getId( ) );       
         
         assertNotSame( task1,
                        task2 );

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java	2008-08-30 21:54:11 UTC (rev 22261)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java	2008-08-30 22:16:47 UTC (rev 22262)
@@ -79,6 +79,8 @@
         Reader reader = new InputStreamReader( getClass().getResourceAsStream( "../UnescalatedDeadlines.mvel" ) );
         List<Task> tasks = (List<Task>) eval( reader,
                                               vars );
+        
+        EntityManager em = emf.createEntityManager();
         em.getTransaction().begin();
         for ( Task task : tasks ) {
             // for this one we put the task in directly;
@@ -87,7 +89,7 @@
         em.getTransaction().commit();
 
         // now create a new service, to see if it initiates from the DB correctly
-        TaskService local = new TaskService(em);      
+        TaskService local = new TaskService(emf);      
         
         MockEscalatedDeadlineHandler handler = new MockEscalatedDeadlineHandler();
         local.setEscalatedDeadlineHandler( handler );

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel	2008-08-30 21:54:11 UTC (rev 22261)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel	2008-08-30 22:16:47 UTC (rev 22262)
@@ -60,6 +60,7 @@
         startDeadlines = [ 
             (with (new Deadline()) {
                 date = new Date( 10000000 ),
+                escalated = true,
                 documentation = [ new I18NText( "en-UK", "Start Deadline documentation" ),
                                   new I18NText( "en-DK", "Start Termin Dokumentation" ) ],
                 escalations = [ 
@@ -95,6 +96,7 @@
         endDeadlines = [ 
             (with (new Deadline()) {
                 date = new Date( 10000000 ),
+                escalated = true,
                 documentation = [ new I18NText( "en-UK", "End Deadline documentation" ),
                                   new I18NText( "en-DK", "Ende Termin Dokumentation" ) ],
                 escalations = [ 




More information about the jboss-svn-commits mailing list