I have recently upgraded my JBPM implementation from 4.3 to 4.4. However, this has caused a significant problem for me.
As part of my process definition I have the following decision defined:
<decision g="901,209,48,48" name="decision.supplierInitApprover">
<handler expr="#{jbpmDecideHasSupplierApprover}"/>
<transition g="-50,-18" name="result.approver" to="state.supplierInitApproval"/>
<transition g="30,-80" name="result.noApprover" to="state.memberReview">
</decision>
I am expecting the handler expression to be resolved using the Juel script engine as it is my default (and only) script language that I have configured. However since upgrading to 4.4 it appears that this is no longer being resolved by Juel.
Reviewing the source code, I notice there has been a change in the ObjectDescriptor.construct() method that is causing my issue.
In 4.3, it resolved the expression by the following:
Line 180:
} else if (expr!=null) {
ScriptManager scriptManager = ScriptManager.getScriptManager();
object = scriptManager.evaluateExpression(expr, lang);
}
In 4.4 it resolves the expression by the following:
Line 176:
} else if (expression!=null) {
object = expression.evaluateInScope(wireContext.getScopeInstance());
}
Does anyone know how I can fix my problem and have JBPM 4.4 use the ScriptManager and Juel once again?
Thanks in Advance!
Ken