[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