[jboss-svn-commits] JBL Code SVN: r30743 - in labs/jbossrules/branches/human-task-vsm_lucaz-salaboy: drools-api/src/main/java/org/drools/task and 11 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Dec 17 13:39:24 EST 2009


Author: lucazamador
Date: 2009-12-17 13:39:23 -0500 (Thu, 17 Dec 2009)
New Revision: 30743

Added:
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/task/
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/task/service/
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/task/service/ResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddAttachmentMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddCommentMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddTaskMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteAttachmentMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteCommentMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingEventMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetContentMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetTaskMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingSetContentMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskOperationMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskSummaryMessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadGroups.mvel
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadUsers.mvel
Modified:
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/vsm/MessageResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/eventmessaging/EventResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/BaseMinaHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBaseResponseHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/task/service/HumanTaskServiceImpl.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/HumanTaskServiceRemoteProviderImpl.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseProviderRemoteClient.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseRemoteClient.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/ServiceManagerRemoteClient.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/CommandBasedVSMWSHumanTaskHandler.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/TaskClientMessageHandlerImpl.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/TaskServerMessageHandlerImpl.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerHumanTaskMinaRemoteTest.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTestBase.java
   labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/humanTasks.rf
Log:
first approach to real process task execution and events communication

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/task/service/ResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/task/service/ResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/task/service/ResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,7 @@
+package org.drools.task.service;
+
+public interface ResponseHandler {
+
+	public void setError(RuntimeException error);
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/task/service/ResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/vsm/MessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/vsm/MessageResponseHandler.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-api/src/main/java/org/drools/vsm/MessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -1,6 +1,3 @@
-/**
- * 
- */
 package org.drools.vsm;
 
 public interface MessageResponseHandler {

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/eventmessaging/EventResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/eventmessaging/EventResponseHandler.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/eventmessaging/EventResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -1,6 +1,6 @@
 package org.drools.eventmessaging;
 
-import org.drools.task.service.BaseMinaHandler.ResponseHandler;
+import org.drools.task.service.ResponseHandler;
 
 public interface EventResponseHandler extends ResponseHandler {
     public void execute(Payload payload);

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/BaseMinaHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/BaseMinaHandler.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/BaseMinaHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -17,7 +17,4 @@
         responseHandlers.put( id, responseHandler );
     }
     
-    public static interface ResponseHandler {
-        public void setError(RuntimeException error);
-    }
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -7,6 +7,7 @@
 import org.drools.task.Content;
 import org.drools.task.Task;
 import org.drools.task.query.TaskSummary;
+import org.drools.vsm.MessageResponseHandler;
 
 import java.util.Arrays;
 import java.util.List;

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -140,7 +140,6 @@
             // trigger event support
             service.getEventSupport().fireTaskClaimed(task.getId(), task.getTaskData().getActualOwner().getId());
         }
-        System.out.println("taskId " + task.getId());
     }
 
     private void scheduleTask(final Task task) {

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBaseResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBaseResponseHandler.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBaseResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -1,9 +1,9 @@
 package org.drools.task.service.responsehandlers;
 
-import org.drools.task.service.BaseMinaHandler;
-
 import java.lang.reflect.Constructor;
 
+import org.drools.task.service.ResponseHandler;
+
 /**
  * Abstract base class for client ResponseHandlers. Provides synchonized access to <field>done</field> which represents
  * if the response is completed. Also has an <field>error</field> which will be set when there is a problem with
@@ -15,7 +15,7 @@
  *
  * @author <a href="mailto:stampy88 at yahoo.com">dave sinclair</a>
  */
-public abstract class AbstractBaseResponseHandler implements BaseMinaHandler.ResponseHandler {
+public abstract class AbstractBaseResponseHandler implements ResponseHandler {
     private volatile boolean done;
     private RuntimeException error;
 

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/task/service/HumanTaskServiceImpl.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/task/service/HumanTaskServiceImpl.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/task/service/HumanTaskServiceImpl.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -12,7 +12,6 @@
 import org.drools.vsm.GenericConnector;
 import org.drools.vsm.HumanTaskService;
 import org.drools.vsm.Message;
-import org.drools.vsm.task.TaskClientMessageHandlerImpl;
 import org.drools.vsm.task.TaskClientMessageHandlerImpl.AddAttachmentMessageResponseHandler;
 import org.drools.vsm.task.TaskClientMessageHandlerImpl.AddCommentMessageResponseHandler;
 import org.drools.vsm.task.TaskClientMessageHandlerImpl.AddTaskMessageResponseHandler;
@@ -32,41 +31,34 @@
  */
 public class HumanTaskServiceImpl implements HumanTaskService {
 
-	private TaskClientMessageHandlerImpl handler;
 	private final GenericConnector client;
 	private final AtomicInteger counter;
 	private int sessionId;
+	private String clientName;
 
-	public HumanTaskServiceImpl(GenericConnector client, int sessionId) {
+	public HumanTaskServiceImpl(GenericConnector client, AtomicInteger counter, String clientName, int sessionId) {
 		this.client = client;
-		this.counter = new AtomicInteger();
+		this.counter = counter;
+		this.clientName = clientName;
 		this.sessionId = sessionId;
 	}
 
-        
-
-
-
 	public void addTask(Task task, ContentData content, AddTaskMessageResponseHandler responseHandler) {
 		List<Object> args = new ArrayList<Object>( 2 );
 		args.add( task );
 		args.add( content );
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.AddTaskRequest, args );
 
-		//handler.addResponseHandler( cmd.getId(), responseHandler );
-
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
-		
+
 		client.write(msg, responseHandler);
 	}
 
 	public Task getTask(long taskId, GetTaskMessageResponseHandler responseHandler) {
 		List<Object> args = new ArrayList<Object>( 1 );
-                args.add( taskId );
-                Command cmd = new Command( counter.getAndIncrement(), CommandName.GetTaskRequest, args );
+		args.add( taskId );
+		Command cmd = new Command( counter.getAndIncrement(), CommandName.GetTaskRequest, args );
 
-            //handler.addResponseHandler( cmd.getId(), responseHandler );
-		
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 		client.write(msg, responseHandler);
 		return null;
@@ -80,7 +72,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.AddCommentRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void deleteComment(long taskId, long commentId, DeleteCommentMessageResponseHandler responseHandler) {
@@ -91,7 +83,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.DeleteCommentRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void addAttachment(long taskId, Attachment attachment, Content content, AddAttachmentMessageResponseHandler responseHandler) {
@@ -103,7 +95,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.AddAttachmentRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void deleteAttachment(long taskId, long attachmentId, long contentId, DeleteAttachmentMessageResponseHandler responseHandler ) {
@@ -115,7 +107,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.DeleteAttachmentRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void setDocumentContent(long taskId, Content content, SetDocumentMessageResponseHandler responseHandler) {
@@ -125,8 +117,8 @@
 
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.SetDocumentContentRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
-		
-		client.write(msg);
+
+		client.write(msg, responseHandler);
 	}
 
 	public void getContent(long contentId, GetContentMessageResponseHandler responseHandler) {
@@ -136,7 +128,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.GetContentRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void claim(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
@@ -148,7 +140,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void start(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
@@ -160,7 +152,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void stop(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
@@ -172,7 +164,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void release(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
@@ -184,7 +176,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void suspend(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
@@ -196,7 +188,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void resume(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
@@ -208,7 +200,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void skip(long taskId, String userId, TaskOperationMessageResponseHandler responseHandler) {
@@ -220,7 +212,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void delegate(long taskId, String userId, String targetUserId, TaskOperationMessageResponseHandler responseHandler) {
@@ -233,7 +225,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);   
+		client.write(msg, responseHandler);   
 	}
 
 	public void forward(long taskId, String userId, String targetEntityId, TaskOperationMessageResponseHandler responseHandler) {
@@ -246,7 +238,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);    
+		client.write(msg, responseHandler);    
 	}    
 
 	public void complete(long taskId, String userId, ContentData outputData, TaskOperationMessageResponseHandler responseHandler) {
@@ -260,7 +252,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void fail(long taskId, String userId, FaultData faultData, TaskOperationMessageResponseHandler responseHandler) {
@@ -274,7 +266,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.OperationRequest, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void getTasksOwned(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
@@ -285,7 +277,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksOwned, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void getTasksAssignedAsBusinessAdministrator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
@@ -296,7 +288,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsBusinessAdministrator, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void getTasksAssignedAsExcludedOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
@@ -307,7 +299,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsExcludedOwner, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void getTasksAssignedAsPotentialOwner(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
@@ -318,7 +310,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwner, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 	public void getTasksAssignedAsPotentialOwner(String userId, List<String> groupIds, String language, TaskSummaryMessageResponseHandler responseHandler) {
 		List<Object> args = new ArrayList<Object>( 2 );
@@ -329,7 +321,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsPotentialOwnerWithGroup, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void getSubTasksAssignedAsPotentialOwner(long parentId, String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
@@ -341,7 +333,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QuerySubTasksAssignedAsPotentialOwner, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 	public void getSubTasksByParent(long parentId, TaskSummaryMessageResponseHandler responseHandler) {
 		List<Object> args = new ArrayList<Object>( 2 );
@@ -352,7 +344,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryGetSubTasksByParentTaskId, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 	public void getTasksAssignedAsRecipient(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
 		List<Object> args = new ArrayList<Object>( 2 );
@@ -362,7 +354,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsRecipient, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void getTasksAssignedAsTaskInitiator(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
@@ -373,7 +365,7 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskInitiator, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void getTasksAssignedAsTaskStakeholder(String userId, String language, TaskSummaryMessageResponseHandler responseHandler) {
@@ -384,20 +376,20 @@
 		Command cmd = new Command( counter.getAndIncrement(), CommandName.QueryTasksAssignedAsTaskStakeholder, args );
 		Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
 
-		client.write(msg);
+		client.write(msg, responseHandler);
 	}
 
 	public void registerForEvent(EventKey key, boolean remove, EventMessageResponseHandler responseHandler) { //@TODO: look for the event stuff
 		List<Object> args = new ArrayList<Object>( 3 );
-                args.add( key );
-                args.add( remove );
-                args.add( "this.name" );
-                Command cmd = new Command( counter.getAndIncrement(), CommandName.RegisterForEventRequest, args );
-                Message msg = new Message( sessionId, counter.incrementAndGet(), false, cmd );
-        
-        //handler.addResponseHandler( cmd.getId(), responseHandler );
-        
-                client.write(msg, responseHandler);
+		args.add( key );
+		args.add( remove );
+		args.add( clientName );
+
+		Command cmd = new Command( counter.getAndIncrement(), CommandName.RegisterForEventRequest, args );
+		int responseId = counter.incrementAndGet();
+		Message msg = new Message( sessionId, responseId, false, cmd );
+
+		client.write(msg, responseHandler);
 	}
 
 }

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/HumanTaskServiceRemoteProviderImpl.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/HumanTaskServiceRemoteProviderImpl.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/HumanTaskServiceRemoteProviderImpl.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -1,6 +1,7 @@
 package org.drools.vsm.remote;
 
 import org.drools.task.service.HumanTaskServiceImpl;
+import org.drools.vsm.GenericConnector;
 import org.drools.vsm.HumanTaskService;
 import org.drools.vsm.HumanTaskServiceProvider;
 
@@ -18,7 +19,16 @@
 	}
 
 	public HumanTaskService newHumanTaskServiceClient() {
-		return new HumanTaskServiceImpl( serviceManager.client, serviceManager.getSessionId());
+		// TOOD: implemente a best way to identify the human task services of the other ones inexistents
+		if (serviceManager.getServices()==null)
+			return null;
+		GenericConnector humanTaskServiceConnector = serviceManager.getServices().get(0);
+		if (humanTaskServiceConnector==null)
+			return null;
+		return new HumanTaskServiceImpl( humanTaskServiceConnector,
+										serviceManager.counter,
+										serviceManager.getName(), 
+										serviceManager.getSessionId());
 	}
 
 }

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseProviderRemoteClient.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseProviderRemoteClient.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -12,7 +12,6 @@
 import org.drools.runtime.Environment;
 import org.drools.runtime.KnowledgeSessionConfiguration;
 import org.drools.vsm.Message;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
 
 public class KnowledgeBaseProviderRemoteClient
     implements

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseRemoteClient.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseRemoteClient.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBaseRemoteClient.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -20,7 +20,6 @@
 import org.drools.runtime.StatelessKnowledgeSession;
 import org.drools.vsm.CollectionClient;
 import org.drools.vsm.Message;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
 
 public class KnowledgeBaseRemoteClient
     implements

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderProviderRemoteClient.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -15,7 +15,6 @@
 import org.drools.command.SetVariableCommand;
 import org.drools.command.builder.NewKnowledgeBuilderCommand;
 import org.drools.vsm.Message;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
 
 public class KnowledgeBuilderProviderRemoteClient
     implements

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/KnowledgeBuilderRemoteClient.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -16,7 +16,6 @@
 import org.drools.runtime.ExecutionResults;
 import org.drools.vsm.CollectionClient;
 import org.drools.vsm.Message;
-import org.drools.vsm.responsehandlers.BlockingMessageResponseHandler;
 
 public class KnowledgeBuilderRemoteClient
     implements

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/ServiceManagerRemoteClient.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/ServiceManagerRemoteClient.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/ServiceManagerRemoteClient.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -31,15 +31,19 @@
 public class ServiceManagerRemoteClient
     implements
     ServiceManager {
-    public GenericConnector client;
+	private String name;
 
-    public List<GenericConnector> services;
+	public GenericConnector client;
 
+    private List<GenericConnector> services;
+
     public AtomicInteger    counter;
 
     private int sessionId = -1;
 
+
     public ServiceManagerRemoteClient(String name, GenericConnector client) {
+    	this.name = name;
     	this.client = client;
     	this.counter = new AtomicInteger();
     }
@@ -80,29 +84,21 @@
                                             e );
             }
         }
-        //Connecting with services
-//        for(GenericConnector connector : services){
-//            boolean serviceConnected = connector.connect();
-//              if ( serviceConnected ) {
-//
-//
-//                    System.out.println("Service Connected");
-//
-//
-//
-//            }
-//        }
+        // Connecting with services
+        for (GenericConnector connector : services){
+            boolean serviceConnected = connector.connect();
+              if ( serviceConnected )
+            	  System.out.println("Service Connected");
+        }
 
-
         return connected;
     }
 
-    public void disconnect() {
-        this.client.disconnect();
-        for(GenericConnector connector : this.services){
-            connector.disconnect();
-        }
-    }
+	public void disconnect() {
+		this.client.disconnect();
+		for (GenericConnector connector : this.services)
+			connector.disconnect();
+	}
 
     public KnowledgeBuilderProvider getKnowledgeBuilderFactory() {
         return new KnowledgeBuilderProviderRemoteClient( this );
@@ -276,4 +272,12 @@
         return null;
     }
 
+	public List<GenericConnector> getServices() {
+		return services;
+	}
+	
+	public String getName() {
+		return this.name;
+	}
+
 }

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/CommandBasedVSMWSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/CommandBasedVSMWSHumanTaskHandler.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/CommandBasedVSMWSHumanTaskHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -11,11 +11,11 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
 
 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;
 import org.drools.runtime.StatefulKnowledgeSession;
@@ -38,6 +38,7 @@
 import org.drools.task.event.TaskEventKey;
 import org.drools.task.event.TaskFailedEvent;
 import org.drools.task.event.TaskSkippedEvent;
+import org.drools.task.service.Command;
 import org.drools.task.service.ContentData;
 import org.drools.task.service.HumanTaskServiceImpl;
 import org.drools.vsm.GenericConnector;
@@ -47,34 +48,32 @@
 import org.drools.vsm.task.TaskClientMessageHandlerImpl.AddTaskMessageResponseHandler;
 import org.drools.vsm.task.TaskClientMessageHandlerImpl.GetContentMessageResponseHandler;
 import org.drools.vsm.task.TaskClientMessageHandlerImpl.GetTaskMessageResponseHandler;
+import org.drools.vsm.task.eventmessaging.EventMessageResponseHandler;
 
 
 public class CommandBasedVSMWSHumanTaskHandler implements WorkItemHandler {
 
 	private String ipAddress = "127.0.0.1";
 	private int port = 9124;
-        private SocketAddress address;
+	private SocketAddress address;
 	private GenericConnector connector;
-        private HumanTaskServiceImpl client;
+	private HumanTaskServiceImpl client;
 	private KnowledgeRuntime session;
 	private Map<Long, Long> idMapping = new HashMap<Long, Long>();
 	
 	public CommandBasedVSMWSHumanTaskHandler(KnowledgeRuntime session) {
 		this.session = session;
-                this.address = new InetSocketAddress(ipAddress, port);
+		this.address = new InetSocketAddress(ipAddress, port);
 	}
 
-	
-	
 	public void connect() {
 		if (connector == null) {
-                          NioSocketConnector htclientConnector = new NioSocketConnector();
-                            htclientConnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()
-                                 , new TaskClientMessageHandlerImpl(SystemEventListenerFactory.getSystemEventListener()) ));
-                         connector = new MinaConnector( "client ht",
-                                                         htclientConnector,
-                                                         this.address,
-                                                         SystemEventListenerFactory.getSystemEventListener() );
+			NioSocketConnector htclientConnector = new NioSocketConnector();
+			htclientConnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
+			connector = new MinaConnector( "client ht",
+											htclientConnector,
+											this.address,
+											SystemEventListenerFactory.getSystemEventListener() );
 //
 //			client = new HumanTaskServiceImpl(
 //				"org.drools.process.workitem.wsht.WSHumanTaskHandler",
@@ -82,12 +81,11 @@
 //			NioSocketConnector connector = new NioSocketConnector();
 //			SocketAddress address = new InetSocketAddress(ipAddress, port);
 //			boolean connected = client.connect(connector, address);
-                        boolean connected = connector.connect();
-			if (!connected) {
-				throw new IllegalArgumentException(
-					"Could not connect task client");
-			}
-                        client = new HumanTaskServiceImpl(connector, ((StatefulKnowledgeSession)session).getId());
+            boolean connected = connector.connect();
+			if (!connected)
+				throw new IllegalArgumentException("Could not connect task client");
+			int id = ((StatefulKnowledgeSession)session).getId();
+			client = new HumanTaskServiceImpl(connector, new AtomicInteger(), String.valueOf(id), id);
 		}
 	}
 
@@ -221,77 +219,83 @@
             this.workItemId = workItemId;
         }
         
-       
-
         public void execute(long taskId) {
             throw new UnsupportedOperationException("Not supported yet.");
         }
 
         public void receive(Message message) {
-            long taskId = (Long) message.getPayload();
+        	Command command = (Command) message.getPayload();
+        	Long taskId = (Long) command.getArguments().get(0);
 
-             synchronized ( idMapping ) {
-                idMapping.put(workItemId, taskId);
-            }
-//            System.out.println("Created task " + taskId + " for work item " + workItemId);
+        	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 );
+            TaskCompletedMessageHandler eventResponseHandler = new TaskCompletedMessageHandler(workItemId, taskId);
+            client.registerForEvent( key, true, eventResponseHandler );
             key = new TaskEventKey(TaskFailedEvent.class, taskId );
-          //  client.registerForEvent( key, true, eventResponseHandler );
+            client.registerForEvent( key, true, eventResponseHandler );
             key = new TaskEventKey(TaskSkippedEvent.class, taskId );
-           // client.registerForEvent( key, true, eventResponseHandler );
+            client.registerForEvent( key, true, eventResponseHandler );
         }
 
         public void setError(RuntimeException error) {
             throw new UnsupportedOperationException("Not supported yet.");
         }
 
-
     }
     
-    private class TaskCompletedHandler  implements EventResponseHandler {
+    private class TaskCompletedMessageHandler implements EventMessageResponseHandler {
         //extends AbstractBaseResponseHandler ??
         private long workItemId;
         private long taskId;
         
-        public TaskCompletedHandler(long workItemId, long taskId) {
+        public TaskCompletedMessageHandler(long workItemId, long taskId) {
             this.workItemId = workItemId;
             this.taskId = taskId;
         }
 
         public void execute(Payload payload) {
-            TaskEvent event = ( TaskEvent ) payload.get();
-        	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) {
-            	GetTaskMessageResponseHandler getTaskResponseHandler = new GetCompletedTaskMessageResponseHandler();
-            	client.getTask(taskId, getTaskResponseHandler);   
-        	} else {
-            	session.getWorkItemManager().abortWorkItem(workItemId);
-        	}
+        	throw new UnsupportedOperationException("Not supported yet.");
         }
 
         public void setError(RuntimeException error) {
             throw new UnsupportedOperationException("Not supported yet.");
         }
+
+		public void receive(Message message) {
+			System.out.println("receive");
+			Command cmd = (Command) message.getPayload();
+			Payload payload = (Payload) cmd.getArguments().get(0);
+			TaskEvent event = ( TaskEvent ) payload.get();
+			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) {
+				System.out.println("TaskCompletedEvent!!!!");
+				GetTaskMessageResponseHandler getTaskResponseHandler = new GetCompletedTaskMessageResponseHandler();
+				client.getTask(taskId, getTaskResponseHandler);   
+			} else {
+				System.out.println("abortttttttt");
+				session.getWorkItemManager().abortWorkItem(workItemId);
+			}
+		}
     }
     
     private class GetCompletedTaskMessageResponseHandler  implements GetTaskMessageResponseHandler {
         // extends AbstractBaseResponseHandler??
-		
 
         public void setError(RuntimeException error) {
             throw new UnsupportedOperationException("Not supported yet.");
         }
 
         public void receive(Message message) {
-            Task task = (Task)message.getPayload();
+        	Command cmd = (Command) message.getPayload();
+            Task task = (Task)cmd.getArguments().get(0);
             long workItemId = task.getTaskData().getWorkItemId();
 			String userId = task.getTaskData().getActualOwner().getId();
 			Map<String, Object> results = new HashMap<String, Object>();
@@ -302,6 +306,7 @@
 					new GetResultContentMessageResponseHandler(task, results);
 				client.getContent(contentId, getContentResponseHandler);
 			} else {
+				System.out.println("Completed Work Item");
 				session.getWorkItemManager().completeWorkItem(workItemId, results);
 			}
         }
@@ -320,8 +325,6 @@
     		this.task = task;
     		this.results = results;
     	}
-    	
-		
 
         public void setError(RuntimeException error) {
             throw new UnsupportedOperationException("Not supported yet.");

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/TaskClientMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/TaskClientMessageHandlerImpl.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/TaskClientMessageHandlerImpl.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -3,6 +3,7 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.drools.SystemEventListener;
 import org.drools.eventmessaging.EventResponseHandler;
@@ -15,6 +16,8 @@
 import org.drools.vsm.GenericMessageHandler;
 import org.drools.vsm.Message;
 import org.drools.vsm.MessageResponseHandler;
+import org.drools.vsm.task.eventmessaging.EventMessageResponseHandler;
+import org.drools.vsm.task.responseHandlers.BlockingTaskSummaryMessageResponseHandler;
 
 public class TaskClientMessageHandlerImpl implements GenericMessageHandler {
 
@@ -26,6 +29,7 @@
 
     public TaskClientMessageHandlerImpl(SystemEventListener systemEventListener) {
         this.systemEventListener = systemEventListener;
+        this.responseHandlers = new ConcurrentHashMap<Integer, MessageResponseHandler>();;
     }
 
     
@@ -34,11 +38,9 @@
         systemEventListener.exception("Uncaught exception on client", cause);
     }
 
-    
     public void messageReceived(GenericIoWriter session, Message msg) throws Exception {
         Command cmd = (Command) msg.getPayload();
-
-        systemEventListener.debug("Message receieved on client : " + cmd.getName());
+        systemEventListener.debug("Message receieved redirected to the client 1111111111: " + cmd.getName());
         systemEventListener.debug("Arguments : " + Arrays.toString(cmd.getArguments().toArray()));
 
         switch (cmd.getName()) {
@@ -49,6 +51,7 @@
                         responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
                     } else {
                         responseHandler.setIsDone(true);
+                        System.out.println("IS DONDEEEE");
                     }
                 }
                 break;
@@ -66,7 +69,8 @@
                 break;
             }
             case AddTaskResponse: {
-                AddTaskMessageResponseHandler responseHandler = (AddTaskMessageResponseHandler) responseHandlers.remove(cmd.getId());
+                AddTaskMessageResponseHandler responseHandler = (AddTaskMessageResponseHandler) responseHandlers.remove(msg.getResponseId());
+                System.out.println("response id searched: " + msg.getResponseId());
                 if (responseHandler != null) {
                     if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
                         responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
@@ -150,7 +154,8 @@
                 break;
             }
             case QueryTaskSummaryResponse: {
-                TaskSummaryMessageResponseHandler responseHandler = (TaskSummaryMessageResponseHandler) responseHandlers.remove(cmd.getId());
+            	BlockingTaskSummaryMessageResponseHandler responseHandler = (BlockingTaskSummaryMessageResponseHandler) responseHandlers.remove(msg.getResponseId());
+                System.out.println("responseHandler: " + responseHandler + " id searched: " + msg.getResponseId());
                 if (responseHandler != null) {
                     if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
                         responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
@@ -162,12 +167,16 @@
                 break;
             }
             case EventTriggerResponse: {
-                EventResponseHandler responseHandler = (EventResponseHandler) responseHandlers.remove(cmd.getId()); //@TODO view messaging stuff
+                EventMessageResponseHandler responseHandler = (EventMessageResponseHandler) responseHandlers.remove(cmd.getId()); //@TODO view messaging stuff
+                System.out.println("EVENT TRIGGER RESPONSE " + responseHandler + " size " + responseHandlers.size() + " id " + cmd.getId());
                 if (responseHandler != null) {
+                	System.out.println("responseHandler---: " + responseHandler);
                     if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
                         responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
+                        System.out.println("EEerror");
                     } else {
                         Payload payload = (Payload) cmd.getArguments().get(0);
+                        System.out.println("EExecute ");
                         responseHandler.execute(payload);
                     }
                 }
@@ -175,11 +184,7 @@
             }
         }
     }
-//    public void addMessageResponseHandler(int id, MessageResponseHandler messageResponseHandler) {
-//        responseHandlers.put( id, messageResponseHandler );
-//    }
-
-
+    
     public static interface GetTaskMessageResponseHandler
             extends
             MessageResponseHandler {
@@ -240,4 +245,5 @@
             MessageResponseHandler {
         public void execute(List<TaskSummary> results);
     }
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/TaskServerMessageHandlerImpl.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/TaskServerMessageHandlerImpl.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/TaskServerMessageHandlerImpl.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -1,6 +1,12 @@
 package org.drools.vsm.task;
 
-import org.apache.mina.core.service.IoHandlerAdapter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.mina.core.session.IdleStatus;
 import org.apache.mina.core.session.IoSession;
 import org.drools.SystemEventListener;
@@ -10,18 +16,15 @@
 import org.drools.task.Content;
 import org.drools.task.Task;
 import org.drools.task.query.TaskSummary;
-import org.drools.vsm.GenericIoWriter;
-import org.drools.vsm.Message;
-
-import java.util.*;
 import org.drools.task.service.Command;
 import org.drools.task.service.CommandName;
 import org.drools.task.service.ContentData;
-import org.drools.task.service.MinaEventTransport;
 import org.drools.task.service.Operation;
 import org.drools.task.service.TaskService;
 import org.drools.task.service.TaskServiceSession;
+import org.drools.vsm.GenericIoWriter;
 import org.drools.vsm.GenericMessageHandler;
+import org.drools.vsm.Message;
 
 public class TaskServerMessageHandlerImpl implements GenericMessageHandler {
     private final TaskService service;
@@ -49,9 +52,8 @@
         TaskServiceSession taskSession = service.createSession();
         CommandName response = null;
         try {
-            systemEventListener.debug("Message receieved on server : " + cmd.getName());
+            systemEventListener.debug("Message received on server : " + cmd.getName());
             systemEventListener.debug("Arguments : " + Arrays.toString(cmd.getArguments().toArray()));
-
             switch (cmd.getName()) {
                 case OperationRequest: {
                     response = CommandName.OperationResponse;
@@ -393,8 +395,8 @@
                     String uuid = (String) cmd.getArguments().get(2);
                     clients.put(uuid,
                             session);
-                    GenericEventTransport transport = new GenericEventTransport(uuid, //this is wrong
-                            cmd.getId(), //this is wrong
+                    GenericEventTransport transport = new GenericEventTransport(String.valueOf(msg.getSessionId()), //this is wrong
+                            msg.getResponseId(), //this is wrong
                             clients,
                             remove);
                     service.getEventKeys().register(key,

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddAttachmentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddAttachmentMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddAttachmentMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,17 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.task.service.Command;
+import org.drools.task.service.responsehandlers.BlockingAddAttachmentResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.AddAttachmentMessageResponseHandler;
+
+public class BlockingAddAttachmentMessageResponseHandler extends BlockingAddAttachmentResponseHandler implements AddAttachmentMessageResponseHandler {
+
+	public void receive(Message message) {
+		Command cmd = (Command) message.getPayload();
+		Long attachmentId = (Long) cmd.getArguments().get(0);
+		Long contentId = (Long) cmd.getArguments().get(1);
+		execute(attachmentId, contentId);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddAttachmentMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddCommentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddCommentMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddCommentMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,16 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.task.service.Command;
+import org.drools.task.service.responsehandlers.BlockingAddCommentResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.AddCommentMessageResponseHandler;
+
+public class BlockingAddCommentMessageResponseHandler extends BlockingAddCommentResponseHandler implements AddCommentMessageResponseHandler {
+
+	public void receive(Message message) {
+		Command cmd = (Command) message.getPayload();
+		Long commentId = (Long) cmd.getArguments().get(0);
+		execute(commentId);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddCommentMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddTaskMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddTaskMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddTaskMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,16 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.task.service.Command;
+import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.AddTaskMessageResponseHandler;
+
+public class BlockingAddTaskMessageResponseHandler extends BlockingAddTaskResponseHandler implements AddTaskMessageResponseHandler {
+
+	public void receive(Message message) {
+		Command cmd = (Command) message.getPayload();
+		Long taskId = (Long) cmd.getArguments().get(0);
+		execute(taskId);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingAddTaskMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteAttachmentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteAttachmentMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteAttachmentMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,13 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.task.service.responsehandlers.BlockingDeleteAttachmentResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.DeleteAttachmentMessageResponseHandler;
+
+public class BlockingDeleteAttachmentMessageResponseHandler extends BlockingDeleteAttachmentResponseHandler implements DeleteAttachmentMessageResponseHandler {
+
+	public void receive(Message message) {
+		setDone(true);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteAttachmentMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteCommentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteCommentMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteCommentMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,13 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.task.service.responsehandlers.BlockingDeleteCommentResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.DeleteCommentMessageResponseHandler;
+
+public class BlockingDeleteCommentMessageResponseHandler extends BlockingDeleteCommentResponseHandler implements DeleteCommentMessageResponseHandler {
+
+	public void receive(Message message) {
+		setIsDone(true);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingDeleteCommentMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingEventMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingEventMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingEventMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,17 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.eventmessaging.Payload;
+import org.drools.task.service.Command;
+import org.drools.task.service.responsehandlers.BlockingEventResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.eventmessaging.EventMessageResponseHandler;
+
+public class BlockingEventMessageResponseHandler extends BlockingEventResponseHandler implements EventMessageResponseHandler {
+
+	public void receive(Message message) {
+		Command cmd = (Command) message.getPayload();
+		Payload payload = (Payload) cmd.getArguments().get(0);
+		execute(payload);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingEventMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetContentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetContentMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetContentMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,17 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.task.Content;
+import org.drools.task.service.Command;
+import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.GetContentMessageResponseHandler;
+
+public class BlockingGetContentMessageResponseHandler extends BlockingGetContentResponseHandler implements GetContentMessageResponseHandler {
+
+	public void receive(Message message) {
+		Command cmd = (Command) message.getPayload();
+		Content content = (Content) cmd.getArguments().get(0);
+		execute(content);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetContentMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetTaskMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetTaskMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetTaskMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,17 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.task.Task;
+import org.drools.task.service.Command;
+import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.GetTaskMessageResponseHandler;
+
+public class BlockingGetTaskMessageResponseHandler extends BlockingGetTaskResponseHandler implements GetTaskMessageResponseHandler {
+
+	public void receive(Message message) {
+		Command cmd = (Command) message.getPayload();
+		Task task = (Task) cmd.getArguments().get(0);
+		execute(task);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingGetTaskMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingSetContentMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingSetContentMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingSetContentMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,16 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.task.service.Command;
+import org.drools.task.service.responsehandlers.BlockingSetContentResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.SetDocumentMessageResponseHandler;
+
+public class BlockingSetContentMessageResponseHandler extends BlockingSetContentResponseHandler implements SetDocumentMessageResponseHandler {
+
+	public void receive(Message message) {
+		Command cmd = (Command) message.getPayload();
+		long contentId = (Long) cmd.getArguments().get(0);
+		execute(contentId);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingSetContentMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskOperationMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskOperationMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskOperationMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,13 @@
+package org.drools.vsm.task.responseHandlers;
+
+import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.TaskOperationMessageResponseHandler;
+
+public class BlockingTaskOperationMessageResponseHandler extends BlockingTaskOperationResponseHandler implements TaskOperationMessageResponseHandler {
+
+	public void receive(Message message) {
+		setDone(true);
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskOperationMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskSummaryMessageResponseHandler.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskSummaryMessageResponseHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskSummaryMessageResponseHandler.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,20 @@
+package org.drools.vsm.task.responseHandlers;
+
+import java.util.List;
+
+import org.drools.task.query.TaskSummary;
+import org.drools.task.service.Command;
+import org.drools.task.service.responsehandlers.BlockingTaskSummaryResponseHandler;
+import org.drools.vsm.Message;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.TaskSummaryMessageResponseHandler;
+
+public class BlockingTaskSummaryMessageResponseHandler extends BlockingTaskSummaryResponseHandler implements TaskSummaryMessageResponseHandler {
+
+	public void receive(Message message) {
+		Command cmd = (Command) message.getPayload();
+		List<TaskSummary> results = (List<TaskSummary>) cmd.getArguments().get(0);
+		execute(results);
+	}
+
+}
+


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/responseHandlers/BlockingTaskSummaryMessageResponseHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerHumanTaskMinaRemoteTest.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerHumanTaskMinaRemoteTest.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerHumanTaskMinaRemoteTest.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -1,25 +1,35 @@
 package org.drools.vsm;
 
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
 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.EntityManagerFactory;
 import javax.persistence.Persistence;
 
+import org.apache.commons.collections.map.HashedMap;
 import org.apache.mina.transport.socket.SocketAcceptor;
 import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
 import org.drools.SystemEventListenerFactory;
+import org.drools.task.Group;
+import org.drools.task.User;
 import org.drools.task.service.TaskService;
 import org.drools.task.service.TaskServiceSession;
 import org.drools.vsm.mina.MinaAcceptor;
 import org.drools.vsm.mina.MinaConnector;
 import org.drools.vsm.mina.MinaIoHandler;
 import org.drools.vsm.remote.ServiceManagerRemoteClient;
-import org.drools.vsm.task.TaskClientMessageHandlerImpl;
 import org.drools.vsm.task.TaskServerMessageHandlerImpl;
+import org.mvel2.MVEL;
+import org.mvel2.ParserContext;
+import org.mvel2.compiler.ExpressionCompiler;
 
 public class ServiceManagerHumanTaskMinaRemoteTest extends ServiceManagerTestBase {
 
@@ -28,6 +38,8 @@
     private EntityManagerFactory emf;
     private TaskService taskService;
     protected TaskServiceSession taskSession;
+    protected Map<String, User> users;
+    protected Map<String, Group> groups;
 
     protected void setUp() throws Exception {
         // Configure persistence to be used inside the WSHT Service
@@ -35,9 +47,29 @@
         emf = Persistence.createEntityManagerFactory("org.drools.task");
         taskService = new TaskService(emf, SystemEventListenerFactory.getSystemEventListener());
         taskSession = taskService.createSession();
-        // MockUserInfo userInfo = new MockUserInfo();
-        // taskService.setUserinfo(userInfo);
+        
+        Map<String, Object> vars = new HashedMap();
+        Reader reader = null;
 
+        try {
+            reader = new InputStreamReader(ServiceManagerTestBase.class.getResourceAsStream("/rules/LoadUsers.mvel"));
+            users = (Map<String, User>) eval(reader, vars);
+            for (User user : users.values())
+                taskSession.addUser(user);
+        } finally {
+            if (reader != null) reader.close();
+            reader = null;
+        }
+
+        try {
+            reader = new InputStreamReader(ServiceManagerTestBase.class.getResourceAsStream("/rules/LoadGroups.mvel"));
+            groups = (Map<String, Group>) eval(reader,  vars);
+            for (Group group : groups.values())
+                taskSession.addGroup(group);
+        } finally {
+            if (reader != null) reader.close();
+        }
+
         // END
 
         // Execution Server
@@ -72,8 +104,7 @@
         // setup the ht client
         //@TODO: using the systemEventListener in two MinaIoHandler can cause problems??
         NioSocketConnector htclientConnector = new NioSocketConnector();
-        htclientConnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener() 
-                , new TaskClientMessageHandlerImpl(SystemEventListenerFactory.getSystemEventListener()) ));
+        htclientConnector.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener()));
         GenericConnector htMinaClient = new MinaConnector( "client ht",
                                                          htclientConnector,
                                                          htAddress,
@@ -97,8 +128,6 @@
 
         ((ServiceManagerRemoteClient) client).connect();
 
-        
-
     }
 
     protected void tearDown() throws Exception {
@@ -106,6 +135,34 @@
         ((ServiceManagerRemoteClient) client).disconnect();
         this.server.stop();
         this.humanTaskServer.stop();
+    }
+    
+    public Object eval(Reader reader, Map<String, Object> vars) {
+    	try {
+    		return eval(toString(reader), vars);
+    	} catch (IOException e) {
+    		throw new RuntimeException("Exception Thrown", e);
+    	}
+    }
+    
+    public Object eval(String str, Map<String, Object> vars) {
+        ExpressionCompiler compiler = new ExpressionCompiler(str.trim());
 
+        ParserContext context = new ParserContext();
+        context.addPackageImport("org.drools.task");
+        context.addPackageImport("org.drools.task.service");
+        context.addPackageImport("org.drools.task.query");
+        context.addPackageImport("java.util");
+
+        vars.put("now", new Date());
+        return MVEL.executeExpression(compiler.compile(context), vars);
     }
+    
+    public String toString(Reader reader) throws IOException {
+        StringBuilder sb = new StringBuilder(1024);
+        int charValue;
+        while ((charValue = reader.read()) != -1)
+            sb.append((char) charValue);
+        return sb.toString();
+    }
 }

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTestBase.java
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTestBase.java	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/java/org/drools/vsm/ServiceManagerTestBase.java	2009-12-17 18:39:23 UTC (rev 30743)
@@ -1,7 +1,5 @@
 package org.drools.vsm;
 
-import java.util.List;
-
 import junit.framework.TestCase;
 
 import org.drools.KnowledgeBase;
@@ -12,18 +10,22 @@
 import org.drools.command.runtime.rule.FireAllRulesCommand;
 import org.drools.io.ResourceFactory;
 import org.drools.io.impl.ClassPathResource;
-import org.drools.process.workitem.wsht.CommandBasedWSHumanTaskHandler;
 import org.drools.runtime.ExecutionResults;
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.runtime.process.ProcessInstance;
 import org.drools.task.query.TaskSummary;
+import org.drools.task.service.ContentData;
 import org.drools.task.service.HumanTaskServiceImpl;
 import org.drools.vsm.remote.StatefulKnowledgeSessionRemoteClient;
+import org.drools.vsm.task.responseHandlers.BlockingTaskOperationMessageResponseHandler;
+import org.drools.vsm.task.responseHandlers.BlockingTaskSummaryMessageResponseHandler;
 
 
 public class ServiceManagerTestBase extends TestCase {
 
     protected ServiceManager client;
+	private ProcessInstance processInstance;
+	private HumanTaskService htClient;
 
     public void testFireAllRules() throws Exception {
         String str = "";
@@ -184,34 +186,72 @@
         //        assertEquals( 2, (int ) ( Integer) results.getValue( "fired" ) );
     }
 
-     public void testHumanTasks() throws Exception {
-        
+    public void testHumanTasks() throws Exception {
 
-        KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
-        KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
-        kbuilder.add( new ClassPathResource("rules/humanTasks.rf"),
-                      ResourceType.DRF );
+    	KnowledgeBuilderProvider kbuilderFactory = this.client.getKnowledgeBuilderFactory();
+    	KnowledgeBuilder kbuilder = kbuilderFactory.newKnowledgeBuilder();
+    	kbuilder.add( new ClassPathResource("rules/humanTasks.rf"),
+    			ResourceType.DRF );
 
-        if ( kbuilder.hasErrors() ) {
-            System.out.println( "Errors: " + kbuilder.getErrors() );
-        }
+    	if ( kbuilder.hasErrors() ) {
+    		System.out.println( "Errors: " + kbuilder.getErrors() );
+    	}
 
-        KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
-        KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
+    	KnowledgeBaseProvider kbaseFactory = this.client.getKnowledgeBaseFactory();
+    	KnowledgeBase kbase = kbaseFactory.newKnowledgeBase();
 
-        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+    	kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
 
-        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
-        ((StatefulKnowledgeSessionRemoteClient)ksession).registerWorkItemHandler("Human Task", "org.drools.vsm.task.CommandBasedVSMWSHumanTaskHandler");
-                //new CommandBasedWSHumanTaskHandler(ksession));
-        ProcessInstance processInstance = ksession.startProcess("org.drools.test.humanTasks");
-        HumanTaskServiceProvider humanTaskServiceFactory = this.client.getHumanTaskService();
-        HumanTaskService htClient = humanTaskServiceFactory.newHumanTaskServiceClient();
+    	StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+    	
+    	((StatefulKnowledgeSessionRemoteClient)ksession).registerWorkItemHandler("Human Task", "org.drools.vsm.task.CommandBasedVSMWSHumanTaskHandler");
+    	processInstance = ksession.startProcess("org.drools.test.humanTasks");
+    	HumanTaskServiceProvider humanTaskServiceFactory = this.client.getHumanTaskService();
+    	htClient = humanTaskServiceFactory.newHumanTaskServiceClient();
+    	
+    	Thread.sleep(1000);
 
-        int fired = ksession.fireAllRules();
-        //assertEquals( 2, fired );
+    	int fired = ksession.fireAllRules();
+    	//assertEquals( 2, fired );
 
-	// 	List<TaskSummary> tasks = ((HumanTaskServiceImpl)htClient).getTasksAssignedAsPotentialOwner(userId, language, responseHandler);
+    	System.out.println("========================FIRST=TASK========================================");
+    	assertEquals(true , executeNextTask("lucaz"));
+    	System.out.println("FIRST TASK DONE - SLEEPING");
+    	Thread.sleep(8000);
+    	System.out.println("=======================SECOND=TASK========================================");
+    	assertEquals(true , executeNextTask("lucaz"));
+    	System.out.println("==========================================================================");
+    	Thread.sleep(8000);
+    	assertEquals(false, executeNextTask("lucaz"));
+    	
+    }
 
+    private boolean executeNextTask(String user) {
+
+    	BlockingTaskSummaryMessageResponseHandler responseHandler = new BlockingTaskSummaryMessageResponseHandler();
+    	((HumanTaskServiceImpl)htClient).getTasksAssignedAsPotentialOwner(user, "en-UK", responseHandler);
+    	responseHandler.waitTillDone(5000);
+    	System.out.println("TASK COUNT: " + responseHandler.getResults().size());
+
+    	if (responseHandler.getResults().size()==0)
+    		return false;
+
+    	TaskSummary task = responseHandler.getResults().get(0);
+    	ContentData data = new ContentData(); 
+    	data.setContent("next step".getBytes());
+
+    	BlockingTaskOperationMessageResponseHandler startResponseHandler = new BlockingTaskOperationMessageResponseHandler();
+    	((HumanTaskServiceImpl)htClient).start(task.getId(), user, startResponseHandler );
+    	startResponseHandler.waitTillDone(5000);
+    	
+    	System.out.println("Task started");
+    	
+    	BlockingTaskOperationMessageResponseHandler completeResponseHandler = new BlockingTaskOperationMessageResponseHandler();
+    	((HumanTaskServiceImpl)htClient).complete(task.getId(), user, null , completeResponseHandler);
+    	completeResponseHandler.waitTillDone(5000);
+    	System.out.println("Task completed");
+    	
+    	return true;
     }
+
 }

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadGroups.mvel
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadGroups.mvel	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadGroups.mvel	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,5 @@
+groups = [ 'simple' : new Group( "Simple Group" ),
+           'empty' : new Group( "Empty Group" )
+         ];
+return groups;
+        
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadGroups.mvel
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadUsers.mvel
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadUsers.mvel	                        (rev 0)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadUsers.mvel	2009-12-17 18:39:23 UTC (rev 30743)
@@ -0,0 +1,7 @@
+users = [ 'lucaz'  : new User('lucaz'),  
+          'salaboy'  : new User( 'salaboy'),
+          'admin'      : new User('Administrator')
+        ];       
+
+return users;
+        
\ No newline at end of file


Property changes on: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/LoadUsers.mvel
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/humanTasks.rf
===================================================================
--- labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/humanTasks.rf	2009-12-17 11:13:46 UTC (rev 30742)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/test/resources/rules/humanTasks.rf	2009-12-17 18:39:23 UTC (rev 30743)
@@ -12,21 +12,27 @@
       <work name="Human Task" >
         <parameter name="ActorId" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>lucaz</value>
         </parameter>
         <parameter name="Comment" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>en-UK</value>
         </parameter>
         <parameter name="Content" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>en-UK</value>
         </parameter>
         <parameter name="Priority" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value></value>
         </parameter>
         <parameter name="Skippable" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>false</value>
         </parameter>
         <parameter name="TaskName" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>User Task 1</value>
         </parameter>
       </work>
     </humanTask>
@@ -36,21 +42,27 @@
       <work name="Human Task" >
         <parameter name="ActorId" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>lucaz</value>
         </parameter>
         <parameter name="Comment" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>en-UK</value>
         </parameter>
         <parameter name="Content" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>en-UK</value>
         </parameter>
         <parameter name="Priority" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value></value>
         </parameter>
         <parameter name="Skippable" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>false</value>
         </parameter>
         <parameter name="TaskName" >
           <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+          <value>User Task 2</value>
         </parameter>
       </work>
     </humanTask>



More information about the jboss-svn-commits mailing list