Hi All:
I have a big problem when suspending/resuming a ProcessInstance in jBPM4.
A few days ago, I saw there are some feature for Suspending/Resume Execution in jBPM4.
So I add this feature to the todolist of my project. But when I start work on this part, I
find there is no method in api package to support these feature.
First I think suspend/resume is similar with the end/delete operation in the
ExecutionService.java, but there is no such method. So I go to the Execution.java,
Fortunately, there are some code for the suspend:
/** indicates that this execution is temporary suspended with the
* {@link #suspend()} method. Human tasks of a suspended execution
* shouldn't show up in people's task list and timers of suspended
* executions shouldn't fire and the execution is locked. Make sure that comparisons
are
* done with .equals and not with '==' because if executions are
* loaded from persistent storage, a new string is created instead
* of the constants. */
String STATE_SUSPENDED = "suspended";
/** is this execution suspended ? */
boolean isSuspended();
But these are just a constants for the suspended state and a method for obtain the
condition of the execution. I see there is some javadoc for {@link #suspend()}, it seems
there may be a method named suspend in the Execution.java. But I can find any method like
that.
Finally I can only to use ExecutionImpl.java in pvm to complete the suspend() and
resume() operation. I think there is totally wrong.
/**
* FIXME: It is wrong to use implement class.
*/
((ExecutionImpl) pi).suspend();
/**
* FIXME: It is wrong to use implement class.
*/
((ExecutionImpl) pi).resume();
Anyone has better solution for this? Thank you very much.
2009-07-01
echo_o
Show replies by date