[jboss-svn-commits] JBL Code SVN: r23811 - in labs/jbossrules/trunk: drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/flow/ruleflow/core and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Nov 10 19:57:07 EST 2008
Author: KrisVerlaenen
Date: 2008-11-10 19:57:07 -0500 (Mon, 10 Nov 2008)
New Revision: 23811
Added:
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/flow/common/editor/editpart/work/HumanTaskCustomEditor.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/ContentData.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/FaultData.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceRequest.java
Removed:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskOperation.java
Modified:
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/flow/ruleflow/core/HumanTaskNodeWrapper.java
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-task/src/main/java/org/drools/eclipse/task/views/TaskView.java
labs/jbossrules/trunk/drools-process/drools-process-task/.classpath
labs/jbossrules/trunk/drools-process/drools-process-task/.project
labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/client/MinaKnowledgeBaseClient.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/WorkItemNotification.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/DefaultEscalatedDeadlineHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/QueryTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/MockEventMessagingTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java
Log:
JBRULES-1834: Data for Tasks
- added data to task + modified life cycle methods
Added: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/flow/common/editor/editpart/work/HumanTaskCustomEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/flow/common/editor/editpart/work/HumanTaskCustomEditor.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/flow/common/editor/editpart/work/HumanTaskCustomEditor.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -0,0 +1,144 @@
+package org.drools.eclipse.flow.common.editor.editpart.work;
+
+import org.drools.eclipse.flow.common.view.property.EditBeanDialog;
+import org.drools.process.core.Work;
+import org.drools.process.core.WorkDefinition;
+import org.drools.process.core.WorkEditor;
+import org.drools.process.core.impl.WorkImpl;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * Custom Work editor for human tasks.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
+ */
+public class HumanTaskCustomEditor extends EditBeanDialog<Work> implements WorkEditor {
+
+ private Text nameText;
+ private Text actorText;
+ private Text commentText;
+ private Text priorityText;
+ private Button skippableButton;
+ private Text contentText;
+
+ public HumanTaskCustomEditor(Shell parentShell) {
+ super(parentShell, "Human Task Editor");
+ setBlockOnOpen(true);
+ }
+
+ protected Point getInitialSize() {
+ return new Point(400, 400);
+ }
+
+ protected Control createDialogArea(Composite parent) {
+ Composite composite = (Composite) super.createDialogArea(parent);
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 2;
+ composite.setLayout(gridLayout);
+
+ Work work = (Work) getValue();
+
+ Label nameLabel = new Label(composite, SWT.NONE);
+ nameLabel.setText("Name: ");
+ nameText = new Text(composite, SWT.NONE);
+ GridData gridData = new GridData();
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.horizontalAlignment = GridData.FILL;
+ nameText.setLayoutData(gridData);
+ String name = (String) work.getParameter("TaskName");
+ nameText.setText(name == null ? "" : name);
+
+ Label label = new Label(composite, SWT.NONE);
+ label.setText("Actor(s): ");
+ actorText = new Text(composite, SWT.NONE);
+ gridData = new GridData();
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.horizontalAlignment = GridData.FILL;
+ actorText.setLayoutData(gridData);
+ String value = (String) work.getParameter("ActorId");
+ actorText.setText(value == null ? "" : value);
+
+ label = new Label(composite, SWT.NONE);
+ label.setText("Comment: ");
+ commentText = new Text(composite, SWT.MULTI);
+ gridData = new GridData();
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.grabExcessVerticalSpace = true;
+ gridData.horizontalAlignment = GridData.FILL;
+ gridData.verticalAlignment = GridData.FILL;
+ commentText.setLayoutData(gridData);
+ value = (String) work.getParameter("Comment");
+ commentText.setText(value == null ? "" : value.toString());
+
+ label = new Label(composite, SWT.NONE);
+ label.setText("Priority: ");
+ priorityText = new Text(composite, SWT.NONE);
+ gridData = new GridData();
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.horizontalAlignment = GridData.FILL;
+ priorityText.setLayoutData(gridData);
+ value = (String) work.getParameter("Priority");
+ priorityText.setText(value == null ? "" : value);
+
+ skippableButton = new Button(composite, SWT.CHECK | SWT.LEFT);
+ skippableButton.setText("Skippable");
+ value = (String) work.getParameter("Skippable");
+ skippableButton.setSelection("true".equals(value));
+ gridData = new GridData();
+ gridData.horizontalSpan = 2;
+ skippableButton.setLayoutData(gridData);
+
+ label = new Label(composite, SWT.NONE);
+ label.setText("Content: ");
+ contentText = new Text(composite, SWT.MULTI);
+ gridData = new GridData();
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.grabExcessVerticalSpace = true;
+ gridData.horizontalAlignment = GridData.FILL;
+ gridData.verticalAlignment = GridData.FILL;
+ contentText.setLayoutData(gridData);
+ value = (String) work.getParameter("Content");
+ contentText.setText(value == null ? "" : value.toString());
+
+ return composite;
+ }
+
+ protected Work updateValue(Work value) {
+ Work work = new WorkImpl();
+ work.setName("Human Task");
+ work.setParameter("TaskName", nameText.getText());
+ work.setParameter("ActorId", actorText.getText());
+ work.setParameter("Comment", commentText.getText());
+ work.setParameter("Priority", priorityText.getText());
+ work.setParameter("Skippable", skippableButton.getSelection() + "");
+ work.setParameter("Content", contentText.getText());
+ work.setParameterDefinitions(((Work) value).getParameterDefinitions());
+ return work;
+ }
+
+ public Work getWork() {
+ return (Work) getValue();
+ }
+
+ public void setWork(Work work) {
+ setValue(work);
+ }
+
+ public void setWorkDefinition(WorkDefinition workDefinition) {
+ }
+
+ public boolean show() {
+ int result = open();
+ return result == OK;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/flow/ruleflow/core/HumanTaskNodeWrapper.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/flow/ruleflow/core/HumanTaskNodeWrapper.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/flow/ruleflow/core/HumanTaskNodeWrapper.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -18,6 +18,7 @@
import java.util.HashSet;
import java.util.Set;
+import org.drools.eclipse.flow.common.editor.editpart.work.HumanTaskCustomEditor;
import org.drools.process.core.ParameterDefinition;
import org.drools.process.core.WorkDefinition;
import org.drools.process.core.datatype.impl.type.StringDataType;
@@ -53,6 +54,7 @@
parameterDefinitions.add(new ParameterDefinitionImpl("Content", new StringDataType()));
((WorkDefinitionExtensionImpl) WORK_DEFINITION).setParameters(parameterDefinitions);
((WorkDefinitionExtensionImpl) WORK_DEFINITION).setIcon("icons/human_task.gif");
+ ((WorkDefinitionExtensionImpl) WORK_DEFINITION).setCustomEditor(HumanTaskCustomEditor.class.getName());
}
public HumanTaskNodeWrapper() {
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-task/src/main/java/org/drools/eclipse/task/views/TaskView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-task/src/main/java/org/drools/eclipse/task/views/TaskView.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-task/src/main/java/org/drools/eclipse/task/views/TaskView.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -605,7 +605,7 @@
}
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete(taskSummary.getId(), userId, responseHandler);
+ client.complete(taskSummary.getId(), userId, null, responseHandler);
responseHandler.waitTillDone(3000);
refresh();
}
@@ -627,7 +627,7 @@
}
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.fail(taskSummary.getId(), userId, responseHandler);
+ client.fail(taskSummary.getId(), userId, null, responseHandler);
responseHandler.waitTillDone(3000);
refresh();
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/.classpath 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/.classpath 2008-11-11 00:57:07 UTC (rev 23811)
@@ -1,55 +1,54 @@
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
- <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.77/h2-1.0.77.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3/xstream-1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/mina/mina-core/2.0.0-M3/mina-core-2.0.0-M3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.2/slf4j-api-1.5.2.jar"/>
- <classpathentry kind="src" path="/drools-core"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.1-SNAPSHOT/mvel2-2.0.1-SNAPSHOT.jar"/>
- <classpathentry kind="src" path="/drools-api"/>
- <classpathentry kind="src" path="/drools-workitems"/>
- <classpathentry kind="src" path="/drools-compiler"/>
- <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0.1/antlr-runtime-3.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4/mail-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-finder/1.0-SNAPSHOT/commons-finder-1.0-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.4/commons-io-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-cli/2.0-SNAPSHOT/commons-cli-2.0-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-compress/1.0-SNAPSHOT/commons-compress-1.0-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-exec/1.0.0-SNAPSHOT/commons-exec-1.0.0-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.0.SP1/hibernate-core-3.3.0.SP1.jar"/>
- <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.1/jta-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/seam/jboss-seam/2.1.0-SNAPSHOT/jboss-seam-2.1.0-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/el/jboss-el/1.0_02.CR2/jboss-el-1.0_02.CR2.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/el/el-api/1.0/el-api-1.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-jdk14/1.5.2/slf4j-jdk14-1.5.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/subethamail/subethasmtp-wiser/1.2/subethasmtp-wiser-1.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/subethamail/subethasmtp-smtp/1.2/subethasmtp-smtp-1.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
- <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/postgresql/postgresql/8.3-603.jdbc3/postgresql-8.3-603.jdbc3.jar"/>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
+ <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+ <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.77/h2-1.0.77.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3/xstream-1.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/mina/mina-core/2.0.0-M3/mina-core-2.0.0-M3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.2/slf4j-api-1.5.2.jar"/>
+ <classpathentry kind="src" path="/drools-core"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.1-SNAPSHOT/mvel2-2.0.1-SNAPSHOT.jar"/>
+ <classpathentry kind="src" path="/drools-api"/>
+ <classpathentry kind="src" path="/drools-workitems"/>
+ <classpathentry kind="src" path="/drools-compiler"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0.1/antlr-runtime-3.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4/mail-1.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-finder/1.0-SNAPSHOT/commons-finder-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.4/commons-io-1.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-cli/2.0-SNAPSHOT/commons-cli-2.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-compress/1.0-SNAPSHOT/commons-compress-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-exec/1.0.0-SNAPSHOT/commons-exec-1.0.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.0.SP1/hibernate-core-3.3.0.SP1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.1/jta-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/seam/jboss-seam/2.1.0-SNAPSHOT/jboss-seam-2.1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/el/jboss-el/1.0_02.CR2/jboss-el-1.0_02.CR2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/el/el-api/1.0/el-api-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-jdk14/1.5.2/slf4j-jdk14-1.5.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/subethamail/subethasmtp-wiser/1.2/subethasmtp-wiser-1.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/subethamail/subethasmtp-smtp/1.2/subethasmtp-smtp-1.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
+ <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/postgresql/postgresql/8.3-603.jdbc3/postgresql-8.3-603.jdbc3.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/.project
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/.project 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/.project 2008-11-11 00:57:07 UTC (rev 23811)
@@ -1,18 +1,18 @@
-<projectDescription>
- <name>drools-process-task</name>
- <comment>A rule production system</comment>
- <projects>
- <project>drools-core</project>
- <project>drools-api</project>
- <project>drools-workitems</project>
- <project>drools-compiler</project>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
+<projectDescription>
+ <name>drools-process-task</name>
+ <comment>A rule production system</comment>
+ <projects>
+ <project>drools-core</project>
+ <project>drools-api</project>
+ <project>drools-workitems</project>
+ <project>drools-compiler</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
</projectDescription>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml 2008-11-11 00:57:07 UTC (rev 23811)
@@ -12,9 +12,15 @@
<packaging>jar</packaging>
<name>Drools :: Process :: Task</name>
- <dependencies>
+ <dependencies>
+
<dependency>
<groupId>org.drools</groupId>
+ <artifactId>drools-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
</dependency>
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/client/MinaKnowledgeBaseClient.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/client/MinaKnowledgeBaseClient.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/client/MinaKnowledgeBaseClient.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -20,8 +20,9 @@
public void addPackage(Task task,
AddTaskResponseHandler responseHandler) {
- List args = new ArrayList( 1 );
+ List args = new ArrayList( 2 );
args.add( task );
+ args.add( null );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.AddTaskRequest,
args );
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -47,8 +47,22 @@
private String documentType;
- private long documentContentId;
+ private long documentContentId = -1;
+ private AccessType outputAccessType;
+
+ private String outputType;
+
+ private long outputContentId = -1;
+
+ private String faultName;
+
+ private AccessType faultAccessType;
+
+ private String faultType;
+
+ private long faultContentId = -1;
+
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "TaskData_Comments_Id", nullable = true)
private List<Comment> comments = Collections.emptyList();
@@ -116,6 +130,76 @@
out.writeBoolean( false );
}
+ if ( documentAccessType != null ) {
+ out.writeBoolean( true );
+ out.writeObject( documentAccessType );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( documentType != null ) {
+ out.writeBoolean( true );
+ out.writeUTF( documentType );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( documentContentId != -1 ) {
+ out.writeBoolean( true );
+ out.writeLong( documentContentId );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( outputAccessType != null ) {
+ out.writeBoolean( true );
+ out.writeObject( outputAccessType );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( outputType != null ) {
+ out.writeBoolean( true );
+ out.writeUTF( outputType );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( outputContentId != -1 ) {
+ out.writeBoolean( true );
+ out.writeLong( outputContentId );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( faultName != null ) {
+ out.writeBoolean( true );
+ out.writeUTF( faultName );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( faultAccessType != null ) {
+ out.writeBoolean( true );
+ out.writeObject( faultAccessType );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( faultType != null ) {
+ out.writeBoolean( true );
+ out.writeUTF( faultType );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( faultContentId != -1 ) {
+ out.writeBoolean( true );
+ out.writeLong( faultContentId );
+ } else {
+ out.writeBoolean( false );
+ }
+
CollectionUtils.writeCommentList( comments,
out );
CollectionUtils.writeAttachmentList( attachments,
@@ -159,7 +243,47 @@
if ( in.readBoolean() ) {
workItemId = in.readLong();
}
+
+ if ( in.readBoolean() ) {
+ documentAccessType = (AccessType) in.readObject();
+ }
+ if ( in.readBoolean() ) {
+ documentType = in.readUTF();
+ }
+
+ if ( in.readBoolean() ) {
+ documentContentId = in.readLong();
+ }
+
+ if ( in.readBoolean() ) {
+ outputAccessType = (AccessType) in.readObject();
+ }
+
+ if ( in.readBoolean() ) {
+ outputType = in.readUTF();
+ }
+
+ if ( in.readBoolean() ) {
+ outputContentId = in.readLong();
+ }
+
+ if ( in.readBoolean() ) {
+ faultName = in.readUTF();
+ }
+
+ if ( in.readBoolean() ) {
+ faultAccessType = (AccessType) in.readObject();
+ }
+
+ if ( in.readBoolean() ) {
+ faultType = in.readUTF();
+ }
+
+ if ( in.readBoolean() ) {
+ faultContentId = in.readLong();
+ }
+
comments = CollectionUtils.readCommentList( in );
attachments = CollectionUtils.readAttachmentList( in );
@@ -262,7 +386,63 @@
this.documentType = documentType;
}
- public List<Comment> getComments() {
+ public AccessType getOutputAccessType() {
+ return outputAccessType;
+ }
+
+ public void setOutputAccessType(AccessType outputAccessType) {
+ this.outputAccessType = outputAccessType;
+ }
+
+ public String getOutputType() {
+ return outputType;
+ }
+
+ public void setOutputType(String outputType) {
+ this.outputType = outputType;
+ }
+
+ public long getOutputContentId() {
+ return outputContentId;
+ }
+
+ public void setOutputContentId(long outputContentId) {
+ this.outputContentId = outputContentId;
+ }
+
+ public String getFaultName() {
+ return faultName;
+ }
+
+ public void setFaultName(String faultName) {
+ this.faultName = faultName;
+ }
+
+ public AccessType getFaultAccessType() {
+ return faultAccessType;
+ }
+
+ public void setFaultAccessType(AccessType faultAccessType) {
+ this.faultAccessType = faultAccessType;
+ }
+
+ public String getFaultType() {
+ return faultType;
+ }
+
+ public void setFaultType(String faultType) {
+ this.faultType = faultType;
+ }
+
+ public long getFaultContentId() {
+ return faultContentId;
+ }
+
+ public void setFaultContentId(long faultContentId) {
+ this.faultContentId = faultContentId;
+ }
+
+ public List<Comment> getComments() {
return comments;
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/WorkItemNotification.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/WorkItemNotification.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/WorkItemNotification.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -8,9 +8,9 @@
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
-import org.drools.process.instance.WorkItem;
-import org.drools.process.instance.WorkItemHandler;
-import org.drools.process.instance.WorkItemManager;
+import org.drools.runtime.process.WorkItem;
+import org.drools.runtime.process.WorkItemHandler;
+import org.drools.runtime.process.WorkItemManager;
import org.mvel2.MVEL;
import org.mvel2.compiler.ExpressionCompiler;
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/ContentData.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/ContentData.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/ContentData.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -0,0 +1,55 @@
+package org.drools.task.service;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.task.AccessType;
+
+public class ContentData implements Externalizable {
+
+ private AccessType accessType;
+ private String type;
+ private byte[] content;
+
+ public AccessType getAccessType() {
+ return accessType;
+ }
+
+ public void setAccessType(AccessType accessType) {
+ this.accessType = accessType;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public byte[] getContent() {
+ return content;
+ }
+
+ public void setContent(byte[] content) {
+ this.content = content;
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject( accessType );
+ out.writeUTF( type );
+ out.writeInt( content.length );
+ out.write( content );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ accessType = (AccessType) in.readObject();
+ type = in.readUTF();
+ content = new byte[ in.readInt() ];
+ in.read( content );
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/DefaultEscalatedDeadlineHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/DefaultEscalatedDeadlineHandler.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/DefaultEscalatedDeadlineHandler.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -11,9 +11,9 @@
import javax.persistence.EntityManager;
-import org.drools.process.instance.WorkItemManager;
import org.drools.process.instance.impl.WorkItemImpl;
import org.drools.process.workitem.email.EmailWorkItemHandler;
+import org.drools.runtime.process.WorkItemManager;
import org.drools.task.Content;
import org.drools.task.Deadline;
import org.drools.task.EmailNotification;
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/FaultData.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/FaultData.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/FaultData.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -0,0 +1,30 @@
+package org.drools.task.service;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+public class FaultData extends ContentData {
+
+ private String faultName;
+
+ public String getFaultName() {
+ return faultName;
+ }
+
+ public void setFaultName(String faultName) {
+ this.faultName = faultName;
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeUTF( faultName );
+ super.writeExternal( out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ faultName = in.readUTF();
+ super.readExternal( in );
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -28,10 +28,11 @@
handler );
}
- public void addTask(Task task,
+ public void addTask(Task task, ContentData content,
AddTaskResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 1 );
+ List<Object> args = new ArrayList<Object>( 2 );
args.add( task );
+ args.add( content );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.AddTaskRequest,
args );
@@ -158,11 +159,10 @@
public void claim(long taskId,
String userId,
TaskOperationResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 4 );
+ List<Object> args = new ArrayList<Object>( 3 );
args.add( Operation.Claim );
args.add( taskId );
args.add( userId );
- args.add( null );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.OperationRequest,
args );
@@ -176,11 +176,10 @@
public void start(long taskId,
String userId,
TaskOperationResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 4 );
+ List<Object> args = new ArrayList<Object>( 3 );
args.add( Operation.Start );
args.add( taskId );
args.add( userId );
- args.add( null );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.OperationRequest,
args );
@@ -194,11 +193,10 @@
public void stop(long taskId,
String userId,
TaskOperationResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 4 );
+ List<Object> args = new ArrayList<Object>( 3 );
args.add( Operation.Stop );
args.add( taskId );
args.add( userId );
- args.add( null );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.OperationRequest,
args );
@@ -212,11 +210,10 @@
public void release(long taskId,
String userId,
TaskOperationResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 4 );
+ List<Object> args = new ArrayList<Object>( 3 );
args.add( Operation.Release );
args.add( taskId );
args.add( userId );
- args.add( null );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.OperationRequest,
args );
@@ -230,11 +227,10 @@
public void suspend(long taskId,
String userId,
TaskOperationResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 4 );
+ List<Object> args = new ArrayList<Object>( 3 );
args.add( Operation.Suspend );
args.add( taskId );
args.add( userId );
- args.add( null );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.OperationRequest,
args );
@@ -248,11 +244,10 @@
public void resume(long taskId,
String userId,
TaskOperationResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 4 );
+ List<Object> args = new ArrayList<Object>( 3 );
args.add( Operation.Resume );
args.add( taskId );
args.add( userId );
- args.add( null );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.OperationRequest,
args );
@@ -266,11 +261,10 @@
public void skip(long taskId,
String userId,
TaskOperationResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 4 );
+ List<Object> args = new ArrayList<Object>( 3 );
args.add( Operation.Skip );
args.add( taskId );
args.add( userId );
- args.add( null );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.OperationRequest,
args );
@@ -321,12 +315,14 @@
public void complete(long taskId,
String userId,
+ ContentData outputData,
TaskOperationResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 4 );
+ List<Object> args = new ArrayList<Object>( 5 );
args.add( Operation.Complete );
args.add( taskId );
args.add( userId );
args.add( null );
+ args.add( outputData );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.OperationRequest,
args );
@@ -339,12 +335,14 @@
public void fail(long taskId,
String userId,
+ FaultData faultData,
TaskOperationResponseHandler responseHandler) {
- List<Object> args = new ArrayList<Object>( 4 );
+ List<Object> args = new ArrayList<Object>( 5 );
args.add( Operation.Fail );
args.add( taskId );
args.add( userId );
args.add( null );
+ args.add( faultData );
Command cmd = new Command( counter.getAndIncrement(),
CommandName.OperationRequest,
args );
Deleted: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskOperation.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskOperation.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskOperation.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -1,6 +0,0 @@
-package org.drools.task.service;
-
-
-public enum TaskOperation {
-
-}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -52,22 +52,27 @@
if ( cmd.getArguments().size() > 3 ) {
targetEntityId = (String) cmd.getArguments().get( 3 );
}
- error = taskSession.taskOperation( operation,
- taskId,
- userId,
- targetEntityId );
- List args = null;
- if ( error != null ) {
- args = new ArrayList( 1 );
- args.add( error );
- } else {
- args = Collections.emptyList();
- }
+ ContentData data = null;
+ if ( cmd.getArguments().size() > 4 ) {
+ data = (ContentData) cmd.getArguments().get( 4 );
+ }
+ error = taskSession.taskOperation( operation,
+ taskId,
+ userId,
+ targetEntityId,
+ data);
+ List args = null;
+ if ( error != null ) {
+ args = new ArrayList( 1 );
+ args.add( error );
+ } else {
+ args = Collections.emptyList();
+ }
- Command resultsCmnd = new Command( cmd.getId(),
- CommandName.OperationResponse,
- args );
- session.write( resultsCmnd );
+ Command resultsCmnd = new Command( cmd.getId(),
+ CommandName.OperationResponse,
+ args );
+ session.write( resultsCmnd );
break;
}
case GetTaskRequest : {
@@ -90,7 +95,8 @@
case AddTaskRequest : {
response = CommandName.AddTaskResponse;
Task task = (Task) cmd.getArguments().get( 0 );
- taskSession.addTask( task );
+ ContentData content = (ContentData) cmd.getArguments().get( 1 );
+ taskSession.addTask( task, content );
List args = new ArrayList( 1 );
args.add( task.getId() );
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceRequest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceRequest.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceRequest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -0,0 +1,61 @@
+package org.drools.task.service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.task.User;
+
+public class TaskServiceRequest {
+
+ private String type;
+ private User user;
+ private Map<String, Object> parameters;
+ private boolean allowed = true;
+ private List<String> reasons;
+
+ public TaskServiceRequest(String type, User user, Map<String, Object> parameters) {
+ this.type = type;
+ this.user = user;
+ this.parameters = parameters;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public User getUser() {
+ return user;
+ }
+
+ public Map<String, Object> getParameters() {
+ return parameters;
+ }
+
+ public Object getParameter(String name) {
+ if (parameters == null) {
+ return null;
+ }
+ return parameters.get(name);
+ }
+
+ public boolean isAllowed() {
+ return allowed;
+ }
+
+ public void setAllowed(boolean allowed) {
+ this.allowed = allowed;
+ }
+
+ public List<String> getReasons() {
+ return reasons;
+ }
+
+ public void addReason(String reason) {
+ if (reasons == null) {
+ reasons = new ArrayList<String>();
+ }
+ reasons.add(reason);
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServiceSession.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -5,6 +5,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -12,6 +13,8 @@
import javax.persistence.EntityManager;
import javax.persistence.Query;
+import org.drools.RuleBase;
+import org.drools.StatefulSession;
import org.drools.task.Attachment;
import org.drools.task.Comment;
import org.drools.task.Content;
@@ -28,8 +31,11 @@
import org.drools.task.service.TaskService.ScheduledTaskDeadline;
public class TaskServiceSession {
- TaskService service;
- EntityManager em;
+
+ private TaskService service;
+ private EntityManager em;
+ private Map<String, RuleBase> ruleBases;
+ private Map<String, Map<String, Object>> globals;
public TaskServiceSession(TaskService service,
EntityManager em) {
@@ -44,6 +50,20 @@
public EntityManager getEntityManager() {
return em;
}
+
+ public void setRuleBase(String type, RuleBase ruleBase) {
+ if (ruleBases == null) {
+ ruleBases = new HashMap<String, RuleBase>();
+ }
+ ruleBases.put(type, ruleBase);
+ }
+
+ public void setGlobals(String type, Map<String, Object> globals) {
+ if (this.globals == null) {
+ this.globals = new HashMap<String, Map<String, Object>>();
+ }
+ this.globals.put(type, globals);
+ }
public void addUser(User user) {
em.getTransaction().begin();
@@ -57,11 +77,39 @@
em.getTransaction().commit();
}
- public void addTask(Task task) {
+ public void addTask(Task task, ContentData contentData) {
TaskData taskData = task.getTaskData();
// new tasks start off with status created
taskData.setStatus( Status.Created );
+ // execute "addTask" rules
+ if (ruleBases != null) {
+ RuleBase ruleBase = ruleBases.get("addTask");
+ if (ruleBase != null) {
+ StatefulSession session = ruleBase.newStatefulSession();
+ Map<String, Object> globals = this.globals.get("addTask");
+ if (globals != null) {
+ for (Map.Entry<String, Object> entry: globals.entrySet()) {
+ session.setGlobal(entry.getKey(), entry.getValue());
+ }
+ }
+ TaskServiceRequest request = new TaskServiceRequest("addTask", null, null);
+ session.setGlobal("request", request);
+ session.insert(task);
+ session.insert(contentData);
+ session.fireAllRules();
+ if (!request.isAllowed()) {
+ String error = "Cannot add Task:\n";
+ if (request.getReasons() != null) {
+ for (String reason: request.getReasons()) {
+ error += reason + "\n";
+ }
+ }
+ throw new RuntimeException(error);
+ }
+ }
+ }
+
if ( task.getPeopleAssignments() != null ) {
List<OrganizationalEntity> potentialOwners = task.getPeopleAssignments().getPotentialOwners();
if ( potentialOwners.size() == 1 ) {
@@ -87,10 +135,19 @@
if ( taskData.getActivationTime() == null ) {
taskData.setActivationTime( taskData.getCreatedOn() );
}
-
+
em.getTransaction().begin();
em.persist( task );
+ if (contentData != null) {
+ Content content = new Content();
+ content.setContent(contentData.getContent());
+ em.persist( content );
+ taskData.setDocumentAccessType( contentData.getAccessType() );
+ taskData.setDocumentType( contentData.getType() );
+ taskData.setDocumentContentId( content.getId() );
+ }
em.getTransaction().commit();
+
long now = System.currentTimeMillis();
// schedule after it's been persisted, otherwise the id's won't be assigned
if ( task.getDeadlines() != null ) {
@@ -160,7 +217,7 @@
commands( command,
task,
user,
- targetEntity );
+ targetEntity);
return null;
}
}
@@ -182,7 +239,7 @@
commands( command,
task,
user,
- targetEntity );
+ targetEntity);
return null;
}
}
@@ -290,7 +347,8 @@
public TaskError taskOperation(Operation operation,
long taskId,
String userId,
- String targetEntityId) {
+ String targetEntityId,
+ ContentData data) {
Task task = em.find( Task.class,
taskId );
@@ -302,7 +360,7 @@
targetEntity = em.find( OrganizationalEntity.class,
targetEntityId );
}
-
+
em.getTransaction().begin();
TaskError error = null;
try {
@@ -312,7 +370,7 @@
commands,
task,
user,
- targetEntity );
+ targetEntity);
if ( error != null ) {
throw new RuntimeException( "TaskOperationException" );
@@ -329,13 +387,36 @@
}
case Complete : {
- // trigger event support
+ // set output data
+ if (data != null) {
+ TaskData taskData = task.getTaskData();
+ Content content = new Content();
+ content.setContent( data.getContent() );
+ em.persist( content );
+ taskData.setOutputContentId( content.getId() );
+ taskData.setOutputAccessType( data.getAccessType() );
+ taskData.setOutputType( data.getType() );
+ }
+
+ // trigger event support
service.getEventSupport().fireTaskCompleted( task.getId(),
task.getTaskData().getActualOwner().getId() );
break;
}
case Fail : {
+ // set fault data
+ if (data != null) {
+ TaskData taskData = task.getTaskData();
+ Content content = new Content();
+ content.setContent( data.getContent() );
+ em.persist( content );
+ taskData.setFaultContentId( content.getId() );
+ taskData.setFaultAccessType( data.getAccessType() );
+ taskData.setFaultType( data.getType() );
+ taskData.setFaultName( ((FaultData) data).getFaultName() );
+ }
+
// trigger event support
service.getEventSupport().fireTaskFailed( task.getId(),
task.getTaskData().getActualOwner().getId() );
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -303,7 +303,7 @@
potentialOwners.add( users.get( "stuart" ) );
potentialOwners.add( users.get( "dalai" ) );
- session.addTask( task1 );
+ session.addTask( task1, null );
session.dispose();
session = taskService.createSession();
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/QueryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/QueryTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/QueryTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -29,7 +29,7 @@
List<Task> tasks = (List<Task>) eval( reader,
vars );
for ( Task task : tasks ) {
- taskSession.addTask( task );
+ taskSession.addTask( task, null );
}
long now = ((Date)vars.get( "now" )).getTime();
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -107,7 +107,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = (Task) eval( new StringReader( str ),
vars );
- client.addTask( task,
+ client.addTask( task, null,
addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -219,7 +219,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = (Task) eval( new StringReader( str ),
vars );
- client.addTask( task,
+ client.addTask( task, null,
addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -302,7 +302,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = (Task) eval( new StringReader( str ),
vars );
- client.addTask( task,
+ client.addTask( task, null,
addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -381,7 +381,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = (Task) eval( new StringReader( str ),
vars );
- client.addTask( task,
+ client.addTask( task, null,
addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/MockEventMessagingTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/MockEventMessagingTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/MockEventMessagingTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -28,7 +28,7 @@
str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
Task task = ( Task ) eval( new StringReader( str ), vars );
- taskSession.addTask( task );
+ taskSession.addTask( task, null );
long taskId = task.getId();
@@ -37,7 +37,7 @@
taskService.getEventKeys().register( key, transport );
- taskSession.taskOperation( Operation.Claim, taskId, users.get( "darth" ).getId(), null );
+ taskSession.taskOperation( Operation.Claim, taskId, users.get( "darth" ).getId(), null, null );
assertEquals( 1, transport.list.size() );
assertEquals( taskId, ((TaskClaimedEvent) ((Payload) transport.list.get(0)).get()).getTaskId() );
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -62,7 +62,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -86,7 +86,7 @@
assertEquals(Status.InProgress, tasks.get(0).getStatus());
responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId, users.get( "bobba" ).getId(), responseHandler );
+ client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
@@ -119,7 +119,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId );
@@ -143,7 +143,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler2 = new BlockingAddTaskResponseHandler();
Task task2 = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task2, addTaskResponseHandler2 );
+ client.addTask( task2, null, addTaskResponseHandler2 );
long taskId2 = addTaskResponseHandler.getTaskId();
EventKey key2 = new TaskEventKey(TaskCompletedEvent.class, taskId2 );
@@ -156,7 +156,7 @@
assertEquals(2, tasks.size());
responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId, users.get( "bobba" ).getId(), responseHandler );
+ client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId2, users.get( "bobba" ).getId(), responseHandler );
@@ -176,7 +176,7 @@
assertEquals( Status.Completed , task.getTaskData().getStatus() );
responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId2, users.get( "bobba" ).getId(), responseHandler );
+ client.complete( taskId2, users.get( "bobba" ).getId(), null, responseHandler );
payload = handler.getPayload();
event = ( TaskCompletedEvent ) payload.get();
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -59,7 +59,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -140,7 +140,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -16,8 +16,8 @@
import org.apache.commons.collections.map.HashedMap;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
-import org.drools.process.instance.WorkItemManager;
import org.drools.process.instance.impl.DefaultWorkItemManager;
+import org.drools.runtime.process.WorkItemManager;
import org.drools.task.BaseTest;
import org.drools.task.Content;
import org.drools.task.MockUserInfo;
@@ -96,7 +96,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( string ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
Content content = new Content();
@@ -104,6 +104,10 @@
BlockingSetContentResponseHandler setContentResponseHandler = new BlockingSetContentResponseHandler();
client.setDocumentContent( taskId, content, setContentResponseHandler );
long contentId = setContentResponseHandler.getContentId();
+ BlockingGetContentResponseHandler getResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent( contentId, getResponseHandler );
+ content = getResponseHandler.getContent();
+ assertEquals( "['subject' : 'My Subject', 'body' : 'My Body']", new String( content.getContent() ) );
// emails should not be set yet
assertEquals(0, wiser.getMessages().size() );
@@ -167,7 +171,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( string ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
// Shouldn't have re-assigned yet
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -63,7 +63,7 @@
for ( Task task : tasks ) {
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
addTaskResponseHandler.waitTillDone( 3000 );
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -70,7 +70,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -85,7 +85,7 @@
client.registerForEvent( key, true, handler );
Thread.sleep( 3000 );
- taskSession.taskOperation( Operation.Claim, taskId, users.get( "darth" ).getId(), null );
+ taskSession.taskOperation( Operation.Claim, taskId, users.get( "darth" ).getId(), null, null );
handler.waitTillDone( 5000 );
Payload payload = handler.getPayload();
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -8,7 +8,9 @@
import org.apache.commons.collections.map.HashedMap;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.task.AccessType;
import org.drools.task.BaseTest;
+import org.drools.task.Content;
import org.drools.task.Status;
import org.drools.task.Task;
@@ -52,7 +54,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -77,7 +79,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -89,6 +91,41 @@
assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
}
+ public void testNewTaskWithContent() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ ContentData data = new ContentData();
+ data.setAccessType(AccessType.Inline);
+ data.setType("type");
+ data.setContent("content".getBytes());
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, data, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Task should be assigned to the single potential owner and state set to Reserved
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( AccessType.Inline, task1.getTaskData().getDocumentAccessType() );
+ assertEquals( "type", task1.getTaskData().getDocumentType() );
+ long contentId = task1.getTaskData().getDocumentContentId();
+ assertTrue( contentId != -1 );
+
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent(contentId, getContentResponseHandler);
+ Content content = getContentResponseHandler.getContent();
+ assertEquals("content", new String(content.getContent()));
+ }
+
public void testClaimWithMultiplePotentialOwners() throws Exception {
Map vars = new HashedMap();
vars.put( "users", users );
@@ -102,7 +139,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -136,7 +173,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -171,7 +208,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -206,7 +243,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -242,7 +279,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -278,7 +315,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -316,7 +353,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -356,7 +393,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -396,7 +433,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -436,7 +473,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -476,7 +513,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -513,7 +550,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -554,7 +591,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -594,7 +631,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -643,7 +680,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -696,7 +733,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -735,7 +772,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -751,7 +788,7 @@
assertNull( task1.getTaskData().getActualOwner() );
}
- public void testSkipFromReseerved() {
+ public void testSkipFromReserved() {
Map vars = new HashedMap();
vars.put( "users", users );
vars.put( "groups", groups );
@@ -763,7 +800,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -797,7 +834,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
// Check is Delegated
@@ -827,7 +864,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -869,7 +906,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
// Claim and Reserved
@@ -910,7 +947,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -941,7 +978,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -983,7 +1020,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -1025,7 +1062,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -1042,7 +1079,7 @@
// Check is Complete
responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId, users.get( "darth" ).getId(), responseHandler );
+ client.complete( taskId, users.get( "darth" ).getId(), null, responseHandler );
responseHandler.waitTillDone( 3000 );
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
@@ -1065,7 +1102,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -1082,7 +1119,7 @@
// Should not complete as wrong user
responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId, users.get( "bobba" ).getId(), responseHandler );
+ client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
responseHandler.waitTillDone( 3000 );
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
@@ -1092,6 +1129,56 @@
assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
}
+ public void testCompleteWithContent() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone( 3000 );
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ ContentData data = new ContentData();
+ data.setAccessType(AccessType.Inline);
+ data.setType("type");
+ data.setContent("content".getBytes());
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.complete( taskId, users.get( "darth" ).getId(), data, responseHandler );
+ responseHandler.waitTillDone( 3000 );
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( AccessType.Inline, task2.getTaskData().getOutputAccessType() );
+ assertEquals( "type", task2.getTaskData().getOutputType() );
+ long contentId = task2.getTaskData().getOutputContentId();
+ assertTrue( contentId != -1 );
+
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent(contentId, getContentResponseHandler);
+ Content content = getContentResponseHandler.getContent();
+ assertEquals("content", new String(content.getContent()));
+ }
+
public void testFail() {
Map vars = new HashedMap();
vars.put( "users", users );
@@ -1105,7 +1192,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -1122,7 +1209,7 @@
// Check is Failed
responseHandler = new BlockingTaskOperationResponseHandler();
- client.fail( taskId, users.get( "darth" ).getId(), responseHandler );
+ client.fail( taskId, users.get( "darth" ).getId(), null, responseHandler );
responseHandler.waitTillDone( 3000 );
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
@@ -1145,7 +1232,7 @@
BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, addTaskResponseHandler );
+ client.addTask( task, null, addTaskResponseHandler );
long taskId = addTaskResponseHandler.getTaskId();
@@ -1162,7 +1249,7 @@
// Should not fail as wrong user
responseHandler = new BlockingTaskOperationResponseHandler();
- client.fail( taskId, users.get( "bobba" ).getId(), responseHandler );
+ client.fail( taskId, users.get( "bobba" ).getId(), null, responseHandler );
responseHandler.waitTillDone( 3000 );
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
@@ -1171,4 +1258,58 @@
assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
}
+
+ public void testFailWithContent() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone( 3000 );
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ FaultData data = new FaultData();
+ data.setAccessType(AccessType.Inline);
+ data.setType("type");
+ data.setFaultName("faultName");
+ data.setContent("content".getBytes());
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.fail( taskId, users.get( "darth" ).getId(), data, responseHandler );
+ responseHandler.waitTillDone( 3000 );
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Failed, task2.getTaskData().getStatus() );
+ assertEquals( AccessType.Inline, task2.getTaskData().getFaultAccessType() );
+ assertEquals( "type", task2.getTaskData().getFaultType() );
+ assertEquals( "faultName", task2.getTaskData().getFaultName() );
+ long contentId = task2.getTaskData().getFaultContentId();
+ assertTrue( contentId != -1 );
+
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent(contentId, getContentResponseHandler);
+ Content content = getContentResponseHandler.getContent();
+ assertEquals("content", new String(content.getContent()));
+ }
+
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java 2008-11-11 00:29:40 UTC (rev 23810)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java 2008-11-11 00:57:07 UTC (rev 23811)
@@ -54,7 +54,7 @@
vars );
for ( Task task : tasks ) {
BlockingAddTaskResponseHandler responseHandler = new BlockingAddTaskResponseHandler();
- client.addTask( task, responseHandler );
+ client.addTask( task, null, responseHandler );
}
// Test UK I18N
@@ -139,7 +139,7 @@
List<Task> tasks = (List<Task>) eval( reader,
vars );
for ( Task task : tasks ) {
- taskSession.addTask( task );
+ taskSession.addTask( task, null );
}
reader = new InputStreamReader( getClass().getResourceAsStream( "QueryResults_PeopleAssignmentQuerries.mvel" ) );
More information about the jboss-svn-commits
mailing list