...
Attribute | Type | Value |
---|---|---|
context | | The Camel Context |
exchange | | The current Exchange |
request | | The IN message |
response | | The OUT message |
properties | | Camel 2.9: Function with a |
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");
This is a bit different using the Spring DSL where you use the expression element that doesn't support setting attributes (yet):
...
<from uri="direct:in"/>
<setHeader headerName="firstName">
<language language="jaskel">user.firstName</language>
</setHeader>
<to uri="seda:users"/>
You can also use predicates e.g. in a Filter:
...
<filter>
<language language="beanshell">request.getHeaders().get("Foo").equals("Bar")</language>
<to uri="direct:next" />
</filter>
See Scripting Languages for the list of languages with explicit DSL support.
Some languages without specific DSL support but known to work with these generic methods include:
...
Language
...
Implementation
...
.
...
...
BeanShell
...
...
beanshell
or bsh
Additional arguments to ScriptingEngine
...
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).
Code Block | ||||
---|---|---|---|---|
| ||||
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-script</artifactId> <version>x.x.x</version> </dependency> |