Chapter 23. MVEL


Overview

MVEL is a Java-based dynamic language that is similar to OGNL, but is reported to be much faster. The MVEL support is in the camel-mvel module.

Syntax

You use the MVEL dot syntax to invoke Java methods, for example:

Copy to Clipboard Toggle word wrap
getRequest().getBody().getFamilyName()

Because MVEL is dynamically typed, it is unnecessary to cast the message body instance (of Object type) before invoking the getFamilyName() method. You can also use an abbreviated syntax for invoking bean attributes, for example:

Copy to Clipboard Toggle word wrap
request.body.familyName

Adding the MVEL module

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

Example 23.1. Adding the camel-mvel dependency

Copy to Clipboard Toggle word wrap
<!-- Maven POM File -->
<properties>
  <camel-version>2.21.0.fuse-740039-redhat-00001</camel-version>
  ...
</properties>

<dependencies>
  ...
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-mvel</artifactId>
    <version>${camel-version}</version>
  </dependency>
  ...
</dependencies>

Built-in variables

Table 23.1, “MVEL variables” lists the built-in variables that are accessible when using MVEL.

Table 23.1. MVEL variables
NameTypeDescription

this

org.apache.camel.Exchange

The current Exchange

exchange

org.apache.camel.Exchange

The current Exchange

exception

Throwable

the Exchange exception (if any)

exchangeID

String

the Exchange ID

fault

org.apache.camel.Message

The Fault message(if any)

request

org.apache.camel.Message

The IN message

response

org.apache.camel.Message

The OUT message

properties

Map

The Exchange properties

property(name)

Object

The value of the named Exchange property

property(name, type)

Type

The typed value of the named Exchange property

Example

Example 23.2, “Route using MVEL” shows a route that uses MVEL.

Example 23.2. Route using MVEL

Copy to Clipboard Toggle word wrap
<camelContext>
  <route>
    <from uri="seda:foo"/>
    <filter>
      <language langauge="mvel">request.headers.foo == 'bar'</language>
      <to uri="seda:bar"/>
    </filter>
  </route>
</camelContext>
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat, Inc.