...
Attribute | Type | Value |
---|---|---|
context |
| The Camel Context ( It cannot be used in groovy) |
camelContext | org.apache.camel.CamelContext | The Camel Context |
exchange |
| The current Exchange |
request |
| The IN message |
response |
| The OUT message |
properties |
| Camel 2.9: Function with a |
...
If you need to use the Properties component from a script to lookup property placeholders, then its a bit cumbersome to do so.
For example to set a header name myHeader with a value from a property placeholder, which key is provided in a header named "foo".
Code Block |
---|
.setHeader("myHeader").groovy("context.resolvePropertyPlaceholders('{{' + request.headers.get('foo') + '}}')")
|
From Camel 2.9 onwards you can now use the properties function and the same example is simpler:
Code Block | ||
---|---|---|
| ||
.setHeader("myHeader").groovy("properties.resolve(request.headers.get('foo'))")
|
...
You can externalize the script 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:
Code Block | ||
---|---|---|
| ||
.setHeader("myHeader").groovy("resource:classpath:mygroovy.groovy")
|
...
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>
|