[jboss-svn-commits] JBL Code SVN: r22373 - in labs/jbossrules/trunk/drools-process/drools-process-task/src: test/java/org/drools/task/service and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 3 22:49:04 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-09-03 22:49:04 -0400 (Wed, 03 Sep 2008)
New Revision: 22373

Modified:
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java
   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/service/TaskServiceLifeCycleTest.java
Log:
JBRULES-1745 WS-Human-Task
-Added client/server stuff for complete and fail

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java	2008-09-04 02:12:54 UTC (rev 22372)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java	2008-09-04 02:49:04 UTC (rev 22373)
@@ -9,7 +9,9 @@
     StopRequest,
     StopResponse,        
     CompleteRequest,
-    CompleteResponse,    
+    CompleteResponse,   
+    FailRequest,
+    FailResponse,
     
     GetTaskRequest,
     GetTaskResponse,

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java	2008-09-04 02:12:54 UTC (rev 22372)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java	2008-09-04 02:49:04 UTC (rev 22373)
@@ -213,6 +213,15 @@
         session.write( cmd ); 
     }
     
+    public void fail(long taskId, long userId) {
+        List args = new ArrayList( 1 );
+        args.add( taskId );
+        args.add(  userId );
+        Command cmd = new Command( counter.getAndIncrement(), CommandName.FailRequest, args);
+        
+        session.write( cmd ); 
+    }    
+    
 
     public void getTasksOwned(long userId, String language, TaskSummaryResponseHandler responseHandler) {
         List args = new ArrayList( 2 );

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java	2008-09-04 02:12:54 UTC (rev 22372)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java	2008-09-04 02:49:04 UTC (rev 22373)
@@ -51,6 +51,18 @@
                 service.stop( taskId, userId );   
                 break;
             }
+            case CompleteRequest : {
+                long taskId = ( Long ) cmd.getArguments().get( 0 );
+                long userId = ( Long ) cmd.getArguments().get( 1 );
+                service.complete( taskId, userId );   
+                break;
+            }   
+            case FailRequest : {
+                long taskId = ( Long ) cmd.getArguments().get( 0 );
+                long userId = ( Long ) cmd.getArguments().get( 1 );
+                service.fail( taskId, userId );   
+                break;
+            }             
             case GetTaskRequest : {
                 long taskId = ( Long ) cmd.getArguments().get( 0 );
                 Task task = service.getTask( taskId );

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-09-04 02:12:54 UTC (rev 22372)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java	2008-09-04 02:49:04 UTC (rev 22373)
@@ -278,20 +278,6 @@
         }  
     }
 
