Constant
Since Camel 1.5
The Constant Expression Language is really just a way to use a constant value or object.
This is a fixed constant value (or object) that is only set once during starting up the route, do not use this if you want dynamic values during routing. |
Example
The setHeader
EIP can utilize a constant
expression like:
<route>
<from uri="seda:a"/>
<setHeader name="theHeader">
<constant>the value</constant>
</setHeader>
<to uri="mock:b"/>
</route>
in this case, the message coming from the seda:a
endpoint will have the header with key theHeader
set its value as the value
(string type).
And the same example using Java DSL:
from("seda:a")
.setHeader("theHeader", constant("the value"))
.to("mock:b");
Specifying type of value
The option resultType
can be used to specify the type of the value, when the value is given
as a String
value, which happens when using XML or YAML DSL:
For example to set a header with int
type you can do:
<route>
<from uri="seda:a"/>
<setHeader name="zipCode">
<constant resultType="int">90210</constant>
</setHeader>
<to uri="mock:b"/>
</route>
Loading constant from external resource
You can externalize the constant and have Camel load it from a resource
such as "classpath:"
, "file:"
, or "http:"
.
This is done using the following syntax: "resource:scheme:location"
,
eg to refer to a file on the classpath you can do:
.setHeader("myHeader").constant("resource:classpath:constant.txt")