|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jbpm.command.AbstractBaseCommand
org.jbpm.command.AbstractProcessInstanceBaseCommand
org.jbpm.command.ChangeProcessInstanceVersionCommand
public class ChangeProcessInstanceVersionCommand
THIS COMMAND IS NOT YET STABLE, BUT FEEL FREE TO TEST :-)
Status update: Still not complete, but refactored and added simple test cases:
ChangeProcessInstanceVersionCommandTest.
Change the version of a running process instance.
This works only, if the current node is also available in the new
version of the process definition or a name mapping has to be provided.
Currently known limitations:
Tasks cannot move "into" another node. If an active
TaskInstance exists, the Task definition must
exist in the TaskNode with the same (or mapped) name.
Otherwise the right node cannot be found easily because it may be
ambiguous.ProcessState is
a Node like any other, it should work anyway.ProcessInstance can have ProcessLogs point to
old ProcessDefinitions. Hence, delete a ProcessDefinition
may not work and throw an Exception (Integrity constraint violation)Token.id and Node.id
as correlation identifier. After changing the version of a ProcessInstance
the Node.id has changed, so a signal from ESB will result in an exception
and has to be corrected manually.
| Constructor Summary | |
|---|---|
ChangeProcessInstanceVersionCommand()
|
|
ChangeProcessInstanceVersionCommand(long processId,
int newVersion)
|
|
| Method Summary | |
|---|---|
ProcessInstance |
execute(ProcessInstance pi)
|
java.lang.String |
getAdditionalToStringInformation()
|
java.util.Map |
getNameMapping()
Deprecated. use getNodeNameMapping instead |
int |
getNewVersion()
|
java.util.Map |
getNodeNameMapping()
|
long |
getProcessId()
Deprecated. use getProcessInstanceId instead |
java.util.Map |
getTaskNameMapping()
|
ChangeProcessInstanceVersionCommand |
newVersion(int newVersion)
|
ChangeProcessInstanceVersionCommand |
nodeNameMapping(java.util.Map<java.lang.String,java.lang.String> nameMapping)
|
ChangeProcessInstanceVersionCommand |
nodeNameMappingAdd(java.lang.String oldNodeName,
java.lang.String newNodeName)
|
void |
setNameMapping(java.util.Map nameMapping)
Deprecated. use setNodeNameMapping instead |
void |
setNewVersion(int newVersion)
|
void |
setNodeNameMapping(java.util.Map<java.lang.String,java.lang.String> nameMapping)
|
void |
setProcessId(long processId)
Deprecated. use setProcessInstanceId instead |
void |
setTaskNameMapping(java.util.Map<java.lang.String,java.lang.String> nameMapping)
|
ChangeProcessInstanceVersionCommand |
taskNameMapping(java.util.Map<java.lang.String,java.lang.String> nameMapping)
|
ChangeProcessInstanceVersionCommand |
taskNameMappingAdd(java.lang.String oldTaskName,
java.lang.String newNodeName)
|
| Methods inherited from class org.jbpm.command.AbstractProcessInstanceBaseCommand |
|---|
execute, getJbpmContext, getProcessInstanceId, getProcessInstanceIds, getProcessName, getProcessVersion, isOnlyRunning, onlyRunning, processInstanceId, processInstanceIds, processName, processVersion, setOnlyRunning, setProcessInstanceId, setProcessInstanceIds, setProcessName, setProcessVersion, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public ChangeProcessInstanceVersionCommand()
public ChangeProcessInstanceVersionCommand(long processId,
int newVersion)
| Method Detail |
|---|
public java.lang.String getAdditionalToStringInformation()
getAdditionalToStringInformation in class AbstractBaseCommandpublic ProcessInstance execute(ProcessInstance pi)
execute in class AbstractProcessInstanceBaseCommandpublic java.util.Map getNodeNameMapping()
public void setNodeNameMapping(java.util.Map<java.lang.String,java.lang.String> nameMapping)
public int getNewVersion()
public void setNewVersion(int newVersion)
public java.util.Map getTaskNameMapping()
public void setTaskNameMapping(java.util.Map<java.lang.String,java.lang.String> nameMapping)
public long getProcessId()
public void setProcessId(long processId)
public java.util.Map getNameMapping()
public void setNameMapping(java.util.Map nameMapping)
public ChangeProcessInstanceVersionCommand nodeNameMapping(java.util.Map<java.lang.String,java.lang.String> nameMapping)
public ChangeProcessInstanceVersionCommand newVersion(int newVersion)
public ChangeProcessInstanceVersionCommand taskNameMapping(java.util.Map<java.lang.String,java.lang.String> nameMapping)
public ChangeProcessInstanceVersionCommand nodeNameMappingAdd(java.lang.String oldNodeName,
java.lang.String newNodeName)
public ChangeProcessInstanceVersionCommand taskNameMappingAdd(java.lang.String oldTaskName,
java.lang.String newNodeName)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||