[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