[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