-    public void stop(long taskId,
-                     User user) {
-        Task task = em.find( Task.class,
-                             taskId );
-        TaskData taskData = task.getTaskData();
-
-        // make sure user is owner, then change state to Reserved
-        if ( taskData.getActualOwner().equals( user ) ) {
-            taskData.setStatus( Status.Reserved );
-        } else {
-            //@TODO Error
-        }
-    }
-
     public void release(long taskId,
                         User user) {
         Task task = em.find( Task.class,
@@ -307,11 +293,41 @@
     }
 
     public void complete(long taskId, long userId) {
-
+        Task task = em.find( Task.class,
+                             taskId );
+        
+        User user = em.find( User.class, userId );
+        
+        TaskData taskData = task.getTaskData();
+        
+        if ( taskData.getStatus() == Status.InProgress && taskData.getActualOwner().equals( user ) ) {
+            // Status must be InProgress and actual owner, switch to Reserved
+            em.getTransaction().begin();
+            taskData.setStatus( Status.Completed );
+            em.getTransaction().commit();
+        } else {
+            // @TODO Error
+            return;            
+        }  
     }
 
-    public void fail(long taskId) {
-
+    public void fail(long taskId, long userId) {
+        Task task = em.find( Task.class,
+                             taskId );
+        
+        User user = em.find( User.class, userId );
+        
+        TaskData taskData = task.getTaskData();
+        
+        if ( taskData.getStatus() == Status.InProgress && taskData.getActualOwner().equals( user ) ) {
+            // Status must be InProgress and actual owner, switch to Reserved
+            em.getTransaction().begin();
+            taskData.setStatus( Status.Failed );
+            em.getTransaction().commit();
+        } else {
+            // @TODO Error
+            return;            
+        }  
     }
 
     public void addComment(long taskId,

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java	2008-09-04 02:12:54 UTC (rev 22372)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java	2008-09-04 02:49:04 UTC (rev 22373)
@@ -294,9 +294,7 @@
         long taskId = addTaskResponseHandler.getTaskId();             
         
         // Go straight from Ready to Inprogress
-        client.start( taskId, users.get( "darth" ).getId() );
-        
-        // Check is InProgress
+        client.start( taskId, users.get( "darth" ).getId() );        
         BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
         client.getTask( taskId, getTaskResponseHandler );
         Task task1 = getTaskResponseHandler.getTask();
@@ -331,8 +329,6 @@
         
         // Go straight from Ready to Inprogress
         client.start( taskId, users.get( "darth" ).getId() );
-        
-        // Check is InProgress
         BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
         client.getTask( taskId, getTaskResponseHandler );
         Task task1 = getTaskResponseHandler.getTask();
@@ -347,6 +343,140 @@
         assertEquals(  Status.InProgress, task2.getTaskData().getStatus() );
         assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );                
     }    
+    
+    public void testComplete() {
+        Map  vars = new HashedMap();     
+        vars.put( "users", users );
+        vars.put( "groups", groups );        
+        vars.put( "now", new Date() );
         
+        // One potential owner, should go straight to state Reserved
+        String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+        str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";                        
+        str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+            
+        BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+        Task task = ( Task )  eval( new StringReader( str ), vars );
+        client.addTask( task, addTaskResponseHandler );
+        
+        long taskId = addTaskResponseHandler.getTaskId();             
+        
+        // Go straight from Ready to Inprogress
+        client.start( taskId, users.get( "darth" ).getId() );
+        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task1 = getTaskResponseHandler.getTask();
+        assertEquals(  Status.InProgress, task1.getTaskData().getStatus() );
+        assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );  
+        
+        // Check is Complete
+        client.complete( taskId, users.get( "darth" ).getId() );        
+        getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task2 = getTaskResponseHandler.getTask();
+        assertEquals(  Status.Completed, task2.getTaskData().getStatus() );
+        assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );                  
+    }
+        
+    public void testCompleteWithIncorrectUser() {
+        Map  vars = new HashedMap();     
+        vars.put( "users", users );
+        vars.put( "groups", groups );        
+        vars.put( "now", new Date() );
+        
+        // One potential owner, should go straight to state Reserved
+        String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+        str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";                        
+        str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+            
+        BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+        Task task = ( Task )  eval( new StringReader( str ), vars );
+        client.addTask( task, addTaskResponseHandler );
+        
+        long taskId = addTaskResponseHandler.getTaskId();             
+        
+        // Go straight from Ready to Inprogress
+        client.start( taskId, users.get( "darth" ).getId() );        
+        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task1 = getTaskResponseHandler.getTask();
+        assertEquals(  Status.InProgress, task1.getTaskData().getStatus() );
+        assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );  
+        
+        // Should not complete as wrong user
+        client.complete( taskId, users.get( "bobba" ).getId() );        
+        getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task2 = getTaskResponseHandler.getTask();
+        assertEquals(  Status.InProgress, task2.getTaskData().getStatus() );
+        assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );                  
+    }    
 
+    public void testFail() {
+        Map  vars = new HashedMap();     
+        vars.put( "users", users );
+        vars.put( "groups", groups );        
+        vars.put( "now", new Date() );
+        
+        // One potential owner, should go straight to state Reserved
+        String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+        str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";                        
+        str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+            
+        BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+        Task task = ( Task )  eval( new StringReader( str ), vars );
+        client.addTask( task, addTaskResponseHandler );
+        
+        long taskId = addTaskResponseHandler.getTaskId();             
+        
+        // Go straight from Ready to Inprogress
+        client.start( taskId, users.get( "darth" ).getId() );
+        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task1 = getTaskResponseHandler.getTask();
+        assertEquals(  Status.InProgress, task1.getTaskData().getStatus() );
+        assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );  
+        
+        // Check is Failed
+        client.fail( taskId, users.get( "darth" ).getId() );        
+        getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task2 = getTaskResponseHandler.getTask();
+        assertEquals(  Status.Failed, task2.getTaskData().getStatus() );
+        assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );                  
+    }
+    
+    public void testFailWithIncorrectUser() {
+        Map  vars = new HashedMap();     
+        vars.put( "users", users );
+        vars.put( "groups", groups );        
+        vars.put( "now", new Date() );
+        
+        // One potential owner, should go straight to state Reserved
+        String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+        str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";                        
+        str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+            
+        BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+        Task task = ( Task )  eval( new StringReader( str ), vars );
+        client.addTask( task, addTaskResponseHandler );
+        
+        long taskId = addTaskResponseHandler.getTaskId();             
+        
+        // Go straight from Ready to Inprogress
+        client.start( taskId, users.get( "darth" ).getId() );        
+        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task1 = getTaskResponseHandler.getTask();
+        assertEquals(  Status.InProgress, task1.getTaskData().getStatus() );
+        assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );  
+        
+        // Should not fail as wrong user
+        client.fail( taskId, users.get( "bobba" ).getId() );        
+        getTaskResponseHandler = new BlockingGetTaskResponseHandler();  
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task2 = getTaskResponseHandler.getTask();
+        assertEquals(  Status.InProgress, task2.getTaskData().getStatus() );
+        assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );                  
+    }    
 }




More information about the jboss-svn-commits mailing list