[CONF] Apache Camel: Scripting Languages (page edited)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[CONF] Apache Camel: Scripting Languages (page edited)

Dhiraj Bokde (Confluence)

Scripting Languages has been edited by Claus Ibsen (Sep 23, 2008).

(View changes)


Scripting Languages

Camel supports a number of scripting languages which can be used to create an Expression or Predicate via the standard JSR 223 which is a standard part of Java 6. The following scripting languages are integrated into the DSL.

However any JSR 223 scripting language can be used using the generic DSL methods.


The JSR-223 scripting languages ScriptContext is pre configured with the following attributes all set at ENGINE_SCOPE:

Attribute Type Value
context org.apache.camel.CamelContext The Camel Context
exchange org.apache.camel.Exchange The current Exchange
request org.apache.camel.Message The IN message
response org.apache.camel.Message The OUT message


You can add your own attributes with the attribute(name, value) DSL method, such as:

In the sample below we add an attribute user that is an object we already have instantiated as myUser. This object has a getFirstName() method that we want to set as header on the message. We use the groovy language to concat the first and last name into a single string that is returned.

from("direct:in").setHeader("name").groovy("'$user.firstName $user.lastName'").attribute("user", myUser").to("seda:users");

Any scripting language

Camel can run any JSR-223 scripting languages using the script DSL method such as:

from("direct:in").setHeader("firstName").script("jaskel", "user.firstName").attribute("user", myUser").to("seda:users");

See Also