[Design of JBoss jBPM] - Re: Start process with form
by tom.baeyens@jboss.com
here's the example usage (ProcessDefinitionStartFormTest):
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);
| }
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4240511#4240511
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4240511
15 years, 5 months
[Design of JBoss jBPM] - Re: Start process with form
by tom.baeyens@jboss.com
i'm adding these two to the repository service:
/** 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);
|
task forms are exposed through Task.getForm(). In order to make that method name consistent, I'll be refactoring it to Task.getFormResourceName()
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4240505#4240505
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4240505
15 years, 5 months