I personally agree in general with what you are saying, but I think there is a slight
problem with it. Deployed processes are versioned. Let's say you start with PD1 and
PD2, PD2 is a subprocess of PD1. Each one is version 1, no problem. Then let's say
you redeploy PD2, but forget to redeploy PD1 (PD1 is v1, PD2 is v2). The version 1
definition of PD1 is linked to version 1 of PD2, but if you resolve at runtime, PD1 will
get an instance of PD2 version 2, which is not the correct definition of PD1.
Essentially, resolving subprocesses at runtime invalidates the concept of process
definition versioning. Furthermore, what if you had an instance of a super process that
is currently active and then you deploy an update to one of its subprocesses before the
instance reaches that subprocess? The process would not execute in the manner as expected
when the instance was started.
I believe there was a discussion either in this forum or the developer forum about
allowing a setting to tell jBPM to always just take the latest definition of a subprocess
when executed; you should search for that thread and add your thoughts. I think it was
related to what you're talking about here.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3957014#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...