JavaScript
Since Camel 3.20
Camel allows JavaScript to be used as an Expression or Predicate in Camel routes.
For example, you can use JavaScript in a Predicate with the Content-Based Router EIP.
JavaScript Options
The JavaScript language supports the following options which are listed below.
| Name | Default | Java Type | Description |
|---|---|---|---|
| The class of the result type (type from output). | ||
|
| Whether to trim the source code to remove leading and trailing whitespaces and line breaks. | |
|
| Whether a result of the expression that is a String starting with resource: is loaded as a resource and its content becomes the result, e.g. a script that returns resource:file:order.json or resource:classpath:templates/order.json (a name without a scheme is a classpath resource). Off by default; the resource: prefix on the expression text itself is always resolved. Applies to the expression used as a value, not as a predicate. |
Variables
| Variable | Type | Description |
|---|---|---|
this | Exchange | the Exchange is the root object |
context | CamelContext | the CamelContext |
exchange | Exchange | the Exchange |
exchangeId | String | the exchange id |
message | Message | the message |
body | Message | the message body |
headers | Map | the message headers |
properties | Map | the exchange properties |
Dependencies
To use JavaScript in your Camel routes, you need to add the dependency on camel-javascript, which implements the JavaScript language (JavaScript with GraalVM).
If you use Maven, you could add the following to your pom.xml, substituting the version number for the latest & greatest release.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-javascript</artifactId>
<version>x.x.x</version>
</dependency>