[jboss-svn-commits] JBL Code SVN: r32485 - in labs/jbossrules/trunk/drools-process/drools-process-task: src/main/java/org/drools/process/workitem/wsht and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Apr 9 11:23:29 EDT 2010


Author: KrisVerlaenen
Date: 2010-04-09 11:23:27 -0400 (Fri, 09 Apr 2010)
New Revision: 32485

Removed:
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/CommandBasedWSHumanTaskHandlerTest.java
Modified:
   labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/CommandBasedWSHumanTaskHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/MessagingTaskEventListener.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/TaskEventKey.java
   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/TaskClientHandler.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/TaskServiceSession.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddAttachmentResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddCommentResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddTaskResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteAttachmentResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteCommentResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingEventResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetContentResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetTaskResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingSetContentResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskOperationResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskSummaryResponseHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/orm.xml
Log:
JBRULES-2471: Human task handler does not support restarting session for already created tasks
 - reverted commit as it makes tests unstable, need to investigate first

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml	2010-04-09 15:23:27 UTC (rev 32485)
@@ -61,7 +61,7 @@
       <dependency>
          <groupId>com.h2database</groupId>
          <artifactId>h2</artifactId>
-         <version>1.1.117</version>
+         <version>1.0.77</version>
          <scope>test</scope>
       </dependency>
       <dependency>

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/CommandBasedWSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/CommandBasedWSHumanTaskHandler.java	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/CommandBasedWSHumanTaskHandler.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -14,6 +14,7 @@
 
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
 import org.drools.SystemEventListenerFactory;
+import org.drools.eventmessaging.EventKey;
 import org.drools.eventmessaging.EventResponseHandler;
 import org.drools.eventmessaging.Payload;
 import org.drools.runtime.KnowledgeRuntime;
@@ -26,7 +27,6 @@
 import org.drools.task.I18NText;
 import org.drools.task.OrganizationalEntity;
 import org.drools.task.PeopleAssignments;
-import org.drools.task.Status;
 import org.drools.task.SubTasksStrategy;
 import org.drools.task.SubTasksStrategyFactory;
 import org.drools.task.Task;
@@ -40,6 +40,7 @@
 import org.drools.task.service.ContentData;
 import org.drools.task.service.MinaTaskClient;
 import org.drools.task.service.TaskClientHandler;
+import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
 import org.drools.task.service.TaskClientHandler.GetContentResponseHandler;
 import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
 import org.drools.task.service.responsehandlers.AbstractBaseResponseHandler;
@@ -50,6 +51,7 @@
 	private int port = 9123;
 	private MinaTaskClient client;
 	private KnowledgeRuntime session;
+	private Map<Long, Long> idMapping = new HashMap<Long, Long>();
 	
 	public CommandBasedWSHumanTaskHandler(KnowledgeRuntime session) {
 		this.session = session;
@@ -73,13 +75,6 @@
 					"Could not connect task client");
 			}
 		}
-		TaskEventKey key = new TaskEventKey(TaskCompletedEvent.class, -1);           
-        TaskCompletedHandler eventResponseHandler = new TaskCompletedHandler();
-        client.registerForEvent(key, true, eventResponseHandler);
-        key = new TaskEventKey(TaskFailedEvent.class, -1);           
-        client.registerForEvent(key, true, eventResponseHandler);
-        key = new TaskEventKey(TaskSkippedEvent.class, -1);           
-        client.registerForEvent(key, true, eventResponseHandler);
 	}
 
 	public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
@@ -183,7 +178,9 @@
 				e.printStackTrace();
 			}
 		}
-		client.addTask(task, content, null);
+		TaskWorkItemAddTaskResponseHandler taskResponseHandler =
+			new TaskWorkItemAddTaskResponseHandler(this.client, workItem.getId());
+		client.addTask(task, content, taskResponseHandler);
 	}
 	
 	public void dispose() {
@@ -193,18 +190,62 @@
 	}
 
 	public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
-		GetTaskResponseHandler abortTaskResponseHandler = new AbortTaskResponseHandler();
-    	client.getTaskByWorkItemId(workItem.getId(), abortTaskResponseHandler);
+		Long taskId = idMapping.get(workItem.getId());
+		if (taskId != null) {
+			synchronized (idMapping) {
+				idMapping.remove(taskId);
+			}
+			client.skip(taskId, "Administrator", null);
+		}
 	}
