[jbpm-commits] JBoss JBPM SVN: r3524 - in jbpm4/trunk/modules: api/src/main/java/org/jbpm/task and 19 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Dec 23 05:53:04 EST 2008
Author: tom.baeyens at jboss.com
Date: 2008-12-23 05:53:04 -0500 (Tue, 23 Dec 2008)
New Revision: 3524
Added:
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/TaskTest.java
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/process.jpdl.xml
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskBinding.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/NewTaskCmd.java
Removed:
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/CreateTaskCmd.java
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/TaskService.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/task/Task.java
jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd
jbpm4/trunk/modules/examples/src/test/resources/jbpm.cfg.xml
jbpm4/trunk/modules/jpdl/pom.xml
jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.activities.xml
jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.hbm.xml
jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cfg.xml
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindExecutionCmd.java
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.execution.hbm.xml
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/SaveTaskCmd.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/hibernate/HibernateTaskDbSession.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskServiceImpl.java
jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/session/TaskDbSession.java
jbpm4/trunk/modules/task/src/main/resources/jbpm.task.hbm.xml
jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/internal/model/TaskActivityScenarioTest.java
jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/internal/model/TaskTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/TaskServiceTest.java
Log:
added task activity to jpdl
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/TaskService.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/TaskService.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/TaskService.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -37,11 +37,6 @@
* Use {@link #saveTask(Task)} to persist the task. */
Task newTask();
- /** Creates a task with the given identifier.
- * The returned task will be transient.
- * Use {@link #saveTask(Task)} to persist the task. */
- Task newTask(String taskId);
-
/** Saves the given task to persistent storage. */
void saveTask(Task task);
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/task/Task.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/task/Task.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/task/Task.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -58,8 +58,8 @@
String getDescription();
void setDescription(String description);
- String getAssignedUserId();
- void setAssignedUserId(String assignedUserId);
+ String getAssignee();
+ void setAssignee(String assignee);
Date getCreate();
Modified: jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd
===================================================================
--- jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd 2008-12-23 10:53:04 UTC (rev 3524)
@@ -272,6 +272,21 @@
</complexContent>
</complexType>
</element>
+
+ <element name="task">
+ <annotation><documentation>Creates a task in the task component.
+ </documentation></annotation>
+ <complexType>
+ <sequence>
+ <element ref="tns:flow" minOccurs="0" maxOccurs="unbounded" />
+ </sequence>
+ <attributeGroup ref="tns:nodeAttributes" />
+ <attribute name="assignee" type="string" use="required">
+ <annotation><documentation>User id to whom this task should be assigned.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
<!--
<element name="process-state">
Added: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/TaskTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/TaskTest.java (rev 0)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/TaskTest.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -0,0 +1,60 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.examples.task;
+
+import java.util.List;
+
+import org.jbpm.Execution;
+import org.jbpm.task.Task;
+import org.jbpm.test.DbTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskTest extends DbTestCase {
+
+ public void testTask() {
+ deployJpdlResource("org/jbpm/examples/task/process.jpdl.xml");
+
+ Execution execution = executionService.startExecutionByKey("Task");
+ String executionId = execution.getId();
+
+ List<Task> taskList = taskService.getPersonalTaskList("johndoe", 0, 10);
+ assertEquals(1, taskList.size());
+ Task task = taskList.get(0);
+ assertEquals("review", task.getName());
+ assertEquals("johndoe", task.getAssignee());
+
+ // submit the task
+ taskService.submitTask(task.getId());
+
+ // verify that the task list is now empty
+ taskList = taskService.getPersonalTaskList("johndoe", 0, 10);
+ assertEquals(0, taskList.size());
+
+ // verify that process moved to the next state
+ execution = executionService.findExecution(executionId);
+ assertEquals("wait", execution.getNodeName());
+ }
+
+}
Property changes on: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/TaskTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbpm4/trunk/modules/examples/src/test/resources/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/jbpm.cfg.xml 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/examples/src/test/resources/jbpm.cfg.xml 2008-12-23 10:53:04 UTC (rev 3524)
@@ -17,6 +17,7 @@
<process-service />
<execution-service />
<management-service />
+ <task-service />
<command-service>
<retry-interceptor />
@@ -33,6 +34,7 @@
<mapping resource="jbpm.pvm.variable.hbm.xml" />
<mapping resource="jbpm.pvm.job.hbm.xml" />
<mapping resource="jbpm.jpdl.hbm.xml" />
+ <mapping resource="jbpm.task.hbm.xml" />
<cache-configuration resource="jbpm.pvm.cache.xml"
usage="nonstrict-read-write" />
</hibernate-configuration>
@@ -68,6 +70,7 @@
<transaction />
<pvm-db-session />
<job-db-session />
+ <task-db-session />
<message-session />
<timer-session />
</environment>
Added: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/process.jpdl.xml (rev 0)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/process.jpdl.xml 2008-12-23 10:53:04 UTC (rev 3524)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process name="Task" xmlns="http://jbpm.org/4/jpdl">
+
+ <start g="20,20,48,48">
+ <flow to="review" />
+ </start>
+
+ <task name="review"
+ assignee="johndoe"
+ g="96,16,127,52">
+
+ <flow to="wait" />
+ </task>
+
+ <state name="wait" g="255,16,88,52"/>
+
+</process>
Property changes on: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/process.jpdl.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbpm4/trunk/modules/jpdl/pom.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/pom.xml 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/jpdl/pom.xml 2008-12-23 10:53:04 UTC (rev 3524)
@@ -41,6 +41,11 @@
<version>${version}</version>
</dependency>
<dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-task</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
Added: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskActivity.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskActivity.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.jpdl.activity;
+
+import org.jbpm.activity.ActivityExecution;
+import org.jbpm.env.Environment;
+import org.jbpm.task.internal.model.TaskImpl;
+import org.jbpm.task.session.TaskDbSession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskActivity extends StateActivity {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String assignee;
+
+ public void execute(ActivityExecution execution) {
+ TaskDbSession taskDbSession = Environment.getFromCurrent(TaskDbSession.class);
+ TaskImpl task = TaskImpl.create(execution);
+ task.setName(execution.getNodeName());
+ task.setAssignee(assignee);
+ taskDbSession.saveTask(task);
+
+ execution.waitForSignal();
+ }
+
+ public void setAssignee(String assignee) {
+ this.assignee = assignee;
+ }
+}
Property changes on: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskActivity.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskBinding.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskBinding.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.jpdl.activity;
+
+import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class TaskBinding extends JpdlActivityBinding {
+
+ private static final String TAG = "task";
+
+ public TaskBinding() {
+ super(TAG);
+ }
+
+ public Object parse(Element element, Parse parse, Parser parser) {
+ TaskActivity taskActivity = new TaskActivity();
+
+ String assignee = XmlUtil.attribute(element, "assignee", true, parse);
+ taskActivity.setAssignee(assignee);
+
+ return taskActivity;
+ }
+
+}
Property changes on: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/activity/TaskBinding.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.activities.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.activities.xml 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.activities.xml 2008-12-23 10:53:04 UTC (rev 3524)
@@ -11,4 +11,5 @@
<activity binding="org.jbpm.jpdl.activity.JavaBinding" />
<activity binding="org.jbpm.jpdl.activity.ScriptBinding" />
<activity binding="org.jbpm.jpdl.activity.EsbBinding" />
+ <activity binding="org.jbpm.jpdl.activity.TaskBinding" />
</activities>
Modified: jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.hbm.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.hbm.xml 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.hbm.xml 2008-12-23 10:53:04 UTC (rev 3524)
@@ -82,6 +82,9 @@
foreign-key="FK_ACT_PARTSDESCR"
index="IDX_ACT_PARTSDESCR" />
</subclass>
+ <subclass name="org.jbpm.jpdl.activity.TaskActivity" discriminator-value="task">
+ <property name="assignee" column="TEXT_" />
+ </subclass>
</class>
</hibernate-mapping>
\ No newline at end of file
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cfg.xml 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cfg.xml 2008-12-23 10:53:04 UTC (rev 3524)
@@ -17,6 +17,7 @@
<process-service />
<execution-service />
<management-service />
+ <task-service />
<command-service>
<retry-interceptor />
@@ -33,6 +34,7 @@
<mapping resource="jbpm.pvm.variable.hbm.xml" />
<mapping resource="jbpm.pvm.job.hbm.xml" />
<mapping resource="jbpm.jpdl.hbm.xml" />
+ <mapping resource="jbpm.task.hbm.xml" />
<cache-configuration resource="jbpm.pvm.cache.xml"
usage="nonstrict-read-write" />
</hibernate-configuration>
@@ -61,6 +63,7 @@
<transaction />
<pvm-db-session />
<job-db-session />
+ <task-db-session />
<message-session />
<timer-session />
</environment>
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindExecutionCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindExecutionCmd.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindExecutionCmd.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -62,6 +62,7 @@
if (executionId!=null) {
return pvmDbSession.findExecutionById(executionId);
}
- return pvmDbSession.findExecutionByKey(processDefinitionName, executionKey);
+ Execution execution = pvmDbSession.findExecutionByKey(processDefinitionName, executionKey);
+ return execution;
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.execution.hbm.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.execution.hbm.xml 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.execution.hbm.xml 2008-12-23 10:53:04 UTC (rev 3524)
@@ -13,6 +13,7 @@
<many-to-one name="node"
class="org.jbpm.pvm.internal.model.NodeImpl"
column="NODE_"
+ lazy="false"
foreign-key="FK_EXEC_NODE"
index="IDX_EXEC_NODE" />
Deleted: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/CreateTaskCmd.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/CreateTaskCmd.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/CreateTaskCmd.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -1,80 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.task.internal.cmd;
-
-import org.hibernate.Session;
-import org.jbpm.cmd.Command;
-import org.jbpm.env.Environment;
-import org.jbpm.pvm.internal.model.ExecutionImpl;
-import org.jbpm.session.DbSession;
-import org.jbpm.task.Task;
-import org.jbpm.task.internal.model.TaskDefinitionImpl;
-import org.jbpm.task.internal.model.TaskImpl;
-
-/**
- * @author Tom Baeyens
- */
-public class CreateTaskCmd implements Command<Task> {
-
- private static final long serialVersionUID = 1L;
-
- protected String taskId;
- protected Long taskDefinitionDbid;
- protected Long executionDbid;
-
- public CreateTaskCmd() {
- }
-
- public CreateTaskCmd(String taskId) {
- this.taskId = taskId;
- }
-
- public CreateTaskCmd(String taskId, long taskDefinitionDbid) {
- this.taskId = taskId;
- this.taskDefinitionDbid = taskDefinitionDbid;
- }
-
- public CreateTaskCmd(String taskId, long taskDefinitionDbid, long executionDbid) {
- this.taskId = taskId;
- this.taskDefinitionDbid = taskDefinitionDbid;
- this.executionDbid = executionDbid;
- }
-
- public Task execute(Environment environment) throws Exception {
- TaskDefinitionImpl taskDefinition = null;
- ExecutionImpl execution = null;
-
- Session session = environment.get(Session.class);
-
- if (taskDefinitionDbid!=null) {
- taskDefinition = (TaskDefinitionImpl) session.load(TaskDefinitionImpl.class, taskDefinitionDbid);
- }
-
- if (executionDbid!=null) {
- execution = (ExecutionImpl) session.load(ExecutionImpl.class, executionDbid);
- }
-
- Task task = TaskImpl.create(taskId, taskDefinition, execution);
-
- return task;
- }
-}
Copied: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/NewTaskCmd.java (from rev 3519, jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/CreateTaskCmd.java)
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/NewTaskCmd.java (rev 0)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/NewTaskCmd.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.task.internal.cmd;
+
+import org.hibernate.Session;
+import org.jbpm.cmd.Command;
+import org.jbpm.env.Environment;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
+import org.jbpm.session.DbSession;
+import org.jbpm.task.Task;
+import org.jbpm.task.internal.model.TaskDefinitionImpl;
+import org.jbpm.task.internal.model.TaskImpl;
+
+/**
+ * @author Tom Baeyens
+ */
+public class NewTaskCmd implements Command<Task> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected Long executionDbid;
+
+ public NewTaskCmd() {
+ }
+
+ public NewTaskCmd(long executionDbid) {
+ this.executionDbid = executionDbid;
+ }
+
+ public Task execute(Environment environment) throws Exception {
+ TaskDefinitionImpl taskDefinition = null;
+ ExecutionImpl execution = null;
+
+ Session session = environment.get(Session.class);
+
+ if (executionDbid!=null) {
+ execution = (ExecutionImpl) session.load(ExecutionImpl.class, executionDbid);
+ }
+
+ Task task = TaskImpl.create(execution);
+
+ return task;
+ }
+}
Modified: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/SaveTaskCmd.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/SaveTaskCmd.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/cmd/SaveTaskCmd.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -27,6 +27,7 @@
import org.jbpm.cmd.Command;
import org.jbpm.env.Environment;
import org.jbpm.task.internal.model.TaskImpl;
+import org.jbpm.task.session.TaskDbSession;
/**
* @author Alejandro Guizar
@@ -42,18 +43,10 @@
}
public Void execute(Environment environment) throws Exception {
- Session session = environment.get(Session.class);
+ TaskDbSession taskDbSession = environment.get(TaskDbSession.class);
- if (! task.isPersisted()) {
- Serializable dbid = session.save(task);
- if (task.getId() == null) {
- task.setId(dbid.toString());
- }
-
- } else {
- session.update(task);
- }
-
+ taskDbSession.saveTask(task);
+
return null;
}
}
Modified: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/hibernate/HibernateTaskDbSession.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/hibernate/HibernateTaskDbSession.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/hibernate/HibernateTaskDbSession.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -47,9 +47,21 @@
// TODO maybe we should move these criteria queries to hql queries in the
// hbm file so that users can easily customize.
return session.createCriteria(TaskImpl.class)
- .add(Restrictions.eq("assignedUserId", userId))
+ .add(Restrictions.eq("assignee", userId))
.setFirstResult(firstResult)
.setMaxResults(maxResults)
.list();
}
+
+ public void saveTask(TaskImpl task) {
+ if (! task.isPersisted()) {
+ Serializable dbid = session.save(task);
+ if (task.getId() == null) {
+ task.setId(dbid.toString());
+ }
+
+ } else {
+ session.update(task);
+ }
+ }
}
Modified: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskImpl.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskImpl.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -58,7 +58,7 @@
protected String name;
protected String description;
- protected String assignedUserId;
+ protected String assignee;
protected Set<RoleImpl> roles;
protected Date create;
@@ -88,18 +88,10 @@
// creating a task
public static TaskImpl create() {
- return create(null, null, null);
+ return create(null);
}
- public static TaskImpl create(String taskId) {
- return create(taskId, null, null);
- }
-
- public static TaskImpl create(String taskId, TaskDefinitionImpl taskDefinition) {
- return create(taskId, taskDefinition, null);
- }
-
- public static TaskImpl create(String taskId, TaskDefinitionImpl taskDefinition, ExecutionImpl execution) {
+ public static TaskImpl create(Execution execution) {
TaskImpl task = new TaskImpl();
/*
@@ -119,9 +111,6 @@
*/
task.setCreate(Clock.getCurrentTime());
-
- task.setId(taskId);
- task.setTaskDefinition(taskDefinition);
task.setExecution(execution);
// initialise the task state
@@ -267,18 +256,6 @@
return subtask;
}
- public Task createSubTask(String subTaskId, TaskDefinition subTaskDefinition) {
- if (subTaskDefinition==null) {
- throw new TaskException("subtaskDefinition is null");
- }
- if (subTasks==null) {
- subTasks = new HashSet<TaskImpl>();
- }
- TaskImpl subtask = create(subTaskId, taskDefinition);
- addSubTask(subtask);
- return subtask;
- }
-
public Task addSubTask(TaskImpl subtask) {
if (subTasks==null) {
subTasks = new HashSet<TaskImpl>();
@@ -390,11 +367,11 @@
public String getState() {
return state;
}
- public String getAssignedUserId() {
- return assignedUserId;
+ public String getAssignee() {
+ return assignee;
}
- public void setAssignedUserId(String assignedUserId) {
- this.assignedUserId = assignedUserId;
+ public void setAssignee(String assignedUserId) {
+ this.assignee = assignedUserId;
}
public Swimlane getSwimlane() {
return swimlane;
Modified: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskServiceImpl.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskServiceImpl.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/internal/model/TaskServiceImpl.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -27,7 +27,7 @@
import org.jbpm.cmd.CommandService;
import org.jbpm.task.Role;
import org.jbpm.task.Task;
-import org.jbpm.task.internal.cmd.CreateTaskCmd;
+import org.jbpm.task.internal.cmd.NewTaskCmd;
import org.jbpm.task.internal.cmd.DeleteTaskCmd;
import org.jbpm.task.internal.cmd.GetPersonalTaskListCmd;
import org.jbpm.task.internal.cmd.GetTaskCmd;
@@ -57,13 +57,9 @@
}
public Task newTask() {
- return newTask(null);
+ return commandService.execute(new NewTaskCmd());
}
- public Task newTask(String taskId) {
- return commandService.execute(new CreateTaskCmd(taskId));
- }
-
public Task getTask(String taskId) {
return commandService.execute(new GetTaskCmd(taskId));
}
Modified: jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/session/TaskDbSession.java
===================================================================
--- jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/session/TaskDbSession.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/task/src/main/java/org/jbpm/task/session/TaskDbSession.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -36,4 +36,6 @@
TaskImpl findTaskById(String taskId);
List<Task> findPersonalTasks(String userId, int firstResult, int maxResults);
+
+ void saveTask(TaskImpl task);
}
Modified: jbpm4/trunk/modules/task/src/main/resources/jbpm.task.hbm.xml
===================================================================
--- jbpm4/trunk/modules/task/src/main/resources/jbpm.task.hbm.xml 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/task/src/main/resources/jbpm.task.hbm.xml 2008-12-23 10:53:04 UTC (rev 3524)
@@ -55,7 +55,7 @@
<property name="id" column="ID_" unique="true" />
<property name="name" column="NAME_"/>
<property name="description" column="DESCR_"/>
- <property name="assignedUserId" column="ASSIGNEE_"/>
+ <property name="assignee" column="ASSIGNEE_"/>
<set name="roles" cascade="all-delete-orphan">
<key column="TASK_" foreign-key="FK_ROLE_TASK" />
@@ -75,6 +75,11 @@
cascade="all" />
-->
+ <many-to-one name="execution"
+ class="org.jbpm.pvm.internal.model.ExecutionImpl"
+ column="EXECUTION_"
+ foreign-key="FK_TASK_EXEC" />
+
<many-to-one name="swimlane"
class="SwimlaneImpl"
column="SWIMLANE_"
Modified: jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/internal/model/TaskActivityScenarioTest.java
===================================================================
--- jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/internal/model/TaskActivityScenarioTest.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/internal/model/TaskActivityScenarioTest.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -35,22 +35,19 @@
public void testDefaultScenario() {
// execution arrives in task node
// the task id is generated from the executionId and the task name
- String taskId = "t28346";
- Task task = taskService.newTask(taskId);
+ Task task = taskService.newTask();
task.setName("do laundry");
- task.setAssignedUserId("johndoe");
+ task.setAssignee("johndoe");
taskService.saveTask(task);
-
List<Task> taskList = taskService.getPersonalTaskList("johndoe", 0, 10);
assertEquals("expected 1 task for john doe: "+taskList, 1, taskList.size());
task = taskList.get(0);
- assertEquals("johndoe", task.getAssignedUserId());
- assertEquals("t28346", task.getId());
+ assertEquals("johndoe", task.getAssignee());
assertEquals("do laundry", task.getName());
- taskService.submitTask("t28346");
+ taskService.submitTask(task.getId());
assertEquals(0, taskService.getPersonalTaskList("johndoe", 0, 10).size());
}
Modified: jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/internal/model/TaskTest.java
===================================================================
--- jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/internal/model/TaskTest.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/task/src/test/java/org/jbpm/task/internal/model/TaskTest.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -46,7 +46,7 @@
TaskImpl task;
try {
Clock.setCurrentTime(now);
- task = TaskImpl.create(getName());
+ task = TaskImpl.create();
} finally {
Clock.setCurrentTime(null);
}
@@ -63,21 +63,21 @@
}
public void testTaskAssignment() {
- TaskImpl task = TaskImpl.create(getName());
- task.setAssignedUserId("john doe");
- assertEquals("john doe", task.getAssignedUserId());
+ TaskImpl task = TaskImpl.create();
+ task.setAssignee("john doe");
+ assertEquals("john doe", task.getAssignee());
}
public void testTaskReassignmentAssignment() {
- TaskImpl task = TaskImpl.create(getName());
- task.setAssignedUserId("johndoe");
- assertEquals("johndoe", task.getAssignedUserId());
- task.setAssignedUserId("joesmoe");
- assertEquals("joesmoe", task.getAssignedUserId());
+ TaskImpl task = TaskImpl.create();
+ task.setAssignee("johndoe");
+ assertEquals("johndoe", task.getAssignee());
+ task.setAssignee("joesmoe");
+ assertEquals("joesmoe", task.getAssignee());
}
public void testTaskRoles() {
- TaskImpl task = TaskImpl.create(getName());
+ TaskImpl task = TaskImpl.create();
assertNotNull(task.getRoles());
assertEquals(0, task.getRoles().size());
@@ -124,7 +124,7 @@
}
public void testTaskAllRoles() {
- TaskImpl task = TaskImpl.create(getName());
+ TaskImpl task = TaskImpl.create();
assertNotNull(task.getAllRoles());
assertEquals(0, task.getAllRoles().size());
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/TaskServiceTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/TaskServiceTest.java 2008-12-23 10:52:12 UTC (rev 3523)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/TaskServiceTest.java 2008-12-23 10:53:04 UTC (rev 3524)
@@ -32,11 +32,8 @@
public class TaskServiceTest extends DbTestCase {
public void testNewTask() {
- String taskId = getName();
- Task task = taskService.newTask(taskId);
- assertEquals(taskId, task.getId());
- // new task is transient
- task = taskService.getTask(taskId);
+ Task task = taskService.newTask();
+ task = taskService.getTask(task.getId());
assertNull("expected null, but was " + task, task);
}
@@ -50,9 +47,9 @@
}
public void testSaveTask() {
- String taskId = getName();
- Task task = taskService.newTask(taskId);
+ Task task = taskService.newTask();
saveTask(task);
+ String taskId = task.getId();
// task was made persistent
task = taskService.getTask(taskId);
assertNotNull("expected non-null task", task);
@@ -65,21 +62,11 @@
assertEquals(dueDate, task.getDueDate());
}
- public void testGetTask() {
- String taskId = getName();
- // ensure task does not exist
- Task task = taskService.getTask(taskId);
- assertNull("expected null, but was " + task, task);
- // create task and verify it exists
- task = taskService.newTask(taskId);
- saveTask(task);
- assertNotNull("expected non-null task", taskService.getTask(taskId));
- }
-
public void testDeleteTask() {
- String taskId = getName();
- Task task = taskService.newTask(taskId);
+ Task task = taskService.newTask();
taskService.saveTask(task);
+ String taskId = task.getId();
+
// task was made persistent
assertNotNull("expected non-null task", taskService.getTask(taskId));
// delete task and verify it does not exist
More information about the jbpm-commits
mailing list