1. In PVM the process instance and the top level execution were recognized as being the same thing, sans a few extra properties in the process instance. The aggregation of nested executions should be in the Execution itself, while ProcessInstance should extend Execution.
2. Given the above consideration, ExecutionManager and ProcessInstanceManager should be merged.
3. Is "attachment" a synonym of [process] variable? If so, I believe the latter term should be used. Otherwise, can you clarify the concept and whether it maps to an existing class in jBPM 3?
4. The transition router usage model is not clear to me. I guess you are still working on it, tough.
Thanks for your feedback Alex.
In PVM the process instance and the top level execution were recognized as being the same thing
I started a separate thread for this here
Is "attachment" a synonym of [process] variable
Attachments associated with an ExecutionContext are indeed similar to process variables. Only that they use generics, which gives us compile time checking for process variable usage.
Attachments in a more general term can be associated with other constructs as well. The ProcessInstance for example has Attachments as well.
The transition router usage model is not clear to me
It is generally important to separate the concerns of user Activity and the Transition to the next Node. A credit card activity deals with credit card operations and should not have to have intimate knowledge of the ProcessDefinition.
For example if the Node that deals with credit card processing becomes a new Transition "goto checking account on failure" the Activity that deals with the credit card provider should not have to be touched.
Generally, the execution of user code is one thing, taking the next transition is another - both are fundamentally different.