This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new cefe7ca4c095 CAMEL-22583: camel-core - Add bodyType function to simple
language
cefe7ca4c095 is described below
commit cefe7ca4c0956246cc4db3c90bbacf703e5f7cfb
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Jan 14 13:26:20 2026 +0100
CAMEL-22583: camel-core - Add bodyType function to simple language
---
.../org/apache/camel/catalog/languages/simple.json | 143 +++++++++++----------
.../org/apache/camel/catalog/CamelCatalogTest.java | 9 +-
.../language/csimple/joor/OriginalSimpleTest.java | 8 ++
.../org/apache/camel/language/simple/simple.json | 143 +++++++++++----------
.../modules/languages/pages/simple-language.adoc | 2 +
.../camel/language/csimple/CSimpleHelper.java | 8 ++
.../camel/language/simple/SimpleConstants.java | 2 +
.../simple/ast/SimpleFunctionExpression.java | 4 +
.../apache/camel/language/simple/SimpleTest.java | 8 ++
9 files changed, 181 insertions(+), 146 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/simple.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/simple.json
index f7dbf5cd4835..29debf063014 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/simple.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/languages/simple.json
@@ -24,76 +24,77 @@
},
"functions": {
"body": { "index": 0, "kind": "function", "displayName": "Body", "group":
"function", "label": "function", "required": false, "javaType": "Object",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The message body", "ognl": true, "suffix": "}"
},
- "prettyBody": { "index": 1, "kind": "function", "displayName": "Pretty
Body", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the body to a
String, and attempts to pretty print if JSon or XML; otherwise the body is
returned as the String value.", "ognl": false, "suffix": "}" },
- "bodyOneLine": { "index": 2, "kind": "function", "displayName": "Body One
Line", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the body to a
String and removes all line-breaks, so the string is in one line.", "ognl":
false, "suffix": "}" },
- "originalBody": { "index": 3, "kind": "function", "displayName": "Original
Body", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The original incoming body
(only available if allowUseOriginalMessage=true).", "ognl": false, "suffix":
"}" },
- "id": { "index": 4, "kind": "function", "displayName": "Id", "group":
"function", "label": "function", "required": false, "javaType": "String",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The message id", "ognl": false, "suffix": "}"
},
- "messageTimestamp": { "index": 5, "kind": "function", "displayName":
"Message Timestamp", "group": "function", "label": "function", "required":
false, "javaType": "long", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
message timestamp (millis since epoc) that this message originates from. Some
systems like JMS, Kafka, AWS have a timestamp on the event\/message that Camel
received. This method returns the timestamp [...]
- "exchangeId": { "index": 6, "kind": "function", "displayName": "Exchange
Id", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The exchange id", "ognl":
false, "suffix": "}" },
- "exchange": { "index": 7, "kind": "function", "displayName": "Exchange",
"group": "function", "label": "function", "required": false, "javaType":
"org.apache.camel.Exchange", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
current exchange", "ognl": true, "suffix": "}" },
- "exception": { "index": 8, "kind": "function", "displayName": "Exception",
"group": "function", "label": "function", "required": false, "javaType":
"java.lang.Exception", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The exception object
on the exchange (also from caught exceptions), is null if no exception
present.", "ognl": true, "suffix": "}" },
- "exception.message": { "index": 9, "kind": "function", "displayName":
"Exception Message", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exception message (also from caught exceptions), is null if no exception
present.", "ognl": false, "suffix": "}" },
- "exception.stackTrace": { "index": 10, "kind": "function", "displayName":
"Exception Stacktrace", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exception stacktrace (also from caught exceptions), is null if no exception
present.", "ognl": false, "suffix": "}" },
- "threadId": { "index": 11, "kind": "function", "displayName": "Thread Id",
"group": "function", "label": "function", "required": false, "javaType":
"long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the id of the
current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
- "threadName": { "index": 12, "kind": "function", "displayName": "Thread
Name", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the name of the
current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
- "hostName": { "index": 13, "kind": "function", "displayName": "Host Name",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the local hostname
(may be empty if not possible to resolve).", "ognl": false, "suffix": "}" },
- "camelId": { "index": 14, "kind": "function", "displayName": "Camel Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The name of the
CamelContext", "ognl": false, "suffix": "}" },
- "routeId": { "index": 15, "kind": "function", "displayName": "Route Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The route id of the
current route the Exchange is being routed", "ognl": false, "suffix": "}" },
- "fromRouteId": { "index": 16, "kind": "function", "displayName": "From
Route Id", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The original route id
where this exchange was created.", "ognl": false, "suffix": "}" },
- "routeGroup": { "index": 17, "kind": "function", "displayName": "Route
Group", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Returns the route
group of the current route the Exchange is being routed. Not all routes have a
group assigned, so this may be null.", "ognl": false, "suffix": "}" },
- "stepId": { "index": 18, "kind": "function", "displayName": "Step Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the id of the
current step the Exchange is being routed.", "ognl": false, "suffix": "}" },
- "null": { "index": 19, "kind": "function", "displayName": "Null", "group":
"function", "label": "function", "required": false, "javaType": "Object",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "Represents a null value", "ognl": false,
"suffix": "}" },
- "messageAs(type)": { "index": 20, "kind": "function", "displayName":
"Message As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
to the given type (classname).", "ognl": true, "suffix": "}" },
- "bodyAs(type)": { "index": 21, "kind": "function", "displayName": "Body
As", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the message body
to the given type (classname).", "ognl": true, "suffix": "}" },
- "mandatoryBodyAs(type)": { "index": 22, "kind": "function", "displayName":
"Mandatory Body As", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Converts the message body to the given type (classname). If the body is null
then the function will fail with an exception", "ognl": true, "suffix": "}" },
- "headerAs(key,type)": { "index": 23, "kind": "function", "displayName":
"Header As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
header to the given type (classname).", "ognl": false, "suffix": "}" },
- "headers": { "index": 24, "kind": "function", "displayName": "Headers",
"group": "function", "label": "function", "required": false, "javaType":
"java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns all the message
headers in a Map", "ognl": false, "suffix": "}" },
- "header.name": { "index": 25, "kind": "function", "displayName": "Header",
"group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The message header with
the given name", "ognl": true, "suffix": "}" },
- "variableAs(key,type)": { "index": 26, "kind": "function", "displayName":
"Variable As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the variable
to the given type (classname).", "ognl": false, "suffix": "}" },
- "variables": { "index": 27, "kind": "function", "displayName":
"Variables", "group": "function", "label": "function", "required": false,
"javaType": "java.util.Map", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns all the variables from the current Exchange in a Map", "ognl": false,
"suffix": "}" },
- "variable.name": { "index": 28, "kind": "function", "displayName":
"Variable", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The variable with the
given name", "ognl": true, "suffix": "}" },
- "exchangeProperty.name": { "index": 29, "kind": "function", "displayName":
"Exchange Property", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exchange property with the given name", "ognl": true, "suffix": "}" },
- "camelContext": { "index": 30, "kind": "function", "displayName": "Camel
Context", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The Camel Context",
"ognl": true, "suffix": "}" },
- "jq(input,exp)": { "index": 31, "kind": "function", "displayName": "JQ",
"group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "When working with JSon
data, then this allows using the JQ language, for example, to extract data from
the message body (in JSon format). This requires having camel-jq JAR on the
classpath. For input (optional), you can [...]
- "jsonpath(input,exp)": { "index": 32, "kind": "function", "displayName":
"JSonPath", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "When working with JSon
data, then this allows using the JSonPath language, for example, to extract
data from the message body (in JSon format). This requires having
camel-jsonpath JAR on the classpath. For i [...]
- "xpath(input,exp)": { "index": 33, "kind": "function", "displayName":
"XPath", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "When working with XML
data, then this allows using the XPath language, for example, to extract data
from the message body (in XML format). This requires having camel-xpath JAR on
the classpath. For input (optional [...]
- "sys.name": { "index": 34, "kind": "function", "displayName": "JVM System
Property", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The JVM system
property with the given name", "ognl": false, "suffix": "}" },
- "env.name": { "index": 35, "kind": "function", "displayName": "OS
Environment Variable", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
OS environment variable with the given name", "ognl": false, "suffix": "}" },
- "pretty(exp)": { "index": 36, "kind": "function", "displayName": "Pretty
Print", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the
expression to a String, and attempts to pretty print if JSon or XML, otherwise
the expression is returned as the String value.", "ognl": false, "suffix": "}"
},
- "date(command)": { "index": 37, "kind": "function", "displayName": "Parse
Date", "group": "function", "label": "function", "required": false, "javaType":
"java.util.Date", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Evaluates to a
java.util.Date object. Supported commands are: `now` for current timestamp,
`exchangeCreated` for the timestamp when the current exchange was created,
`header.xxx` to use the Long\/Date ob [...]
- "date-with-timezone(command:timezone:pattern)": { "index": 38, "kind":
"function", "displayName": "Date Formatter", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Formats the date to a String using the given date
pattern, and with support for timezone. Supported commands are: `now` for
current timestamp, `exchangeCreated` for the timesta [...]
- "bean(name.method)": { "index": 39, "kind": "function", "displayName":
"Call Java Bean", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Calls a Java bean. The
name of the bean can also refer to a class name using type prefix as follows
`bean:type:com.foo.MyClass`. If no method name is given then Camel will
automatic attempt to find the b [...]
- "propertiesExist:key": { "index": 40, "kind": "function", "displayName":
"Property Placeholder Exists", "group": "function", "label": "function",
"required": false, "javaType": "boolean", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Checks whether a property placeholder with the given key exists or not. The
result can be negated by prefixing the key with !", "ognl": false, "suffix":
"}" },
- "properties:key:default": { "index": 41, "kind": "function",
"displayName": "Property Placeholder", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Lookup a property placeholder with the given key. If the
key does not exist nor has a value, then an optional default value can be
specified.", "ognl": false, "suffix": "}" },
- "ref:name": { "index": 42, "kind": "function", "displayName": "Bean By
Id", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "To look up a bean from the
Registry with the given name.", "ognl": false, "suffix": "}" },
- "type:name.field": { "index": 43, "kind": "function", "displayName": "Java
Field Value", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "To refer to a type or
field by its classname. To refer to a field, you can append .FIELD_NAME. For
example, you can refer to the constant field from Exchange as:
`org.apache.camel.Exchange.FILE_NAME`", " [...]
- "replace(from,to,exp)": { "index": 44, "kind": "function", "displayName":
"Replace String Values", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Replace all the string values in the message body\/expression. To make it
easier to replace single and double quotes, then you can use XML escaped values
`\\"` as double quote, `\\'` [...]
- "substring(head,tail)": { "index": 45, "kind": "function", "displayName":
"Substring", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Returns a substring of
the message body\/expression. If only one positive number, then the returned
string is clipped from the beginning. If only one negative number, then the
returned string is clipped fr [...]
- "random(min,max)": { "index": 46, "kind": "function", "displayName":
"Generate Random Number", "group": "function", "label": "function", "required":
false, "javaType": "int", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a random number between min (included) and max (excluded).", "ognl":
false, "suffix": "}" },
- "skip(num)": { "index": 47, "kind": "function", "displayName": "Skip First
Items from the Message Body", "group": "function", "label": "function",
"required": false, "javaType": "java.util.Iterator", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The skip function iterates the message body and skips
the first number of items. This can be used with the Splitter EIP to split a
message body and skip the first N number of [...]
- "convertTo(exp,type)": { "index": 48, "kind": "function", "displayName":
"Convert To", "group": "function", "label": "function", "required": false,
"javaType": "", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the message body
(or expression) to the specified type.", "ognl": true, "suffix": "}" },
- "trim(exp)": { "index": 49, "kind": "function", "displayName": "Trim",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The trim function trims
the message body (or expression) by removing all leading and trailing white
spaces.", "ognl": false, "suffix": "}" },
- "length(exp)": { "index": 50, "kind": "function", "displayName": "Length",
"group": "function", "label": "function", "required": false, "javaType": "int",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The payload length (number of bytes) of the
message body (or expression).", "ognl": false, "suffix": "}" },
- "size(exp)": { "index": 51, "kind": "function", "displayName": "Size",
"group": "function", "label": "function", "required": false, "javaType": "int",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The size of the message body (or expression).
If the payload is java.util.Collection or java.util.Map based then the size is
the number of elements; otherwise the payload size in bytes.", "ognl": false,
"suffix": "}" },
- "uppercase(exp)": { "index": 52, "kind": "function", "displayName":
"Uppercase", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Uppercases the message
body (or expression)", "ognl": false, "suffix": "}" },
- "lowercase(exp)": { "index": 53, "kind": "function", "displayName":
"Lowercase", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Lowercases the message
body (or expression)", "ognl": false, "suffix": "}" },
- "concat(exp,exp,separator)": { "index": 54, "kind": "function",
"displayName": "Concat", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Performs a string concat using two expressions (message body as default) with
optional separator", "ognl": false, "suffix": "}" },
- "collate(num)": { "index": 55, "kind": "function", "displayName": "Group
Message Body into Sub Lists", "group": "function", "label": "function",
"required": false, "javaType": "java.util.Iterator", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The collate function iterates the message body and
groups the data into sub lists of specified size. This can be used with the
Splitter EIP to split a message body and group\/ba [...]
- "join(separator,prefix,exp)": { "index": 56, "kind": "function",
"displayName": "Join", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
join function iterates the message body\/expression and joins the data into a
string. The separator is by default a comma. The prefix is optional. The join
uses the message body as source by default. [...]
- "messageHistory(boolean)": { "index": 57, "kind": "function",
"displayName": "Print Message History", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The message history of the current exchange (how it has
been routed). This is similar to the route stack-trace message history the
error handler logs in case of an unhandled exception. The b [...]
- "uuid(type)": { "index": 58, "kind": "function", "displayName": "Generate
UUID", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a UUID using the
Camel `UuidGenerator`. You can choose between `default`, `classic`, `short` and
`simple` as the type. If no type is given, the default is used. It is also
possible to use a custom `UuidG [...]
- "hash(exp,algorithm)": { "index": 59, "kind": "function", "displayName":
"Compute Hash Value", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a hashed value (string in hex decimal) of the message body\/expression
using JDK MessageDigest. The algorithm can be SHA-256 (default) or SHA3-256.",
"ognl": false, "suffix": "}" },
- "empty(type)": { "index": 60, "kind": "function", "displayName": "Create
Empty Object", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Creates a new empty
object (decided by type). Use `string` to create an empty String. Use `list` to
create an empty `java.util.ArrayList`. Use `map` to create an empty
`java.util.LinkedHashMap`.", "ognl": [...]
- "iif(predicate,trueExp,falseExp)": { "index": 61, "kind": "function",
"displayName": "If Then Else", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Evaluates the predicate and returns the value of trueExp or falseExp. This
function is similar to the ternary operator in Java.", "ognl": false, "suffix":
"}" },
- "list(val...)": { "index": 62, "kind": "function", "displayName": "Create
List of values", "group": "function", "label": "function", "required": false,
"javaType": "java.util.ArrayList", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
list function creates an ArrayList with the given set of values.", "ognl":
false, "suffix": "}" },
- "map(key1,value1,...)": { "index": 63, "kind": "function", "displayName":
"Create Map of pairs", "group": "function", "label": "function", "required":
false, "javaType": "java.util.LinkedHashMap", "prefix": "${", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The map function creates a LinkedHashMap with the given set of
pairs.", "ognl": false, "suffix": "}" },
- "attachments": { "index": 64, "kind": "function", "displayName":
"Attachments", "group": "function", "label": "function", "required": false,
"javaType": "java.util.Map", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "All
the attachments as a Map<String,DataHandler.", "ognl": false, "suffix": "}" },
- "attachments.size": { "index": 65, "kind": "function", "displayName":
"Attachments", "group": "function", "label": "function", "required": false,
"javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The number of attachments.
Is 0 if there are no attachments.", "ognl": false, "suffix": "}" },
- "attachmentContentAsText": { "index": 66, "kind": "function",
"displayName": "Attachment Content As Text", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The content of the attachment as text (ie String).",
"ognl": false, "suffix": "}" },
- "attachmentContent": { "index": 67, "kind": "function", "displayName":
"Attachment Content", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
content of the attachment", "ognl": false, "suffix": "}" },
- "attachmentContentAs(type)": { "index": 68, "kind": "function",
"displayName": "Attachment Content As", "group": "function", "label":
"function", "required": false, "javaType": "Object", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The content of the attachment, converted to the given
type.", "ognl": false, "suffix": "}" },
- "attachmentHeader(key,name)": { "index": 69, "kind": "function",
"displayName": "Attachment Header", "group": "function", "label": "function",
"required": false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
attachment header with the given name.", "ognl": false, "suffix": "}" },
- "attachmentHeader(key,name,type)": { "index": 70, "kind": "function",
"displayName": "Attachment Header", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
attachment header with the given name, converted to the given type.", "ognl":
false, "suffix": "}" },
- "attachment(key)": { "index": 71, "kind": "function", "displayName":
"Attachment", "group": "function", "label": "function", "required": false,
"javaType": "jakarta.activation.DataHandler", "prefix": "${", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The DataHandler for the given attachment.", "ognl": true,
"suffix": "}" }
+ "bodyType": { "index": 1, "kind": "function", "displayName": "Body Type",
"group": "function", "label": "function", "required": false, "javaType":
"Class", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The message body class
type", "ognl": false, "suffix": "}" },
+ "prettyBody": { "index": 2, "kind": "function", "displayName": "Pretty
Body", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the body to a
String, and attempts to pretty print if JSon or XML; otherwise the body is
returned as the String value.", "ognl": false, "suffix": "}" },
+ "bodyOneLine": { "index": 3, "kind": "function", "displayName": "Body One
Line", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the body to a
String and removes all line-breaks, so the string is in one line.", "ognl":
false, "suffix": "}" },
+ "originalBody": { "index": 4, "kind": "function", "displayName": "Original
Body", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The original incoming body
(only available if allowUseOriginalMessage=true).", "ognl": false, "suffix":
"}" },
+ "id": { "index": 5, "kind": "function", "displayName": "Id", "group":
"function", "label": "function", "required": false, "javaType": "String",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The message id", "ognl": false, "suffix": "}"
},
+ "messageTimestamp": { "index": 6, "kind": "function", "displayName":
"Message Timestamp", "group": "function", "label": "function", "required":
false, "javaType": "long", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
message timestamp (millis since epoc) that this message originates from. Some
systems like JMS, Kafka, AWS have a timestamp on the event\/message that Camel
received. This method returns the timestamp [...]
+ "exchangeId": { "index": 7, "kind": "function", "displayName": "Exchange
Id", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The exchange id", "ognl":
false, "suffix": "}" },
+ "exchange": { "index": 8, "kind": "function", "displayName": "Exchange",
"group": "function", "label": "function", "required": false, "javaType":
"org.apache.camel.Exchange", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
current exchange", "ognl": true, "suffix": "}" },
+ "exception": { "index": 9, "kind": "function", "displayName": "Exception",
"group": "function", "label": "function", "required": false, "javaType":
"java.lang.Exception", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The exception object
on the exchange (also from caught exceptions), is null if no exception
present.", "ognl": true, "suffix": "}" },
+ "exception.message": { "index": 10, "kind": "function", "displayName":
"Exception Message", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exception message (also from caught exceptions), is null if no exception
present.", "ognl": false, "suffix": "}" },
+ "exception.stackTrace": { "index": 11, "kind": "function", "displayName":
"Exception Stacktrace", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exception stacktrace (also from caught exceptions), is null if no exception
present.", "ognl": false, "suffix": "}" },
+ "threadId": { "index": 12, "kind": "function", "displayName": "Thread Id",
"group": "function", "label": "function", "required": false, "javaType":
"long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the id of the
current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
+ "threadName": { "index": 13, "kind": "function", "displayName": "Thread
Name", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the name of the
current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
+ "hostName": { "index": 14, "kind": "function", "displayName": "Host Name",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the local hostname
(may be empty if not possible to resolve).", "ognl": false, "suffix": "}" },
+ "camelId": { "index": 15, "kind": "function", "displayName": "Camel Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The name of the
CamelContext", "ognl": false, "suffix": "}" },
+ "routeId": { "index": 16, "kind": "function", "displayName": "Route Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The route id of the
current route the Exchange is being routed", "ognl": false, "suffix": "}" },
+ "fromRouteId": { "index": 17, "kind": "function", "displayName": "From
Route Id", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The original route id
where this exchange was created.", "ognl": false, "suffix": "}" },
+ "routeGroup": { "index": 18, "kind": "function", "displayName": "Route
Group", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Returns the route
group of the current route the Exchange is being routed. Not all routes have a
group assigned, so this may be null.", "ognl": false, "suffix": "}" },
+ "stepId": { "index": 19, "kind": "function", "displayName": "Step Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the id of the
current step the Exchange is being routed.", "ognl": false, "suffix": "}" },
+ "null": { "index": 20, "kind": "function", "displayName": "Null", "group":
"function", "label": "function", "required": false, "javaType": "Object",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "Represents a null value", "ognl": false,
"suffix": "}" },
+ "messageAs(type)": { "index": 21, "kind": "function", "displayName":
"Message As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
to the given type (classname).", "ognl": true, "suffix": "}" },
+ "bodyAs(type)": { "index": 22, "kind": "function", "displayName": "Body
As", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the message body
to the given type (classname).", "ognl": true, "suffix": "}" },
+ "mandatoryBodyAs(type)": { "index": 23, "kind": "function", "displayName":
"Mandatory Body As", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Converts the message body to the given type (classname). If the body is null
then the function will fail with an exception", "ognl": true, "suffix": "}" },
+ "headerAs(key,type)": { "index": 24, "kind": "function", "displayName":
"Header As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
header to the given type (classname).", "ognl": false, "suffix": "}" },
+ "headers": { "index": 25, "kind": "function", "displayName": "Headers",
"group": "function", "label": "function", "required": false, "javaType":
"java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns all the message
headers in a Map", "ognl": false, "suffix": "}" },
+ "header.name": { "index": 26, "kind": "function", "displayName": "Header",
"group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The message header with
the given name", "ognl": true, "suffix": "}" },
+ "variableAs(key,type)": { "index": 27, "kind": "function", "displayName":
"Variable As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the variable
to the given type (classname).", "ognl": false, "suffix": "}" },
+ "variables": { "index": 28, "kind": "function", "displayName":
"Variables", "group": "function", "label": "function", "required": false,
"javaType": "java.util.Map", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns all the variables from the current Exchange in a Map", "ognl": false,
"suffix": "}" },
+ "variable.name": { "index": 29, "kind": "function", "displayName":
"Variable", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The variable with the
given name", "ognl": true, "suffix": "}" },
+ "exchangeProperty.name": { "index": 30, "kind": "function", "displayName":
"Exchange Property", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exchange property with the given name", "ognl": true, "suffix": "}" },
+ "camelContext": { "index": 31, "kind": "function", "displayName": "Camel
Context", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The Camel Context",
"ognl": true, "suffix": "}" },
+ "jq(input,exp)": { "index": 32, "kind": "function", "displayName": "JQ",
"group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "When working with JSon
data, then this allows using the JQ language, for example, to extract data from
the message body (in JSon format). This requires having camel-jq JAR on the
classpath. For input (optional), you can [...]
+ "jsonpath(input,exp)": { "index": 33, "kind": "function", "displayName":
"JSonPath", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "When working with JSon
data, then this allows using the JSonPath language, for example, to extract
data from the message body (in JSon format). This requires having
camel-jsonpath JAR on the classpath. For i [...]
+ "xpath(input,exp)": { "index": 34, "kind": "function", "displayName":
"XPath", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "When working with XML
data, then this allows using the XPath language, for example, to extract data
from the message body (in XML format). This requires having camel-xpath JAR on
the classpath. For input (optional [...]
+ "sys.name": { "index": 35, "kind": "function", "displayName": "JVM System
Property", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The JVM system
property with the given name", "ognl": false, "suffix": "}" },
+ "env.name": { "index": 36, "kind": "function", "displayName": "OS
Environment Variable", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
OS environment variable with the given name", "ognl": false, "suffix": "}" },
+ "pretty(exp)": { "index": 37, "kind": "function", "displayName": "Pretty
Print", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the
expression to a String, and attempts to pretty print if JSon or XML, otherwise
the expression is returned as the String value.", "ognl": false, "suffix": "}"
},
+ "date(command)": { "index": 38, "kind": "function", "displayName": "Parse
Date", "group": "function", "label": "function", "required": false, "javaType":
"java.util.Date", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Evaluates to a
java.util.Date object. Supported commands are: `now` for current timestamp,
`exchangeCreated` for the timestamp when the current exchange was created,
`header.xxx` to use the Long\/Date ob [...]
+ "date-with-timezone(command:timezone:pattern)": { "index": 39, "kind":
"function", "displayName": "Date Formatter", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Formats the date to a String using the given date
pattern, and with support for timezone. Supported commands are: `now` for
current timestamp, `exchangeCreated` for the timesta [...]
+ "bean(name.method)": { "index": 40, "kind": "function", "displayName":
"Call Java Bean", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Calls a Java bean. The
name of the bean can also refer to a class name using type prefix as follows
`bean:type:com.foo.MyClass`. If no method name is given then Camel will
automatic attempt to find the b [...]
+ "propertiesExist:key": { "index": 41, "kind": "function", "displayName":
"Property Placeholder Exists", "group": "function", "label": "function",
"required": false, "javaType": "boolean", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Checks whether a property placeholder with the given key exists or not. The
result can be negated by prefixing the key with !", "ognl": false, "suffix":
"}" },
+ "properties:key:default": { "index": 42, "kind": "function",
"displayName": "Property Placeholder", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Lookup a property placeholder with the given key. If the
key does not exist nor has a value, then an optional default value can be
specified.", "ognl": false, "suffix": "}" },
+ "ref:name": { "index": 43, "kind": "function", "displayName": "Bean By
Id", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "To look up a bean from the
Registry with the given name.", "ognl": false, "suffix": "}" },
+ "type:name.field": { "index": 44, "kind": "function", "displayName": "Java
Field Value", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "To refer to a type or
field by its classname. To refer to a field, you can append .FIELD_NAME. For
example, you can refer to the constant field from Exchange as:
`org.apache.camel.Exchange.FILE_NAME`", " [...]
+ "replace(from,to,exp)": { "index": 45, "kind": "function", "displayName":
"Replace String Values", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Replace all the string values in the message body\/expression. To make it
easier to replace single and double quotes, then you can use XML escaped values
`\\"` as double quote, `\\'` [...]
+ "substring(head,tail)": { "index": 46, "kind": "function", "displayName":
"Substring", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Returns a substring of
the message body\/expression. If only one positive number, then the returned
string is clipped from the beginning. If only one negative number, then the
returned string is clipped fr [...]
+ "random(min,max)": { "index": 47, "kind": "function", "displayName":
"Generate Random Number", "group": "function", "label": "function", "required":
false, "javaType": "int", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a random number between min (included) and max (excluded).", "ognl":
false, "suffix": "}" },
+ "skip(num)": { "index": 48, "kind": "function", "displayName": "Skip First
Items from the Message Body", "group": "function", "label": "function",
"required": false, "javaType": "java.util.Iterator", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The skip function iterates the message body and skips
the first number of items. This can be used with the Splitter EIP to split a
message body and skip the first N number of [...]
+ "convertTo(exp,type)": { "index": 49, "kind": "function", "displayName":
"Convert To", "group": "function", "label": "function", "required": false,
"javaType": "", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the message body
(or expression) to the specified type.", "ognl": true, "suffix": "}" },
+ "trim(exp)": { "index": 50, "kind": "function", "displayName": "Trim",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The trim function trims
the message body (or expression) by removing all leading and trailing white
spaces.", "ognl": false, "suffix": "}" },
+ "length(exp)": { "index": 51, "kind": "function", "displayName": "Length",
"group": "function", "label": "function", "required": false, "javaType": "int",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The payload length (number of bytes) of the
message body (or expression).", "ognl": false, "suffix": "}" },
+ "size(exp)": { "index": 52, "kind": "function", "displayName": "Size",
"group": "function", "label": "function", "required": false, "javaType": "int",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The size of the message body (or expression).
If the payload is java.util.Collection or java.util.Map based then the size is
the number of elements; otherwise the payload size in bytes.", "ognl": false,
"suffix": "}" },
+ "uppercase(exp)": { "index": 53, "kind": "function", "displayName":
"Uppercase", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Uppercases the message
body (or expression)", "ognl": false, "suffix": "}" },
+ "lowercase(exp)": { "index": 54, "kind": "function", "displayName":
"Lowercase", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Lowercases the message
body (or expression)", "ognl": false, "suffix": "}" },
+ "concat(exp,exp,separator)": { "index": 55, "kind": "function",
"displayName": "Concat", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Performs a string concat using two expressions (message body as default) with
optional separator", "ognl": false, "suffix": "}" },
+ "collate(num)": { "index": 56, "kind": "function", "displayName": "Group
Message Body into Sub Lists", "group": "function", "label": "function",
"required": false, "javaType": "java.util.Iterator", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The collate function iterates the message body and
groups the data into sub lists of specified size. This can be used with the
Splitter EIP to split a message body and group\/ba [...]
+ "join(separator,prefix,exp)": { "index": 57, "kind": "function",
"displayName": "Join", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
join function iterates the message body\/expression and joins the data into a
string. The separator is by default a comma. The prefix is optional. The join
uses the message body as source by default. [...]
+ "messageHistory(boolean)": { "index": 58, "kind": "function",
"displayName": "Print Message History", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The message history of the current exchange (how it has
been routed). This is similar to the route stack-trace message history the
error handler logs in case of an unhandled exception. The b [...]
+ "uuid(type)": { "index": 59, "kind": "function", "displayName": "Generate
UUID", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a UUID using the
Camel `UuidGenerator`. You can choose between `default`, `classic`, `short` and
`simple` as the type. If no type is given, the default is used. It is also
possible to use a custom `UuidG [...]
+ "hash(exp,algorithm)": { "index": 60, "kind": "function", "displayName":
"Compute Hash Value", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a hashed value (string in hex decimal) of the message body\/expression
using JDK MessageDigest. The algorithm can be SHA-256 (default) or SHA3-256.",
"ognl": false, "suffix": "}" },
+ "empty(type)": { "index": 61, "kind": "function", "displayName": "Create
Empty Object", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Creates a new empty
object (decided by type). Use `string` to create an empty String. Use `list` to
create an empty `java.util.ArrayList`. Use `map` to create an empty
`java.util.LinkedHashMap`.", "ognl": [...]
+ "iif(predicate,trueExp,falseExp)": { "index": 62, "kind": "function",
"displayName": "If Then Else", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Evaluates the predicate and returns the value of trueExp or falseExp. This
function is similar to the ternary operator in Java.", "ognl": false, "suffix":
"}" },
+ "list(val...)": { "index": 63, "kind": "function", "displayName": "Create
List of values", "group": "function", "label": "function", "required": false,
"javaType": "java.util.ArrayList", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
list function creates an ArrayList with the given set of values.", "ognl":
false, "suffix": "}" },
+ "map(key1,value1,...)": { "index": 64, "kind": "function", "displayName":
"Create Map of pairs", "group": "function", "label": "function", "required":
false, "javaType": "java.util.LinkedHashMap", "prefix": "${", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The map function creates a LinkedHashMap with the given set of
pairs.", "ognl": false, "suffix": "}" },
+ "attachments": { "index": 65, "kind": "function", "displayName":
"Attachments", "group": "function", "label": "function", "required": false,
"javaType": "java.util.Map", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "All
the attachments as a Map<String,DataHandler.", "ognl": false, "suffix": "}" },
+ "attachments.size": { "index": 66, "kind": "function", "displayName":
"Attachments", "group": "function", "label": "function", "required": false,
"javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The number of attachments.
Is 0 if there are no attachments.", "ognl": false, "suffix": "}" },
+ "attachmentContentAsText": { "index": 67, "kind": "function",
"displayName": "Attachment Content As Text", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The content of the attachment as text (ie String).",
"ognl": false, "suffix": "}" },
+ "attachmentContent": { "index": 68, "kind": "function", "displayName":
"Attachment Content", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
content of the attachment", "ognl": false, "suffix": "}" },
+ "attachmentContentAs(type)": { "index": 69, "kind": "function",
"displayName": "Attachment Content As", "group": "function", "label":
"function", "required": false, "javaType": "Object", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The content of the attachment, converted to the given
type.", "ognl": false, "suffix": "}" },
+ "attachmentHeader(key,name)": { "index": 70, "kind": "function",
"displayName": "Attachment Header", "group": "function", "label": "function",
"required": false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
attachment header with the given name.", "ognl": false, "suffix": "}" },
+ "attachmentHeader(key,name,type)": { "index": 71, "kind": "function",
"displayName": "Attachment Header", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
attachment header with the given name, converted to the given type.", "ognl":
false, "suffix": "}" },
+ "attachment(key)": { "index": 72, "kind": "function", "displayName":
"Attachment", "group": "function", "label": "function", "required": false,
"javaType": "jakarta.activation.DataHandler", "prefix": "${", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The DataHandler for the given attachment.", "ognl": true,
"suffix": "}" }
}
}
diff --git
a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index 4b777b25f805..93a9eccaba32 100644
---
a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++
b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -1688,12 +1688,13 @@ public class CamelCatalogTest {
assertEquals("}", model.getFunctions().get(0).getSuffix());
assertEquals("The message body",
model.getFunctions().get(0).getDescription());
- assertEquals("pretty(exp)",
model.getFunctions().get(36).getConstantName());
- assertEquals("${", model.getFunctions().get(36).getPrefix());
- assertEquals("}", model.getFunctions().get(36).getSuffix());
+ var f = model.getFunctions().stream().filter(m ->
m.getConstantName().equals("pretty(exp)")).findFirst().orElseThrow();
+ assertEquals("pretty(exp)", f.getConstantName());
+ assertEquals("${", f.getPrefix());
+ assertEquals("}", f.getSuffix());
assertEquals(
"Converts the expression to a String, and attempts to pretty
print if JSon or XML, otherwise the expression is returned as the String
value.",
- model.getFunctions().get(36).getDescription());
+ f.getDescription());
}
}
diff --git
a/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
b/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
index 118a62abacb5..c27db33de42e 100644
---
a/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
+++
b/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
@@ -1951,6 +1951,14 @@ public class OriginalSimpleTest extends
LanguageTestSupport {
assertEquals("B", data.get(0));
}
+ @Test
+ public void testBodyType() {
+ exchange.getIn().setBody("Hello World");
+ assertExpression("${bodyType}", String.class);
+ exchange.getIn().setBody(123);
+ assertExpression("${bodyType}", Integer.class);
+ }
+
@Test
public void testBodyAsOneLine() {
exchange.getIn().setBody("Hello" + System.lineSeparator() + "Great" +
System.lineSeparator() + "World");
diff --git
a/core/camel-core-languages/src/generated/resources/META-INF/org/apache/camel/language/simple/simple.json
b/core/camel-core-languages/src/generated/resources/META-INF/org/apache/camel/language/simple/simple.json
index f7dbf5cd4835..29debf063014 100644
---
a/core/camel-core-languages/src/generated/resources/META-INF/org/apache/camel/language/simple/simple.json
+++
b/core/camel-core-languages/src/generated/resources/META-INF/org/apache/camel/language/simple/simple.json
@@ -24,76 +24,77 @@
},
"functions": {
"body": { "index": 0, "kind": "function", "displayName": "Body", "group":
"function", "label": "function", "required": false, "javaType": "Object",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The message body", "ognl": true, "suffix": "}"
},
- "prettyBody": { "index": 1, "kind": "function", "displayName": "Pretty
Body", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the body to a
String, and attempts to pretty print if JSon or XML; otherwise the body is
returned as the String value.", "ognl": false, "suffix": "}" },
- "bodyOneLine": { "index": 2, "kind": "function", "displayName": "Body One
Line", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the body to a
String and removes all line-breaks, so the string is in one line.", "ognl":
false, "suffix": "}" },
- "originalBody": { "index": 3, "kind": "function", "displayName": "Original
Body", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The original incoming body
(only available if allowUseOriginalMessage=true).", "ognl": false, "suffix":
"}" },
- "id": { "index": 4, "kind": "function", "displayName": "Id", "group":
"function", "label": "function", "required": false, "javaType": "String",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The message id", "ognl": false, "suffix": "}"
},
- "messageTimestamp": { "index": 5, "kind": "function", "displayName":
"Message Timestamp", "group": "function", "label": "function", "required":
false, "javaType": "long", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
message timestamp (millis since epoc) that this message originates from. Some
systems like JMS, Kafka, AWS have a timestamp on the event\/message that Camel
received. This method returns the timestamp [...]
- "exchangeId": { "index": 6, "kind": "function", "displayName": "Exchange
Id", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The exchange id", "ognl":
false, "suffix": "}" },
- "exchange": { "index": 7, "kind": "function", "displayName": "Exchange",
"group": "function", "label": "function", "required": false, "javaType":
"org.apache.camel.Exchange", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
current exchange", "ognl": true, "suffix": "}" },
- "exception": { "index": 8, "kind": "function", "displayName": "Exception",
"group": "function", "label": "function", "required": false, "javaType":
"java.lang.Exception", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The exception object
on the exchange (also from caught exceptions), is null if no exception
present.", "ognl": true, "suffix": "}" },
- "exception.message": { "index": 9, "kind": "function", "displayName":
"Exception Message", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exception message (also from caught exceptions), is null if no exception
present.", "ognl": false, "suffix": "}" },
- "exception.stackTrace": { "index": 10, "kind": "function", "displayName":
"Exception Stacktrace", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exception stacktrace (also from caught exceptions), is null if no exception
present.", "ognl": false, "suffix": "}" },
- "threadId": { "index": 11, "kind": "function", "displayName": "Thread Id",
"group": "function", "label": "function", "required": false, "javaType":
"long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the id of the
current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
- "threadName": { "index": 12, "kind": "function", "displayName": "Thread
Name", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the name of the
current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
- "hostName": { "index": 13, "kind": "function", "displayName": "Host Name",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the local hostname
(may be empty if not possible to resolve).", "ognl": false, "suffix": "}" },
- "camelId": { "index": 14, "kind": "function", "displayName": "Camel Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The name of the
CamelContext", "ognl": false, "suffix": "}" },
- "routeId": { "index": 15, "kind": "function", "displayName": "Route Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The route id of the
current route the Exchange is being routed", "ognl": false, "suffix": "}" },
- "fromRouteId": { "index": 16, "kind": "function", "displayName": "From
Route Id", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The original route id
where this exchange was created.", "ognl": false, "suffix": "}" },
- "routeGroup": { "index": 17, "kind": "function", "displayName": "Route
Group", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Returns the route
group of the current route the Exchange is being routed. Not all routes have a
group assigned, so this may be null.", "ognl": false, "suffix": "}" },
- "stepId": { "index": 18, "kind": "function", "displayName": "Step Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the id of the
current step the Exchange is being routed.", "ognl": false, "suffix": "}" },
- "null": { "index": 19, "kind": "function", "displayName": "Null", "group":
"function", "label": "function", "required": false, "javaType": "Object",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "Represents a null value", "ognl": false,
"suffix": "}" },
- "messageAs(type)": { "index": 20, "kind": "function", "displayName":
"Message As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
to the given type (classname).", "ognl": true, "suffix": "}" },
- "bodyAs(type)": { "index": 21, "kind": "function", "displayName": "Body
As", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the message body
to the given type (classname).", "ognl": true, "suffix": "}" },
- "mandatoryBodyAs(type)": { "index": 22, "kind": "function", "displayName":
"Mandatory Body As", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Converts the message body to the given type (classname). If the body is null
then the function will fail with an exception", "ognl": true, "suffix": "}" },
- "headerAs(key,type)": { "index": 23, "kind": "function", "displayName":
"Header As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
header to the given type (classname).", "ognl": false, "suffix": "}" },
- "headers": { "index": 24, "kind": "function", "displayName": "Headers",
"group": "function", "label": "function", "required": false, "javaType":
"java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns all the message
headers in a Map", "ognl": false, "suffix": "}" },
- "header.name": { "index": 25, "kind": "function", "displayName": "Header",
"group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The message header with
the given name", "ognl": true, "suffix": "}" },
- "variableAs(key,type)": { "index": 26, "kind": "function", "displayName":
"Variable As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the variable
to the given type (classname).", "ognl": false, "suffix": "}" },
- "variables": { "index": 27, "kind": "function", "displayName":
"Variables", "group": "function", "label": "function", "required": false,
"javaType": "java.util.Map", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns all the variables from the current Exchange in a Map", "ognl": false,
"suffix": "}" },
- "variable.name": { "index": 28, "kind": "function", "displayName":
"Variable", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The variable with the
given name", "ognl": true, "suffix": "}" },
- "exchangeProperty.name": { "index": 29, "kind": "function", "displayName":
"Exchange Property", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exchange property with the given name", "ognl": true, "suffix": "}" },
- "camelContext": { "index": 30, "kind": "function", "displayName": "Camel
Context", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The Camel Context",
"ognl": true, "suffix": "}" },
- "jq(input,exp)": { "index": 31, "kind": "function", "displayName": "JQ",
"group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "When working with JSon
data, then this allows using the JQ language, for example, to extract data from
the message body (in JSon format). This requires having camel-jq JAR on the
classpath. For input (optional), you can [...]
- "jsonpath(input,exp)": { "index": 32, "kind": "function", "displayName":
"JSonPath", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "When working with JSon
data, then this allows using the JSonPath language, for example, to extract
data from the message body (in JSon format). This requires having
camel-jsonpath JAR on the classpath. For i [...]
- "xpath(input,exp)": { "index": 33, "kind": "function", "displayName":
"XPath", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "When working with XML
data, then this allows using the XPath language, for example, to extract data
from the message body (in XML format). This requires having camel-xpath JAR on
the classpath. For input (optional [...]
- "sys.name": { "index": 34, "kind": "function", "displayName": "JVM System
Property", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The JVM system
property with the given name", "ognl": false, "suffix": "}" },
- "env.name": { "index": 35, "kind": "function", "displayName": "OS
Environment Variable", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
OS environment variable with the given name", "ognl": false, "suffix": "}" },
- "pretty(exp)": { "index": 36, "kind": "function", "displayName": "Pretty
Print", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the
expression to a String, and attempts to pretty print if JSon or XML, otherwise
the expression is returned as the String value.", "ognl": false, "suffix": "}"
},
- "date(command)": { "index": 37, "kind": "function", "displayName": "Parse
Date", "group": "function", "label": "function", "required": false, "javaType":
"java.util.Date", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Evaluates to a
java.util.Date object. Supported commands are: `now` for current timestamp,
`exchangeCreated` for the timestamp when the current exchange was created,
`header.xxx` to use the Long\/Date ob [...]
- "date-with-timezone(command:timezone:pattern)": { "index": 38, "kind":
"function", "displayName": "Date Formatter", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Formats the date to a String using the given date
pattern, and with support for timezone. Supported commands are: `now` for
current timestamp, `exchangeCreated` for the timesta [...]
- "bean(name.method)": { "index": 39, "kind": "function", "displayName":
"Call Java Bean", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Calls a Java bean. The
name of the bean can also refer to a class name using type prefix as follows
`bean:type:com.foo.MyClass`. If no method name is given then Camel will
automatic attempt to find the b [...]
- "propertiesExist:key": { "index": 40, "kind": "function", "displayName":
"Property Placeholder Exists", "group": "function", "label": "function",
"required": false, "javaType": "boolean", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Checks whether a property placeholder with the given key exists or not. The
result can be negated by prefixing the key with !", "ognl": false, "suffix":
"}" },
- "properties:key:default": { "index": 41, "kind": "function",
"displayName": "Property Placeholder", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Lookup a property placeholder with the given key. If the
key does not exist nor has a value, then an optional default value can be
specified.", "ognl": false, "suffix": "}" },
- "ref:name": { "index": 42, "kind": "function", "displayName": "Bean By
Id", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "To look up a bean from the
Registry with the given name.", "ognl": false, "suffix": "}" },
- "type:name.field": { "index": 43, "kind": "function", "displayName": "Java
Field Value", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "To refer to a type or
field by its classname. To refer to a field, you can append .FIELD_NAME. For
example, you can refer to the constant field from Exchange as:
`org.apache.camel.Exchange.FILE_NAME`", " [...]
- "replace(from,to,exp)": { "index": 44, "kind": "function", "displayName":
"Replace String Values", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Replace all the string values in the message body\/expression. To make it
easier to replace single and double quotes, then you can use XML escaped values
`\\"` as double quote, `\\'` [...]
- "substring(head,tail)": { "index": 45, "kind": "function", "displayName":
"Substring", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Returns a substring of
the message body\/expression. If only one positive number, then the returned
string is clipped from the beginning. If only one negative number, then the
returned string is clipped fr [...]
- "random(min,max)": { "index": 46, "kind": "function", "displayName":
"Generate Random Number", "group": "function", "label": "function", "required":
false, "javaType": "int", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a random number between min (included) and max (excluded).", "ognl":
false, "suffix": "}" },
- "skip(num)": { "index": 47, "kind": "function", "displayName": "Skip First
Items from the Message Body", "group": "function", "label": "function",
"required": false, "javaType": "java.util.Iterator", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The skip function iterates the message body and skips
the first number of items. This can be used with the Splitter EIP to split a
message body and skip the first N number of [...]
- "convertTo(exp,type)": { "index": 48, "kind": "function", "displayName":
"Convert To", "group": "function", "label": "function", "required": false,
"javaType": "", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the message body
(or expression) to the specified type.", "ognl": true, "suffix": "}" },
- "trim(exp)": { "index": 49, "kind": "function", "displayName": "Trim",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The trim function trims
the message body (or expression) by removing all leading and trailing white
spaces.", "ognl": false, "suffix": "}" },
- "length(exp)": { "index": 50, "kind": "function", "displayName": "Length",
"group": "function", "label": "function", "required": false, "javaType": "int",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The payload length (number of bytes) of the
message body (or expression).", "ognl": false, "suffix": "}" },
- "size(exp)": { "index": 51, "kind": "function", "displayName": "Size",
"group": "function", "label": "function", "required": false, "javaType": "int",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The size of the message body (or expression).
If the payload is java.util.Collection or java.util.Map based then the size is
the number of elements; otherwise the payload size in bytes.", "ognl": false,
"suffix": "}" },
- "uppercase(exp)": { "index": 52, "kind": "function", "displayName":
"Uppercase", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Uppercases the message
body (or expression)", "ognl": false, "suffix": "}" },
- "lowercase(exp)": { "index": 53, "kind": "function", "displayName":
"Lowercase", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Lowercases the message
body (or expression)", "ognl": false, "suffix": "}" },
- "concat(exp,exp,separator)": { "index": 54, "kind": "function",
"displayName": "Concat", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Performs a string concat using two expressions (message body as default) with
optional separator", "ognl": false, "suffix": "}" },
- "collate(num)": { "index": 55, "kind": "function", "displayName": "Group
Message Body into Sub Lists", "group": "function", "label": "function",
"required": false, "javaType": "java.util.Iterator", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The collate function iterates the message body and
groups the data into sub lists of specified size. This can be used with the
Splitter EIP to split a message body and group\/ba [...]
- "join(separator,prefix,exp)": { "index": 56, "kind": "function",
"displayName": "Join", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
join function iterates the message body\/expression and joins the data into a
string. The separator is by default a comma. The prefix is optional. The join
uses the message body as source by default. [...]
- "messageHistory(boolean)": { "index": 57, "kind": "function",
"displayName": "Print Message History", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The message history of the current exchange (how it has
been routed). This is similar to the route stack-trace message history the
error handler logs in case of an unhandled exception. The b [...]
- "uuid(type)": { "index": 58, "kind": "function", "displayName": "Generate
UUID", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a UUID using the
Camel `UuidGenerator`. You can choose between `default`, `classic`, `short` and
`simple` as the type. If no type is given, the default is used. It is also
possible to use a custom `UuidG [...]
- "hash(exp,algorithm)": { "index": 59, "kind": "function", "displayName":
"Compute Hash Value", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a hashed value (string in hex decimal) of the message body\/expression
using JDK MessageDigest. The algorithm can be SHA-256 (default) or SHA3-256.",
"ognl": false, "suffix": "}" },
- "empty(type)": { "index": 60, "kind": "function", "displayName": "Create
Empty Object", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Creates a new empty
object (decided by type). Use `string` to create an empty String. Use `list` to
create an empty `java.util.ArrayList`. Use `map` to create an empty
`java.util.LinkedHashMap`.", "ognl": [...]
- "iif(predicate,trueExp,falseExp)": { "index": 61, "kind": "function",
"displayName": "If Then Else", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Evaluates the predicate and returns the value of trueExp or falseExp. This
function is similar to the ternary operator in Java.", "ognl": false, "suffix":
"}" },
- "list(val...)": { "index": 62, "kind": "function", "displayName": "Create
List of values", "group": "function", "label": "function", "required": false,
"javaType": "java.util.ArrayList", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
list function creates an ArrayList with the given set of values.", "ognl":
false, "suffix": "}" },
- "map(key1,value1,...)": { "index": 63, "kind": "function", "displayName":
"Create Map of pairs", "group": "function", "label": "function", "required":
false, "javaType": "java.util.LinkedHashMap", "prefix": "${", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The map function creates a LinkedHashMap with the given set of
pairs.", "ognl": false, "suffix": "}" },
- "attachments": { "index": 64, "kind": "function", "displayName":
"Attachments", "group": "function", "label": "function", "required": false,
"javaType": "java.util.Map", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "All
the attachments as a Map<String,DataHandler.", "ognl": false, "suffix": "}" },
- "attachments.size": { "index": 65, "kind": "function", "displayName":
"Attachments", "group": "function", "label": "function", "required": false,
"javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The number of attachments.
Is 0 if there are no attachments.", "ognl": false, "suffix": "}" },
- "attachmentContentAsText": { "index": 66, "kind": "function",
"displayName": "Attachment Content As Text", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The content of the attachment as text (ie String).",
"ognl": false, "suffix": "}" },
- "attachmentContent": { "index": 67, "kind": "function", "displayName":
"Attachment Content", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
content of the attachment", "ognl": false, "suffix": "}" },
- "attachmentContentAs(type)": { "index": 68, "kind": "function",
"displayName": "Attachment Content As", "group": "function", "label":
"function", "required": false, "javaType": "Object", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The content of the attachment, converted to the given
type.", "ognl": false, "suffix": "}" },
- "attachmentHeader(key,name)": { "index": 69, "kind": "function",
"displayName": "Attachment Header", "group": "function", "label": "function",
"required": false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
attachment header with the given name.", "ognl": false, "suffix": "}" },
- "attachmentHeader(key,name,type)": { "index": 70, "kind": "function",
"displayName": "Attachment Header", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
attachment header with the given name, converted to the given type.", "ognl":
false, "suffix": "}" },
- "attachment(key)": { "index": 71, "kind": "function", "displayName":
"Attachment", "group": "function", "label": "function", "required": false,
"javaType": "jakarta.activation.DataHandler", "prefix": "${", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The DataHandler for the given attachment.", "ognl": true,
"suffix": "}" }
+ "bodyType": { "index": 1, "kind": "function", "displayName": "Body Type",
"group": "function", "label": "function", "required": false, "javaType":
"Class", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The message body class
type", "ognl": false, "suffix": "}" },
+ "prettyBody": { "index": 2, "kind": "function", "displayName": "Pretty
Body", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the body to a
String, and attempts to pretty print if JSon or XML; otherwise the body is
returned as the String value.", "ognl": false, "suffix": "}" },
+ "bodyOneLine": { "index": 3, "kind": "function", "displayName": "Body One
Line", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the body to a
String and removes all line-breaks, so the string is in one line.", "ognl":
false, "suffix": "}" },
+ "originalBody": { "index": 4, "kind": "function", "displayName": "Original
Body", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The original incoming body
(only available if allowUseOriginalMessage=true).", "ognl": false, "suffix":
"}" },
+ "id": { "index": 5, "kind": "function", "displayName": "Id", "group":
"function", "label": "function", "required": false, "javaType": "String",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The message id", "ognl": false, "suffix": "}"
},
+ "messageTimestamp": { "index": 6, "kind": "function", "displayName":
"Message Timestamp", "group": "function", "label": "function", "required":
false, "javaType": "long", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
message timestamp (millis since epoc) that this message originates from. Some
systems like JMS, Kafka, AWS have a timestamp on the event\/message that Camel
received. This method returns the timestamp [...]
+ "exchangeId": { "index": 7, "kind": "function", "displayName": "Exchange
Id", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The exchange id", "ognl":
false, "suffix": "}" },
+ "exchange": { "index": 8, "kind": "function", "displayName": "Exchange",
"group": "function", "label": "function", "required": false, "javaType":
"org.apache.camel.Exchange", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
current exchange", "ognl": true, "suffix": "}" },
+ "exception": { "index": 9, "kind": "function", "displayName": "Exception",
"group": "function", "label": "function", "required": false, "javaType":
"java.lang.Exception", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The exception object
on the exchange (also from caught exceptions), is null if no exception
present.", "ognl": true, "suffix": "}" },
+ "exception.message": { "index": 10, "kind": "function", "displayName":
"Exception Message", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exception message (also from caught exceptions), is null if no exception
present.", "ognl": false, "suffix": "}" },
+ "exception.stackTrace": { "index": 11, "kind": "function", "displayName":
"Exception Stacktrace", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exception stacktrace (also from caught exceptions), is null if no exception
present.", "ognl": false, "suffix": "}" },
+ "threadId": { "index": 12, "kind": "function", "displayName": "Thread Id",
"group": "function", "label": "function", "required": false, "javaType":
"long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the id of the
current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
+ "threadName": { "index": 13, "kind": "function", "displayName": "Thread
Name", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the name of the
current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
+ "hostName": { "index": 14, "kind": "function", "displayName": "Host Name",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the local hostname
(may be empty if not possible to resolve).", "ognl": false, "suffix": "}" },
+ "camelId": { "index": 15, "kind": "function", "displayName": "Camel Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The name of the
CamelContext", "ognl": false, "suffix": "}" },
+ "routeId": { "index": 16, "kind": "function", "displayName": "Route Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The route id of the
current route the Exchange is being routed", "ognl": false, "suffix": "}" },
+ "fromRouteId": { "index": 17, "kind": "function", "displayName": "From
Route Id", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The original route id
where this exchange was created.", "ognl": false, "suffix": "}" },
+ "routeGroup": { "index": 18, "kind": "function", "displayName": "Route
Group", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Returns the route
group of the current route the Exchange is being routed. Not all routes have a
group assigned, so this may be null.", "ognl": false, "suffix": "}" },
+ "stepId": { "index": 19, "kind": "function", "displayName": "Step Id",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the id of the
current step the Exchange is being routed.", "ognl": false, "suffix": "}" },
+ "null": { "index": 20, "kind": "function", "displayName": "Null", "group":
"function", "label": "function", "required": false, "javaType": "Object",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "Represents a null value", "ognl": false,
"suffix": "}" },
+ "messageAs(type)": { "index": 21, "kind": "function", "displayName":
"Message As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
to the given type (classname).", "ognl": true, "suffix": "}" },
+ "bodyAs(type)": { "index": 22, "kind": "function", "displayName": "Body
As", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the message body
to the given type (classname).", "ognl": true, "suffix": "}" },
+ "mandatoryBodyAs(type)": { "index": 23, "kind": "function", "displayName":
"Mandatory Body As", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Converts the message body to the given type (classname). If the body is null
then the function will fail with an exception", "ognl": true, "suffix": "}" },
+ "headerAs(key,type)": { "index": 24, "kind": "function", "displayName":
"Header As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
header to the given type (classname).", "ognl": false, "suffix": "}" },
+ "headers": { "index": 25, "kind": "function", "displayName": "Headers",
"group": "function", "label": "function", "required": false, "javaType":
"java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns all the message
headers in a Map", "ognl": false, "suffix": "}" },
+ "header.name": { "index": 26, "kind": "function", "displayName": "Header",
"group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The message header with
the given name", "ognl": true, "suffix": "}" },
+ "variableAs(key,type)": { "index": 27, "kind": "function", "displayName":
"Variable As", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the variable
to the given type (classname).", "ognl": false, "suffix": "}" },
+ "variables": { "index": 28, "kind": "function", "displayName":
"Variables", "group": "function", "label": "function", "required": false,
"javaType": "java.util.Map", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns all the variables from the current Exchange in a Map", "ognl": false,
"suffix": "}" },
+ "variable.name": { "index": 29, "kind": "function", "displayName":
"Variable", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The variable with the
given name", "ognl": true, "suffix": "}" },
+ "exchangeProperty.name": { "index": 30, "kind": "function", "displayName":
"Exchange Property", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
exchange property with the given name", "ognl": true, "suffix": "}" },
+ "camelContext": { "index": 31, "kind": "function", "displayName": "Camel
Context", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The Camel Context",
"ognl": true, "suffix": "}" },
+ "jq(input,exp)": { "index": 32, "kind": "function", "displayName": "JQ",
"group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "When working with JSon
data, then this allows using the JQ language, for example, to extract data from
the message body (in JSon format). This requires having camel-jq JAR on the
classpath. For input (optional), you can [...]
+ "jsonpath(input,exp)": { "index": 33, "kind": "function", "displayName":
"JSonPath", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "When working with JSon
data, then this allows using the JSonPath language, for example, to extract
data from the message body (in JSon format). This requires having
camel-jsonpath JAR on the classpath. For i [...]
+ "xpath(input,exp)": { "index": 34, "kind": "function", "displayName":
"XPath", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "When working with XML
data, then this allows using the XPath language, for example, to extract data
from the message body (in XML format). This requires having camel-xpath JAR on
the classpath. For input (optional [...]
+ "sys.name": { "index": 35, "kind": "function", "displayName": "JVM System
Property", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The JVM system
property with the given name", "ognl": false, "suffix": "}" },
+ "env.name": { "index": 36, "kind": "function", "displayName": "OS
Environment Variable", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
OS environment variable with the given name", "ognl": false, "suffix": "}" },
+ "pretty(exp)": { "index": 37, "kind": "function", "displayName": "Pretty
Print", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the
expression to a String, and attempts to pretty print if JSon or XML, otherwise
the expression is returned as the String value.", "ognl": false, "suffix": "}"
},
+ "date(command)": { "index": 38, "kind": "function", "displayName": "Parse
Date", "group": "function", "label": "function", "required": false, "javaType":
"java.util.Date", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Evaluates to a
java.util.Date object. Supported commands are: `now` for current timestamp,
`exchangeCreated` for the timestamp when the current exchange was created,
`header.xxx` to use the Long\/Date ob [...]
+ "date-with-timezone(command:timezone:pattern)": { "index": 39, "kind":
"function", "displayName": "Date Formatter", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Formats the date to a String using the given date
pattern, and with support for timezone. Supported commands are: `now` for
current timestamp, `exchangeCreated` for the timesta [...]
+ "bean(name.method)": { "index": 40, "kind": "function", "displayName":
"Call Java Bean", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Calls a Java bean. The
name of the bean can also refer to a class name using type prefix as follows
`bean:type:com.foo.MyClass`. If no method name is given then Camel will
automatic attempt to find the b [...]
+ "propertiesExist:key": { "index": 41, "kind": "function", "displayName":
"Property Placeholder Exists", "group": "function", "label": "function",
"required": false, "javaType": "boolean", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Checks whether a property placeholder with the given key exists or not. The
result can be negated by prefixing the key with !", "ognl": false, "suffix":
"}" },
+ "properties:key:default": { "index": 42, "kind": "function",
"displayName": "Property Placeholder", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Lookup a property placeholder with the given key. If the
key does not exist nor has a value, then an optional default value can be
specified.", "ognl": false, "suffix": "}" },
+ "ref:name": { "index": 43, "kind": "function", "displayName": "Bean By
Id", "group": "function", "label": "function", "required": false, "javaType":
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "To look up a bean from the
Registry with the given name.", "ognl": false, "suffix": "}" },
+ "type:name.field": { "index": 44, "kind": "function", "displayName": "Java
Field Value", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "To refer to a type or
field by its classname. To refer to a field, you can append .FIELD_NAME. For
example, you can refer to the constant field from Exchange as:
`org.apache.camel.Exchange.FILE_NAME`", " [...]
+ "replace(from,to,exp)": { "index": 45, "kind": "function", "displayName":
"Replace String Values", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Replace all the string values in the message body\/expression. To make it
easier to replace single and double quotes, then you can use XML escaped values
`\\"` as double quote, `\\'` [...]
+ "substring(head,tail)": { "index": 46, "kind": "function", "displayName":
"Substring", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Returns a substring of
the message body\/expression. If only one positive number, then the returned
string is clipped from the beginning. If only one negative number, then the
returned string is clipped fr [...]
+ "random(min,max)": { "index": 47, "kind": "function", "displayName":
"Generate Random Number", "group": "function", "label": "function", "required":
false, "javaType": "int", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a random number between min (included) and max (excluded).", "ognl":
false, "suffix": "}" },
+ "skip(num)": { "index": 48, "kind": "function", "displayName": "Skip First
Items from the Message Body", "group": "function", "label": "function",
"required": false, "javaType": "java.util.Iterator", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The skip function iterates the message body and skips
the first number of items. This can be used with the Splitter EIP to split a
message body and skip the first N number of [...]
+ "convertTo(exp,type)": { "index": 49, "kind": "function", "displayName":
"Convert To", "group": "function", "label": "function", "required": false,
"javaType": "", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Converts the message body
(or expression) to the specified type.", "ognl": true, "suffix": "}" },
+ "trim(exp)": { "index": 50, "kind": "function", "displayName": "Trim",
"group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The trim function trims
the message body (or expression) by removing all leading and trailing white
spaces.", "ognl": false, "suffix": "}" },
+ "length(exp)": { "index": 51, "kind": "function", "displayName": "Length",
"group": "function", "label": "function", "required": false, "javaType": "int",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The payload length (number of bytes) of the
message body (or expression).", "ognl": false, "suffix": "}" },
+ "size(exp)": { "index": 52, "kind": "function", "displayName": "Size",
"group": "function", "label": "function", "required": false, "javaType": "int",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The size of the message body (or expression).
If the payload is java.util.Collection or java.util.Map based then the size is
the number of elements; otherwise the payload size in bytes.", "ognl": false,
"suffix": "}" },
+ "uppercase(exp)": { "index": 53, "kind": "function", "displayName":
"Uppercase", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Uppercases the message
body (or expression)", "ognl": false, "suffix": "}" },
+ "lowercase(exp)": { "index": 54, "kind": "function", "displayName":
"Lowercase", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Lowercases the message
body (or expression)", "ognl": false, "suffix": "}" },
+ "concat(exp,exp,separator)": { "index": 55, "kind": "function",
"displayName": "Concat", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Performs a string concat using two expressions (message body as default) with
optional separator", "ognl": false, "suffix": "}" },
+ "collate(num)": { "index": 56, "kind": "function", "displayName": "Group
Message Body into Sub Lists", "group": "function", "label": "function",
"required": false, "javaType": "java.util.Iterator", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The collate function iterates the message body and
groups the data into sub lists of specified size. This can be used with the
Splitter EIP to split a message body and group\/ba [...]
+ "join(separator,prefix,exp)": { "index": 57, "kind": "function",
"displayName": "Join", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
join function iterates the message body\/expression and joins the data into a
string. The separator is by default a comma. The prefix is optional. The join
uses the message body as source by default. [...]
+ "messageHistory(boolean)": { "index": 58, "kind": "function",
"displayName": "Print Message History", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The message history of the current exchange (how it has
been routed). This is similar to the route stack-trace message history the
error handler logs in case of an unhandled exception. The b [...]
+ "uuid(type)": { "index": 59, "kind": "function", "displayName": "Generate
UUID", "group": "function", "label": "function", "required": false, "javaType":
"String", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a UUID using the
Camel `UuidGenerator`. You can choose between `default`, `classic`, `short` and
`simple` as the type. If no type is given, the default is used. It is also
possible to use a custom `UuidG [...]
+ "hash(exp,algorithm)": { "index": 60, "kind": "function", "displayName":
"Compute Hash Value", "group": "function", "label": "function", "required":
false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a hashed value (string in hex decimal) of the message body\/expression
using JDK MessageDigest. The algorithm can be SHA-256 (default) or SHA3-256.",
"ognl": false, "suffix": "}" },
+ "empty(type)": { "index": 61, "kind": "function", "displayName": "Create
Empty Object", "group": "function", "label": "function", "required": false,
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Creates a new empty
object (decided by type). Use `string` to create an empty String. Use `list` to
create an empty `java.util.ArrayList`. Use `map` to create an empty
`java.util.LinkedHashMap`.", "ognl": [...]
+ "iif(predicate,trueExp,falseExp)": { "index": 62, "kind": "function",
"displayName": "If Then Else", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Evaluates the predicate and returns the value of trueExp or falseExp. This
function is similar to the ternary operator in Java.", "ognl": false, "suffix":
"}" },
+ "list(val...)": { "index": 63, "kind": "function", "displayName": "Create
List of values", "group": "function", "label": "function", "required": false,
"javaType": "java.util.ArrayList", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
list function creates an ArrayList with the given set of values.", "ognl":
false, "suffix": "}" },
+ "map(key1,value1,...)": { "index": 64, "kind": "function", "displayName":
"Create Map of pairs", "group": "function", "label": "function", "required":
false, "javaType": "java.util.LinkedHashMap", "prefix": "${", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The map function creates a LinkedHashMap with the given set of
pairs.", "ognl": false, "suffix": "}" },
+ "attachments": { "index": 65, "kind": "function", "displayName":
"Attachments", "group": "function", "label": "function", "required": false,
"javaType": "java.util.Map", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "All
the attachments as a Map<String,DataHandler.", "ognl": false, "suffix": "}" },
+ "attachments.size": { "index": 66, "kind": "function", "displayName":
"Attachments", "group": "function", "label": "function", "required": false,
"javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The number of attachments.
Is 0 if there are no attachments.", "ognl": false, "suffix": "}" },
+ "attachmentContentAsText": { "index": 67, "kind": "function",
"displayName": "Attachment Content As Text", "group": "function", "label":
"function", "required": false, "javaType": "String", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The content of the attachment as text (ie String).",
"ognl": false, "suffix": "}" },
+ "attachmentContent": { "index": 68, "kind": "function", "displayName":
"Attachment Content", "group": "function", "label": "function", "required":
false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
content of the attachment", "ognl": false, "suffix": "}" },
+ "attachmentContentAs(type)": { "index": 69, "kind": "function",
"displayName": "Attachment Content As", "group": "function", "label":
"function", "required": false, "javaType": "Object", "prefix": "${",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The content of the attachment, converted to the given
type.", "ognl": false, "suffix": "}" },
+ "attachmentHeader(key,name)": { "index": 70, "kind": "function",
"displayName": "Attachment Header", "group": "function", "label": "function",
"required": false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
attachment header with the given name.", "ognl": false, "suffix": "}" },
+ "attachmentHeader(key,name,type)": { "index": 71, "kind": "function",
"displayName": "Attachment Header", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
attachment header with the given name, converted to the given type.", "ognl":
false, "suffix": "}" },
+ "attachment(key)": { "index": 72, "kind": "function", "displayName":
"Attachment", "group": "function", "label": "function", "required": false,
"javaType": "jakarta.activation.DataHandler", "prefix": "${", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The DataHandler for the given attachment.", "ognl": true,
"suffix": "}" }
}
}
diff --git
a/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
b/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
index e6ad1b8eb142..899d166fff09 100644
---
a/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
+++
b/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
@@ -96,6 +96,8 @@ classname. The converted body can be null.
classname and then invoke methods using a Camel OGNL expression. The
converted body can be null.
+|bodyType |Class |The message body class type
+
|bodyOneLine | String | Converts the body to a String and removes all
line-breaks, so the string is in one line.
|prettyBody | String | Converts the body to a String, and attempts to pretty
print if JSon or XML; otherwise the body is returned as the String value.
diff --git
a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
index d60d689f6d80..64137118abd5 100644
---
a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
+++
b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
@@ -213,6 +213,14 @@ public final class CSimpleHelper {
return exchange.getVariables().size();
}
+ public static Class<?> bodyType(Exchange exchange) {
+ Object body = exchange.getIn().getBody(Object.class);
+ if (body == null) {
+ return null;
+ }
+ return body.getClass();
+ }
+
public static String bodyOneLine(Exchange exchange) {
String body = exchange.getIn().getBody(String.class);
if (body == null) {
diff --git
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleConstants.java
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleConstants.java
index 7a3f35ac0c47..00cbccee1fff 100644
---
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleConstants.java
+++
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleConstants.java
@@ -23,6 +23,8 @@ public final class SimpleConstants {
@Metadata(description = "The message body", javaType = "Object", label =
"function,ognl")
public static final String BODY = "body";
+ @Metadata(description = "The message body class type", javaType = "Class",
label = "function")
+ public static final String BODY_TYPE = "bodyType";
@Metadata(description = "Converts the body to a String, and attempts to
pretty print if JSon or XML; otherwise the body is returned as the String
value.",
javaType = "String", label = "function")
public static final String PRETTY_BODY = "prettyBody";
diff --git
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
index aeb19e589610..a079522e8a15 100644
---
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
+++
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
@@ -639,6 +639,8 @@ public class SimpleFunctionExpression extends
LiteralExpression {
private Expression createSimpleExpressionDirectly(CamelContext
camelContext, String expression) {
if (ObjectHelper.isEqualToAny(expression, "body", "in.body")) {
return ExpressionBuilder.bodyExpression();
+ } else if (ObjectHelper.equal(expression, "bodyType")) {
+ return ExpressionBuilder.bodyTypeExpression();
} else if (ObjectHelper.equal(expression, "prettyBody")) {
return ExpressionBuilder.prettyBodyExpression();
} else if (ObjectHelper.equal(expression, "bodyOneLine")) {
@@ -1310,6 +1312,8 @@ public class SimpleFunctionExpression extends
LiteralExpression {
public String createCodeDirectly(String expression) throws
SimpleParserException {
if (ObjectHelper.isEqualToAny(expression, "body", "in.body")) {
return "body";
+ } else if (ObjectHelper.equal(expression, "bodyType")) {
+ return "bodyType(exchange)";
} else if (ObjectHelper.equal(expression, "prettyBody")) {
return "prettyBody(exchange)";
} else if (ObjectHelper.equal(expression, "bodyOneLine")) {
diff --git
a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
index b0605feca4e9..fda04a1917ac 100644
---
a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
@@ -2190,6 +2190,14 @@ public class SimpleTest extends LanguageTestSupport {
assertExpression("Hi ${bodyOneLine} Again", "Hi HelloGreatWorld
Again");
}
+ @Test
+ public void testBodyType() {
+ exchange.getIn().setBody("Hello World");
+ assertExpression("${bodyType}", String.class);
+ exchange.getIn().setBody(123);
+ assertExpression("${bodyType}", Integer.class);
+ }
+
@Test
public void testJsonPrettyPrint() {