[jbpm-commits] JBoss JBPM SVN: r5136 - in jbpm4/trunk/modules: api/src/main/java/org/jbpm/api/task and 15 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Jun 27 08:19:47 EDT 2009


Author: tom.baeyens at jboss.com
Date: 2009-06-27 08:19:46 -0400 (Sat, 27 Jun 2009)
New Revision: 5136

Added:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinatesCmd.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartActivityNamesCmd.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartFormResourceNameCmd.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/FormBehaviour.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java
   jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/process/ProcessDefinitionStartForm.form
Removed:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinates.java
Modified:
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/RepositoryService.java
   jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/Task.java
   jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/test/deployer/HTTP.java
   jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ModelAdaptor.java
   jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/Runner.java
   jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartActivity.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Activity.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElement.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElementImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryServiceImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/RepositorySession.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/type/Converter.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/DOMWriter.java
   jbpm4/trunk/modules/pvm/src/main/resources/jbpm.task.hbm.xml
Log:
JBPM-2365 adding engine and api support for start task forms

Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/RepositoryService.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/RepositoryService.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/RepositoryService.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -22,18 +22,34 @@
 package org.jbpm.api;
 
 import java.io.InputStream;
+import java.util.List;
 
 import org.jbpm.api.model.ActivityCoordinates;
 
 
-/**
+/** exposes the repository of deployments.
+ * 
+ * <p>Deployments contain a set of named resources.  Those 
+ * resources can represent process definitions, forms, images and so on.
+ * </p>
+ * 
+ * <p>The repository contains and manages the process definitions.
+ * </p>
+ * 
  * @author Tom Baeyens
  */
 public interface RepositoryService {
 
+  /** create a new deployment.  The deployment will only be deployed into 
+   * the repository after invoking the {@link NewDeployment#deploy()}.  */
   NewDeployment createDeployment();
 
+  /** similar to deleting a deployment.  The difference is that 
+   * all the data remains in the database.  So that the suspending 
+   * can be undone with {@link #resumeDeployment(String)}. */
   void suspendDeployment(String deploymentId);
+  
+  /** resume a suspended deployment. */
   void resumeDeployment(String deploymentId);
   
   /** deletes a deployment if the process definitions don't have 
@@ -45,10 +61,30 @@
    * and their history information */
   void deleteDeploymentCascade(String deploymentId);
 
+  /** obtain an InputStream to a resource in a deployment */
   InputStream getResourceAsStream(String deploymentId, String resourceName);
 
+  /** create a query for process definitions */
   ProcessDefinitionQuery createProcessDefinitionQuery();
+
+  /** create a query for deployments */
   DeploymentQuery createDeploymentQuery();
+
+  /** find all the activity names of the start activities for a given 
+   * process definition.  Only top level activities are scanned.  
+   * Every activity that doesn't have incoming transitions is considered 
+   * a start activity. For the moment, jPDL only supports one 
+   * start activity.  Start activity names can be null. */
+  List<String> getStartActivityNames(String processDefinitionId);
   
+  /** the resource name for the given start activity. It is assumed that 
+   * the ProcessDefinition is already retrieved.  From the ProcessDefinition,
+   * the {@link ProcessDefinition#getId()} and the {@link ProcessDefinition#getDeploymentId()}
+   * can be retrieved.  The activityName can be obtained via {@link #getStartActivityNames(String)}.
+   * An InputStream for the resource can be obtained with {@link #getResourceAsStream(String, String)}  */
+  String getStartFormResourceName(String processDefinitionId, String activityName);
+  
+  /** the coordinates for the activity on 
+   * {@link ProcessDefinition#getImageResourceName() the process image}. */
   ActivityCoordinates getActivityCoordinates(String processDefinitionId, String activityName);
 }

Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/Task.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/Task.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/Task.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -53,7 +53,5 @@
   int getPriority();
   void setPriority(int priority);
 
-  String getForm();
-  void setForm(String form);
-
+  String getFormResourceName();
 }
\ No newline at end of file

Modified: jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/test/deployer/HTTP.java
===================================================================
--- jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/test/deployer/HTTP.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/test/deployer/HTTP.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -78,12 +78,12 @@
 
          conn.setRequestProperty("Connection", "Keep-Alive");
 
-         conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);
+         conn.setRequestProperty("Content-Type", "multipart/formResourceName-data;boundary="+boundary);
 
          dos = new DataOutputStream( conn.getOutputStream() );
 
          dos.writeBytes(twoHyphens + boundary + lineEnd);
