Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Chapter 24. Python


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.

Adding the script module

To use Python in your routes you need to add a dependency on camel-script to your project as shown in Example 24.1, “Adding the camel-script dependency”.

Example 24.1. Adding the camel-script dependency

<!-- Maven POM File -->

Static import

To use the python() static method in your application code, include the following import statement in your Java source files:
import static org.apache.camel.builder.camel.script.ScriptBuilder.*;

Built-in attributes

Table 24.1, “Python attributes” lists the built-in attributes that are accessible when using Python.

Table 24.1. Python attributes

contextorg.apache.camel.CamelContextThe Camel Context
exchangeorg.apache.camel.ExchangeThe current Exchange
requestorg.apache.camel.MessageThe IN message
responseorg.apache.camel.MessageThe OUT message
propertiesorg.apache.camel.builder.script.PropertiesFunctionFunction with a resolve method to make it easier to use the properties component inside scripts.
The attributes all set at ENGINE_SCOPE.


Example 24.2, “Route using Python” shows a route that uses Python.

Example 24.2. Route using Python

    <from uri="direct:start"/>
        <langauge langauge="python">if request.headers.get('user') = 'admin'</langauge>
        <to uri="seda:adminQueue"/>
        <to uri="seda:regularQueue"/>

Using the properties component

To access a property value from the properties component, invoke the resolve method on the built-in properties attribute, as follows:
Where PropKey is the key of the property you want to resolve, where the key value is of String type.
For more details about the properties component, see .