ScriptContext
The JSR-223 scripting languages ScriptContext is pre configured with the following attributes all set at ENGINE_SCOPE
:
Attribute |
Type |
Value |
---|---|---|
context |
|
The Camel Context |
exchange |
|
The current Exchange |
request |
|
The IN message |
response |
|
The OUT message |
Attributes
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");
Dependencies
To use scripting languages in your camel routes you need to add the a dependency on camel-script which integrates the JSR-223 scripting engine.
If you use maven you could just add the following to your pom.xml, substituting the version number for the latest & greatest release (see the download page for the latest versions).
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-script</artifactId> <version>1.4.0</version> </dependency>