-         dos.writeBytes("Content-Disposition: form-data; name=\"upload\";"
+         dos.writeBytes("Content-Disposition: formResourceName-data; name=\"upload\";"
                + " filename=\"" + UUID.randomUUID().toString() +"\"" + lineEnd);
          dos.writeBytes(lineEnd);
 
@@ -92,7 +92,7 @@
          bufferSize = Math.min(bytesAvailable, maxBufferSize);
          buffer = new byte[bufferSize];
 
-         // read file and write it into form...
+         // read file and write it into formResourceName...
          bytesRead = inputStream.read(buffer, 0, bufferSize);
 
          while (bytesRead > 0)
@@ -103,7 +103,7 @@
             bytesRead = inputStream.read(buffer, 0, bufferSize);
          }
 
-         // send multipart form data necesssary after file data...
+         // send multipart formResourceName data necesssary after file data...
 
          dos.writeBytes(lineEnd);
          dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

Modified: jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ModelAdaptor.java
===================================================================
--- jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ModelAdaptor.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ModelAdaptor.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -160,8 +160,8 @@
     task.setDueDate(t0.getDueDate());
     task.setCreateDate(t0.getCreate());
     
-    // task form url
-    String url = t0.getForm()!=null ? t0.getForm() : "";
+    // task formResourceName url
+    String url = t0.getFormResourceName()!=null ? t0.getFormResourceName() : "";
     task.setUrl( url );
     
     return task;

Modified: jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/Runner.java
===================================================================
--- jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/Runner.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/Runner.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -37,7 +37,7 @@
       "<body>\n" +
       "\n" +
       "<h2>Please enter your name</h2>\n" +
-      "<form action=\"${form.action}\" method=\"POST\" enctype=\"multipart/form-data\">\n" +
+      "<formResourceName action=\"${formResourceName.action}\" method=\"POST\" enctype=\"multipart/formResourceName-data\">\n" +
       "<input type=\"text\" name=\"name\" value=\"\"><br/>\n" +
       "Outcomes:<br/>\n" +
       "<ul>\n" +
@@ -46,7 +46,7 @@
       "</#list>\n" +
       "</ul> \n" +
       "<input type=\"submit\">\n" +
-      "</form>\n" +
+      "</formResourceName>\n" +
       "</body>\n" +
       "</html>";
 
@@ -60,7 +60,7 @@
     o.getValues().add("transition1");
     o.getValues().add("transition2");
 
-    ctx.put("form", f);
+    ctx.put("formResourceName", f);
     ctx.put("outcome", o);
 
     r.execute(ctx, "testRun", new ByteArrayInputStream(template.getBytes()));

Modified: jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java
===================================================================
--- jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -153,10 +153,10 @@
 
           Map<String, Object> renderContext = new HashMap<String,Object>();
 
-          // form directive
+          // formResourceName directive
           FormDirective formDirective = new FormDirective();
           formDirective.setAction( action.toString() );
-          renderContext.put("form", formDirective);
+          renderContext.put("formResourceName", formDirective);
 
           // outcome directive
           // TODO: Fix when https://jira.jboss.org/jira/browse/JBPM-2220 is done

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartActivity.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartActivity.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -22,15 +22,25 @@
 package org.jbpm.jpdl.internal.activity;
 
 import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.pvm.internal.task.FormBehaviour;
 
 
 /**
  * @author Tom Baeyens
  */
-public class StartActivity extends JpdlActivity {
+public class StartActivity extends JpdlActivity implements FormBehaviour {
 
   private static final long serialVersionUID = 1L;
+  
+  String formResourceName;
 
   public void execute(ActivityExecution execution) {
   }
+
+  public String getFormResourceName() {
+    return formResourceName;
+  }
+  public void setFormResourceName(String formResourceName) {
+    this.formResourceName = formResourceName;
+  }
 }

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -23,6 +23,7 @@
 
 import org.jbpm.jpdl.internal.model.JpdlProcessDefinition;
 import org.jbpm.pvm.internal.model.ActivityImpl;
+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;
@@ -48,7 +49,11 @@
       parse.addProblem("multiple start events not yet supported", element);
     }
     
