[[ref-language]]
= Ref Language
//THIS FILE IS COPIED: EDIT THE SOURCE FILE:
:page-source: core/camel-core-languages/src/main/docs/modules/languages/pages/ref-language.adoc
:docTitle: Ref
:artifactId: camel-core-languages
:description: Look up an expression in the Camel Registry and evaluate it.
:since: 2.8
:supportLevel: Stable
include::{cq-version}@camel-quarkus:ROOT:partial$reference/languages/ref.adoc[opts=optional]

*Since Camel {since}*

The Ref Expression Language is really just a way to lookup a custom
Expression or Predicate from the Registry.

This is particular useable in XML DSLs.

== Ref Language options

// language options: START
The Ref language supports 1 options, which are listed below.



[width="100%",cols="2,1m,1m,6",options="header"]
|===
| Name | Default | Java Type | Description
| trim | true | Boolean | Whether to trim the value to remove leading and trailing whitespaces and line breaks
|===
// language options: END

== Example usage

The Splitter in XML DSL can utilize a custom
expression using `<ref>` like:

[source,xml]
----
<bean id="myExpression" class="com.mycompany.MyCustomExpression"/>

<route>
  <from uri="seda:a"/>
  <split>
    <ref>myExpression</ref>   
    <to uri="mock:b"/>
  </split>     
</route>
----

in this case, the Message coming from the seda:a
Endpoint will be splitted using a custom
Expression which has the id `myExpression` in the
Registry.

And the same example using Java DSL:

[source,java]
----
from("seda:a").split().ref("myExpression").to("seda:b");
----

== Dependencies

The Ref language is part of *camel-core*.
