[jboss-svn-commits] JBL Code SVN: r22363 - 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 20:17:35 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-09-03 20:17:35 -0400 (Wed, 03 Sep 2008)
New Revision: 22363

Added:
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddAttachmentResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddCommentResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddTaskResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingGetAttachmentContentResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingGetTaskResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
Removed:
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTaskUpdate.java
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/TaskServiceTest.java
Log:
JBRULES-1745 WS-Human-Task
-Add client/server stuff for claim operation.

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-03 22:35:06 UTC (rev 22362)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -1,9 +1,11 @@
 package org.drools.task.service;
 
-import javax.persistence.Query;
 
 public enum CommandName {   
+    ClaimRequest,
+    ClaimResponse,
     
+    
     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-03 22:35:06 UTC (rev 22362)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -23,6 +23,7 @@
 import org.drools.task.AttachmentContent;
 import org.drools.task.Comment;
 import org.drools.task.Task;
+import org.drools.task.User;
 import org.drools.task.service.TaskClientHandler.AddAttachmentResponseHandler;
 import org.drools.task.service.TaskClientHandler.AddCommentResponseHandler;
 import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
@@ -176,8 +177,13 @@
         session.write( cmd );                
     }
     
-    public void claim(long taskId) {
+    public void claim(long taskId, long userId) {
+        List args = new ArrayList( 1 );
+        args.add( taskId );
+        args.add(  userId );
+        Command cmd = new Command( counter.getAndIncrement(), CommandName.ClaimRequest, args);
         
+        session.write( cmd );          
     }
     
 

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-03 22:35:06 UTC (rev 22362)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -33,6 +33,11 @@
                                 Object message) throws Exception {
         Command cmd = (Command) message;
         switch ( cmd.getName() ) {
+            case ClaimRequest : {
+                long taskId = ( Long ) cmd.getArguments().get( 0 );
+                long userId = ( Long ) cmd.getArguments().get( 1 );
+                service.claim( taskId, userId );                                               
+            }
             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-03 22:35:06 UTC (rev 22362)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -22,6 +22,8 @@
 import org.drools.task.Comment;
 import org.drools.task.Deadline;
 import org.drools.task.Group;
+import org.drools.task.OrganizationalEntity;
+import org.drools.task.PeopleAssignments;
 import org.drools.task.Status;
 import org.drools.task.Task;
 import org.drools.task.TaskData;
@@ -193,22 +195,30 @@
     }
 
     public void claim(long taskId,
-                      User user) {
+                      long userId) {
         Task task = em.find( Task.class,
                              taskId );
+        
+        User user = em.find( User.class, userId );
+        
         TaskData taskData = task.getTaskData();
 
-        em.getTransaction().begin();
-
         //task must be in status Ready
         if ( taskData.getStatus() == Status.Ready ) {
-            taskData.setStatus( Status.Reserved );
-            taskData.setActualOwner( user );
+            // check permissions
+            PeopleAssignments people = task.getPeopleAssignments();
+            if ( isAllowed( user, new List[] { people.getPotentialOwners(), people.getBusinessAdministrators() } ) ) {
+                em.getTransaction().begin();
+                // only potential onwers and business admin can claim a task
+                taskData.setStatus( Status.Reserved );
+                taskData.setActualOwner( user );
+                em.getTransaction().commit();
+            } else {
+                // @TODO Error
+            }
         } else {
             // @TODO Error
         }
-
-        em.getTransaction().commit();
     }
 
     public void start(long taskId,
@@ -472,6 +482,20 @@
                                                            localEm );
         localEm.close();
     }