-    return new StartActivity();
+    StartActivity startActivityBehaviour = new StartActivity();
+    
+    startActivityBehaviour.setFormResourceName(XmlUtil.attribute(element, "form"));
+    
+    return startActivityBehaviour;
   }
 
   public boolean isNameRequired() {

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -456,8 +456,8 @@
     String taskName = XmlUtil.attribute(element, "name");
     taskDefinition.setName(taskName);
 
-    String form = XmlUtil.attribute(element, "form");
-    taskDefinition.setForm(form);
+    String form = XmlUtil.attribute(element, "formResourceName");
+    taskDefinition.setFormResourceName(form);
     
     ProcessDefinitionImpl processDefinition = parse.findObject(ProcessDefinitionImpl.class);
     if (processDefinition.getTaskDefinition(taskName)!=null) {

Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinates.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinates.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinates.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -1,59 +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.pvm.internal.cmd;
-
-import org.jbpm.api.JbpmException;
-import org.jbpm.api.model.ActivityCoordinates;
-import org.jbpm.pvm.internal.env.Environment;
-import org.jbpm.pvm.internal.model.ActivityImpl;
-import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
-import org.jbpm.pvm.internal.session.RepositorySession;
-
-
-/**
- * @author Tom Baeyens
- */
-public class GetActivityCoordinates implements Command<ActivityCoordinates> {
-
-  private static final long serialVersionUID = 1L;
-
-  String processDefinitionId;
-  String activityName;
-  
-  public GetActivityCoordinates(String processDefinitionId, String activityName) {
-    this.processDefinitionId = processDefinitionId;
-    this.activityName = activityName;
-  }
-
-  public ActivityCoordinates execute(Environment environment) throws Exception {
-    RepositorySession repositorySession = environment.get(RepositorySession.class);
-    ProcessDefinitionImpl processDefinition = (ProcessDefinitionImpl) repositorySession.findProcessDefinitionById(processDefinitionId);
-    if (processDefinition==null) {
-      throw new JbpmException("process definition "+processDefinitionId+" doesn't exist");
-    }
-    ActivityImpl activity = processDefinition.findActivity(activityName);
-    if (activity==null) {
-      throw new JbpmException("activity '"+activityName+"' doesn't exist in process definition "+processDefinitionId);
-    }
-    return activity.getCoordinates();
-  }
-}

Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinatesCmd.java (from rev 5134, jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinates.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinatesCmd.java	                        (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinatesCmd.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -0,0 +1,59 @@
+/*
+ * 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.pvm.internal.cmd;
+
+import org.jbpm.api.JbpmException;
+import org.jbpm.api.model.ActivityCoordinates;
+import org.jbpm.pvm.internal.env.Environment;
+import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.session.RepositorySession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class GetActivityCoordinatesCmd implements Command<ActivityCoordinates> {
+
+  private static final long serialVersionUID = 1L;
+
+  String processDefinitionId;
+  String activityName;
+  
+  public GetActivityCoordinatesCmd(String processDefinitionId, String activityName) {
+    this.processDefinitionId = processDefinitionId;
+    this.activityName = activityName;
+  }
+
+  public ActivityCoordinates execute(Environment environment) throws Exception {
+    RepositorySession repositorySession = environment.get(RepositorySession.class);
+    ProcessDefinitionImpl processDefinition = (ProcessDefinitionImpl) repositorySession.findProcessDefinitionById(processDefinitionId);
+    if (processDefinition==null) {
+      throw new JbpmException("process definition "+processDefinitionId+" doesn't exist");
+    }
+    ActivityImpl activity = processDefinition.findActivity(activityName);
+    if (activity==null) {
+      throw new JbpmException("activity '"+activityName+"' doesn't exist in process definition "+processDefinitionId);
+    }
+    return activity.getCoordinates();
+  }
+}


Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetActivityCoordinatesCmd.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartActivityNamesCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartActivityNamesCmd.java	                        (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartActivityNamesCmd.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -0,0 +1,61 @@
+/*
+ * 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.pvm.internal.cmd;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jbpm.pvm.internal.env.Environment;
+import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.session.RepositorySession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class GetStartActivityNamesCmd implements Command<List<String>> {
+
+  private static final long serialVersionUID = 1L;
+  
+  String processDefinitionId;
+  
+  public GetStartActivityNamesCmd(String processDefinitionId) {
+    this.processDefinitionId = processDefinitionId;
+  }
+
+  public List<String> execute(Environment environment) {
+    List<String> activityNames = new ArrayList<String>();
+    
+    RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
+    ProcessDefinitionImpl processDefinition = repositorySession.findProcessDefinitionById(processDefinitionId);
+    
+    for (ActivityImpl activity: (List<ActivityImpl>) processDefinition.getActivities()) {
+      if (activity.getIncomingTransitions().isEmpty()) {
+        activityNames.add(activity.getName());
+      }
+    }
+     
+    return activityNames;
+  }
+
+}


Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartActivityNamesCmd.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartFormResourceNameCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartFormResourceNameCmd.java	                        (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartFormResourceNameCmd.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -0,0 +1,64 @@
+/*
+ * 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.pvm.internal.cmd;
+
+import org.jbpm.api.JbpmException;
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.pvm.internal.env.Environment;
+import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.session.RepositorySession;
+import org.jbpm.pvm.internal.task.FormBehaviour;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class GetStartFormResourceNameCmd implements Command<String> {
+
+  private static final long serialVersionUID = 1L;
+  
+  String processDefinitionId;
+  String activityName;
+  
+  public GetStartFormResourceNameCmd(String processDefinitionId, String activityName) {
+    if (processDefinitionId==null) {
+      throw new JbpmException("processDefinitionId is null");
+    }
+    this.processDefinitionId = processDefinitionId;
+    this.activityName = activityName;
+  }
+
+  public String execute(Environment environment) {
+    RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
+    ProcessDefinitionImpl processDefinition = repositorySession.findProcessDefinitionById(processDefinitionId);
+    
+    ActivityImpl activity = processDefinition.getActivity(activityName);
+    
+    ActivityBehaviour behaviour = activity.getBehaviour();
+    if (behaviour instanceof FormBehaviour) {
+      return ((FormBehaviour)behaviour).getFormResourceName();
+    }
+
+    return null;
+  }
+}


Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartFormResourceNameCmd.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Activity.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Activity.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Activity.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -29,8 +29,8 @@
  * 
  * <p>The activity supports both graph based process models as well as 
  * block structured (tree based) process models.  First we describe 
- * tranisions that can be used to form graph based process structures 
- * and then we'll describe activity composition to form block structured
+ * tranisions that can be used to formResourceName graph based process structures 
+ * and then we'll describe activity composition to formResourceName block structured
  * process models.  Both models can be combined as well.
  * </p>
  * 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -347,10 +347,8 @@
     if (activities!=null) {
       map = new HashMap<String, ActivityImpl>();
       for (ActivityImpl activity: activities) {
-        if (activity.getName()!=null) {
-          if (! map.containsKey(activity.getName())) {
-            map.put(activity.getName(), activity);
-          }
+        if (! map.containsKey(activity.getName())) {
+          map.put(activity.getName(), activity);
         }
       }
     }

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElement.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElement.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElement.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -38,7 +38,7 @@
   /** the list of direct composite activities.  Recursively contained 
    * activities are not included in the list. 
    * Beware: the actual member is returned.  No copy is made. */
-  List<Activity> getActivities();
+  List<? extends Activity> getActivities();
 
   /** indicates if an activity with the given name exists directly in 
    * this element.  Only the direct contained activities are 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElementImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElementImpl.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/CompositeElementImpl.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -125,7 +125,7 @@
   /** the list of nested activities.
    * Beware: the actual member is returned.  No copy is made. 
    */
-  public List<Activity> getActivities() {
+  public List<? extends Activity> getActivities() {
     return (List) activities;
   }
 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -725,7 +725,7 @@
 
     task.setDescription(taskDefinition.getDescription());
     task.setPriority(taskDefinition.getPriority());
-    task.setForm(taskDefinition.getForm());
+    task.setFormResourceName(taskDefinition.getFormResourceName());
     
     // save task so that TaskDbSession.findTaskByExecution works for assign event listeners
     dbSession.saveTask(task);

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryServiceImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryServiceImpl.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryServiceImpl.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -23,6 +23,7 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.util.List;
 
 import org.jbpm.api.DeploymentQuery;
 import org.jbpm.api.NewDeployment;
@@ -33,8 +34,10 @@
 import org.jbpm.pvm.internal.cmd.CreateDeploymentQueryCmd;
 import org.jbpm.pvm.internal.cmd.CreateProcessDefinitionQueryCmd;
 import org.jbpm.pvm.internal.cmd.DeleteDeploymentCmd;
-import org.jbpm.pvm.internal.cmd.GetActivityCoordinates;
+import org.jbpm.pvm.internal.cmd.GetActivityCoordinatesCmd;
 import org.jbpm.pvm.internal.cmd.GetResourceAsStreamCmd;
+import org.jbpm.pvm.internal.cmd.GetStartActivityNamesCmd;
+import org.jbpm.pvm.internal.cmd.GetStartFormResourceNameCmd;
 import org.jbpm.pvm.internal.cmd.ResumeDeploymentCmd;
 import org.jbpm.pvm.internal.cmd.SuspendDeploymentCmd;
 import org.jbpm.pvm.internal.query.DeploymentQueryImpl;
@@ -88,6 +91,14 @@
   }
 
   public ActivityCoordinates getActivityCoordinates(String processDefinitionId, String activityName) {
-    return commandService.execute(new GetActivityCoordinates(processDefinitionId, activityName));
+    return commandService.execute(new GetActivityCoordinatesCmd(processDefinitionId, activityName));
   }
+
+  public List<String> getStartActivityNames(String processDefinitionId) {
+    return commandService.execute(new GetStartActivityNamesCmd(processDefinitionId));
+  }
+
+  public String getStartFormResourceName(String processDefinitionId, String activityName) {
+    return commandService.execute(new GetStartFormResourceNameCmd(processDefinitionId, activityName));
+  }
 }

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/RepositorySession.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/RepositorySession.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/RepositorySession.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -22,7 +22,7 @@
 package org.jbpm.pvm.internal.session;
 
 import org.jbpm.api.NewDeployment;
-import org.jbpm.pvm.internal.client.ClientProcessDefinition;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
 import org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl;
 import org.jbpm.pvm.internal.repository.DeploymentImpl;
 
@@ -43,7 +43,7 @@
   /** create a process definition query */
   ProcessDefinitionQueryImpl createProcessDefinitionQuery();
 
-  ClientProcessDefinition findProcessDefinitionById(String processDefinitionId);
+  ProcessDefinitionImpl findProcessDefinitionById(String processDefinitionId);
 
-  ClientProcessDefinition findProcessDefinitionByKey(String processDefinitionKey);
+  ProcessDefinitionImpl findProcessDefinitionByKey(String processDefinitionKey);
 }

Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/FormBehaviour.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/FormBehaviour.java	                        (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/FormBehaviour.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -0,0 +1,32 @@
+/*
+ * 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.pvm.internal.task;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public interface FormBehaviour {
+  
+  String getFormResourceName();
+
+}


Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/FormBehaviour.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -36,7 +36,7 @@
   private static final long serialVersionUID = 1L;
 
   protected String dueDateDuration;
-  protected String form;
+  protected String formResourceName;
   protected List<TaskDefinitionImpl> subTaskDefinitions = new ArrayList<TaskDefinitionImpl>();
   protected int priority = Priority.NORMAL;
   protected SwimlaneDefinitionImpl swimlaneDefinition;
@@ -66,11 +66,11 @@
   public void setDueDateDuration(String dueDateDuration) {
     this.dueDateDuration = dueDateDuration;
   }
-  public String getForm() {
-    return form;
+  public String getFormResourceName() {
+    return formResourceName;
   }
-  public void setForm(String form) {
-    this.form = form;
+  public void setFormResourceName(String form) {
+    this.formResourceName = form;
   }
   public Descriptor getTaskHandlerDescriptor() {
     return taskHandlerDescriptor;

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -70,7 +70,7 @@
   protected String assignee;
   protected Set<ParticipationImpl> participations = new HashSet<ParticipationImpl>();
 
-  protected String form;
+  protected String formResourceName;
   protected Date create;
   protected Date dueDate;
   protected Integer progress;
@@ -507,11 +507,11 @@
     this.isSignalling = isSignalling;
   }
 
-  public String getForm() {
-    return form;
+  public String getFormResourceName() {
+    return formResourceName;
   }
 
-  public void setForm(String form) {
-    this.form = form;
+  public void setFormResourceName(String form) {
+    this.formResourceName = form;
   }
 }

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/type/Converter.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/type/Converter.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/type/Converter.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -39,7 +39,7 @@
   Object convert(Object o);
 
   /**
-   * reverts a persisted object to its original form.
+   * reverts a persisted object to its original formResourceName.
    */
   Object revert(Object o);
 }

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/DOMWriter.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/DOMWriter.java	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/DOMWriter.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -15,7 +15,7 @@
  * 1. Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
  *
- * 2. Redistributions in binary form must reproduce the above copyright
+ * 2. Redistributions in binary formResourceName must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in
  *    the documentation and/or other materials provided with the
  *    distribution.
@@ -160,7 +160,7 @@
   }
 
   /**
-   * Set wheter entities should appear in their canonical form.
+   * Set wheter entities should appear in their canonical formResourceName.
    * The default is false.
    */
   public DOMWriter setCanonical(boolean canonical)

Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.task.hbm.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.task.hbm.xml	2009-06-26 15:29:08 UTC (rev 5135)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.task.hbm.xml	2009-06-27 12:19:46 UTC (rev 5136)
@@ -19,7 +19,7 @@
     <property name="state" column="STATE_"/>
     <property name="suspendHistoryState" column="SUSPHISTSTATE_" />
     <property name="assignee" column="ASSIGNEE_"/>
-    <property name="form" column="FORM_"/>
+    <property name="formResourceName" column="FORM_"/>
     
     <set name="participations" cascade="all-delete-orphan">
       <key column="TASK_" />

Added: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java	                        (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java	2009-06-27 12:19:46 UTC (rev 5136)
@@ -0,0 +1,111 @@
+/*
+ * 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.test.process;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jbpm.api.ProcessDefinition;
+import org.jbpm.pvm.internal.util.IoUtil;
+import org.jbpm.test.JbpmTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class ProcessDefinitionStartFormTest extends JbpmTestCase {
+  
+  public void testFormInUnnamedStartActivity() {
+    String deploymentDbid =
+      repositoryService.createDeployment()
+          .addResourceFromString("xmlstring.jpdl.xml",       
+            "<process name='make print'>" +
+            "  <start form='org/jbpm/test/process/ProcessDefinitionStartForm.form' />" +
+            "</process>"
+          )
+          .addResourceFromClasspath("org/jbpm/test/process/ProcessDefinitionStartForm.form")       
+          .deploy();
+
+    registerDeployment(deploymentDbid);
+
+    ProcessDefinition processDefinition = 
+      repositoryService
+        .createProcessDefinitionQuery()
+        .processDefinitionName("make print")
+        .uniqueResult();
+    
+    String processDefinitionId = processDefinition.getId();
+    
+    List<String> startActivityNames = repositoryService.getStartActivityNames(processDefinitionId );
+    List<String> expectedStartActivityNames = new ArrayList<String>();
+    expectedStartActivityNames.add(null);
+    
+    assertEquals(expectedStartActivityNames, startActivityNames);
+
+    String startFormResourceName = repositoryService.getStartFormResourceName(processDefinitionId, null);
+    
+    assertEquals("org/jbpm/test/process/ProcessDefinitionStartForm.form", startFormResourceName);
+    
+    InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), startFormResourceName);
+    
+    String formContents = new String(IoUtil.readBytes(formInputStream));
+    assertEquals("start task form", formContents);
+  }
+
+  public void testFormInNamedStartActivity() {
+    String deploymentDbid =
+      repositoryService.createDeployment()
+          .addResourceFromString("xmlstring.jpdl.xml",       
+            "<process name='make print'>" +
+            "  <start name='start' form='org/jbpm/test/process/ProcessDefinitionStartForm.form' />" +
+            "</process>"
+          )
+          .addResourceFromClasspath("org/jbpm/test/process/ProcessDefinitionStartForm.form")       
+          .deploy();
+
+    registerDeployment(deploymentDbid);
+
+    ProcessDefinition processDefinition = 
+      repositoryService
+        .createProcessDefinitionQuery()
+        .processDefinitionName("make print")
+        .uniqueResult();
+    
+    String processDefinitionId = processDefinition.getId();
+    
+    List<String> startActivityNames = repositoryService.getStartActivityNames(processDefinitionId );
+    List<String> expectedStartActivityNames = new ArrayList<String>();
+    expectedStartActivityNames.add("start");
+    
+    assertEquals(expectedStartActivityNames, startActivityNames);
+
+    String startFormResourceName = repositoryService.getStartFormResourceName(processDefinitionId, "start");
+    
+    assertEquals("org/jbpm/test/process/ProcessDefinitionStartForm.form", startFormResourceName);
+    
+    InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), startFormResourceName);
+    
+    String formContents = new String(IoUtil.readBytes(formInputStream));
+    assertEquals("start task form", formContents);
+  }
+}


Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/process/ProcessDefinitionStartForm.form
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/process/ProcessDefinitionStartForm.form	                        (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/process/ProcessDefinitionStartForm.form	2009-06-27 12:19:46 UTC (rev 5136)
@@ -0,0 +1 @@
+start task form
\ No newline at end of file




More information about the jbpm-commits mailing list