+	
+    public class TaskWorkItemAddTaskResponseHandler extends AbstractBaseResponseHandler implements AddTaskResponseHandler {
+
+    	private long workItemId;
+        
+        public TaskWorkItemAddTaskResponseHandler(MinaTaskClient client, long workItemId) {
+            this.workItemId = workItemId;
+        }
+        
+        public void execute(long taskId) {
+            synchronized ( idMapping ) {
+                idMapping.put(workItemId, taskId);           
+            }
+//            System.out.println("Created task " + taskId + " for work item " + workItemId);
+            
+            EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId );           
+            TaskCompletedHandler eventResponseHandler =
+            	new TaskCompletedHandler(workItemId, taskId); 
+            client.registerForEvent( key, true, eventResponseHandler );
+            key = new TaskEventKey(TaskFailedEvent.class, taskId );           
+            client.registerForEvent( key, true, eventResponseHandler );
+            key = new TaskEventKey(TaskSkippedEvent.class, taskId );           
+            client.registerForEvent( key, true, eventResponseHandler );
+        }
+    }
     
     private class TaskCompletedHandler extends AbstractBaseResponseHandler implements EventResponseHandler {
+        private long workItemId;
+        private long taskId;
         
+        public TaskCompletedHandler(long workItemId, long taskId) {
+            this.workItemId = workItemId;
+            this.taskId = taskId;
+        }
+
         public void execute(Payload payload) {
             TaskEvent event = ( TaskEvent ) payload.get();
-        	long taskId = event.getTaskId();
-        	GetTaskResponseHandler getTaskResponseHandler =
-        		new GetCompletedTaskResponseHandler();
-        	client.getTask(taskId, getTaskResponseHandler);   
+        	if ( event.getTaskId() != taskId ) {
+                // defensive check that should never happen, just here for testing                
+                setError(new IllegalStateException("Expected task id and arrived task id do not march"));
+                return;
+            }
+        	if (event instanceof TaskCompletedEvent) {
+            	GetTaskResponseHandler getTaskResponseHandler = new GetCompletedTaskResponseHandler();
+            	client.getTask(taskId, getTaskResponseHandler);   
+        	} else {
+            	session.getWorkItemManager().abortWorkItem(workItemId);
+        	}
         }
     }
     
@@ -212,22 +253,16 @@
 
 		public void execute(Task task) {
 			long workItemId = task.getTaskData().getWorkItemId();
-			if (task.getTaskData().getStatus() == Status.Completed) {
-				System.out.println("Notification of completed task " + workItemId);
-				String userId = task.getTaskData().getActualOwner().getId();
-				Map<String, Object> results = new HashMap<String, Object>();
-				results.put("ActorId", userId);
-				long contentId = task.getTaskData().getOutputContentId();
-				if (contentId != -1) {
-					GetContentResponseHandler getContentResponseHandler =
-						new GetResultContentResponseHandler(task, results);
-					client.getContent(contentId, getContentResponseHandler);
-				} else {
-					session.getWorkItemManager().completeWorkItem(workItemId, results);
-				}
+			String userId = task.getTaskData().getActualOwner().getId();
+			Map<String, Object> results = new HashMap<String, Object>();
+			results.put("ActorId", userId);
+			long contentId = task.getTaskData().getOutputContentId();
+			if (contentId != -1) {
+				GetContentResponseHandler getContentResponseHandler =
+					new GetResultContentResponseHandler(task, results);
+				client.getContent(contentId, getContentResponseHandler);
 			} else {
-				System.out.println("Notification of completed task " + workItemId);
-				session.getWorkItemManager().abortWorkItem(workItemId);
+				session.getWorkItemManager().completeWorkItem(workItemId, results);
 			}
 		}
     }
@@ -267,14 +302,4 @@
 			}
 		}
     }
-
-    private class AbortTaskResponseHandler extends AbstractBaseResponseHandler implements GetTaskResponseHandler {
-
-		public void execute(Task task) {
-			if (task != null) {
-				client.skip(task.getId(), "Administrator", null);
-			}
-		}
-    }
-    
 }

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -31,7 +31,8 @@
 	private String ipAddress = "127.0.0.1";
 	private int port = 9123;
 	private MinaTaskClient client;
-	private WorkItemManager manager = null;
+	private Map<Long, WorkItemManager> managers = new HashMap<Long, WorkItemManager>();
+	private Map<Long, Long> idMapping = new HashMap<Long, Long>();
 
 	public void setConnection(String ipAddress, int port) {
 		this.ipAddress = ipAddress;
@@ -50,30 +51,10 @@
 				throw new IllegalArgumentException(
 					"Could not connect task client");
 			}
-			TaskEventKey key = new TaskEventKey(TaskCompletedEvent.class, -1);           
-            TaskCompletedHandler eventResponseHandler =
-            	new TaskCompletedHandler(manager, client);
-            client.registerForEvent(key, true, eventResponseHandler);
-            key = new TaskEventKey(TaskFailedEvent.class, -1);           
-            client.registerForEvent(key, true, eventResponseHandler);
-            key = new TaskEventKey(TaskSkippedEvent.class, -1);           
-            client.registerForEvent(key, true, eventResponseHandler);
 		}
 	}
-	
-	public void setManager(WorkItemManager manager) {
-		this.manager = manager;
-	}
 
 	public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
-		if (this.manager == null) {
-			this.manager = manager;
-		} else {
-			if (this.manager != manager) {
-				throw new IllegalArgumentException(
-					"This WSHumanTaskHandler can only be used for one WorkItemManager");
-			}
-		}
 		connect();
 		Task task = new Task();
 		String taskName = (String) workItem.getParameter("TaskName");
@@ -174,7 +155,10 @@
 				e.printStackTrace();
 			}
 		}
-		client.addTask(task, content, null);
+		TaskWorkItemAddTaskResponseHandler taskResponseHandler =
+			new TaskWorkItemAddTaskResponseHandler(this.client, this.managers,
+				this.idMapping, manager, workItem.getId());
+		client.addTask(task, content, taskResponseHandler);
 	}
 	
 	public void dispose() {
@@ -184,26 +168,93 @@
 	}
 
 	public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
-		GetTaskResponseHandler abortTaskResponseHandler =
-    		new AbortTaskResponseHandler(client);
-    	client.getTaskByWorkItemId(workItem.getId(), abortTaskResponseHandler);
+		Long taskId = idMapping.get(workItem.getId());
+		if (taskId != null) {
+			synchronized (idMapping) {
+				idMapping.remove(taskId);
+			}
+			synchronized (managers) {
+				managers.remove(taskId);
+			}
+			client.skip(taskId, "Administrator", null);
+		}
 	}
