anchor.diff:  
   *Since Camel {since}*
   
  -Camel supports http://www.groovy-lang.org/[Groovy] to allow an
  -xref:manual::expression.adoc[Expression] or xref:manual::predicate.adoc[Predicate] to be
  -used in the xref:manual::dsl.adoc[DSL].
  +Camel has support for using http://www.groovy-lang.org/[Groovy].
   
  -For example you could use Groovy to create an
  -Predicate in a xref:{eip-vc}:eips:filter-eip.adoc[Message
  -Filter] or as an Expression for a
  -xref:{eip-vc}:eips:recipientList-eip.adoc[Recipient List].
  -
  -To use a Groovy expression use the following Java code
  +For example, you can use Groovy in a xref:manual::predicate.adoc[Predicate]
  +with the xref:{eip-vc}:eips:filter-eip.adoc[Message
  +Filter] EIP.
   
   [source,java]
   ---------------------------------------
   groovy("someGroovyExpression")
   ---------------------------------------
   
  -For example you could use the *groovy* function to create an
  -Predicate in a xref:{eip-vc}:eips:filter-eip.adoc[Message Filter] or as an Expression for a
  -Recipient List
  -
   == Groovy Options
  -
  -
   
   // language options: START
   The Groovy language supports 1 options, which are listed below.
  
positive.code:   }
  
  }
  ----------------------------------------------------------------------
  
  ...Camel will use your custom GroovyShell instance (containing your
  custom static imports), instead of the default one.
  
  === Customizing Groovy class file name
  
  You may rarely in need of customizing generated Groovy class file name for debugging purposes.
  This is also possible by implementing `getFileName` method.
  
  [source,java]
  ----------------------------------------------------------------------
  public class CustomGroovyShellFactory implements GroovyShellFactory {
  
    public GroovyShell createGroovyShell(Exchange exchange) {
      return new GroovyShell();
    }
  
    public String getFileName(Exchange exchange) {
      return "Foo.groovy";
    }
  
  }
  ----------------------------------------------------------------------
  
  == Example
  
  [source,java]
  ------------------------------------------------------------------------------------------------
  // lets route if a line item is over $100
  from("queue:foo").filter(groovy("request.lineItems.any { i -> i.value > 100 }")).to("queue:bar")
  ------------------------------------------------------------------------------------------------
  
  And the Spring DSL:
  
  [source,xml]
  -----------------------------------------------------------------------------
          <route>
              <from uri="queue:foo"/>
              <filter>
                  <groovy>request.lineItems.any { i -> i.value > 100 }</groovy>
                  <to uri="queue:bar"/>
              </filter>
          </route>
  -----------------------------------------------------------------------------
  
  == Additional arguments to ScriptingEngine
  
  You can provide additional arguments to the `ScriptingEngine` using a
  header on the Camel message with the key `CamelScriptArguments`. +
   See this example:
  
  == Loading script from external resource
  
  
negative.code: -------------------------------------------------------------------
  .setHeader("myHeader").groovy("resource:classpath:mygroovy.groovy")
  -------------------------------------------------------------------
  
  == Dependencies
  
  