anchor.diff:  * *COMPATIBILITY*: in this mode, the behavior will be exactly as it was before version 5.21: field injection is possible when using delegate expressions and an exception will be thrown when the fields are not defined on the delegate class. This is of course the least safe mode with regards to thread-safety, but it can be needed for backwards compatibility or can be used safely when the delegate expression is used only on one task in a set of process definitions (and thus no concurrent race conditions can happen).
   * *MIXED*: Allows injection when using delegateExpressions but will not throw an exception when the fields are not defined on the delegate. This allows for mixed behaviors where some delegates have injection (for example because they are not singletons) and some don't.
   
  +* *The default mode for Activiti version 5.x is COMPATIBILITY.*
  +* *The default mode for Activiti version 6.x is MIXED.*
  +
   For example, suppose that we're using _MIXED_ mode and we're using the Spring integration. Suppose that we have following beans in the Spring configuration:
   
   [source,xml,linenums]
  
positive.code: 
  The class +ToUpperCaseFieldInjected+ has a field +text+ which is of type +org.activiti.engine.delegate.Expression+. When calling +text.getValue(execution)+, the configured string value +Hello World+ will be returned:
  
  [source,java, linenums]
  ----
  public class ToUpperCaseFieldInjected implements JavaDelegate {
  
  
negative.code: }
  ----
  
  Note that the same rules with regards to thread-safety apply as for service task. Please read the <<serviceTaskFieldInjectionThreadSafety, relevant section>> for more information.
  
  [[taskListeners]]
  
  
  