+	
+    public static class TaskWorkItemAddTaskResponseHandler extends AbstractBaseResponseHandler implements AddTaskResponseHandler {
+        private Map<Long, WorkItemManager> managers;
+        private Map<Long, Long> idMapping;
+        private WorkItemManager manager;
+        private long workItemId;
+        private MinaTaskClient client;
+        
+        public TaskWorkItemAddTaskResponseHandler(MinaTaskClient client,
+        		Map<Long, WorkItemManager> managers,  Map<Long, Long> idMapping,
+        		WorkItemManager manager, long workItemId) {
+            this.client = client;
+            this.managers = managers;
+            this.idMapping = idMapping;
+            this.manager = manager;
+            this.workItemId = workItemId;
+        }
+        
+        public void execute(long taskId) {
+        	synchronized ( managers ) {
+                managers.put(taskId, this.manager);           
+            }
+            synchronized ( idMapping ) {
+                idMapping.put(workItemId, taskId);           
+            }
+//            System.out.println("Created task " + taskId + " for work item " + workItemId);
+            
+            EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId );           
+            TaskCompletedHandler eventResponseHandler =
+            	new TaskCompletedHandler(workItemId, taskId, managers, client); 
+            client.registerForEvent( key, true, eventResponseHandler );
+            key = new TaskEventKey(TaskFailedEvent.class, taskId );           
+            client.registerForEvent( key, true, eventResponseHandler );
+            key = new TaskEventKey(TaskSkippedEvent.class, taskId );           
+            client.registerForEvent( key, true, eventResponseHandler );
+        }
+    }
     
     private static class TaskCompletedHandler extends AbstractBaseResponseHandler implements EventResponseHandler {
-        private WorkItemManager manager;
+        private long workItemId;
+        private long taskId;
+        private Map<Long, WorkItemManager> managers;
         private MinaTaskClient client;
         
-        public TaskCompletedHandler(WorkItemManager manager, MinaTaskClient client) {
-            this.manager = manager;
+        public TaskCompletedHandler(long workItemId, long taskId, Map<Long, WorkItemManager> managers,
+        		MinaTaskClient client) {
+            this.workItemId = workItemId;
+            this.taskId = taskId;
+            this.managers = managers;
             this.client = client;
         }
 
         public void execute(Payload payload) {
             TaskEvent event = ( TaskEvent ) payload.get();
-        	long taskId = event.getTaskId();
-        	GetTaskResponseHandler getTaskResponseHandler =
-        		new GetCompletedTaskResponseHandler(manager, client);
-        	client.getTask(taskId, getTaskResponseHandler);   
+        	if ( event.getTaskId() != taskId ) {
+                // defensive check that should never happen, just here for testing                
+                setError(new IllegalStateException("Expected task id and arrived task id do not march"));
+                return;
+            }
+        	if (event instanceof TaskCompletedEvent) {
+		        synchronized ( this.managers ) {
+		            WorkItemManager manager = this.managers.get(taskId);
+		            if (manager != null) {
+		            	GetTaskResponseHandler getTaskResponseHandler =
+		            		new GetCompletedTaskResponseHandler(manager, client);
+		            	client.getTask(taskId, getTaskResponseHandler);   
+		            }
+		        }
+        	} else {
+        		synchronized ( this.managers ) {
+        			WorkItemManager manager = this.managers.get(taskId);
+		            if (manager != null) {
+		            	manager.abortWorkItem(workItemId);
+		            }
+		        }
+        	}
         }
     }
     
@@ -219,20 +270,16 @@
     	
 		public void execute(Task task) {
 			long workItemId = task.getTaskData().getWorkItemId();
-			if (task.getTaskData().getStatus() == Status.Completed) {
-				String userId = task.getTaskData().getActualOwner().getId();
-				Map<String, Object> results = new HashMap<String, Object>();
-				results.put("ActorId", userId);
-				long contentId = task.getTaskData().getOutputContentId();
-				if (contentId != -1) {
-					GetContentResponseHandler getContentResponseHandler =
-						new GetResultContentResponseHandler(manager, task, results);
-					client.getContent(contentId, getContentResponseHandler);
-				} else {
-					manager.completeWorkItem(workItemId, results);
-				}
+			String userId = task.getTaskData().getActualOwner().getId();
+			Map<String, Object> results = new HashMap<String, Object>();
+			results.put("ActorId", userId);
+			long contentId = task.getTaskData().getOutputContentId();
+			if (contentId != -1) {
+				GetContentResponseHandler getContentResponseHandler =
+					new GetResultContentResponseHandler(manager, task, results);
+				client.getContent(contentId, getContentResponseHandler);
 			} else {
-				manager.abortWorkItem(workItemId);
+				manager.completeWorkItem(workItemId, results);
 			}
 		}
     }
@@ -273,20 +320,4 @@
 			}
 		}
     }