+    
+    public boolean isAllowed(User user,  List<OrganizationalEntity>[] people) {
+        for ( List<OrganizationalEntity> list : people ) {
+            if ( isAllowed( user, list) ) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    public boolean isAllowed(User user, List<OrganizationalEntity> entities) {
+        // for now just do a contains, I'll figure out group membership later.
+        return entities.contains( user );
+    }
 
     public static String toString(Reader reader) throws IOException {
         int charValue = 0;

Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddAttachmentResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddAttachmentResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddAttachmentResponseHandler.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -0,0 +1,51 @@
+/**
+ * 
+ */
+package org.drools.task.service;
+
+import org.drools.task.service.TaskClientHandler.AddAttachmentResponseHandler;
+
+public class BlockingAddAttachmentResponseHandler implements AddAttachmentResponseHandler {
+    private volatile long attachmentId ;
+    private volatile long contentId;
+    private volatile boolean wait = true;
+
+    public synchronized void execute(long attachmentId, long contentId) {
+        this.attachmentId = attachmentId;
+        this.contentId = contentId;
+        wait = false;
+        notifyAll();                
+    }
+    
+    public synchronized long getAttachmentId() {
+        if ( wait ) {                  
+            try {
+                wait( 3000 );
+            } catch ( InterruptedException e ) {
+                // swallow as this is just a notifiation
+            }
+        }
+        
+        if ( wait ) {
+            throw new RuntimeException("Timeout : unable to retrieve Attachment Id" );
+        }
+        
+        return attachmentId;
+    }       
+    
+    public synchronized long getContentId() {
+        if ( wait ) {                  
+            try {
+                wait( 3000 );
+            } catch ( InterruptedException e ) {
+                // swallow as this is just a notifiation
+            }
+        }
+        
+        if ( wait ) {
+            throw new RuntimeException("Timeout : unable to retrieve Attachment Content Id" );
+        }
+        
+        return contentId;
+    }
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddCommentResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddCommentResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddCommentResponseHandler.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -0,0 +1,33 @@
+/**
+ * 
+ */
+package org.drools.task.service;
+
+import org.drools.task.service.TaskClientHandler.AddCommentResponseHandler;
+
+public class BlockingAddCommentResponseHandler implements AddCommentResponseHandler {
+    private volatile long commentId;
+    private volatile boolean wait = true;
+
+    public synchronized void execute(long commentId) {
+        this.commentId = commentId;
+        wait = false;
+        notifyAll();                
+    }
+    
+    public synchronized long getCommentId() {
+        if ( wait ) {                  
+            try {
+                wait( 3000 );
+            } catch ( InterruptedException e ) {
+                // swallow as this is just a notifiation
+            }
+        }
+        
+        if ( wait ) {
+            throw new RuntimeException("Timeout : unable to retrieve Task Id" );
+        }
+        
+        return commentId;
+    }       
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddTaskResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddTaskResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingAddTaskResponseHandler.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -0,0 +1,33 @@
+/**
+ * 
+ */
+package org.drools.task.service;
+
+import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
+
+public class BlockingAddTaskResponseHandler implements AddTaskResponseHandler {
+    private volatile long taskId;
+    private volatile boolean wait = true;
+
+    public synchronized void execute(long taskId) {
+        this.taskId = taskId;
+        wait = false;
+        notifyAll();                
+    }
+    
+    public synchronized long getTaskId() {
+        if ( wait ) {                  
+            try {
+                wait( 3000 );
+            } catch ( InterruptedException e ) {
+                // swallow as this is just a notifiation
+            }
+        }
+        
+        if ( wait ) {
+            throw new RuntimeException("Timeout : unable to retrieve Task Id" );
+        }
+        
+        return taskId;
+    }       
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingGetAttachmentContentResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingGetAttachmentContentResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingGetAttachmentContentResponseHandler.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -0,0 +1,32 @@
+/**
+ * 
+ */
+package org.drools.task.service;
+
+import org.drools.task.AttachmentContent;
+import org.drools.task.service.TaskClientHandler.GetAttachmentContentResponseHandler;
+
+public class BlockingGetAttachmentContentResponseHandler implements GetAttachmentContentResponseHandler {
+    private volatile AttachmentContent attachmentContent;
+
+    public synchronized void execute(AttachmentContent attachmentContent) {
+        this.attachmentContent = attachmentContent;
+        notifyAll();                
+    }
+    
+    public synchronized AttachmentContent getAttachmentContent() {
+        if ( attachmentContent == null ) {                  
+            try {
+                wait( 3000 );
+            } catch ( InterruptedException e ) {
+                // swallow as this is just a notifiation
+            }
+        }
+        
+        if ( attachmentContent == null ) {
+            throw new RuntimeException("Timeout : unable to retrieve Attachment Content" );
+        }
+        
+        return attachmentContent;
+    }       
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingGetTaskResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingGetTaskResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/BlockingGetTaskResponseHandler.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -0,0 +1,32 @@
+/**
+ * 
+ */
+package org.drools.task.service;
+
+import org.drools.task.Task;
+import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
+
+public class BlockingGetTaskResponseHandler implements GetTaskResponseHandler {
+    private volatile Task task;
+
+    public synchronized void execute(Task task) {
+        this.task = task;
+        notifyAll();                
+    }
+    
+    public synchronized Task getTask() {
+        if ( task == null ) {                  
+            try {
+                wait( 3000 );
+            } catch ( InterruptedException e ) {
+                // swallow as this is just a notifiation
+            }
+        }
+        
+        if ( task == null ) {
+            throw new RuntimeException("Timeout : unable to retrieve Task Id" );
+        }
+        
+        return task;
+    }       
+}
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java (from rev 22353, labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTaskUpdate.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -0,0 +1,241 @@
+package org.drools.task.service;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.task.AccessType;
+import org.drools.task.Attachment;
+import org.drools.task.AttachmentContent;
+import org.drools.task.BaseTest;
+import org.drools.task.Comment;
+import org.drools.task.Deadline;
+import org.drools.task.Task;
+import org.drools.task.query.TaskSummary;
+import org.drools.task.service.TaskClientHandler.TaskSummaryResponseHandler;
+import org.drools.task.service.TaskServiceEscalationTest.MockEscalatedDeadlineHandler.Item;
+import org.drools.task.service.TaskServiceTest.BlockingAllOpenTasksForUseResponseHandler;
+import org.drools.task.utils.CollectionUtils;
+
+import junit.framework.TestCase;
+
+public class TaskServiceCommentsAndAttachmentsTest extends BaseTest {
+    MinaTaskServer server;
+    MinaTaskClient client;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        server = new MinaTaskServer( taskService );
+        Thread thread = new Thread( server );
+        thread.start();
+        Thread.sleep( 500 );
+
+        client = new MinaTaskClient( "client 1",
+                                     new TaskClientHandler() );
+        NioSocketConnector connector = new NioSocketConnector();
+        SocketAddress address = new InetSocketAddress( "127.0.0.1",
+                                                       9123 );
+        client.connect( connector,
+                        address );
+    }
+
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        client.disconnect();
+        server.stop();
+    }
+
+    public void testAddComment() {
+        Map  vars = new HashedMap();     
+        vars.put( "users", users );
+        vars.put( "groups", groups );        
+        vars.put( "now", new Date() );
+        
+        String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, activationTime = now}), ";
+        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();
+        
+        Comment comment = new Comment();
+        Date addedAt = new Date( System.currentTimeMillis() ); 
+        comment.setAddedAt( addedAt );
+        comment.setAddedBy( users.get( "luke" ) );
+        comment.setText( "This is my comment1!!!!!" );
+        
+        BlockingAddCommentResponseHandler addCommentResponseHandler = new BlockingAddCommentResponseHandler();
+        client.addComment( taskId, comment,addCommentResponseHandler );      
+        assertTrue( addCommentResponseHandler.getCommentId() != comment.getId() );
+        
+        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task1 = getTaskResponseHandler.getTask();
+        assertNotSame(task, task1);
+        assertFalse(  task.equals( task1) );
+       
+        List<Comment> comments1 = task1.getTaskData().getComments();
+        assertEquals(1, comments1.size() );
+        Comment returnedComment = comments1.get( 0 );        
+        assertEquals( "This is my comment1!!!!!", returnedComment.getText() );
+        assertEquals( addedAt, returnedComment.getAddedAt() );
+        assertEquals( users.get( "luke" ), returnedComment.getAddedBy() );
+        
+        assertEquals( (long)addCommentResponseHandler.getCommentId(), (long) returnedComment.getId() );
+        
+        task.getTaskData().setComments( comments1 );
+        assertEquals(task, task1);       
+        
+        // test we can have multiple comments
+        comment = new Comment();
+        addedAt = new Date( System.currentTimeMillis() ); 
+        comment.setAddedAt( addedAt );
+        comment.setAddedBy( users.get( "tony" ) );
+        comment.setText( "This is my comment2!!!!!" );
+        
+        addCommentResponseHandler = new BlockingAddCommentResponseHandler();
+        client.addComment( taskId, comment, addCommentResponseHandler );
+        
+        getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        task1 = getTaskResponseHandler.getTask();     
+        List<Comment> comments2 = task1.getTaskData().getComments();
+        assertEquals(2, comments2.size() );       
+        
+        // make two collections the same and compare
+        comments1.add( comment );
+        assertTrue( CollectionUtils.equals( comments1, comments2 ) );
+        
+        client.deleteComment( taskId, addCommentResponseHandler.getCommentId() );
+        
+        getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        task1 = getTaskResponseHandler.getTask(); 
+        comments2 = task1.getTaskData().getComments();
+        assertEquals(1, comments2.size() );   
+        
+        assertEquals( "This is my comment1!!!!!", comments2.get( 0 ).getText() );
+    }
+    
+    public void testAddRemoveAttachment() throws Exception {
+        Map  vars = new HashedMap();     
+        vars.put( "users", users );
+        vars.put( "groups", groups );
+        vars.put( "now", new Date() );        
+        
+        String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, activationTime = now}), ";
+        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();
+        
+        Attachment attachment = new Attachment();
+        Date attachedAt = new Date( System.currentTimeMillis() ); 
+        attachment.setAttachedAt( attachedAt);
+        attachment.setAttachedBy( users.get( "luke" ) );
+        attachment.setName( "file1.txt" );
+        attachment.setAccessType( AccessType.Inline );
+        attachment.setContentType( "txt" );
+        
+        byte[] bytes = "Ths is my attachment text1".getBytes();
+        AttachmentContent content = new AttachmentContent();
+        content.setContent( bytes );
+        
+        BlockingAddAttachmentResponseHandler addAttachmentResponseHandler = new BlockingAddAttachmentResponseHandler();
+        client.addAttachment( taskId, attachment, content, addAttachmentResponseHandler);
+        assertTrue( addAttachmentResponseHandler.getAttachmentId() != attachment.getId() );
+        assertTrue( addAttachmentResponseHandler.getContentId() != attachment.getContentId() );
+        
+        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task1 = getTaskResponseHandler.getTask();
+        assertNotSame(task, task1);
+        assertFalse(  task.equals( task1) );
+       
+        List<Attachment> attachments1 = task1.getTaskData().getAttachments();
+        assertEquals(1, attachments1.size() );
+        Attachment returnedAttachment = attachments1.get( 0 );        
+        assertEquals( attachedAt, returnedAttachment.getAttachedAt() );
+        assertEquals( users.get( "luke" ), returnedAttachment.getAttachedBy() );
+        assertEquals( AccessType.Inline, returnedAttachment.getAccessType() );
+        assertEquals( "txt", returnedAttachment.getContentType() );
+        assertEquals( "file1.txt", returnedAttachment.getName() );        
+        assertEquals( bytes.length, returnedAttachment.getSize() );
+        
+        assertEquals( (long) addAttachmentResponseHandler.getAttachmentId(), (long) returnedAttachment.getId() );
+        assertEquals( (long) addAttachmentResponseHandler.getContentId(),  (long) returnedAttachment.getContentId() );        
+        
+        task.getTaskData().setAttachments( attachments1 );
+        assertEquals(task, task1);            
+        
+        BlockingGetAttachmentContentResponseHandler  getAttachmentContentResponseHandler = new BlockingGetAttachmentContentResponseHandler();
+        client.getAttachmentContent( returnedAttachment.getContentId(), getAttachmentContentResponseHandler );
+        AttachmentContent attachmentContent = getAttachmentContentResponseHandler.getAttachmentContent();
+        assertEquals( "Ths is my attachment text1", new String( attachmentContent.getContent() ) );
+        
+        // test we can have multiple attachments
+        
+        attachment = new Attachment();
+        attachedAt = new Date( System.currentTimeMillis() ); 
+        attachment.setAttachedAt( attachedAt);
+        attachment.setAttachedBy( users.get( "tony" ) );
+        attachment.setName( "file2.txt" );
+        attachment.setAccessType( AccessType.Inline );
+        attachment.setContentType( "txt" );
+        
+        bytes = "Ths is my attachment text2".getBytes();
+        content = new AttachmentContent();
+        content.setContent( bytes );
+        
+        addAttachmentResponseHandler = new BlockingAddAttachmentResponseHandler();
+        client.addAttachment( taskId, attachment, content, addAttachmentResponseHandler);   
+        
+        getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        task1 = getTaskResponseHandler.getTask();
+        assertNotSame(task, task1);
+        assertFalse(  task.equals( task1) );
+       
+        List<Attachment> attachments2 = task1.getTaskData().getAttachments();
+        assertEquals(2, attachments2.size() );
+        
+        getAttachmentContentResponseHandler = new BlockingGetAttachmentContentResponseHandler();
+        client.getAttachmentContent( addAttachmentResponseHandler.getContentId(), getAttachmentContentResponseHandler );
+        attachmentContent = getAttachmentContentResponseHandler.getAttachmentContent();
+        assertEquals( "Ths is my attachment text2", new String( attachmentContent.getContent() ) );        
+        
+        // make two collections the same and compare
+        attachment.setSize( 26 );
+        attachment.setContentId( addAttachmentResponseHandler.getContentId() );
+        attachments1.add( attachment );
+        assertTrue( CollectionUtils.equals( attachments2, attachments1 ) );      
+        
+        client.deleteAttachment( taskId, addAttachmentResponseHandler.getAttachmentId(), addAttachmentResponseHandler.getContentId() );
+        
+        Thread.sleep( 3000 );
+        
+        getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        task1 = getTaskResponseHandler.getTask();
+        attachments2 = task1.getTaskData().getAttachments();
+        assertEquals(1, attachments2.size() );        
+        
+        assertEquals( "file1.txt", attachments2.get( 0 ).getName());
+    } 
+}


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Added: 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	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -0,0 +1,151 @@
+package org.drools.task.service;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.task.AccessType;
+import org.drools.task.Attachment;
+import org.drools.task.AttachmentContent;
+import org.drools.task.BaseTest;
+import org.drools.task.Comment;
+import org.drools.task.Deadline;
+import org.drools.task.Status;
+import org.drools.task.Task;
+import org.drools.task.query.TaskSummary;
+import org.drools.task.service.TaskClientHandler.AddAttachmentResponseHandler;
+import org.drools.task.service.TaskClientHandler.AddCommentResponseHandler;
+import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
+import org.drools.task.service.TaskClientHandler.GetAttachmentContentResponseHandler;
+import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
+import org.drools.task.service.TaskClientHandler.TaskSummaryResponseHandler;
+import org.drools.task.service.TaskServiceEscalationTest.MockEscalatedDeadlineHandler.Item;
+import org.drools.task.service.TaskServiceTest.BlockingAllOpenTasksForUseResponseHandler;
+import org.drools.task.utils.CollectionUtils;
+
+import junit.framework.TestCase;
+
+public class TaskServiceLifeCycleTest extends BaseTest {
+    MinaTaskServer server;
+    MinaTaskClient client;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        server = new MinaTaskServer( taskService );
+        Thread thread = new Thread( server );
+        thread.start();
+        Thread.sleep( 500 );
+
+        client = new MinaTaskClient( "client 1",
+                                     new TaskClientHandler() );
+        NioSocketConnector connector = new NioSocketConnector();
+        SocketAddress address = new InetSocketAddress( "127.0.0.1",
+                                                       9123 );
+        client.connect( connector,
+                        address );
+    }
+
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        client.disconnect();
+        server.stop();
+    }
+    
+    public void testNewTaskWithNoPotentialOwners() {
+        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() ) { }),";                        
+        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();
+        
+        // Task should remain in Created state with no actual owner
+        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task1 = getTaskResponseHandler.getTask();
+        assertNotSame(task, task1);
+        assertFalse(  task.equals( task1) );
+        assertEquals( task1.getTaskData().getStatus(), Status.Created );     
+        assertNull( task1.getTaskData().getActualOwner() );        
+    }
+
+    public void testNewTaskWithSinglePotentialOwner() {
+        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' ] ], }),";                        
+        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();
+        
+        // Task should be assigned to the single potential owner and state set to Reserved
+        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task1 = getTaskResponseHandler.getTask();
+        assertNotSame(task, task1);
+        assertFalse(  task.equals( task1) );
+        assertEquals( task1.getTaskData().getStatus(), Status.Reserved );     
+        assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
+    }
+    
+    public void testClaimWithMultiplePotentialOwners() {
+        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();
+        
+        // A Task with multiple potential owners moves to "Ready" state until someone claims it.
+        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task1 = getTaskResponseHandler.getTask();
+        assertEquals( Status.Ready , task1.getTaskData().getStatus() );     
+        
+        client.claim( taskId, users.get( "darth" ).getId() );
+        
+        getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
+        client.getTask( taskId, getTaskResponseHandler );
+        Task task2 = getTaskResponseHandler.getTask();
+        assertEquals(  Status.Reserved, task2.getTaskData().getStatus() );
+        assertEquals( task2.getTaskData().getActualOwner(), users.get( "darth" ) );
+    }
+
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTaskUpdate.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTaskUpdate.java	2008-09-03 22:35:06 UTC (rev 22362)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTaskUpdate.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -1,395 +0,0 @@
-package org.drools.task.service;
-
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import javax.persistence.EntityManager;
-
-import org.apache.commons.collections.map.HashedMap;
-import org.apache.mina.transport.socket.nio.NioSocketConnector;
-import org.drools.task.AccessType;
-import org.drools.task.Attachment;
-import org.drools.task.AttachmentContent;
-import org.drools.task.BaseTest;
-import org.drools.task.Comment;
-import org.drools.task.Deadline;
-import org.drools.task.Task;
-import org.drools.task.query.TaskSummary;
-import org.drools.task.service.TaskClientHandler.AddAttachmentResponseHandler;
-import org.drools.task.service.TaskClientHandler.AddCommentResponseHandler;
-import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
-import org.drools.task.service.TaskClientHandler.GetAttachmentContentResponseHandler;
-import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
-import org.drools.task.service.TaskClientHandler.TaskSummaryResponseHandler;
-import org.drools.task.service.TaskServiceEscalationTest.MockEscalatedDeadlineHandler.Item;
-import org.drools.task.service.TaskServiceTest.BlockingAllOpenTasksForUseResponseHandler;
-import org.drools.task.utils.CollectionUtils;
-
-import junit.framework.TestCase;
-
-public class TaskServiceTaskUpdate extends BaseTest {
-    MinaTaskServer server;
-    MinaTaskClient client;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        server = new MinaTaskServer( taskService );
-        Thread thread = new Thread( server );
-        thread.start();
-        Thread.sleep( 500 );
-
-        client = new MinaTaskClient( "client 1",
-                                     new TaskClientHandler() );
-        NioSocketConnector connector = new NioSocketConnector();
-        SocketAddress address = new InetSocketAddress( "127.0.0.1",
-                                                       9123 );
-        client.connect( connector,
-                        address );
-    }
-
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        client.disconnect();
-        server.stop();
-    }
-
-    public void testAddComment() {
-        Map  vars = new HashedMap();     
-        vars.put( "users", users );
-        vars.put( "groups", groups );        
-        vars.put( "now", new Date() );
-        
-        String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, activationTime = now}), ";
-        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();
-        
-        Comment comment = new Comment();
-        Date addedAt = new Date( System.currentTimeMillis() ); 
-        comment.setAddedAt( addedAt );
-        comment.setAddedBy( users.get( "luke" ) );
-        comment.setText( "This is my comment1!!!!!" );
-        
-        BlockingAddCommentResponseHandler addCommentResponseHandler = new BlockingAddCommentResponseHandler();
-        client.addComment( taskId, comment,addCommentResponseHandler );      
-        assertTrue( addCommentResponseHandler.getCommentId() != comment.getId() );
-        
-        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
-        client.getTask( taskId, getTaskResponseHandler );
-        Task task1 = getTaskResponseHandler.getTask();
-        assertNotSame(task, task1);
-        assertFalse(  task.equals( task1) );
-       
-        List<Comment> comments1 = task1.getTaskData().getComments();
-        assertEquals(1, comments1.size() );
-        Comment returnedComment = comments1.get( 0 );        
-        assertEquals( "This is my comment1!!!!!", returnedComment.getText() );
-        assertEquals( addedAt, returnedComment.getAddedAt() );
-        assertEquals( users.get( "luke" ), returnedComment.getAddedBy() );
-        
-        assertEquals( (long)addCommentResponseHandler.getCommentId(), (long) returnedComment.getId() );
-        
-        task.getTaskData().setComments( comments1 );
-        assertEquals(task, task1);       
-        
-        // test we can have multiple comments
-        comment = new Comment();
-        addedAt = new Date( System.currentTimeMillis() ); 
-        comment.setAddedAt( addedAt );
-        comment.setAddedBy( users.get( "tony" ) );
-        comment.setText( "This is my comment2!!!!!" );
-        
-        addCommentResponseHandler = new BlockingAddCommentResponseHandler();
-        client.addComment( taskId, comment, addCommentResponseHandler );
-        
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
-        client.getTask( taskId, getTaskResponseHandler );
-        task1 = getTaskResponseHandler.getTask();     
-        List<Comment> comments2 = task1.getTaskData().getComments();
-        assertEquals(2, comments2.size() );       
-        
-        // make two collections the same and compare
-        comments1.add( comment );
-        assertTrue( CollectionUtils.equals( comments1, comments2 ) );
-        
-        client.deleteComment( taskId, addCommentResponseHandler.getCommentId() );
-        
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
-        client.getTask( taskId, getTaskResponseHandler );
-        task1 = getTaskResponseHandler.getTask(); 
-        comments2 = task1.getTaskData().getComments();
-        assertEquals(1, comments2.size() );   
-        
-        assertEquals( "This is my comment1!!!!!", comments2.get( 0 ).getText() );
-    }
-    
-    public void testAddRemoveAttachment() throws Exception {
-        Map  vars = new HashedMap();     
-        vars.put( "users", users );
-        vars.put( "groups", groups );
-        vars.put( "now", new Date() );        
-        
-        String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, activationTime = now}), ";
-        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();
-        
-        Attachment attachment = new Attachment();
-        Date attachedAt = new Date( System.currentTimeMillis() ); 
-        attachment.setAttachedAt( attachedAt);
-        attachment.setAttachedBy( users.get( "luke" ) );
-        attachment.setName( "file1.txt" );
-        attachment.setAccessType( AccessType.Inline );
-        attachment.setContentType( "txt" );
-        
-        byte[] bytes = "Ths is my attachment text1".getBytes();
-        AttachmentContent content = new AttachmentContent();
-        content.setContent( bytes );
-        
-        BlockingAddAttachmentResponseHandler addAttachmentResponseHandler = new BlockingAddAttachmentResponseHandler();
-        client.addAttachment( taskId, attachment, content, addAttachmentResponseHandler);
-        assertTrue( addAttachmentResponseHandler.getAttachmentId() != attachment.getId() );
-        assertTrue( addAttachmentResponseHandler.getContentId() != attachment.getContentId() );
-        
-        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
-        client.getTask( taskId, getTaskResponseHandler );
-        Task task1 = getTaskResponseHandler.getTask();
-        assertNotSame(task, task1);
-        assertFalse(  task.equals( task1) );
-       
-        List<Attachment> attachments1 = task1.getTaskData().getAttachments();
-        assertEquals(1, attachments1.size() );
-        Attachment returnedAttachment = attachments1.get( 0 );        
-        assertEquals( attachedAt, returnedAttachment.getAttachedAt() );
-        assertEquals( users.get( "luke" ), returnedAttachment.getAttachedBy() );
-        assertEquals( AccessType.Inline, returnedAttachment.getAccessType() );
-        assertEquals( "txt", returnedAttachment.getContentType() );
-        assertEquals( "file1.txt", returnedAttachment.getName() );        
-        assertEquals( bytes.length, returnedAttachment.getSize() );
-        
-        assertEquals( (long) addAttachmentResponseHandler.getAttachmentId(), (long) returnedAttachment.getId() );
-        assertEquals( (long) addAttachmentResponseHandler.getContentId(),  (long) returnedAttachment.getContentId() );        
-        
-        task.getTaskData().setAttachments( attachments1 );
-        assertEquals(task, task1);            
-        
-        BlockingGetAttachmentContentResponseHandler  getAttachmentContentResponseHandler = new BlockingGetAttachmentContentResponseHandler();
-        client.getAttachmentContent( returnedAttachment.getContentId(), getAttachmentContentResponseHandler );
-        AttachmentContent attachmentContent = getAttachmentContentResponseHandler.getAttachmentContent();
-        assertEquals( "Ths is my attachment text1", new String( attachmentContent.getContent() ) );
-        
-        // test we can have multiple attachments
-        
-        attachment = new Attachment();
-        attachedAt = new Date( System.currentTimeMillis() ); 
-        attachment.setAttachedAt( attachedAt);
-        attachment.setAttachedBy( users.get( "tony" ) );
-        attachment.setName( "file2.txt" );
-        attachment.setAccessType( AccessType.Inline );
-        attachment.setContentType( "txt" );
-        
-        bytes = "Ths is my attachment text2".getBytes();
-        content = new AttachmentContent();
-        content.setContent( bytes );
-        
-        addAttachmentResponseHandler = new BlockingAddAttachmentResponseHandler();
-        client.addAttachment( taskId, attachment, content, addAttachmentResponseHandler);   
-        
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
-        client.getTask( taskId, getTaskResponseHandler );
-        task1 = getTaskResponseHandler.getTask();
-        assertNotSame(task, task1);
-        assertFalse(  task.equals( task1) );
-       
-        List<Attachment> attachments2 = task1.getTaskData().getAttachments();
-        assertEquals(2, attachments2.size() );
-        
-        getAttachmentContentResponseHandler = new BlockingGetAttachmentContentResponseHandler();
-        client.getAttachmentContent( addAttachmentResponseHandler.getContentId(), getAttachmentContentResponseHandler );
-        attachmentContent = getAttachmentContentResponseHandler.getAttachmentContent();
-        assertEquals( "Ths is my attachment text2", new String( attachmentContent.getContent() ) );        
-        
-        // make two collections the same and compare
-        attachment.setSize( 26 );
-        attachment.setContentId( addAttachmentResponseHandler.getContentId() );
-        attachments1.add( attachment );
-        assertTrue( CollectionUtils.equals( attachments2, attachments1 ) );      
-        
-        client.deleteAttachment( taskId, addAttachmentResponseHandler.getAttachmentId(), addAttachmentResponseHandler.getContentId() );
-        
-        Thread.sleep( 3000 );
-        
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler(); 
-        client.getTask( taskId, getTaskResponseHandler );
-        task1 = getTaskResponseHandler.getTask();
-        attachments2 = task1.getTaskData().getAttachments();
-        assertEquals(1, attachments2.size() );        
-        
-        assertEquals( "file1.txt", attachments2.get( 0 ).getName());
-    }    
-
-    public static class BlockingGetTaskResponseHandler implements GetTaskResponseHandler {
-        private volatile Task task;
-
-        public synchronized void execute(Task task) {
-            this.task = task;
-            notifyAll();                
-        }
-        
-        public synchronized Task getTask() {
-            if ( task == null ) {                  
-                try {
-                    wait( 3000 );
-                } catch ( InterruptedException e ) {
-                    // swallow as this is just a notifiation
-                }
-            }
-            
-            if ( task == null ) {
-                throw new RuntimeException("Timeout : unable to retrieve Task Id" );
-            }
-            
-            return task;
-        }       
-    }    
-    
-    public static class BlockingAddTaskResponseHandler implements AddTaskResponseHandler {
-        private volatile long taskId;
-        private volatile boolean wait = true;
-
-        public synchronized void execute(long taskId) {
-            this.taskId = taskId;
-            wait = false;
-            notifyAll();                
-        }
-        
-        public synchronized long getTaskId() {
-            if ( wait ) {                  
-                try {
-                    wait( 3000 );
-                } catch ( InterruptedException e ) {
-                    // swallow as this is just a notifiation
-                }
-            }
-            
-            if ( wait ) {
-                throw new RuntimeException("Timeout : unable to retrieve Task Id" );
-            }
-            
-            return taskId;
-        }       
-    }    
-    
-    public static class BlockingAddCommentResponseHandler implements AddCommentResponseHandler {
-        private volatile long commentId;
-        private volatile boolean wait = true;
-
-        public synchronized void execute(long commentId) {
-            this.commentId = commentId;
-            wait = false;
-            notifyAll();                
-        }
-        
-        public synchronized long getCommentId() {
-            if ( wait ) {                  
-                try {
-                    wait( 3000 );
-                } catch ( InterruptedException e ) {
-                    // swallow as this is just a notifiation
-                }
-            }
-            
-            if ( wait ) {
-                throw new RuntimeException("Timeout : unable to retrieve Task Id" );
-            }
-            
-            return commentId;
-        }       
-    }       
-    
-    public static class BlockingAddAttachmentResponseHandler implements AddAttachmentResponseHandler {
-        private volatile long attachmentId ;
-        private volatile long contentId;
-        private volatile boolean wait = true;
-
-        public synchronized void execute(long attachmentId, long contentId) {
-            this.attachmentId = attachmentId;
-            this.contentId = contentId;
-            wait = false;
-            notifyAll();                
-        }
-        
-        public synchronized long getAttachmentId() {
-            if ( wait ) {                  
-                try {
-                    wait( 3000 );
-                } catch ( InterruptedException e ) {
-                    // swallow as this is just a notifiation
-                }
-            }
-            
-            if ( wait ) {
-                throw new RuntimeException("Timeout : unable to retrieve Attachment Id" );
-            }
-            
-            return attachmentId;
-        }       
-        
-        public synchronized long getContentId() {
-            if ( wait ) {                  
-                try {
-                    wait( 3000 );
-                } catch ( InterruptedException e ) {
-                    // swallow as this is just a notifiation
-                }
-            }
-            
-            if ( wait ) {
-                throw new RuntimeException("Timeout : unable to retrieve Attachment Content Id" );
-            }
-            
-            return contentId;
-        }
-    }        
-    
-    public static class BlockingGetAttachmentContentResponseHandler implements GetAttachmentContentResponseHandler {
-        private volatile AttachmentContent attachmentContent;
-
-        public synchronized void execute(AttachmentContent attachmentContent) {
-            this.attachmentContent = attachmentContent;
-            notifyAll();                
-        }
-        
-        public synchronized AttachmentContent getAttachmentContent() {
-            if ( attachmentContent == null ) {                  
-                try {
-                    wait( 3000 );
-                } catch ( InterruptedException e ) {
-                    // swallow as this is just a notifiation
-                }
-            }
-            
-            if ( attachmentContent == null ) {
-                throw new RuntimeException("Timeout : unable to retrieve Attachment Content" );
-            }
-            
-            return attachmentContent;
-        }       
-    } 
-}

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java	2008-09-03 22:35:06 UTC (rev 22362)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java	2008-09-04 00:17:35 UTC (rev 22363)
@@ -13,7 +13,6 @@
 import org.drools.task.Task;
 import org.drools.task.query.TaskSummary;
 import org.drools.task.service.TaskClientHandler.TaskSummaryResponseHandler;
-import org.drools.task.service.TaskServiceTaskUpdate.BlockingAddTaskResponseHandler;
 import org.drools.task.utils.CollectionUtils;
 
 public class TaskServiceTest extends BaseTest {




More information about the jboss-svn-commits mailing list