Python is a remarkably powerful dynamic programming language that is used in a wide
variety of application domains. Python is often compared to Tcl, Perl, Ruby, Scheme or Java.
The Python support is part of the camel-script
module.
To use Python in your routes you need to add a dependency on
camel-script
to your project as shown in
Example 15, “Adding the camel-script dependency”.
Example 15. Adding the camel-script dependency
<!-- Maven POM File --> ... <dependencies> ... <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-script</artifactId> <version>${camel-version}</version> </dependency> ... </dependencies>
Table 8, “Python attributes” lists the built-in attributes that are accessible when using Python.
Table 8. Python attributes
Attribute | Type | Value |
---|---|---|
context | org.apache.camel.CamelContext | The Camel Context |
exchange | org.apache.camel.Exchange | The current Exchange |
request | org.apache.camel.Message | The IN message |
response | org.apache.camel.Message | The OUT message |
The attributes all set at ENGINE_SCOPE
.
Example 16, “Route using Python” shows a route that uses Python.
Example 16. Route using Python
<camelContext> <route> <from uri="direct:start"/> <choice> <when> <langauge langauge="python">if request.headers.get('user') = 'admin'</langauge> <to uri="seda:adminQueue"/> </when> <otherwise> <to uri="seda:regularQueue"/> </otherwise> </choice> </route> </camelContext>