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 fcc5a2786603 camel-core - Add forEach function to simple language.
(#21000)
fcc5a2786603 is described below
commit fcc5a2786603a51fed56e7d479729c6cb3651835
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Jan 23 16:20:53 2026 +0100
camel-core - Add forEach function to simple language. (#21000)
---
.../org/apache/camel/catalog/languages/simple.json | 129 +++++++++++----------
.../org/apache/camel/language/simple/simple.json | 129 +++++++++++----------
.../modules/languages/pages/simple-language.adoc | 1 +
.../camel/language/simple/SimpleConstants.java | 4 +
.../language/simple/SimpleExpressionBuilder.java | 42 +++++++
.../simple/ast/SimpleFunctionExpression.java | 25 ++++
.../apache/camel/language/simple/SimpleTest.java | 32 +++++
7 files changed, 234 insertions(+), 128 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 5075bb5c2007..890b39760010 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
@@ -59,69 +59,70 @@
"exception": { "index": 32, "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": 33, "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": 34, "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": "}" },
- "floor(exp)": { "index": 35, "kind": "function", "displayName": "Floor
Number", "group": "function", "label": "function", "required": false,
"javaType": "Integer", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
body (or expression) to a floating number and return the floor value (rounded
down to nearest integer).", "ognl": false, "suffix": "}" },
- "fromRouteId": { "index": 36, "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": "}" },
- "hash(exp,algorithm)": { "index": 37, "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": "}" },
- "header.name": { "index": 38, "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": "}" },
- "headerAs(key,type)": { "index": 39, "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": 40, "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": "}" },
- "hostName": { "index": 41, "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": "}" },
- "id": { "index": 42, "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": "}"
},
- "iif(predicate,trueExp,falseExp)": { "index": 43, "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":
"}" },
- "isAlpha(exp)": { "index": 44, "kind": "function", "displayName": "Is
Alphabetic Value", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is alphabetic value (A..Z). For more advanced checks use
the `regex` operator.", "ognl": false, "suffix": "}" },
- "isAlphaNumeric(exp)": { "index": 45, "kind": "function", "displayName":
"Is Alphabetic-Numeric Value", "group": "function", "label": "function",
"required": false, "javaType": "boolean", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Whether the message body (or expression) is alphanumeric value (A..Z0-9). For
more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
- "isEmpty(exp)": { "index": 46, "kind": "function", "displayName": "Is
Empty", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is null or empty (list\/map types are tested if they have
0 elements).", "ognl": false, "suffix": "}" },
- "isNumeric(exp)": { "index": 47, "kind": "function", "displayName": "Is
Numeric Value", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is numeric value (0..9). For more advanced checks use the
`regex` operator.", "ognl": false, "suffix": "}" },
- "jq(input,exp)": { "index": 48, "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": 49, "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 [...]
- "join(separator,prefix,exp)": { "index": 50, "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. [...]
- "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": "}" },
- "list(val...)": { "index": 52, "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": "}" },
- "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": "}" },
- "mandatoryBodyAs(type)": { "index": 54, "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": "}" },
- "map(key1,value1,...)": { "index": 55, "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": "}" },
- "max(val...)": { "index": 56, "kind": "function", "displayName": "Maximum
Number", "group": "function", "label": "function", "required": false,
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the maximum number
from all the values", "ognl": false, "suffix": "}" },
- "messageAs(type)": { "index": 57, "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": "}" },
- "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 [...]
- "messageTimestamp": { "index": 59, "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 timestam [...]
- "min(val...)": { "index": 60, "kind": "function", "displayName": "Minimum
Number", "group": "function", "label": "function", "required": false,
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the minimum number
from all the values", "ognl": false, "suffix": "}" },
- "newEmpty(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`. Use `s [...]
- "not": { "index": 62, "kind": "function", "displayName": "Not", "group":
"function", "label": "function", "required": false, "javaType": "boolean",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "Evaluates the predicate and returns the
opposite.", "ognl": false, "suffix": "}" },
- "null": { "index": 63, "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": "}" },
- "originalBody": { "index": 64, "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": "}" },
- "pad(exp,width,separator)": { "index": 65, "kind": "function",
"displayName": "Pad String", "group": "function", "label": "function",
"required": false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Pads the expression with extra padding if necessary, according the the total
width. The separator is by default a space. If the width is negative then
padding to the right, otherwise to the left.", "o [...]
- "pretty(exp)": { "index": 66, "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": "}"
},
- "prettyBody": { "index": 67, "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": "}" },
- "properties:key:default": { "index": 68, "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": "}" },
- "propertiesExist:key": { "index": 69, "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":
"}" },
- "random(min,max)": { "index": 70, "kind": "function", "displayName":
"Random", "group": "function", "label": "function", "required": false,
"javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a random number
between min and max (exclusive)", "ognl": false, "suffix": "}" },
- "ref:name": { "index": 71, "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": "}" },
- "replace(from,to,exp)": { "index": 72, "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, `\\'` [...]
- "reverse(val...)": { "index": 73, "kind": "function", "displayName":
"Reverse Values", "group": "function", "label": "function", "required": false,
"javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a list of all the
values, but in reverse order", "ognl": false, "suffix": "}" },
- "routeGroup": { "index": 74, "kind": "function", "displayName": "Route
Group", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "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": "}" },
- "routeId": { "index": 75, "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": "}" },
- "setHeader(name,type,exp)": { "index": 76, "kind": "function",
"displayName": "Set Header", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sets a message header with the given expression (optional converting to the
given type)", "ognl": false, "suffix": "}" },
- "setVariable(name,type,exp)": { "index": 77, "kind": "function",
"displayName": "Set Variable", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sets a variable with the given expression (optional converting to the given
type)", "ognl": false, "suffix": "}" },
- "shuffle(val...)": { "index": 78, "kind": "function", "displayName":
"Shuffle Values", "group": "function", "label": "function", "required": false,
"javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a list of all the
values shuffled in random order", "ognl": false, "suffix": "}" },
- "size(exp)": { "index": 79, "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": "}" },
- "skip(num)": { "index": 80, "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 [...]
- "split(exp,separator)": { "index": 81, "kind": "function", "displayName":
"Split String Values", "group": "function", "label": "function", "required":
false, "javaType": "String[]", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Splits the message body\/expression as a String value using the separator into
a String array", "ognl": false, "suffix": "}" },
- "stepId": { "index": 82, "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": "}" },
- "substring(head,tail)": { "index": 83, "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 [...]
- "substringAfter(exp,before)": { "index": 84, "kind": "function",
"displayName": "Substring After", "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 that comes after. Returns
null if nothing comes after.", "ognl": false, "suffix": "}" },
- "substringBefore(exp,before)": { "index": 85, "kind": "function",
"displayName": "Substring Before", "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 that comes before. Returns
null if nothing comes before.", "ognl": false, "suffix": "}" },
- "substringBetween(exp,after,before)": { "index": 86, "kind": "function",
"displayName": "Substring Between", "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 that are between after and
before. Returns null if nothing comes between.", "ognl": false, "suffix": "}" },
- "sum(val...)": { "index": 87, "kind": "function", "displayName":
"Calculate Sum Number", "group": "function", "label": "function", "required":
false, "javaType": "long", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sums together all the values as integral numbers. This function can also be
used to subtract by using negative numbers.", "ognl": false, "suffix": "}" },
- "sys.name": { "index": 88, "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": "}" },
- "threadId": { "index": 89, "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": 90, "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": "}" },
- "trim(exp)": { "index": 91, "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": "}" },
- "type:name.field": { "index": 92, "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`", " [...]
- "uppercase(exp)": { "index": 93, "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": "}" },
- "uuid(type)": { "index": 94, "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 [...]
- "variable.name": { "index": 95, "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": "}" },
- "variableAs(key,type)": { "index": 96, "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": 97, "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": "}" },
- "xpath(input,exp)": { "index": 98, "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 [...]
+ "forEach(exp,fun)": { "index": 35, "kind": "function", "displayName": "For
Each call Function", "group": "function", "label": "function", "required":
false, "javaType": "List", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a List containing the values returned by the function when applied to
each value from the input expression", "ognl": false, "suffix": "}" },
+ "floor(exp)": { "index": 36, "kind": "function", "displayName": "Floor
Number", "group": "function", "label": "function", "required": false,
"javaType": "Integer", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
body (or expression) to a floating number and return the floor value (rounded
down to nearest integer).", "ognl": false, "suffix": "}" },
+ "fromRouteId": { "index": 37, "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": "}" },
+ "hash(exp,algorithm)": { "index": 38, "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": "}" },
+ "header.name": { "index": 39, "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": "}" },
+ "headerAs(key,type)": { "index": 40, "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": 41, "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": "}" },
+ "hostName": { "index": 42, "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": "}" },
+ "id": { "index": 43, "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": "}"
},
+ "iif(predicate,trueExp,falseExp)": { "index": 44, "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":
"}" },
+ "isAlpha(exp)": { "index": 45, "kind": "function", "displayName": "Is
Alphabetic Value", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is alphabetic value (A..Z). For more advanced checks use
the `regex` operator.", "ognl": false, "suffix": "}" },
+ "isAlphaNumeric(exp)": { "index": 46, "kind": "function", "displayName":
"Is Alphabetic-Numeric Value", "group": "function", "label": "function",
"required": false, "javaType": "boolean", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Whether the message body (or expression) is alphanumeric value (A..Z0-9). For
more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
+ "isEmpty(exp)": { "index": 47, "kind": "function", "displayName": "Is
Empty", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is null or empty (list\/map types are tested if they have
0 elements).", "ognl": false, "suffix": "}" },
+ "isNumeric(exp)": { "index": 48, "kind": "function", "displayName": "Is
Numeric Value", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is numeric value (0..9). For more advanced checks use the
`regex` operator.", "ognl": false, "suffix": "}" },
+ "jq(input,exp)": { "index": 49, "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": 50, "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 [...]
+ "join(separator,prefix,exp)": { "index": 51, "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. [...]
+ "length(exp)": { "index": 52, "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": "}" },
+ "list(val...)": { "index": 53, "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": "}" },
+ "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": "}" },
+ "mandatoryBodyAs(type)": { "index": 55, "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": "}" },
+ "map(key1,value1,...)": { "index": 56, "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": "}" },
+ "max(val...)": { "index": 57, "kind": "function", "displayName": "Maximum
Number", "group": "function", "label": "function", "required": false,
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the maximum number
from all the values", "ognl": false, "suffix": "}" },
+ "messageAs(type)": { "index": 58, "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": "}" },
+ "messageHistory(boolean)": { "index": 59, "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 [...]
+ "messageTimestamp": { "index": 60, "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 timestam [...]
+ "min(val...)": { "index": 61, "kind": "function", "displayName": "Minimum
Number", "group": "function", "label": "function", "required": false,
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the minimum number
from all the values", "ognl": false, "suffix": "}" },
+ "newEmpty(type)": { "index": 62, "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`. Use `s [...]
+ "not": { "index": 63, "kind": "function", "displayName": "Not", "group":
"function", "label": "function", "required": false, "javaType": "boolean",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "Evaluates the predicate and returns the
opposite.", "ognl": false, "suffix": "}" },
+ "null": { "index": 64, "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": "}" },
+ "originalBody": { "index": 65, "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": "}" },
+ "pad(exp,width,separator)": { "index": 66, "kind": "function",
"displayName": "Pad String", "group": "function", "label": "function",
"required": false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Pads the expression with extra padding if necessary, according the the total
width. The separator is by default a space. If the width is negative then
padding to the right, otherwise to the left.", "o [...]
+ "pretty(exp)": { "index": 67, "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": "}"
},
+ "prettyBody": { "index": 68, "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": "}" },
+ "properties:key:default": { "index": 69, "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": "}" },
+ "propertiesExist:key": { "index": 70, "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":
"}" },
+ "random(min,max)": { "index": 71, "kind": "function", "displayName":
"Random", "group": "function", "label": "function", "required": false,
"javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a random number
between min and max (exclusive)", "ognl": false, "suffix": "}" },
+ "ref:name": { "index": 72, "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": "}" },
+ "replace(from,to,exp)": { "index": 73, "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, `\\'` [...]
+ "reverse(val...)": { "index": 74, "kind": "function", "displayName":
"Reverse Values", "group": "function", "label": "function", "required": false,
"javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a list of all the
values, but in reverse order", "ognl": false, "suffix": "}" },
+ "routeGroup": { "index": 75, "kind": "function", "displayName": "Route
Group", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "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": "}" },
+ "routeId": { "index": 76, "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": "}" },
+ "setHeader(name,type,exp)": { "index": 77, "kind": "function",
"displayName": "Set Header", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sets a message header with the given expression (optional converting to the
given type)", "ognl": false, "suffix": "}" },
+ "setVariable(name,type,exp)": { "index": 78, "kind": "function",
"displayName": "Set Variable", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sets a variable with the given expression (optional converting to the given
type)", "ognl": false, "suffix": "}" },
+ "shuffle(val...)": { "index": 79, "kind": "function", "displayName":
"Shuffle Values", "group": "function", "label": "function", "required": false,
"javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a list of all the
values shuffled in random order", "ognl": false, "suffix": "}" },
+ "size(exp)": { "index": 80, "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": "}" },
+ "skip(num)": { "index": 81, "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 [...]
+ "split(exp,separator)": { "index": 82, "kind": "function", "displayName":
"Split String Values", "group": "function", "label": "function", "required":
false, "javaType": "String[]", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Splits the message body\/expression as a String value using the separator into
a String array", "ognl": false, "suffix": "}" },
+ "stepId": { "index": 83, "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": "}" },
+ "substring(head,tail)": { "index": 84, "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 [...]
+ "substringAfter(exp,before)": { "index": 85, "kind": "function",
"displayName": "Substring After", "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 that comes after. Returns
null if nothing comes after.", "ognl": false, "suffix": "}" },
+ "substringBefore(exp,before)": { "index": 86, "kind": "function",
"displayName": "Substring Before", "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 that comes before. Returns
null if nothing comes before.", "ognl": false, "suffix": "}" },
+ "substringBetween(exp,after,before)": { "index": 87, "kind": "function",
"displayName": "Substring Between", "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 that are between after and
before. Returns null if nothing comes between.", "ognl": false, "suffix": "}" },
+ "sum(val...)": { "index": 88, "kind": "function", "displayName":
"Calculate Sum Number", "group": "function", "label": "function", "required":
false, "javaType": "long", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sums together all the values as integral numbers. This function can also be
used to subtract by using negative numbers.", "ognl": false, "suffix": "}" },
+ "sys.name": { "index": 89, "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": "}" },
+ "threadId": { "index": 90, "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": 91, "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": "}" },
+ "trim(exp)": { "index": 92, "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": "}" },
+ "type:name.field": { "index": 93, "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`", " [...]
+ "uppercase(exp)": { "index": 94, "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": "}" },
+ "uuid(type)": { "index": 95, "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 [...]
+ "variable.name": { "index": 96, "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": "}" },
+ "variableAs(key,type)": { "index": 97, "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": 98, "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": "}" },
+ "xpath(input,exp)": { "index": 99, "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 [...]
}
}
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 5075bb5c2007..890b39760010 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
@@ -59,69 +59,70 @@
"exception": { "index": 32, "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": 33, "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": 34, "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": "}" },
- "floor(exp)": { "index": 35, "kind": "function", "displayName": "Floor
Number", "group": "function", "label": "function", "required": false,
"javaType": "Integer", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
body (or expression) to a floating number and return the floor value (rounded
down to nearest integer).", "ognl": false, "suffix": "}" },
- "fromRouteId": { "index": 36, "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": "}" },
- "hash(exp,algorithm)": { "index": 37, "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": "}" },
- "header.name": { "index": 38, "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": "}" },
- "headerAs(key,type)": { "index": 39, "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": 40, "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": "}" },
- "hostName": { "index": 41, "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": "}" },
- "id": { "index": 42, "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": "}"
},
- "iif(predicate,trueExp,falseExp)": { "index": 43, "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":
"}" },
- "isAlpha(exp)": { "index": 44, "kind": "function", "displayName": "Is
Alphabetic Value", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is alphabetic value (A..Z). For more advanced checks use
the `regex` operator.", "ognl": false, "suffix": "}" },
- "isAlphaNumeric(exp)": { "index": 45, "kind": "function", "displayName":
"Is Alphabetic-Numeric Value", "group": "function", "label": "function",
"required": false, "javaType": "boolean", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Whether the message body (or expression) is alphanumeric value (A..Z0-9). For
more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
- "isEmpty(exp)": { "index": 46, "kind": "function", "displayName": "Is
Empty", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is null or empty (list\/map types are tested if they have
0 elements).", "ognl": false, "suffix": "}" },
- "isNumeric(exp)": { "index": 47, "kind": "function", "displayName": "Is
Numeric Value", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is numeric value (0..9). For more advanced checks use the
`regex` operator.", "ognl": false, "suffix": "}" },
- "jq(input,exp)": { "index": 48, "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": 49, "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 [...]
- "join(separator,prefix,exp)": { "index": 50, "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. [...]
- "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": "}" },
- "list(val...)": { "index": 52, "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": "}" },
- "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": "}" },
- "mandatoryBodyAs(type)": { "index": 54, "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": "}" },
- "map(key1,value1,...)": { "index": 55, "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": "}" },
- "max(val...)": { "index": 56, "kind": "function", "displayName": "Maximum
Number", "group": "function", "label": "function", "required": false,
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the maximum number
from all the values", "ognl": false, "suffix": "}" },
- "messageAs(type)": { "index": 57, "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": "}" },
- "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 [...]
- "messageTimestamp": { "index": 59, "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 timestam [...]
- "min(val...)": { "index": 60, "kind": "function", "displayName": "Minimum
Number", "group": "function", "label": "function", "required": false,
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the minimum number
from all the values", "ognl": false, "suffix": "}" },
- "newEmpty(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`. Use `s [...]
- "not": { "index": 62, "kind": "function", "displayName": "Not", "group":
"function", "label": "function", "required": false, "javaType": "boolean",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "Evaluates the predicate and returns the
opposite.", "ognl": false, "suffix": "}" },
- "null": { "index": 63, "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": "}" },
- "originalBody": { "index": 64, "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": "}" },
- "pad(exp,width,separator)": { "index": 65, "kind": "function",
"displayName": "Pad String", "group": "function", "label": "function",
"required": false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Pads the expression with extra padding if necessary, according the the total
width. The separator is by default a space. If the width is negative then
padding to the right, otherwise to the left.", "o [...]
- "pretty(exp)": { "index": 66, "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": "}"
},
- "prettyBody": { "index": 67, "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": "}" },
- "properties:key:default": { "index": 68, "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": "}" },
- "propertiesExist:key": { "index": 69, "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":
"}" },
- "random(min,max)": { "index": 70, "kind": "function", "displayName":
"Random", "group": "function", "label": "function", "required": false,
"javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a random number
between min and max (exclusive)", "ognl": false, "suffix": "}" },
- "ref:name": { "index": 71, "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": "}" },
- "replace(from,to,exp)": { "index": 72, "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, `\\'` [...]
- "reverse(val...)": { "index": 73, "kind": "function", "displayName":
"Reverse Values", "group": "function", "label": "function", "required": false,
"javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a list of all the
values, but in reverse order", "ognl": false, "suffix": "}" },
- "routeGroup": { "index": 74, "kind": "function", "displayName": "Route
Group", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "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": "}" },
- "routeId": { "index": 75, "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": "}" },
- "setHeader(name,type,exp)": { "index": 76, "kind": "function",
"displayName": "Set Header", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sets a message header with the given expression (optional converting to the
given type)", "ognl": false, "suffix": "}" },
- "setVariable(name,type,exp)": { "index": 77, "kind": "function",
"displayName": "Set Variable", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sets a variable with the given expression (optional converting to the given
type)", "ognl": false, "suffix": "}" },
- "shuffle(val...)": { "index": 78, "kind": "function", "displayName":
"Shuffle Values", "group": "function", "label": "function", "required": false,
"javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a list of all the
values shuffled in random order", "ognl": false, "suffix": "}" },
- "size(exp)": { "index": 79, "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": "}" },
- "skip(num)": { "index": 80, "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 [...]
- "split(exp,separator)": { "index": 81, "kind": "function", "displayName":
"Split String Values", "group": "function", "label": "function", "required":
false, "javaType": "String[]", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Splits the message body\/expression as a String value using the separator into
a String array", "ognl": false, "suffix": "}" },
- "stepId": { "index": 82, "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": "}" },
- "substring(head,tail)": { "index": 83, "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 [...]
- "substringAfter(exp,before)": { "index": 84, "kind": "function",
"displayName": "Substring After", "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 that comes after. Returns
null if nothing comes after.", "ognl": false, "suffix": "}" },
- "substringBefore(exp,before)": { "index": 85, "kind": "function",
"displayName": "Substring Before", "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 that comes before. Returns
null if nothing comes before.", "ognl": false, "suffix": "}" },
- "substringBetween(exp,after,before)": { "index": 86, "kind": "function",
"displayName": "Substring Between", "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 that are between after and
before. Returns null if nothing comes between.", "ognl": false, "suffix": "}" },
- "sum(val...)": { "index": 87, "kind": "function", "displayName":
"Calculate Sum Number", "group": "function", "label": "function", "required":
false, "javaType": "long", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sums together all the values as integral numbers. This function can also be
used to subtract by using negative numbers.", "ognl": false, "suffix": "}" },
- "sys.name": { "index": 88, "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": "}" },
- "threadId": { "index": 89, "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": 90, "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": "}" },
- "trim(exp)": { "index": 91, "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": "}" },
- "type:name.field": { "index": 92, "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`", " [...]
- "uppercase(exp)": { "index": 93, "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": "}" },
- "uuid(type)": { "index": 94, "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 [...]
- "variable.name": { "index": 95, "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": "}" },
- "variableAs(key,type)": { "index": 96, "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": 97, "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": "}" },
- "xpath(input,exp)": { "index": 98, "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 [...]
+ "forEach(exp,fun)": { "index": 35, "kind": "function", "displayName": "For
Each call Function", "group": "function", "label": "function", "required":
false, "javaType": "List", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Returns a List containing the values returned by the function when applied to
each value from the input expression", "ognl": false, "suffix": "}" },
+ "floor(exp)": { "index": 36, "kind": "function", "displayName": "Floor
Number", "group": "function", "label": "function", "required": false,
"javaType": "Integer", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Converts the message
body (or expression) to a floating number and return the floor value (rounded
down to nearest integer).", "ognl": false, "suffix": "}" },
+ "fromRouteId": { "index": 37, "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": "}" },
+ "hash(exp,algorithm)": { "index": 38, "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": "}" },
+ "header.name": { "index": 39, "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": "}" },
+ "headerAs(key,type)": { "index": 40, "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": 41, "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": "}" },
+ "hostName": { "index": 42, "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": "}" },
+ "id": { "index": 43, "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": "}"
},
+ "iif(predicate,trueExp,falseExp)": { "index": 44, "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":
"}" },
+ "isAlpha(exp)": { "index": 45, "kind": "function", "displayName": "Is
Alphabetic Value", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is alphabetic value (A..Z). For more advanced checks use
the `regex` operator.", "ognl": false, "suffix": "}" },
+ "isAlphaNumeric(exp)": { "index": 46, "kind": "function", "displayName":
"Is Alphabetic-Numeric Value", "group": "function", "label": "function",
"required": false, "javaType": "boolean", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Whether the message body (or expression) is alphanumeric value (A..Z0-9). For
more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
+ "isEmpty(exp)": { "index": 47, "kind": "function", "displayName": "Is
Empty", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is null or empty (list\/map types are tested if they have
0 elements).", "ognl": false, "suffix": "}" },
+ "isNumeric(exp)": { "index": 48, "kind": "function", "displayName": "Is
Numeric Value", "group": "function", "label": "function", "required": false,
"javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "Whether the message
body (or expression) is numeric value (0..9). For more advanced checks use the
`regex` operator.", "ognl": false, "suffix": "}" },
+ "jq(input,exp)": { "index": 49, "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": 50, "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 [...]
+ "join(separator,prefix,exp)": { "index": 51, "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. [...]
+ "length(exp)": { "index": 52, "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": "}" },
+ "list(val...)": { "index": 53, "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": "}" },
+ "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": "}" },
+ "mandatoryBodyAs(type)": { "index": 55, "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": "}" },
+ "map(key1,value1,...)": { "index": 56, "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": "}" },
+ "max(val...)": { "index": 57, "kind": "function", "displayName": "Maximum
Number", "group": "function", "label": "function", "required": false,
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the maximum number
from all the values", "ognl": false, "suffix": "}" },
+ "messageAs(type)": { "index": 58, "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": "}" },
+ "messageHistory(boolean)": { "index": 59, "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 [...]
+ "messageTimestamp": { "index": 60, "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 timestam [...]
+ "min(val...)": { "index": 61, "kind": "function", "displayName": "Minimum
Number", "group": "function", "label": "function", "required": false,
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns the minimum number
from all the values", "ognl": false, "suffix": "}" },
+ "newEmpty(type)": { "index": 62, "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`. Use `s [...]
+ "not": { "index": 63, "kind": "function", "displayName": "Not", "group":
"function", "label": "function", "required": false, "javaType": "boolean",
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "Evaluates the predicate and returns the
opposite.", "ognl": false, "suffix": "}" },
+ "null": { "index": 64, "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": "}" },
+ "originalBody": { "index": 65, "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": "}" },
+ "pad(exp,width,separator)": { "index": 66, "kind": "function",
"displayName": "Pad String", "group": "function", "label": "function",
"required": false, "javaType": "String", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Pads the expression with extra padding if necessary, according the the total
width. The separator is by default a space. If the width is negative then
padding to the right, otherwise to the left.", "o [...]
+ "pretty(exp)": { "index": 67, "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": "}"
},
+ "prettyBody": { "index": 68, "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": "}" },
+ "properties:key:default": { "index": 69, "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": "}" },
+ "propertiesExist:key": { "index": 70, "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":
"}" },
+ "random(min,max)": { "index": 71, "kind": "function", "displayName":
"Random", "group": "function", "label": "function", "required": false,
"javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a random number
between min and max (exclusive)", "ognl": false, "suffix": "}" },
+ "ref:name": { "index": 72, "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": "}" },
+ "replace(from,to,exp)": { "index": 73, "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, `\\'` [...]
+ "reverse(val...)": { "index": 74, "kind": "function", "displayName":
"Reverse Values", "group": "function", "label": "function", "required": false,
"javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a list of all the
values, but in reverse order", "ognl": false, "suffix": "}" },
+ "routeGroup": { "index": 75, "kind": "function", "displayName": "Route
Group", "group": "function", "label": "function", "required": false,
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "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": "}" },
+ "routeId": { "index": 76, "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": "}" },
+ "setHeader(name,type,exp)": { "index": 77, "kind": "function",
"displayName": "Set Header", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sets a message header with the given expression (optional converting to the
given type)", "ognl": false, "suffix": "}" },
+ "setVariable(name,type,exp)": { "index": 78, "kind": "function",
"displayName": "Set Variable", "group": "function", "label": "function",
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sets a variable with the given expression (optional converting to the given
type)", "ognl": false, "suffix": "}" },
+ "shuffle(val...)": { "index": 79, "kind": "function", "displayName":
"Shuffle Values", "group": "function", "label": "function", "required": false,
"javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Returns a list of all the
values shuffled in random order", "ognl": false, "suffix": "}" },
+ "size(exp)": { "index": 80, "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": "}" },
+ "skip(num)": { "index": 81, "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 [...]
+ "split(exp,separator)": { "index": 82, "kind": "function", "displayName":
"Split String Values", "group": "function", "label": "function", "required":
false, "javaType": "String[]", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Splits the message body\/expression as a String value using the separator into
a String array", "ognl": false, "suffix": "}" },
+ "stepId": { "index": 83, "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": "}" },
+ "substring(head,tail)": { "index": 84, "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 [...]
+ "substringAfter(exp,before)": { "index": 85, "kind": "function",
"displayName": "Substring After", "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 that comes after. Returns
null if nothing comes after.", "ognl": false, "suffix": "}" },
+ "substringBefore(exp,before)": { "index": 86, "kind": "function",
"displayName": "Substring Before", "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 that comes before. Returns
null if nothing comes before.", "ognl": false, "suffix": "}" },
+ "substringBetween(exp,after,before)": { "index": 87, "kind": "function",
"displayName": "Substring Between", "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 that are between after and
before. Returns null if nothing comes between.", "ognl": false, "suffix": "}" },
+ "sum(val...)": { "index": 88, "kind": "function", "displayName":
"Calculate Sum Number", "group": "function", "label": "function", "required":
false, "javaType": "long", "prefix": "${", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Sums together all the values as integral numbers. This function can also be
used to subtract by using negative numbers.", "ognl": false, "suffix": "}" },
+ "sys.name": { "index": 89, "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": "}" },
+ "threadId": { "index": 90, "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": 91, "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": "}" },
+ "trim(exp)": { "index": 92, "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": "}" },
+ "type:name.field": { "index": 93, "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`", " [...]
+ "uppercase(exp)": { "index": 94, "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": "}" },
+ "uuid(type)": { "index": 95, "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 [...]
+ "variable.name": { "index": 96, "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": "}" },
+ "variableAs(key,type)": { "index": 97, "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": 98, "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": "}" },
+ "xpath(input,exp)": { "index": 99, "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 [...]
}
}
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 1e0fbc145f8c..717b1e5929e6 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
@@ -194,6 +194,7 @@ NOTE: Some functions take 1 or more arguments enclosed in
parentheses, and argum
|`collate(size)` | `List` | 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/batch the split sub message into
a group of N sub lists. This method works similar to the collate method in
Groovy.
|`distinct(val1,val2,...)` | `Set` | Returns a set of all the values with
duplicates removed
|`empty(kind)` | `<T>` | *Deprecated* Use `createEmpty` instead.
+|`forEach(exp,fun)` | `<List>` | Returns a List containing the values returned
by the function when applied to each value from the input expression. This
function is not supported when using csimple.
|`list(val1,val2,...)` | `List` | The list function creates an
`java.util.ArrayList` with the given set of values.
|`map(key1,value1,...)` | `Map` | The map function creates a
`java.util.LinkedHashMap` with the given set of pairs.
|`createEmpty(kind)` | `<T>` | Creates a new empty object of the given kind.
The `string` kind creates an empty `String` object. The `list` creates an empty
`ArrayList`, and `map` creates an empty `LinkedHashMap` object. Use `set` to
create an empty `java.util.LinkedHashSet`.
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 f0c1804f2957..053a01531d9b 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
@@ -149,6 +149,10 @@ public final class SimpleConstants {
javaType = "String", label = "function", displayName =
"Exception Stacktrace")
public static final String EXCEPTION_STACKTRACE = "exception.stackTrace";
+ @Metadata(description = "Returns a List containing the values returned by
the function when applied to each value from the input expression",
+ label = "function", javaType = "List", displayName = "For Each
call Function")
+ public static final String FOR_EACH = "forEach(exp,fun)";
+
@Metadata(description = "Converts the message body (or expression) to a
floating number and return the floor value (rounded down to nearest integer).",
label = "function", javaType = "Integer", displayName = "Floor
Number")
public static final String FLOOR = "floor(exp)";
diff --git
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
index 92110ee4fedb..a32960e58050 100644
---
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
+++
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java
@@ -1500,6 +1500,48 @@ public final class SimpleExpressionBuilder {
};
}
+ /**
+ * For each value in the source expression then apply the function and
return a list of responses from each function
+ */
+ public static Expression forEachExpression(final String source, final
String function) {
+ return new ExpressionAdapter() {
+ private CamelContext context;
+ private Expression exp1;
+ private Expression exp2;
+
+ @Override
+ public void init(CamelContext context) {
+ this.context = context;
+ exp1 =
context.resolveLanguage("simple").createExpression(source);
+ exp1.init(context);
+ exp2 =
context.resolveLanguage("simple").createExpression(function);
+ exp2.init(context);
+ }
+
+ @Override
+ public Object evaluate(Exchange exchange) {
+ List<Object> answer = new ArrayList<>();
+ Object o = exp1.evaluate(exchange, Object.class);
+ Iterable<?> it =
org.apache.camel.support.ObjectHelper.createIterable(o);
+ for (Object i : it) {
+ // use a dummy exchange as the input is to be the message
body
+ Exchange dummy = ExchangeHelper.createCopy(exchange, true);
+ dummy.getMessage().setBody(i);
+ Object out = exp2.evaluate(dummy, Object.class);
+ if (out != null) {
+ answer.add(out);
+ }
+ }
+ return answer;
+ }
+
+ @Override
+ public String toString() {
+ return "forEach(" + source + ", " + function + ")";
+ }
+ };
+ }
+
/**
* Sets the message header with the given expression value
*/
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 026ce5a8e158..321bcc0e4f45 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
@@ -18,10 +18,12 @@ package org.apache.camel.language.simple.ast;
import java.net.URISyntaxException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.StringJoiner;
+import java.util.stream.Collectors;
import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
@@ -1069,6 +1071,24 @@ public class SimpleFunctionExpression extends
LiteralExpression {
}
return SimpleExpressionBuilder.splitStringExpression(exp,
separator);
}
+ // foreach function
+ remainder = ifStartsWithReturnRemainder("forEach(", function);
+ if (remainder != null) {
+ String values = StringHelper.beforeLast(remainder, ")");
+ if (ObjectHelper.isEmpty(values)) {
+ throw new SimpleParserException(
+ "Valid syntax: ${forEach(exp,exp)} was: " + function,
token.getIndex());
+ }
+ String[] tokens = StringQuoteHelper.splitSafeQuote(values, ',',
false);
+ if (tokens.length < 2) {
+ throw new SimpleParserException(
+ "Valid syntax: ${forEach(exp,exp)} was: " + function,
token.getIndex());
+ }
+ String exp1 = tokens[0];
+ // the function takes the remainder of the tokens
+ String exp2 =
Arrays.stream(tokens).skip(1).collect(Collectors.joining(","));
+ return SimpleExpressionBuilder.forEachExpression(exp1, exp2);
+ }
// isEmpty function
remainder = ifStartsWithReturnRemainder("isEmpty(", function);
@@ -2613,6 +2633,11 @@ public class SimpleFunctionExpression extends
LiteralExpression {
return "Object value = " + exp + ";\n String separator = "
+ separator
+ ";\n return stringSplit(exchange, value,
separator);";
}
+ // foreach function
+ remainder = ifStartsWithReturnRemainder("forEach(", function);
+ if (remainder != null) {
+ throw new UnsupportedOperationException("forEach is not supported
in csimple language");
+ }
// random function
remainder = ifStartsWithReturnRemainder("random(", function);
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 4b0d209944f3..4e52015f8054 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
@@ -3563,6 +3563,38 @@ public class SimpleTest extends LanguageTestSupport {
assertEquals("[]", s);
}
+ @Test
+ public void testForEach() {
+ exchange.getMessage().setBody("Camel,World,Cheese");
+
+ Expression expression =
context.resolveLanguage("simple").createExpression("${forEach(${body},'Hello
${body}')}");
+ List list = expression.evaluate(exchange, List.class);
+ assertEquals(3, list.size());
+ assertEquals("Hello Camel", list.get(0));
+ assertEquals("Hello World", list.get(1));
+ assertEquals("Hello Cheese", list.get(2));
+
+ expression =
context.resolveLanguage("simple").createExpression("${forEach(${body},'Bye
${body}')}");
+ list = expression.evaluate(exchange, List.class);
+ assertEquals(3, list.size());
+ assertEquals("Bye Camel", list.get(0));
+ assertEquals("Bye World", list.get(1));
+ assertEquals("Bye Cheese", list.get(2));
+
+ exchange.getMessage().setBody("1,2,3");
+ expression =
context.resolveLanguage("simple").createExpression("${forEach(${body},${sum(${body},7)})}");
+ list = expression.evaluate(exchange, List.class);
+ assertEquals(3, list.size());
+ assertEquals(8L, list.get(0));
+ assertEquals(9L, list.get(1));
+ assertEquals(10L, list.get(2));
+
+ exchange.getMessage().setBody(null);
+ expression =
context.resolveLanguage("simple").createExpression("${forEach(${body},'Hello
${body}')}");
+ list = expression.evaluate(exchange, List.class);
+ assertEquals(0, list.size());
+ }
+
@Test
public void testNot() {
exchange.getMessage().setBody("");