[jboss-svn-commits] JBL Code SVN: r30625 - in labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools: vsm/remote and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Dec 14 10:40:32 EST 2009
Author: salaboy21
Date: 2009-12-14 10:40:31 -0500 (Mon, 14 Dec 2009)
New Revision: 30625
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/vsm/remote/HumanTaskServiceRemoteProviderImpl.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
Log:
test working but some exceptions are thrown because the Task Service doesn't have users and admins
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-14 14:43:13 UTC (rev 30624)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/task/service/HumanTaskServiceImpl.java 2009-12-14 15:40:31 UTC (rev 30625)
@@ -37,12 +37,16 @@
private final AtomicInteger counter;
private int sessionId;
- public HumanTaskServiceImpl(GenericConnector client, AtomicInteger counter, int sessionId) {
+ public HumanTaskServiceImpl(GenericConnector client, int sessionId) {
this.client = client;
- this.counter = counter;
+ this.counter = new AtomicInteger();
this.sessionId = sessionId;
}
+
+
+
+
public void addTask(Task task, ContentData content, AddTaskMessageResponseHandler responseHandler) {
List<Object> args = new ArrayList<Object>( 2 );
args.add( task );
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-14 14:43:13 UTC (rev 30624)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/HumanTaskServiceRemoteProviderImpl.java 2009-12-14 15:40:31 UTC (rev 30625)
@@ -18,7 +18,7 @@
}
public HumanTaskService newHumanTaskServiceClient() {
- return new HumanTaskServiceImpl( serviceManager.client, serviceManager.counter, serviceManager.getSessionId());
+ return new HumanTaskServiceImpl( serviceManager.client, serviceManager.getSessionId());
}
}
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-14 14:43:13 UTC (rev 30624)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/remote/ServiceManagerRemoteClient.java 2009-12-14 15:40:31 UTC (rev 30625)
@@ -81,19 +81,19 @@
}
}
//Connecting with services
- for(GenericConnector connector : services){
- boolean serviceConnected = connector.connect();
- if ( serviceConnected ) {
-
+// for(GenericConnector connector : services){
+// boolean serviceConnected = connector.connect();
+// if ( serviceConnected ) {
+//
+//
+// System.out.println("Service Connected");
+//
+//
+//
+// }
+// }
- System.out.println("Service Connected");
-
-
- }
- }
-
-
return connected;
}
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-14 14:43:13 UTC (rev 30624)
+++ labs/jbossrules/branches/human-task-vsm_lucaz-salaboy/drools-vsm/src/main/java/org/drools/vsm/task/CommandBasedVSMWSHumanTaskHandler.java 2009-12-14 15:40:31 UTC (rev 30625)
@@ -18,6 +18,7 @@
import org.drools.eventmessaging.EventResponseHandler;
import org.drools.eventmessaging.Payload;
import org.drools.runtime.KnowledgeRuntime;
+import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.process.WorkItem;
import org.drools.runtime.process.WorkItemHandler;
import org.drools.runtime.process.WorkItemManager;
@@ -38,41 +39,55 @@
import org.drools.task.event.TaskFailedEvent;
import org.drools.task.event.TaskSkippedEvent;
import org.drools.task.service.ContentData;
-import org.drools.task.service.MinaTaskClient;
-import org.drools.task.service.TaskClientHandler;
-import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
-import org.drools.task.service.TaskClientHandler.GetContentResponseHandler;
-import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
-import org.drools.task.service.responsehandlers.AbstractBaseResponseHandler;
+import org.drools.task.service.HumanTaskServiceImpl;
+import org.drools.vsm.GenericConnector;
+import org.drools.vsm.Message;
+import org.drools.vsm.mina.MinaConnector;
+import org.drools.vsm.mina.MinaIoHandler;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.AddTaskMessageResponseHandler;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.GetContentMessageResponseHandler;
+import org.drools.vsm.task.TaskClientMessageHandlerImpl.GetTaskMessageResponseHandler;
public class CommandBasedVSMWSHumanTaskHandler implements WorkItemHandler {
private String ipAddress = "127.0.0.1";
private int port = 9124;
- private MinaTaskClient client;
+ private SocketAddress address;
+ private GenericConnector connector;
+ 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);
}
public void connect() {
- if (client == null) {
- client = new MinaTaskClient(
- "org.drools.process.workitem.wsht.WSHumanTaskHandler",
- new TaskClientHandler(SystemEventListenerFactory.getSystemEventListener()));
- NioSocketConnector connector = new NioSocketConnector();
- SocketAddress address = new InetSocketAddress(ipAddress, port);
- boolean connected = client.connect(connector, address);
+ 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() );
+//
+// client = new HumanTaskServiceImpl(
+// "org.drools.process.workitem.wsht.WSHumanTaskHandler",
+// new TaskClientHandler(SystemEventListenerFactory.getSystemEventListener()));
+// 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());
}
}
@@ -177,14 +192,14 @@
e.printStackTrace();
}
}
- TaskWorkItemAddTaskResponseHandler taskResponseHandler =
- new TaskWorkItemAddTaskResponseHandler(this.client, workItem.getId());
+ TaskWorkItemAddTaskMessageResponseHandler taskResponseHandler =
+ new TaskWorkItemAddTaskMessageResponseHandler(this.client, workItem.getId());
client.addTask(task, content, taskResponseHandler);
}
public void dispose() {
- if (client != null) {
- client.disconnect();
+ if (connector != null) {
+ connector.disconnect();
}
}
@@ -198,32 +213,47 @@
}
}
- public class TaskWorkItemAddTaskResponseHandler extends AbstractBaseResponseHandler implements AddTaskResponseHandler {
-
+ public class TaskWorkItemAddTaskMessageResponseHandler implements AddTaskMessageResponseHandler {
+ //extends AbstractBaseResponseHandler ??
private long workItemId;
- public TaskWorkItemAddTaskResponseHandler(MinaTaskClient client, long workItemId) {
+ public TaskWorkItemAddTaskMessageResponseHandler(HumanTaskServiceImpl client, long workItemId) {
this.workItemId = workItemId;
}
+
+
public void execute(long taskId) {
- synchronized ( idMapping ) {
- idMapping.put(workItemId, taskId);
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void receive(Message message) {
+ long taskId = (Long) message.getPayload();
+
+ synchronized ( idMapping ) {
+ idMapping.put(workItemId, taskId);
}
// System.out.println("Created task " + taskId + " for work item " + workItemId);
-
- EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId );
+
+ EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId );
TaskCompletedHandler eventResponseHandler =
- new TaskCompletedHandler(workItemId, taskId);
- client.registerForEvent( key, true, eventResponseHandler );
- key = new TaskEventKey(TaskFailedEvent.class, taskId );
- client.registerForEvent( key, true, eventResponseHandler );
- key = new TaskEventKey(TaskSkippedEvent.class, taskId );
- client.registerForEvent( key, true, eventResponseHandler );
+ new TaskCompletedHandler(workItemId, taskId);
+ // client.registerForEvent( key, true, eventResponseHandler );
+ key = new TaskEventKey(TaskFailedEvent.class, taskId );
+ // client.registerForEvent( key, true, eventResponseHandler );
+ key = new TaskEventKey(TaskSkippedEvent.class, taskId );
+ // client.registerForEvent( key, true, eventResponseHandler );
}
+
+ public void setError(RuntimeException error) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+
}
- private class TaskCompletedHandler extends AbstractBaseResponseHandler implements EventResponseHandler {
+ private class TaskCompletedHandler implements EventResponseHandler {
+ //extends AbstractBaseResponseHandler ??
private long workItemId;
private long taskId;
@@ -240,45 +270,66 @@
return;
}
if (event instanceof TaskCompletedEvent) {
- GetTaskResponseHandler getTaskResponseHandler = new GetCompletedTaskResponseHandler();
+ GetTaskMessageResponseHandler getTaskResponseHandler = new GetCompletedTaskMessageResponseHandler();
client.getTask(taskId, getTaskResponseHandler);
} else {
session.getWorkItemManager().abortWorkItem(workItemId);
}
}
+
+ public void setError(RuntimeException error) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
}
- private class GetCompletedTaskResponseHandler extends AbstractBaseResponseHandler implements GetTaskResponseHandler {
+ private class GetCompletedTaskMessageResponseHandler implements GetTaskMessageResponseHandler {
+ // extends AbstractBaseResponseHandler??
+
- public void execute(Task task) {
- long workItemId = task.getTaskData().getWorkItemId();
+ public void setError(RuntimeException error) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void receive(Message message) {
+ Task task = (Task)message.getPayload();
+ long workItemId = task.getTaskData().getWorkItemId();
String userId = task.getTaskData().getActualOwner().getId();
Map<String, Object> results = new HashMap<String, Object>();
results.put("ActorId", userId);
long contentId = task.getTaskData().getOutputContentId();
if (contentId != -1) {
- GetContentResponseHandler getContentResponseHandler =
- new GetResultContentResponseHandler(task, results);
+ GetResultContentMessageResponseHandler getContentResponseHandler =
+ new GetResultContentMessageResponseHandler(task, results);
client.getContent(contentId, getContentResponseHandler);
} else {
session.getWorkItemManager().completeWorkItem(workItemId, results);
}
- }
+ }
+
+ public void execute(Task task) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
}
- private class GetResultContentResponseHandler extends AbstractBaseResponseHandler implements GetContentResponseHandler {
-
+ private class GetResultContentMessageResponseHandler implements GetContentMessageResponseHandler {
+ // extends AbstractBaseResponseHandler??
private Task task;
private Map<String, Object> results;
- public GetResultContentResponseHandler(Task task, Map<String, Object> results) {
+ public GetResultContentMessageResponseHandler(Task task, Map<String, Object> results) {
this.task = task;
this.results = results;
}
- @SuppressWarnings("unchecked")
- public void execute(Content content) {
- ByteArrayInputStream bis = new ByteArrayInputStream(content.getContent());
+
+
+ public void setError(RuntimeException error) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public void receive(Message message) {
+ Content content = (Content)message.getPayload();
+ ByteArrayInputStream bis = new ByteArrayInputStream(content.getContent());
ObjectInputStream in;
try {
in = new ObjectInputStream(bis);
@@ -299,6 +350,10 @@
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
- }
+ }
+
+ public void execute(Content content) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
}
}
More information about the jboss-svn-commits
mailing list