-    
-    private static class AbortTaskResponseHandler extends AbstractBaseResponseHandler implements GetTaskResponseHandler {
-
-    	private MinaTaskClient client;
-    	
-    	public AbortTaskResponseHandler(MinaTaskClient client) {
-    		this.client = client;
-    	}
-    	
-		public void execute(Task task) {
-			if (task != null) {
-				client.skip(task.getId(), "Administrator", null);
-			}
-		}
-    }
-    
 }

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/MessagingTaskEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/MessagingTaskEventListener.java	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/MessagingTaskEventListener.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -39,18 +39,8 @@
         EventKey key = new TaskEventKey(TaskCompletedEvent.class, event.getTaskId() );
         List<EventTriggerTransport> targets = keys.getTargets( key );
         if ( targets == null ){
-        	key = new TaskEventKey(TaskCompletedEvent.class, -1);
-        	targets = keys.getTargets( key );
-        	if (targets == null) {
-        		return;
-        	}
-        } else {
-        	key = new TaskEventKey(TaskCompletedEvent.class, -1);
-        	List<EventTriggerTransport> additionalTargets = keys.getTargets( key );
-        	if (additionalTargets != null) {
-        		targets.addAll(additionalTargets);
-        	}
-        }
+            return;
+        }        
         Payload payload = new EventPayload( event );
         for ( Iterator<EventTriggerTransport> it = targets.iterator(); it.hasNext(); ) {
             EventTriggerTransport target = it.next();
@@ -68,17 +58,7 @@
         EventKey key = new TaskEventKey(TaskFailedEvent.class, event.getTaskId() );
         List<EventTriggerTransport> targets = keys.getTargets( key );
         if ( targets == null ){
-        	key = new TaskEventKey(TaskFailedEvent.class, -1);
-        	targets = keys.getTargets( key );
-        	if (targets == null) {
-        		return;
-        	}
-        } else {
-        	key = new TaskEventKey(TaskFailedEvent.class, -1);
-        	List<EventTriggerTransport> additionalTargets = keys.getTargets( key );
-        	if (additionalTargets != null) {
-        		targets.addAll(additionalTargets);
-        	}
+            return;
         }
         Payload payload = new EventPayload( event );
         for ( Iterator<EventTriggerTransport> it = targets.iterator(); it.hasNext(); ) {
@@ -97,17 +77,7 @@
         EventKey key = new TaskEventKey(TaskSkippedEvent.class, event.getTaskId() );
         List<EventTriggerTransport> targets = keys.getTargets( key );
         if ( targets == null ){
-        	key = new TaskEventKey(TaskSkippedEvent.class, -1);
-        	targets = keys.getTargets( key );
-        	if (targets == null) {
-        		return;
-        	}
-        } else {
-        	key = new TaskEventKey(TaskSkippedEvent.class, -1);
-        	List<EventTriggerTransport> additionalTargets = keys.getTargets( key );
-        	if (additionalTargets != null) {
-        		targets.addAll(additionalTargets);
-        	}
+            return;
         }
         Payload payload = new EventPayload( event );
         for ( Iterator<EventTriggerTransport> it = targets.iterator(); it.hasNext(); ) {

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/TaskEventKey.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/TaskEventKey.java	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/TaskEventKey.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -10,7 +10,7 @@
 
 public class TaskEventKey implements EventKey, Externalizable {
     private Class<? extends TaskEvent> event;
-    private long taskId = -1;
+    private long taskId;
     
     public TaskEventKey() {
         

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	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -72,9 +72,6 @@
     QueryTasksAssignedAsTaskStakeholder,    
     QueryTaskSummaryResponse,
     
-    QueryTaskByWorkItemId,
-    QueryTaskByWorkItemIdResponse,
-    
     RegisterForEventRequest,
     EventTriggerResponse,
     

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	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -367,18 +367,6 @@
         session.write( cmd );
     }
 
-    public void getTaskByWorkItemId(long workItemId,
-			                        GetTaskResponseHandler responseHandler) {
-		List<Object> args = new ArrayList<Object>(1);
-		args.add(workItemId);
-		Command cmd = new Command( counter.getAndIncrement(),
-				                   CommandName.QueryTaskByWorkItemId,
-				                   args);
-		handler.addResponseHandler( cmd.getId(),
-				                    responseHandler);
-		session.write(cmd);
-	}
-
     public void getTasksAssignedAsBusinessAdministrator(String userId,
                                                         String language,
                                                         TaskSummaryResponseHandler responseHandler) {

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -165,18 +165,6 @@
                 }
                 break;
             }
-            case QueryTaskByWorkItemIdResponse: {
-                GetTaskResponseHandler responseHandler = (GetTaskResponseHandler) responseHandlers.remove(cmd.getId());
-                if (responseHandler != null) {
-                    if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
-                        responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
-                    } else {
-                        Task result = (Task) cmd.getArguments().get(0);
-                        responseHandler.execute(result);
-                    }
-                }
-                break;
-            }
             case EventTriggerResponse: {
                 EventResponseHandler responseHandler = (EventResponseHandler) responseHandlers.remove(cmd.getId());
                 if (responseHandler != null) {

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	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -180,17 +180,6 @@
                     session.write(resultsCmnd);
                     break;
                 }
-                case QueryTaskByWorkItemId: {
-                    response = CommandName.QueryTaskByWorkItemIdResponse;
-                    Task result = taskSession.getTaskByWorkItemId((Long) cmd.getArguments().get(0));
-                    List args = new ArrayList(1);
-                    args.add(result);
-                    Command resultsCmnd = new Command(cmd.getId(),
-                            CommandName.QueryTaskByWorkItemIdResponse,
-                            args);
-                    session.write(resultsCmnd);
-                    break;
-                }
                 case QueryTasksOwned: {
                     response = CommandName.QueryTaskSummaryResponse;
                     List<TaskSummary> results = taskSession.getTasksOwned((String) cmd.getArguments().get(0),

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -490,13 +490,6 @@
         return (List<DeadlineSummary>) em.createNamedQuery("UnescalatedDeadlines").getResultList();
     }
 
-    public Task getTaskByWorkItemId(final long workItemId) {
-        final Query task = em.createNamedQuery("TaskByWorkItemId");
-        task.setParameter("workItemId", workItemId);
-
-        return (Task) task.getSingleResult();
-    }
-
     public List<TaskSummary> getTasksOwned(final String userId, final String language) {
         final Query tasksOwned = em.createNamedQuery("TasksOwned");
         tasksOwned.setParameter("userId", userId);


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddAttachmentResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddCommentResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddTaskResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteAttachmentResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteCommentResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingEventResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetContentResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetTaskResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingSetContentResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskOperationResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 


Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskSummaryResponseHandler.java
___________________________________________________________________
Name: svn:mergeinfo
   - 

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/orm.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/orm.xml	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/orm.xml	2010-04-09 15:23:27 UTC (rev 32485)
@@ -532,15 +532,4 @@
           </query>
           <!-- hint name="org.hibernate.timeout" value="200"/ -->
       </named-query>
-      <named-query name="TaskByWorkItemId">
-          <query>
-select
-    t
-from
-    Task t
-where
-    t.taskData.workItemId = :workItemId
-          </query>
-          <!-- hint name="org.hibernate.timeout" value="200"/ -->
-      </named-query>
 </entity-mappings>

Deleted: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/CommandBasedWSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/CommandBasedWSHumanTaskHandlerTest.java	2010-04-09 15:08:54 UTC (rev 32484)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/CommandBasedWSHumanTaskHandlerTest.java	2010-04-09 15:23:27 UTC (rev 32485)
@@ -1,776 +0,0 @@
-package org.drools.process.workitem.wsht;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.mina.transport.socket.nio.NioSocketConnector;
-import org.drools.KnowledgeBaseFactory;
-import org.drools.SystemEventListenerFactory;
-import org.drools.WorkingMemory;
-import org.drools.impl.EnvironmentFactory;
-import org.drools.process.instance.WorkItem;
-import org.drools.process.instance.WorkItemManagerFactory;
-import org.drools.process.instance.impl.WorkItemImpl;
-import org.drools.runtime.KnowledgeSessionConfiguration;
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.runtime.process.WorkItemHandler;
-import org.drools.task.AccessType;
-import org.drools.task.BaseTest;
-import org.drools.task.Status;
-import org.drools.task.Task;
-import org.drools.task.query.TaskSummary;
-import org.drools.task.service.ContentData;
-import org.drools.task.service.MinaTaskClient;
-import org.drools.task.service.MinaTaskServer;
-import org.drools.task.service.PermissionDeniedException;
-import org.drools.task.service.TaskClientHandler;
-import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingTaskSummaryResponseHandler;
-
-public class CommandBasedWSHumanTaskHandlerTest extends BaseTest {
-    private static final int DEFAULT_WAIT_TIME = 5000;
-    private static final int MANAGER_COMPLETION_WAIT_TIME = DEFAULT_WAIT_TIME;
-    private static final int MANAGER_ABORT_WAIT_TIME = DEFAULT_WAIT_TIME;
-
-    MinaTaskServer server;
-    MinaTaskClient client;
-    CommandBasedWSHumanTaskHandler handler;
-    StatefulKnowledgeSession ksession;
-
-    @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(SystemEventListenerFactory.getSystemEventListener()));
-        NioSocketConnector connector = new NioSocketConnector();
-        SocketAddress address = new InetSocketAddress("127.0.0.1", 9123);
-        client.connect(connector, address);
-        
-        Properties properties = new Properties();
-        properties.setProperty("drools.workItemManagerFactory",
-        	"org.drools.process.workitem.wsht.CommandBasedWSHumanTaskHandlerTest$TestWorkItemManagerFactory");
-        KnowledgeSessionConfiguration conf = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(properties);
-        ksession = KnowledgeBaseFactory.newKnowledgeBase().newStatefulKnowledgeSession(conf, EnvironmentFactory.newEnvironment());
-        handler = new CommandBasedWSHumanTaskHandler(ksession);
-    }
-
-    protected void tearDown() throws Exception {
-        handler.dispose();
-        client.disconnect();
-        server.stop();
-        super.tearDown();
-    }
-
-    public void testTask() throws Exception {
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskName");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-        TaskSummary task = tasks.get(0);
-        assertEquals("TaskName", task.getName());
-        assertEquals(10, task.getPriority());
-        assertEquals("Comment", task.getDescription());
-        assertEquals(Status.Reserved, task.getStatus());
-        assertEquals("Darth Vader", task.getActualOwner().getId());
-
-        System.out.println("Starting task " + task.getId());
-        BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(task.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started task " + task.getId());
-
-        System.out.println("Completing task " + task.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
-        operationResponseHandler.waitTillDone(15000);
-        System.out.println("Completed task " + task.getId());
-
-        assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
-    }
-
-    public void testTaskMultipleActors() throws Exception {
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskName");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader, Dalai Lama");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-        TaskSummary task = tasks.get(0);
-        assertEquals("TaskName", task.getName());
-        assertEquals(10, task.getPriority());
-        assertEquals("Comment", task.getDescription());
-        assertEquals(Status.Ready, task.getStatus());
-
-        System.out.println("Claiming task " + task.getId());
-        BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.claim(task.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Claimed task " + task.getId());
-
-        System.out.println("Starting task " + task.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(task.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started task " + task.getId());
-
-        System.out.println("Completing task " + task.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Completed task " + task.getId());
-
-        assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
-    }
-
-    public void testTaskGroupActors() throws Exception {
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskName");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("GroupId", "Crusaders");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        List<String> groupIds = new ArrayList<String>();
-        groupIds.add("Crusaders");
-        client.getTasksAssignedAsPotentialOwner(null, groupIds, "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-        TaskSummary taskSummary = tasks.get(0);
-        assertEquals("TaskName", taskSummary.getName());
-        assertEquals(10, taskSummary.getPriority());
-        assertEquals("Comment", taskSummary.getDescription());
-        assertEquals(Status.Ready, taskSummary.getStatus());
-
-        System.out.println("Claiming task " + taskSummary.getId());
-        BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.claim(taskSummary.getId(), "Darth Vader", operationResponseHandler);
-        PermissionDeniedException denied = null;
-        try {
-            operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        } catch (PermissionDeniedException e) {
-            denied = e;
-        }
-
-        assertNotNull("Should get permissed denied exception", denied);
-        System.out.println("Claimed task " + taskSummary.getId());
-
-        //Check if the parent task is InProgress
-        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(taskSummary.getId(), getTaskResponseHandler);
-        Task task = getTaskResponseHandler.getTask();
-        assertEquals(Status.Ready, task.getTaskData().getStatus());
-    }
-
-    public void testTaskSingleAndGroupActors() throws Exception {
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task One");
-        workItem.setParameter("TaskName", "TaskNameOne");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("GroupId", "Crusaders");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        workItem = new WorkItemImpl();
-        workItem.setName("Human Task Two");
-        workItem.setParameter("TaskName", "TaskNameTwo");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        List<String> groupIds = new ArrayList<String>();
-        groupIds.add("Crusaders");
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", groupIds, "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(2, tasks.size());
-    }
-
-    public void testTaskFail() throws Exception {
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskName");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-        TaskSummary task = tasks.get(0);
-        assertEquals("TaskName", task.getName());
-        assertEquals(10, task.getPriority());
-        assertEquals("Comment", task.getDescription());
-        assertEquals(Status.Reserved, task.getStatus());
-        assertEquals("Darth Vader", task.getActualOwner().getId());
-
-        System.out.println("Starting task " + task.getId());
-        BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(task.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started task " + task.getId());
-
-        System.out.println("Failing task " + task.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.fail(task.getId(), "Darth Vader", null, operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Failed task " + task.getId());
-
-        assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME));
-    }
-
-    public void testTaskSkip() throws Exception {
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskName");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-        TaskSummary task = tasks.get(0);
-        assertEquals("TaskName", task.getName());
-        assertEquals(10, task.getPriority());
-        assertEquals("Comment", task.getDescription());
-        assertEquals(Status.Reserved, task.getStatus());
-        assertEquals("Darth Vader", task.getActualOwner().getId());
-
-        System.out.println("Skipping task " + task.getId());
-        BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.skip(task.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Skipped task " + task.getId());
-
-        assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME));
-    }
-
-    public void testTaskAbortSkippable() throws Exception {
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskName");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        handler.abortWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(0, tasks.size());
-    }
-
-    public void testTaskAbortNotSkippable() throws Exception {
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskName");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        workItem.setParameter("Skippable", "false");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-
-        handler.abortWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-    }
-
-    public void testTaskData() throws Exception {
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskName");
-        workItem.setParameter("Comment", "Comment");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        workItem.setParameter("Content", "This is the content");
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-        TaskSummary taskSummary = tasks.get(0);
-        assertEquals("TaskName", taskSummary.getName());
-        assertEquals(10, taskSummary.getPriority());
-        assertEquals("Comment", taskSummary.getDescription());
-        assertEquals(Status.Reserved, taskSummary.getStatus());
-        assertEquals("Darth Vader", taskSummary.getActualOwner().getId());
-
-        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(taskSummary.getId(), getTaskResponseHandler);
-        Task task = getTaskResponseHandler.getTask();
-        assertEquals(AccessType.Inline, task.getTaskData().getDocumentAccessType());
-        long contentId = task.getTaskData().getDocumentContentId();
-        assertTrue(contentId != -1);
-        BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
-        client.getContent(contentId, getContentResponseHandler);
-        ByteArrayInputStream bis = new ByteArrayInputStream(getContentResponseHandler.getContent().getContent());
-        ObjectInputStream in = new ObjectInputStream(bis);
-        Object data = in.readObject();
-        in.close();
-        assertEquals("This is the content", data);
-
-        System.out.println("Starting task " + task.getId());
-        BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(task.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started task " + task.getId());
-
-        System.out.println("Completing task " + task.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        ContentData result = new ContentData();
-        result.setAccessType(AccessType.Inline);
-        result.setType("java.lang.String");
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-        ObjectOutputStream out = new ObjectOutputStream(bos);
-        out.writeObject("This is the result");
-        out.close();
-        result.setContent(bos.toByteArray());
-        client.complete(task.getId(), "Darth Vader", result, operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Completed task " + task.getId());
-
-        assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
-        Map<String, Object> results = manager.getResults();
-        assertNotNull(results);
-        assertEquals("Darth Vader", results.get("ActorId"));
-        assertEquals("This is the result", results.get("Result"));
-    }
-
-    public void testOnAllSubTasksEndParentEndStrategy() throws Exception {
-
-        //Create the parent task
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskNameParent");
-        workItem.setParameter("Comment", "CommentParent");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        //Set the subtask policy
-        workItem.setParameter("SubTaskStrategies", "OnAllSubTasksEndParentEnd");
-        handler.executeWorkItem(workItem, manager);
-
-
-        Thread.sleep(500);
-
-        //Test if the task is succesfully created
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-        TaskSummary task = tasks.get(0);
-        assertEquals("TaskNameParent", task.getName());
-        assertEquals(10, task.getPriority());
-        assertEquals("CommentParent", task.getDescription());
-        assertEquals(Status.Reserved, task.getStatus());
-        assertEquals("Darth Vader", task.getActualOwner().getId());
-
-        //Create the child task
-        workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskNameChild1");
-        workItem.setParameter("Comment", "CommentChild1");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        workItem.setParameter("ParentId", task.getId());
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        //Create the child task2
-        workItem = new WorkItemImpl();
-        workItem.setName("Human Task2");
-        workItem.setParameter("TaskName", "TaskNameChild2");
-        workItem.setParameter("Comment", "CommentChild2");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        workItem.setParameter("ParentId", task.getId());
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        //Start the parent task
-        System.out.println("Starting task " + task.getId());
-        BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(task.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started task " + task.getId());
-
-        //Check if the parent task is InProgress
-        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(task.getId(), getTaskResponseHandler);
-        Task parentTask = getTaskResponseHandler.getTask();
-        assertEquals(Status.InProgress, parentTask.getTaskData().getStatus());
-        assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
-
-        //Get all the subtask created for the parent task based on the potential owner
-        responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getSubTasksAssignedAsPotentialOwner(parentTask.getId(), "Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> subTasks = responseHandler.getResults();
-        assertEquals(2, subTasks.size());
-        TaskSummary subTaskSummary1 = subTasks.get(0);
-        TaskSummary subTaskSummary2 = subTasks.get(1);
-        assertNotNull(subTaskSummary1);
-        assertNotNull(subTaskSummary2);
-
-        //Starting the sub task 1
-        System.out.println("Starting sub task " + subTaskSummary1.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started sub task " + subTaskSummary1.getId());
-
-        //Starting the sub task 2
-        System.out.println("Starting sub task " + subTaskSummary2.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started sub task " + subTaskSummary2.getId());
-
-        //Check if the child task 1 is InProgress
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(subTaskSummary1.getId(), getTaskResponseHandler);
-        Task subTask1 = getTaskResponseHandler.getTask();
-        assertEquals(Status.InProgress, subTask1.getTaskData().getStatus());
-        assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
-        //Check if the child task 2 is InProgress
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(subTaskSummary2.getId(), getTaskResponseHandler);
-        Task subTask2 = getTaskResponseHandler.getTask();
-        assertEquals(Status.InProgress, subTask2.getTaskData().getStatus());
-        assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
-
-        // Complete the child task 1
-        System.out.println("Completing sub task " + subTask1.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.complete(subTask1.getId(), "Darth Vader", null, operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Completed sub task " + subTask1.getId());
-
-        // Complete the child task 2
-        System.out.println("Completing sub task " + subTask2.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.complete(subTask2.getId(), "Darth Vader", null, operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Completed sub task " + subTask2.getId());
-
-        //Check if the child task 1 is Completed
-
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(subTask1.getId(), getTaskResponseHandler);
-        subTask1 = getTaskResponseHandler.getTask();
-        assertEquals(Status.Completed, subTask1.getTaskData().getStatus());
-        assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
-        //Check if the child task 2 is Completed
-
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(subTask2.getId(), getTaskResponseHandler);
-        subTask2 = getTaskResponseHandler.getTask();
-        assertEquals(Status.Completed, subTask2.getTaskData().getStatus());
-        assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
-
-        // Check is the parent task is Complete
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(parentTask.getId(), getTaskResponseHandler);
-        parentTask = getTaskResponseHandler.getTask();
-        assertEquals(Status.Completed, parentTask.getTaskData().getStatus());
-        assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
-
-        assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
-    }
-
-    public void testOnParentAbortAllSubTasksEndStrategy() throws Exception {
-
-        //Create the parent task
-        WorkItemImpl workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskNameParent");
-        workItem.setParameter("Comment", "CommentParent");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        //Set the subtask policy
-        workItem.setParameter("SubTaskStrategies", "OnParentAbortAllSubTasksEnd");
-        handler.executeWorkItem(workItem, manager);
-
-
-        Thread.sleep(500);
-
-        //Test if the task is succesfully created
-        BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> tasks = responseHandler.getResults();
-        assertEquals(1, tasks.size());
-        TaskSummary task = tasks.get(0);
-        assertEquals("TaskNameParent", task.getName());
-        assertEquals(10, task.getPriority());
-        assertEquals("CommentParent", task.getDescription());
-        assertEquals(Status.Reserved, task.getStatus());
-        assertEquals("Darth Vader", task.getActualOwner().getId());
-
-        //Create the child task
-        workItem = new WorkItemImpl();
-        workItem.setName("Human Task");
-        workItem.setParameter("TaskName", "TaskNameChild1");
-        workItem.setParameter("Comment", "CommentChild1");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        workItem.setParameter("ParentId", task.getId());
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        //Create the child task2
-        workItem = new WorkItemImpl();
-        workItem.setName("Human Task2");
-        workItem.setParameter("TaskName", "TaskNameChild2");
-        workItem.setParameter("Comment", "CommentChild2");
-        workItem.setParameter("Priority", "10");
-        workItem.setParameter("ActorId", "Darth Vader");
-        workItem.setParameter("ParentId", task.getId());
-        handler.executeWorkItem(workItem, manager);
-
-        Thread.sleep(500);
-
-        //Start the parent task
-        System.out.println("Starting task " + task.getId());
-        BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(task.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started task " + task.getId());
-
-        //Check if the parent task is InProgress
-        BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(task.getId(), getTaskResponseHandler);
-        Task parentTask = getTaskResponseHandler.getTask();
-        assertEquals(Status.InProgress, parentTask.getTaskData().getStatus());
-        assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
-
-        //Get all the subtask created for the parent task based on the potential owner
-        responseHandler = new BlockingTaskSummaryResponseHandler();
-        client.getSubTasksAssignedAsPotentialOwner(parentTask.getId(), "Darth Vader", "en-UK", responseHandler);
-        List<TaskSummary> subTasks = responseHandler.getResults();
-        assertEquals(2, subTasks.size());
-        TaskSummary subTaskSummary1 = subTasks.get(0);
-        TaskSummary subTaskSummary2 = subTasks.get(1);
-        assertNotNull(subTaskSummary1);
-        assertNotNull(subTaskSummary2);
-
-        //Starting the sub task 1
-        System.out.println("Starting sub task " + subTaskSummary1.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started sub task " + subTaskSummary1.getId());
-
-        //Starting the sub task 2
-        System.out.println("Starting sub task " + subTaskSummary2.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Started sub task " + subTaskSummary2.getId());
-
-        //Check if the child task 1 is InProgress
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(subTaskSummary1.getId(), getTaskResponseHandler);
-        Task subTask1 = getTaskResponseHandler.getTask();
-        assertEquals(Status.InProgress, subTask1.getTaskData().getStatus());
-        assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
-        //Check if the child task 2 is InProgress
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(subTaskSummary2.getId(), getTaskResponseHandler);
-        Task subTask2 = getTaskResponseHandler.getTask();
-        assertEquals(Status.InProgress, subTask2.getTaskData().getStatus());
-        assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
-
-        // Complete the parent task
-        System.out.println("Completing parent task " + parentTask.getId());
-        operationResponseHandler = new BlockingTaskOperationResponseHandler();
-        client.skip(parentTask.getId(), "Darth Vader", operationResponseHandler);
-        operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-        System.out.println("Completed parent task " + parentTask.getId());
-
-        //Check if the child task 1 is Completed
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(subTaskSummary1.getId(), getTaskResponseHandler);
-        subTask1 = getTaskResponseHandler.getTask();
-        assertEquals(Status.Completed, subTask1.getTaskData().getStatus());
-        assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
-        //Check if the child task 2 is Completed
-        getTaskResponseHandler = new BlockingGetTaskResponseHandler();
-        client.getTask(subTaskSummary2.getId(), getTaskResponseHandler);
-        subTask2 = getTaskResponseHandler.getTask();
-        assertEquals(Status.Completed, subTask2.getTaskData().getStatus());
-        assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
-
-        assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
-    }
-
-    private static class TestWorkItemManager implements org.drools.process.instance.WorkItemManager {
-
-        private volatile boolean completed;
-        private volatile boolean aborted;
-        private volatile Map<String, Object> results;
-
-        public synchronized boolean waitTillCompleted(long time) {
-            if (!isCompleted()) {
-                try {
-                    wait(time);
-                } catch (InterruptedException e) {
-                    // swallow and return state of completed
-                }
-            }
-
-            return isCompleted();
-        }
-
-        public synchronized boolean waitTillAborted(long time) {
-            if (!isAborted()) {
-                try {
-                    wait(time);
-                } catch (InterruptedException e) {
-                    // swallow and return state of aborted
-                }
-            }
-
-            return isAborted();
-        }
-
-        public void abortWorkItem(long id) {
-            setAborted(true);
-        }
-
-        public synchronized boolean isAborted() {
-            return aborted;
-        }
-
-        private synchronized void setAborted(boolean aborted) {
-            this.aborted = aborted;
-            notifyAll();
-        }
-
-        public void completeWorkItem(long id, Map<String, Object> results) {
-            this.results = results;
-            setCompleted(true);
-        }
-
-        private synchronized void setCompleted(boolean completed) {
-            this.completed = completed;
-            notifyAll();
-        }
-
-        public synchronized boolean isCompleted() {
-            return completed;
-        }
-
-        public WorkItem getWorkItem(long id) {
-            return null;
-        }
-
-        public Set<WorkItem> getWorkItems() {
-            return null;
-        }
-
-        public Map<String, Object> getResults() {
-            return results;
-        }
-
-        public void internalAbortWorkItem(long id) {
-        }
-
-        public void internalAddWorkItem(WorkItem workItem) {
-        }
-
-        public void internalExecuteWorkItem(WorkItem workItem) {
-        }
-
-        public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
-        }
-
-    }
-    
-    private static TestWorkItemManager manager =
-    	new CommandBasedWSHumanTaskHandlerTest.TestWorkItemManager();
-
-    public static class TestWorkItemManagerFactory implements WorkItemManagerFactory {
-    	
-    	public org.drools.process.instance.WorkItemManager createWorkItemManager(WorkingMemory workingMemory) {
-    		return (org.drools.process.instance.WorkItemManager) 
-				CommandBasedWSHumanTaskHandlerTest.manager;
-    	}
-
-    }
-    
-}



More information about the jboss-svn-commits mailing list