Chapter 29. The Simple Language
Abstract
The simple language is a language that was developed in Apache Camel specifically for the purpose of accessing and manipulating the various parts of an exchange object. The language is not quite as simple as when it was originally created and it now features a comprehensive set of logical operators and conjunctions.
29.1. Java DSL
Simple expressions in Java DSL
In the Java DSL, there are two styles for using the
simple()
command in a route. You can either pass the simple()
command as an argument to a processor, as follows:
from("seda:order") .filter(simple("${in.header.foo}")) .to("mock:fooOrders");
Or you can call the
simple()
command as a sub-clause on the processor, for example:
from("seda:order") .filter() .simple("${in.header.foo}") .to("mock:fooOrders");
Embedding in a string
If you are embedding a simple expression inside a plain text string, you must use the placeholder syntax,
${Expression}
. For example, to embed the in.header.name
expression in a string:
simple("Hello ${in.header.name}, how are you?")
Customizing the start and end tokens
From Java, you can customize the start and end tokens (
{
and }
, by default) by calling the changeFunctionStartToken
static method and the changeFunctionEndToken
static method on the SimpleLanguage
object.
For example, you can change the start and end tokens to
[
and ]
in Java, as follows:
// Java import org.apache.camel.language.simple.SimpleLanguage; ... SimpleLanguage.changeFunctionStartToken("["); SimpleLanguage.changeFunctionEndToken("]");
Note
Customizing the start and end tokens affects all Apache Camel applications that share the same
camel-core
library on their classpath. For example, in an OSGi server this might affect many applications; whereas in a Web application (WAR file) it would affect only the Web application itself.