cancel
Showing results for 
Search instead for 
Did you mean: 

Deferred Evaluation Syntax In A Java Service Task

legistrate
Champ in-the-making
Champ in-the-making
I have been reading through the user guide to learn more about the different facets of the Activiti engine. The examples in the section "8.5.3 Java Service Task" raised a question about the syntax for use of expression language in activiti:expression and activiti:delegateExpression attributes. I've done a bit of development with JSP and Servlets, but mostly my team has not kept up to date with the latest standards so I had to look up what the difference was between ${object.property} and #{object.property} (the first used for a activiti:delegateExpression example and the second used for two activiti:expression examples).
http://activiti.org/userguide/index.html#bpmnTask

My research lead me to The Java EE 6 Tutorial, Immediate and Deferred Evaluation Syntax
http://docs.oracle.com/cd/E19226-01/820-7627/bnahr/index.html

It turns out that the first was also historically first and is now used in Unified Expression Language (UEL) to indicate immediate evaluation while the second can be used when the parser implements some sort of lifecycle and is used to request deferred evaluation of the expression.

So here is my question: Do process definitions created in the repository from a parsed .bpmn resource treat these two types of expressions the same way, or are there situations where you would want to use one over the other (and if so, please describe when to use each)?

I search both the docs and the forum for "deferred" but didn't see any info on this topic.
2 REPLIES 2

jbarrez
Star Contributor
Star Contributor
No, there is no difference in the two, as far as I'm aware of. I use $ everywhere.

legistrate
Champ in-the-making
Champ in-the-making
Ok, Thanks!