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-spring-boot.git


The following commit(s) were added to refs/heads/main by this push:
     new 200ad28277c Regen
200ad28277c is described below

commit 200ad28277ce047ab336f552871971e0ab41c657
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Feb 5 16:59:46 2026 +0100

    Regen
---
 .../springboot/catalog/components/github.json      |   2 +-
 .../catalog/components/langchain4j-tools.json      |  17 +-
 .../springboot/catalog/dev-consoles.properties     |   1 +
 .../{simple-language.json => eval-language.json}   |   8 +-
 .../catalog/dev-consoles/simple-language.json      |   2 +-
 .../camel/springboot/catalog/languages/file.json   |  30 +--
 .../camel/springboot/catalog/languages/simple.json | 224 ++++++++++-----------
 tooling/camel-spring-boot-dependencies/pom.xml     |   5 +
 8 files changed, 148 insertions(+), 141 deletions(-)

diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/github.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/github.json
index e0af29a7d89..a9740da48ad 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/github.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/github.json
@@ -4,7 +4,7 @@
     "name": "github",
     "title": "GitHub",
     "description": "Interact with the GitHub API.",
-    "deprecated": false,
+    "deprecated": true,
     "firstVersion": "2.15.0",
     "label": "file,cloud,api",
     "javaType": "org.apache.camel.component.github.GitHubComponent",
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-tools.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-tools.json
index 2da6ca1ed87..80fa683271c 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-tools.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-tools.json
@@ -34,13 +34,14 @@
     "toolId": { "index": 0, "kind": "path", "displayName": "Tool Id", "group": 
"common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The tool id" },
     "tags": { "index": 1, "kind": "parameter", "displayName": "Tags", "group": 
"common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The tags for the tools" },
     "description": { "index": 2, "kind": "parameter", "displayName": 
"Description", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Tool description" },
-    "name": { "index": 3, "kind": "parameter", "displayName": "Name", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Tool name" },
-    "parameters": { "index": 4, "kind": "parameter", "displayName": 
"Parameters", "group": "consumer", "label": "consumer", "required": false, 
"type": "object", "javaType": "java.util.Map<java.lang.String, 
java.lang.String>", "prefix": "parameter.", "multiValue": true, "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "List of Tool parameters in the form of parameter.=. This is a 
multi-value option with prefix: parameter." },
-    "bridgeErrorHandler": { "index": 5, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming  [...]
-    "camelToolParameter": { "index": 6, "kind": "parameter", "displayName": 
"Camel Tool Parameter", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.langchain4j.tools.spec.CamelSimpleToolParameter", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Tool's Camel Parameters, programmatically define Tool 
description and parameters" },
-    "exceptionHandler": { "index": 7, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By def [...]
-    "exchangePattern": { "index": 8, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
-    "lazyStartProducer": { "index": 9, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
-    "chatModel": { "index": 10, "kind": "parameter", "displayName": "Chat 
Model", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.langchain4j.tools.LangChain4jToolsConfiguration", 
"configurationField": "configuration", "description": "Chat Model of type 
dev.langchain4j.model.cha [...]
+    "exposed": { "index": 3, "kind": "parameter", "displayName": "Exposed", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "defaultValue": true, "description": "Whether the tool 
is automatically exposed to the LLM. When false, the tool is added to a 
searchable list and can be discovered via the tool-search-tool" },
+    "name": { "index": 4, "kind": "parameter", "displayName": "Name", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Tool name" },
+    "parameters": { "index": 5, "kind": "parameter", "displayName": 
"Parameters", "group": "consumer", "label": "consumer", "required": false, 
"type": "object", "javaType": "java.util.Map<java.lang.String, 
java.lang.String>", "prefix": "parameter.", "multiValue": true, "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "List of Tool parameters in the form of parameter.=. This is a 
multi-value option with prefix: parameter." },
+    "bridgeErrorHandler": { "index": 6, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming  [...]
+    "camelToolParameter": { "index": 7, "kind": "parameter", "displayName": 
"Camel Tool Parameter", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.langchain4j.tools.spec.CamelSimpleToolParameter", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Tool's Camel Parameters, programmatically define Tool 
description and parameters" },
+    "exceptionHandler": { "index": 8, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By def [...]
+    "exchangePattern": { "index": 9, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "index": 10, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
+    "chatModel": { "index": 11, "kind": "parameter", "displayName": "Chat 
Model", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.langchain4j.tools.LangChain4jToolsConfiguration", 
"configurationField": "configuration", "description": "Chat Model of type 
dev.langchain4j.model.cha [...]
   }
 }
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles.properties
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles.properties
index c6de790fd6d..1e1e049d2d6 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles.properties
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles.properties
@@ -9,6 +9,7 @@ consumer
 context
 debug
 endpoint
+eval-language
 event
 gc
 gcp-secrets
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/simple-language.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/eval-language.json
similarity index 52%
copy from 
catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/simple-language.json
copy to 
catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/eval-language.json
index e5217fc5e3b..33d7d36cdd9 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/simple-language.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/eval-language.json
@@ -2,11 +2,11 @@
   "console": {
     "kind": "console",
     "group": "camel",
-    "name": "simple-language",
-    "title": "Simple Language",
-    "description": "Display simple language details",
+    "name": "eval-language",
+    "title": "Evaluate Language",
+    "description": "Evaluate Language and display result",
     "deprecated": false,
-    "javaType": "org.apache.camel.impl.console.SimpleLanguageConsole",
+    "javaType": "org.apache.camel.impl.console.EvalLanguageDevConsole",
     "groupId": "org.apache.camel.springboot",
     "artifactId": "camel-console-starter",
     "version": "4.18.0-SNAPSHOT"
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/simple-language.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/simple-language.json
index e5217fc5e3b..27b69614664 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/simple-language.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/simple-language.json
@@ -6,7 +6,7 @@
     "title": "Simple Language",
     "description": "Display simple language details",
     "deprecated": false,
-    "javaType": "org.apache.camel.impl.console.SimpleLanguageConsole",
+    "javaType": "org.apache.camel.impl.console.SimpleLanguageDevConsole",
     "groupId": "org.apache.camel.springboot",
     "artifactId": "camel-console-starter",
     "version": "4.18.0-SNAPSHOT"
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/file.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/file.json
index 237159c553c..ff4ac4bf6c7 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/file.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/file.json
@@ -25,20 +25,20 @@
     "trim": { "index": 6, "kind": "attribute", "displayName": "Trim", "group": 
"advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Whether to trim the 
source code to remove leading and trailing whitespaces and line breaks. For 
example when using DSLs where the source will span across multiple lines and 
there may be additional line breaks at b [...]
   },
   "functions": {
-    "file:name": { "index": 0, "kind": "function", "displayName": "File", 
"group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The file name (relative 
from starting directory)", "ognl": false, "suffix": "}" },
-    "file:name.noext": { "index": 1, "kind": "function", "displayName": 
"File", "group": "function", "label": "function", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "The file name 
(relative from starting directory) without extension", "ognl": false, "suffix": 
"}" },
-    "file:name.noext.single": { "index": 2, "kind": "function", "displayName": 
"File", "group": "function", "label": "function", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "The file name 
(relative from starting directory) without extension. If the file name has 
multiple dots, then this expression strips and only returns the last part.", 
"ognl": false, "suffix": "}" },
-    "file:name.ext": { "index": 3, "kind": "function", "displayName": "File", 
"group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The file extension", 
"ognl": false, "suffix": "}" },
-    "file:name.ext.single": { "index": 4, "kind": "function", "displayName": 
"File", "group": "function", "label": "function", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "The file extension. If 
the file extension has multiple dots, then this expression strips and only 
returns the last part.", "ognl": false, "suffix": "}" },
-    "file:onlyname": { "index": 5, "kind": "function", "displayName": "File", 
"group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "\u2020he file name 
(without any leading paths)", "ognl": false, "suffix": "}" },
-    "file:onlyname.noext": { "index": 6, "kind": "function", "displayName": 
"File", "group": "function", "label": "function", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "\u2020he file name 
(without any leading paths) without extension", "ognl": false, "suffix": "}" },
-    "file:onlyname.noext.single": { "index": 7, "kind": "function", 
"displayName": "File", "group": "function", "label": "function", "required": 
false, "javaType": "String", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"\u2020he file name (without any leading paths) without extension. If the file 
name has multiple dots, then this expression strips and only returns the last 
part.", "ognl": false, "suffix": "}" },
-    "file:parent": { "index": 8, "kind": "function", "displayName": "File", 
"group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The file parent directory 
(null if no parent directory)", "ognl": false, "suffix": "}" },
-    "file:path": { "index": 9, "kind": "function", "displayName": "File", 
"group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The file path", "ognl": 
false, "suffix": "}" },
-    "file:absolute": { "index": 10, "kind": "function", "displayName": "File", 
"group": "function", "label": "function", "required": false, "javaType": 
"boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Whether the file is 
regarded as absolute or relative", "ognl": false, "suffix": "}" },
-    "file:absolute.path": { "index": 11, "kind": "function", "displayName": 
"File", "group": "function", "label": "function", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "The absolute file 
path", "ognl": false, "suffix": "}" },
-    "file:length": { "index": 12, "kind": "function", "displayName": "File", 
"group": "function", "label": "function", "required": false, "javaType": 
"long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The size of the file", 
"ognl": false, "suffix": "}" },
-    "file:size": { "index": 13, "kind": "function", "displayName": "File", 
"group": "function", "label": "function", "required": false, "javaType": 
"long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The size of the file", 
"ognl": false, "suffix": "}" },
-    "file:modified": { "index": 14, "kind": "function", "displayName": "File", 
"group": "function", "label": "function", "required": false, "javaType": 
"long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The file modification 
date", "ognl": false, "suffix": "}" }
+    "file:name": { "index": 0, "kind": "function", "displayName": "File", 
"group": "file", "label": "file", "required": false, "javaType": "String", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The file name (relative from starting 
directory)", "ognl": false, "suffix": "}" },
+    "file:name.noext": { "index": 1, "kind": "function", "displayName": 
"File", "group": "file", "label": "file", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The file name (relative 
from starting directory) without extension", "ognl": false, "suffix": "}" },
+    "file:name.noext.single": { "index": 2, "kind": "function", "displayName": 
"File", "group": "file", "label": "file", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The file name (relative 
from starting directory) without extension. If the file name has multiple dots, 
then this expression strips and only returns the last part.", "ognl": false, 
"suffix": "}" },
+    "file:name.ext": { "index": 3, "kind": "function", "displayName": "File", 
"group": "file", "label": "file", "required": false, "javaType": "String", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The file extension", "ognl": false, "suffix": 
"}" },
+    "file:name.ext.single": { "index": 4, "kind": "function", "displayName": 
"File", "group": "file", "label": "file", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The file extension. If the 
file extension has multiple dots, then this expression strips and only returns 
the last part.", "ognl": false, "suffix": "}" },
+    "file:onlyname": { "index": 5, "kind": "function", "displayName": "File", 
"group": "file", "label": "file", "required": false, "javaType": "String", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "\u2020he file name (without any leading 
paths)", "ognl": false, "suffix": "}" },
+    "file:onlyname.noext": { "index": 6, "kind": "function", "displayName": 
"File", "group": "file", "label": "file", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "\u2020he file name 
(without any leading paths) without extension", "ognl": false, "suffix": "}" },
+    "file:onlyname.noext.single": { "index": 7, "kind": "function", 
"displayName": "File", "group": "file", "label": "file", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "\u2020he file name 
(without any leading paths) without extension. If the file name has multiple 
dots, then this expression strips and only returns the last part.", "ognl": 
false, "suffix": "}" },
+    "file:parent": { "index": 8, "kind": "function", "displayName": "File", 
"group": "file", "label": "file", "required": false, "javaType": "String", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The file parent directory (null if no parent 
directory)", "ognl": false, "suffix": "}" },
+    "file:path": { "index": 9, "kind": "function", "displayName": "File", 
"group": "file", "label": "file", "required": false, "javaType": "String", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The file path", "ognl": false, "suffix": "}" },
+    "file:absolute": { "index": 10, "kind": "function", "displayName": "File", 
"group": "file", "label": "file", "required": false, "javaType": "boolean", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Whether the file is regarded as absolute or 
relative", "ognl": false, "suffix": "}" },
+    "file:absolute.path": { "index": 11, "kind": "function", "displayName": 
"File", "group": "file", "label": "file", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The absolute file path", 
"ognl": false, "suffix": "}" },
+    "file:length": { "index": 12, "kind": "function", "displayName": "File", 
"group": "file", "label": "file", "required": false, "javaType": "long", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The size of the file", "ognl": false, 
"suffix": "}" },
+    "file:size": { "index": 13, "kind": "function", "displayName": "File", 
"group": "file", "label": "file", "required": false, "javaType": "long", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The size of the file", "ognl": false, 
"suffix": "}" },
+    "file:modified": { "index": 14, "kind": "function", "displayName": "File", 
"group": "file", "label": "file", "required": false, "javaType": "long", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The file modification date", "ognl": false, 
"suffix": "}" }
   }
 }
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/simple.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/simple.json
index 0a551bf4fde..26ab57d39ac 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/simple.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/simple.json
@@ -25,117 +25,117 @@
     "trim": { "index": 6, "kind": "attribute", "displayName": "Trim", "group": 
"advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Whether to trim the 
source code to remove leading and trailing whitespaces and line breaks. For 
example when using DSLs where the source will span across multiple lines and 
there may be additional line breaks at b [...]
   },
   "functions": {
-    "abs(exp)": { "index": 0, "kind": "function", "displayName": "Absolute 
Number", "group": "function", "label": "function", "required": false, 
"javaType": "Long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Converts the message body 
(or expression) to a long number and return the absolute value.", "ognl": 
false, "suffix": "}" },
-    "assert(exp,msg)": { "index": 1, "kind": "function", "displayName": 
"Assert", "group": "function", "label": "function", "required": false, 
"javaType": "java.lang.Exception", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Evaluates the expression and throws an exception with the message if the 
condition is false", "ognl": false, "suffix": "}" },
-    "attachment.name": { "index": 2, "kind": "function", "displayName": 
"Attachment", "group": "function", "label": "function", "required": false, 
"javaType": "jakarta.activation.DataHandler", "prefix": "${", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The DataHandler for the given attachment.", "ognl": true, 
"suffix": "}" },
-    "attachments": { "index": 3, "kind": "function", "displayName": 
"Attachments", "group": "function", "label": "function", "required": false, 
"javaType": "java.util.Map", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "All 
the attachments as a Map<String,DataHandler.", "ognl": false, "suffix": "}" },
-    "attachmentsContent.name": { "index": 4, "kind": "function", 
"displayName": "Attachments Content", "group": "function", "label": "function", 
"required": false, "javaType": "Object", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
content of the attachment", "ognl": false, "suffix": "}" },
-    "attachmentsContentAs(name,type)": { "index": 5, "kind": "function", 
"displayName": "Attachments Content As", "group": "function", "label": 
"function", "required": false, "javaType": "Object", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The content of the attachment, converted to the given 
type.", "ognl": false, "suffix": "}" },
-    "attachmentsContentAsText.name": { "index": 6, "kind": "function", 
"displayName": "Attachments Content As Text", "group": "function", "label": 
"function", "required": false, "javaType": "String", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The content of the attachment as text (ie String).", 
"ognl": false, "suffix": "}" },
-    "attachmentsHeader(key,name)": { "index": 7, "kind": "function", 
"displayName": "Attachments Header", "group": "function", "label": "function", 
"required": false, "javaType": "String", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
attachment header with the given name.", "ognl": false, "suffix": "}" },
-    "attachmentsHeaderAs(key,name,type)": { "index": 8, "kind": "function", 
"displayName": "Attachments Header As", "group": "function", "label": 
"function", "required": false, "javaType": "Object", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The attachment header with the given name, converted to 
the given type.", "ognl": false, "suffix": "}" },
-    "attachmentsKeys": { "index": 9, "kind": "function", "displayName": 
"Attachments Keys", "group": "function", "label": "function", "required": 
false, "javaType": "java.util.Set", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "All 
the attachment keys (filenames)", "ognl": false, "suffix": "}" },
-    "attachmentsSize": { "index": 10, "kind": "function", "displayName": 
"Attachments Size", "group": "function", "label": "function", "required": 
false, "javaType": "int", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
number of attachments. Is 0 if there are no attachments.", "ognl": false, 
"suffix": "}" },
-    "average(val...)": { "index": 11, "kind": "function", "displayName": 
"Average Number", "group": "function", "label": "function", "required": false, 
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Returns the average number 
from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
-    "base64Decode(exp)": { "index": 12, "kind": "function", "displayName": 
"Base64 Decode", "group": "function", "label": "function", "required": false, 
"javaType": "byte[]", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Base64 decodes the 
message body (or expression)", "ognl": false, "suffix": "}" },
-    "base64Encode(exp)": { "index": 13, "kind": "function", "displayName": 
"Base64 Encode", "group": "function", "label": "function", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Base64 encodes the 
message body (or expression)", "ognl": false, "suffix": "}" },
-    "bean(name.method)": { "index": 14, "kind": "function", "displayName": 
"Call Java Bean", "group": "function", "label": "function", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Calls a Java bean. The 
name of the bean can also refer to a class name using type prefix as follows 
`bean:type:com.foo.MyClass`. If no method name is given then Camel will 
automatic attempt to find the b [...]
-    "body": { "index": 15, "kind": "function", "displayName": "Body", "group": 
"function", "label": "function", "required": false, "javaType": "Object", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The message body", "ognl": true, "suffix": "}" 
},
-    "bodyAs(type)": { "index": 16, "kind": "function", "displayName": "Body 
As", "group": "function", "label": "function", "required": false, "javaType": 
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Converts the message body 
to the given type (classname).", "ognl": true, "suffix": "}" },
-    "bodyOneLine": { "index": 17, "kind": "function", "displayName": "Body One 
Line", "group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Converts the body to a 
String and removes all line-breaks, so the string is in one line.", "ognl": 
false, "suffix": "}" },
-    "bodyType": { "index": 18, "kind": "function", "displayName": "Body Type", 
"group": "function", "label": "function", "required": false, "javaType": 
"Class", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The message body class 
type", "ognl": false, "suffix": "}" },
-    "camelContext": { "index": 19, "kind": "function", "displayName": "Camel 
Context", "group": "function", "label": "function", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "The Camel Context", 
"ognl": true, "suffix": "}" },
-    "camelId": { "index": 20, "kind": "function", "displayName": "Camel Id", 
"group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The name of the 
CamelContext", "ognl": false, "suffix": "}" },
-    "capitalize(exp)": { "index": 21, "kind": "function", "displayName": 
"Capitalize String Values", "group": "function", "label": "function", 
"required": false, "javaType": "String", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Capitalizes the message body\/expression as a String value (upper case every 
words)", "ognl": false, "suffix": "}" },
-    "ceil(exp)": { "index": 22, "kind": "function", "displayName": "Ceil 
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 ceil value (rounded up 
to nearest integer).", "ognl": false, "suffix": "}" },
-    "clearAttachments": { "index": 23, "kind": "function", "displayName": 
"Clear Attachments", "group": "function", "label": "function", "required": 
false, "javaType": "Object", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Removes all existing attachments on the message.", "ognl": false, "suffix": 
"}" },
-    "collate(num)": { "index": 24, "kind": "function", "displayName": "Group 
Message Body into Sub Lists", "group": "function", "label": "function", 
"required": false, "javaType": "java.util.Iterator", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The collate function iterates the message body and 
groups the data into sub lists of specified size. This can be used with the 
Splitter EIP to split a message body and group\/ba [...]
-    "concat(exp,exp,separator)": { "index": 25, "kind": "function", 
"displayName": "Concat", "group": "function", "label": "function", "required": 
false, "javaType": "String", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Performs a string concat using two expressions (message body as default) with 
optional separator", "ognl": false, "suffix": "}" },
-    "convertTo(exp,type)": { "index": 26, "kind": "function", "displayName": 
"Convert To", "group": "function", "label": "function", "required": false, 
"javaType": "", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Converts the message body 
(or expression) to the specified type.", "ognl": true, "suffix": "}" },
-    "date(command)": { "index": 27, "kind": "function", "displayName": "Parse 
Date", "group": "function", "label": "function", "required": false, "javaType": 
"java.util.Date", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Evaluates to a 
java.util.Date object. Supported commands are: `now` for current timestamp, 
`millis` for current timestamp in millis (unix epoch), `exchangeCreated` for 
the timestamp when the current exch [...]
-    "date-with-timezone(command:timezone:pattern)": { "index": 28, "kind": 
"function", "displayName": "Date Formatter", "group": "function", "label": 
"function", "required": false, "javaType": "String", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Formats the date to a String using the given date 
pattern, and with support for timezone. Supported commands are: `now` for 
current timestamp, `exchangeCreated` for the timesta [...]
-    "distinct(val...)": { "index": 29, "kind": "function", "displayName": 
"Distinct Values", "group": "function", "label": "function", "required": false, 
"javaType": "Set", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Returns a set of all the 
values with duplicates removed", "ognl": false, "suffix": "}" },
-    "empty(type)": { "index": 30, "kind": "function", "displayName": "Create 
Empty Object", "group": "function", "label": "function", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": true, "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 `set`  [...]
-    "env.name": { "index": 31, "kind": "function", "displayName": "OS 
Environment Variable", "group": "function", "label": "function", "required": 
false, "javaType": "Object", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
OS environment variable with the given name", "ognl": false, "suffix": "}" },
-    "exchange": { "index": 32, "kind": "function", "displayName": "Exchange", 
"group": "function", "label": "function", "required": false, "javaType": 
"org.apache.camel.Exchange", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
current exchange", "ognl": true, "suffix": "}" },
-    "exchangeId": { "index": 33, "kind": "function", "displayName": "Exchange 
Id", "group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The exchange id", "ognl": 
false, "suffix": "}" },
-    "exchangeProperty.name": { "index": 34, "kind": "function", "displayName": 
"Exchange Property", "group": "function", "label": "function", "required": 
false, "javaType": "Object", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
exchange property with the given name", "ognl": true, "suffix": "}" },
-    "exception": { "index": 35, "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": 36, "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": 37, "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": "}" },
-    "forEach(exp,fun)": { "index": 38, "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": 39, "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": 40, "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": "}" },
-    "function(name,exp)": { "index": 41, "kind": "function", "displayName": 
"For Each call Function", "group": "function", "label": "function", "required": 
false, "javaType": "Object", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Invokes a custom function with the given name using the message body (or 
expression) as input parameter.", "ognl": false, "suffix": "}" },
-    "hash(exp,algorithm)": { "index": 42, "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": 43, "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": 44, "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": 45, "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": 46, "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": 47, "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": 48, "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": 49, "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": 50, "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": 51, "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": 52, "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": 53, "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": 54, "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": 55, "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": 56, "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": 57, "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": "}" },
-    "load(file)": { "index": 58, "kind": "function", "displayName": "Load", 
"group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Loads the content of the 
resource from classpath (cannot load from file-system to avoid dangerous 
situations).", "ognl": false, "suffix": "}" },
-    "lowercase(exp)": { "index": 59, "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": 60, "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": 61, "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": 62, "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 (integral numbers only).", "ognl": false, "suffix": "}" },
-    "messageAs(type)": { "index": 63, "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": 64, "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": 65, "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": 66, "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 (integral numbers only).", "ognl": false, "suffix": "}" },
-    "newEmpty(type)": { "index": 67, "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 [...]
-    "normalizeWhitespace(exp)": { "index": 68, "kind": "function", 
"displayName": "Normalize Whitespace", "group": "function", "label": 
"function", "required": false, "javaType": "String", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Normalizes the whitespace in the message body (or 
expression) by cleaning up excess whitespaces.", "ognl": false, "suffix": "}" },
-    "not": { "index": 69, "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": 70, "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": 71, "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": 72, "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": 73, "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": 74, "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": 75, "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": 76, "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": 
"}" },
-    "quote(exp)": { "index": 77, "kind": "function", "displayName": "Quote", 
"group": "function", "label": "function", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Returns the message body 
(or expression) as a double quoted string", "ognl": false, "suffix": "}" },
-    "random(min,max)": { "index": 78, "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": 79, "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": 80, "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 
`\\&quot;` as double quote, `\\&apos;`  [...]
-    "reverse(val...)": { "index": 81, "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": 82, "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": 83, "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": "}" },
-    "safeQuote(exp)": { "index": 84, "kind": "function", "displayName": "Safe 
Quote", "group": "function", "label": "function", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Returns the message 
body (or expression) safely quoted if needed", "ognl": false, "suffix": "}" },
-    "setVariable(key,exp)": { "index": 85, "kind": "function", "displayName": 
"Set Variable", "group": "function", "label": "function", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Sets an attachment 
with payload from the message body\/expression.", "ognl": false, "suffix": "}" 
},
-    "setHeader(name,type,exp)": { "index": 86, "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": 87, "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": 88, "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": 89, "kind": "function", "displayName": "Size", 
"group": "function", "label": "function", "required": false, "javaType": "int", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Returns the number of elements in collection 
or array based payloads. If the value is null then 0 is returned, otherwise 
1.", "ognl": false, "suffix": "}" },
-    "skip(num)": { "index": 90, "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": 91, "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": 92, "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": 93, "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": 94, "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": 95, "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": 96, "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": 97, "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": 98, "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": 99, "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": 100, "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": "}" },
-    "throwException(type,msg)": { "index": 101, "kind": "function", 
"displayName": "Throw Exception", "group": "function", "label": "function", 
"required": false, "javaType": "java.lang.Exception", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Deliberately throws an error. Uses 
IllegalArgumentException by default if no type is specified (use fully 
qualified classname).", "ognl": false, "suffix": "}" },
-    "trim(exp)": { "index": 102, "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": 103, "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`",  [...]
-    "kindOfType(exp)": { "index": 104, "kind": "function", "displayName": 
"Kind of Type", "group": "function", "label": "function", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "What kind of type is 
the value (null,number,string,boolean,array,object)", "ognl": false, "suffix": 
"}" },
-    "unquote(exp)": { "index": 105, "kind": "function", "displayName": 
"Unquote", "group": "function", "label": "function", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Returns the message 
body (or expression) with any leading\/ending quotes removed", "ognl": false, 
"suffix": "}" },
-    "uppercase(exp)": { "index": 106, "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": 107, "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 `Uuid [...]
-    "variable.name": { "index": 108, "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": 109, "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": 110, "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": 111, "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 (optiona [...]
+    "abs(exp)": { "index": 0, "kind": "function", "displayName": "Absolute 
Number", "group": "number", "label": "number", "required": false, "javaType": 
"Long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Converts the message body 
(or expression) to a long number and return the absolute value.", "ognl": 
false, "suffix": "}" },
+    "assert(exp,msg)": { "index": 1, "kind": "function", "displayName": 
"Assert", "group": "condition", "label": "condition", "required": false, 
"javaType": "java.lang.Exception", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Evaluates the expression and throws an exception with the message if the 
condition is false", "ognl": false, "suffix": "}" },
+    "attachment.name": { "index": 2, "kind": "function", "displayName": 
"Attachment", "group": "attachment", "label": "attachment", "required": false, 
"javaType": "jakarta.activation.DataHandler", "prefix": "${", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The DataHandler for the given attachment.", "ognl": true, 
"suffix": "}" },
+    "attachments": { "index": 3, "kind": "function", "displayName": 
"Attachments", "group": "attachment", "label": "attachment", "required": false, 
"javaType": "java.util.Map", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "All 
the attachments as a Map<String,DataHandler.", "ognl": false, "suffix": "}" },
+    "attachmentsContent.name": { "index": 4, "kind": "function", 
"displayName": "Attachments Content", "group": "attachment", "label": 
"attachment", "required": false, "javaType": "Object", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The content of the attachment", "ognl": false, "suffix": 
"}" },
+    "attachmentsContentAs(name,type)": { "index": 5, "kind": "function", 
"displayName": "Attachments Content As", "group": "attachment", "label": 
"attachment", "required": false, "javaType": "Object", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The content of the attachment, converted to the given 
type.", "ognl": false, "suffix": "}" },
+    "attachmentsContentAsText.name": { "index": 6, "kind": "function", 
"displayName": "Attachments Content As Text", "group": "attachment", "label": 
"attachment", "required": false, "javaType": "String", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The content of the attachment as text (ie String).", 
"ognl": false, "suffix": "}" },
+    "attachmentsHeader(key,name)": { "index": 7, "kind": "function", 
"displayName": "Attachments Header", "group": "attachment", "label": 
"attachment", "required": false, "javaType": "String", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The attachment header with the given name.", "ognl": 
false, "suffix": "}" },
+    "attachmentsHeaderAs(key,name,type)": { "index": 8, "kind": "function", 
"displayName": "Attachments Header As", "group": "attachment", "label": 
"attachment", "required": false, "javaType": "Object", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The attachment header with the given name, converted to 
the given type.", "ognl": false, "suffix": "}" },
+    "attachmentsKeys": { "index": 9, "kind": "function", "displayName": 
"Attachments Keys", "group": "attachment", "label": "attachment", "required": 
false, "javaType": "java.util.Set", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "All 
the attachment keys (filenames)", "ognl": false, "suffix": "}" },
+    "attachmentsSize": { "index": 10, "kind": "function", "displayName": 
"Attachments Size", "group": "attachment", "label": "attachment", "required": 
false, "javaType": "int", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
number of attachments. Is 0 if there are no attachments.", "ognl": false, 
"suffix": "}" },
+    "average(val...)": { "index": 11, "kind": "function", "displayName": 
"Average Number", "group": "number", "label": "number", "required": false, 
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Returns the average number 
from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
+    "base64Decode(exp)": { "index": 12, "kind": "function", "displayName": 
"Base64 Decode", "group": "base64", "label": "base64", "required": false, 
"javaType": "byte[]", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Base64 decodes the 
message body (or expression)", "ognl": false, "suffix": "}" },
+    "base64Encode(exp)": { "index": 13, "kind": "function", "displayName": 
"Base64 Encode", "group": "base64", "label": "base64", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Base64 encodes the 
message body (or expression)", "ognl": false, "suffix": "}" },
+    "bean(name.method)": { "index": 14, "kind": "function", "displayName": 
"Call Java Bean", "group": "core", "label": "core", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Calls a Java bean. The 
name of the bean can also refer to a class name using type prefix as follows 
`bean:type:com.foo.MyClass`. If no method name is given then Camel will 
automatic attempt to find the best meth [...]
+    "body": { "index": 15, "kind": "function", "displayName": "Body", "group": 
"core", "label": "core", "required": false, "javaType": "Object", "prefix": 
"${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The message body", "ognl": true, "suffix": "}" },
+    "bodyAs(type)": { "index": 16, "kind": "function", "displayName": "Body 
As", "group": "core", "label": "core", "required": false, "javaType": "Object", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Converts the message body to the given type 
(classname).", "ognl": true, "suffix": "}" },
+    "bodyOneLine": { "index": 17, "kind": "function", "displayName": "Body One 
Line", "group": "funcorection", "label": "funcorection", "required": false, 
"javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Converts the body to a 
String and removes all line-breaks, so the string is in one line.", "ognl": 
false, "suffix": "}" },
+    "bodyType": { "index": 18, "kind": "function", "displayName": "Body Type", 
"group": "core", "label": "core", "required": false, "javaType": "Class", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The message body class type", "ognl": false, 
"suffix": "}" },
+    "camelContext": { "index": 19, "kind": "function", "displayName": "Camel 
Context", "group": "core", "label": "core", "required": false, "javaType": 
"Object", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The Camel Context", 
"ognl": true, "suffix": "}" },
+    "camelId": { "index": 20, "kind": "function", "displayName": "Camel Id", 
"group": "core", "label": "core", "required": false, "javaType": "String", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The name of the CamelContext", "ognl": false, 
"suffix": "}" },
+    "capitalize(exp)": { "index": 21, "kind": "function", "displayName": 
"Capitalize String Values", "group": "string", "label": "string", "required": 
false, "javaType": "String", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Capitalizes the message body\/expression as a String value (upper case every 
words)", "ognl": false, "suffix": "}" },
+    "ceil(exp)": { "index": 22, "kind": "function", "displayName": "Ceil 
Number", "group": "number", "label": "number", "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 ceil value (rounded up to 
nearest integer).", "ognl": false, "suffix": "}" },
+    "clearAttachments": { "index": 23, "kind": "function", "displayName": 
"Clear Attachments", "group": "attachment", "label": "attachment", "required": 
false, "javaType": "Object", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Removes all existing attachments on the message.", "ognl": false, "suffix": 
"}" },
+    "collate(num)": { "index": 24, "kind": "function", "displayName": "Group 
Message Body into Sub Lists", "group": "collection", "label": "collection", 
"required": false, "javaType": "java.util.Iterator", "prefix": "${", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The collate function iterates the message body and 
groups the data into sub lists of specified size. This can be used with the 
Splitter EIP to split a message body and group [...]
+    "concat(exp,exp,separator)": { "index": 25, "kind": "function", 
"displayName": "Concat", "group": "string", "label": "string", "required": 
false, "javaType": "String", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Performs a string concat using two expressions (message body as default) with 
optional separator", "ognl": false, "suffix": "}" },
+    "convertTo(exp,type)": { "index": 26, "kind": "function", "displayName": 
"Convert To", "group": "core", "label": "core", "required": false, "javaType": 
"", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Converts the message body (or 
expression) to the specified type.", "ognl": true, "suffix": "}" },
+    "date(command)": { "index": 27, "kind": "function", "displayName": "Parse 
Date", "group": "date", "label": "date", "required": false, "javaType": 
"java.util.Date", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Evaluates to a 
java.util.Date object. Supported commands are: `now` for current timestamp, 
`millis` for current timestamp in millis (unix epoch), `exchangeCreated` for 
the timestamp when the current exchange was [...]
+    "date-with-timezone(command:timezone:pattern)": { "index": 28, "kind": 
"function", "displayName": "Date Formatter", "group": "date", "label": "date", 
"required": false, "javaType": "String", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Formats the date to a String using the given date pattern, and with support 
for timezone. Supported commands are: `now` for current timestamp, 
`exchangeCreated` for the timestamp when  [...]
+    "distinct(val...)": { "index": 29, "kind": "function", "displayName": 
"Distinct Values", "group": "collection", "label": "collection", "required": 
false, "javaType": "Set", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Returns a set of all the values with duplicates removed", "ognl": false, 
"suffix": "}" },
+    "empty(type)": { "index": 30, "kind": "function", "displayName": "Create 
Empty Object", "group": "collection", "label": "collection", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": true, "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 [...]
+    "env.name": { "index": 31, "kind": "function", "displayName": "OS 
Environment Variable", "group": "other", "label": "other", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "The OS environment 
variable with the given name", "ognl": false, "suffix": "}" },
+    "exchange": { "index": 32, "kind": "function", "displayName": "Exchange", 
"group": "core", "label": "core", "required": false, "javaType": 
"org.apache.camel.Exchange", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
current exchange", "ognl": true, "suffix": "}" },
+    "exchangeId": { "index": 33, "kind": "function", "displayName": "Exchange 
Id", "group": "core", "label": "core", "required": false, "javaType": "String", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The exchange id", "ognl": false, "suffix": "}" 
},
+    "exchangeProperty.name": { "index": 34, "kind": "function", "displayName": 
"Exchange Property", "group": "core", "label": "core", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "The exchange property 
with the given name", "ognl": true, "suffix": "}" },
+    "exception": { "index": 35, "kind": "function", "displayName": 
"Exception", "group": "core", "label": "core", "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": 36, "kind": "function", "displayName": 
"Exception Message", "group": "core", "label": "core", "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": 37, "kind": "function", "displayName": 
"Exception Stacktrace", "group": "core", "label": "core", "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": "}" },
+    "forEach(exp,fun)": { "index": 38, "kind": "function", "displayName": "For 
Each call Function", "group": "collection", "label": "collection", "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": 39, "kind": "function", "displayName": "Floor 
Number", "group": "number", "label": "number", "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": 40, "kind": "function", "displayName": "From 
Route Id", "group": "core", "label": "core", "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": "}" },
+    "function(name,exp)": { "index": 41, "kind": "function", "displayName": 
"For Each call Function", "group": "core", "label": "core", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "Invokes a custom 
function with the given name using the message body (or expression) as input 
parameter.", "ognl": false, "suffix": "}" },
+    "hash(exp,algorithm)": { "index": 42, "kind": "function", "displayName": 
"Compute Hash Value", "group": "other", "label": "other", "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": 43, "kind": "function", "displayName": "Header", 
"group": "core", "label": "core", "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": 44, "kind": "function", "displayName": 
"Header As", "group": "core", "label": "core", "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": 45, "kind": "function", "displayName": "Headers", 
"group": "core", "label": "core", "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": 46, "kind": "function", "displayName": "Host Name", 
"group": "other", "label": "other", "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": 47, "kind": "function", "displayName": "Id", "group": 
"core", "label": "core", "required": false, "javaType": "String", "prefix": 
"${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The message id", "ognl": false, "suffix": "}" },
+    "iif(predicate,trueExp,falseExp)": { "index": 48, "kind": "function", 
"displayName": "If Then Else", "group": "condition", "label": "condition", 
"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": 49, "kind": "function", "displayName": "Is 
Alphabetic Value", "group": "condition", "label": "condition", "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": 50, "kind": "function", "displayName": 
"Is Alphabetic-Numeric Value", "group": "condition", "label": "condition", 
"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": 51, "kind": "function", "displayName": "Is 
Empty", "group": "condition", "label": "condition", "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": 52, "kind": "function", "displayName": "Is 
Numeric Value", "group": "condition", "label": "condition", "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": 53, "kind": "function", "displayName": "JQ", 
"group": "json", "label": "json", "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 choose  [...]
+    "jsonpath(input,exp)": { "index": 54, "kind": "function", "displayName": 
"JSonPath", "group": "json", "label": "json", "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 input (op [...]
+    "join(separator,prefix,exp)": { "index": 55, "kind": "function", 
"displayName": "Join", "group": "string", "label": "string", "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. It i [...]
+    "length(exp)": { "index": 56, "kind": "function", "displayName": "Length", 
"group": "function", "label": "function", "required": false, "javaType": 
"core", "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": 57, "kind": "function", "displayName": "Create 
List of values", "group": "collection", "label": "collection", "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": "}" },
+    "load(file)": { "index": 58, "kind": "function", "displayName": "Load", 
"group": "core", "label": "core", "required": false, "javaType": "String", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Loads the content of the resource from 
classpath (cannot load from file-system to avoid dangerous situations).", 
"ognl": false, "suffix": "}" },
+    "lowercase(exp)": { "index": 59, "kind": "function", "displayName": 
"Lowercase", "group": "string", "label": "string", "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": 60, "kind": "function", "displayName": 
"Mandatory Body As", "group": "core", "label": "core", "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": 61, "kind": "function", "displayName": 
"Create Map of pairs", "group": "collection", "label": "collection", 
"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": 62, "kind": "function", "displayName": "Maximum 
Number", "group": "number", "label": "number", "required": false, "javaType": 
"long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Returns the maximum number 
from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
+    "messageAs(type)": { "index": 63, "kind": "function", "displayName": 
"Message As", "group": "core", "label": "core", "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": 64, "kind": "function", 
"displayName": "Print Message History", "group": "core", "label": "core", 
"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 boolean c [...]
+    "messageTimestamp": { "index": 65, "kind": "function", "displayName": 
"Message Timestamp", "group": "core", "label": "core", "required": false, 
"javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The message timestamp 
(millis since epoc) that this message originates from. Some systems like JMS, 
Kafka, AWS have a timestamp on the event\/message that Camel received. This 
method returns the timestamp if a t [...]
+    "min(val...)": { "index": 66, "kind": "function", "displayName": "Minimum 
Number", "group": "number", "label": "number", "required": false, "javaType": 
"long", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Returns the minimum number 
from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
+    "newEmpty(type)": { "index": 67, "kind": "function", "displayName": 
"Create Empty Object", "group": "collection", "label": "collection", 
"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`. Us [...]
+    "normalizeWhitespace(exp)": { "index": 68, "kind": "function", 
"displayName": "Normalize Whitespace", "group": "string", "label": "string", 
"required": false, "javaType": "String", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Normalizes the whitespace in the message body (or expression) by cleaning up 
excess whitespaces.", "ognl": false, "suffix": "}" },
+    "not": { "index": 69, "kind": "function", "displayName": "Not", "group": 
"condition", "label": "condition", "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": 70, "kind": "function", "displayName": "Null", "group": 
"other", "label": "other", "required": false, "javaType": "Object", "prefix": 
"${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Returns a null value", "ognl": false, "suffix": "}" },
+    "originalBody": { "index": 71, "kind": "function", "displayName": 
"Original Body", "group": "core", "label": "core", "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": 72, "kind": "function", 
"displayName": "Pad String", "group": "string", "label": "string", "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.", "ognl" [...]
+    "pretty(exp)": { "index": 73, "kind": "function", "displayName": "Pretty 
Print", "group": "xml", "label": "json,xml", "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": 74, "kind": "function", "displayName": "Pretty 
Body", "group": "xml", "label": "json,xml", "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": 75, "kind": "function", 
"displayName": "Property Placeholder", "group": "core", "label": "core", 
"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": 76, "kind": "function", "displayName": 
"Property Placeholder Exists", "group": "core", "label": "core", "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": 
"}" },
+    "quote(exp)": { "index": 77, "kind": "function", "displayName": "Quote", 
"group": "string", "label": "string", "required": false, "javaType": "String", 
"prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Returns the message body (or expression) as a 
double quoted string", "ognl": false, "suffix": "}" },
+    "random(min,max)": { "index": 78, "kind": "function", "displayName": 
"Random", "group": "number", "label": "number", "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": 79, "kind": "function", "displayName": "Bean By 
Id", "group": "core", "label": "core", "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": 80, "kind": "function", "displayName": 
"Replace String Values", "group": "string", "label": "string", "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 
`\\&quot;` as double quote, `\\&apos;` as s [...]
+    "reverse(val...)": { "index": 81, "kind": "function", "displayName": 
"Reverse Values", "group": "collection", "label": "collection", "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": 82, "kind": "function", "displayName": "Route 
Group", "group": "core", "label": "core", "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": 83, "kind": "function", "displayName": "Route Id", 
"group": "core", "label": "core", "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": "}" },
+    "safeQuote(exp)": { "index": 84, "kind": "function", "displayName": "Safe 
Quote", "group": "string", "label": "string", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Returns the message body 
(or expression) safely quoted if needed", "ognl": false, "suffix": "}" },
+    "setVariable(key,exp)": { "index": 85, "kind": "function", "displayName": 
"Set Variable", "group": "attachment", "label": "attachment", "required": 
false, "javaType": "Object", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Sets an attachment with payload from the message body\/expression.", "ognl": 
false, "suffix": "}" },
+    "setHeader(name,type,exp)": { "index": 86, "kind": "function", 
"displayName": "Set Header", "group": "core", "label": "core", "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": 87, "kind": "function", 
"displayName": "Set Variable", "group": "core", "label": "core", "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": 88, "kind": "function", "displayName": 
"Shuffle Values", "group": "collection", "label": "collection", "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": 89, "kind": "function", "displayName": "Size", 
"group": "collection", "label": "collection", "required": false, "javaType": 
"int", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Returns the number of elements in 
collection or array based payloads. If the value is null then 0 is returned, 
otherwise 1.", "ognl": false, "suffix": "}" },
+    "skip(num)": { "index": 90, "kind": "function", "displayName": "Skip First 
Items from the Message Body", "group": "collection", "label": "collection", 
"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 [...]
+    "split(exp,separator)": { "index": 91, "kind": "function", "displayName": 
"Split String Values", "group": "collection", "label": "collection", 
"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": 92, "kind": "function", "displayName": "Step Id", 
"group": "core", "label": "core", "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": 93, "kind": "function", "displayName": 
"Substring", "group": "string", "label": "string", "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 from t [...]
+    "substringAfter(exp,before)": { "index": 94, "kind": "function", 
"displayName": "Substring After", "group": "string", "label": "string", 
"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": 95, "kind": "function", 
"displayName": "Substring Before", "group": "string", "label": "string", 
"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": 96, "kind": "function", 
"displayName": "Substring Between", "group": "string", "label": "string", 
"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": 97, "kind": "function", "displayName": 
"Calculate Sum Number", "group": "number", "label": "number", "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": 98, "kind": "function", "displayName": "JVM System 
Property", "group": "other", "label": "other", "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": 99, "kind": "function", "displayName": "Thread Id", 
"group": "other", "label": "other", "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": 100, "kind": "function", "displayName": "Thread 
Name", "group": "other", "label": "other", "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": "}" },
+    "throwException(type,msg)": { "index": 101, "kind": "function", 
"displayName": "Throw Exception", "group": "core", "label": "core", "required": 
false, "javaType": "java.lang.Exception", "prefix": "${", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Deliberately throws an error. Uses IllegalArgumentException by default if no 
type is specified (use fully qualified classname).", "ognl": false, "suffix": 
"}" },
+    "trim(exp)": { "index": 102, "kind": "function", "displayName": "Trim", 
"group": "string", "label": "string", "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": 103, "kind": "function", "displayName": 
"Java Field Value", "group": "core", "label": "core", "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`", "ognl":  [...]
+    "kindOfType(exp)": { "index": 104, "kind": "function", "displayName": 
"Kind of Type", "group": "core", "label": "core", "required": false, 
"javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "description": "What kind of type is 
the value (null,number,string,boolean,array,object)", "ognl": false, "suffix": 
"}" },
+    "unquote(exp)": { "index": 105, "kind": "function", "displayName": 
"Unquote", "group": "string", "label": "string", "required": false, "javaType": 
"String", "prefix": "${", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Returns the message body 
(or expression) with any leading\/ending quotes removed", "ognl": false, 
"suffix": "}" },
+    "uppercase(exp)": { "index": 106, "kind": "function", "displayName": 
"Uppercase", "group": "string", "label": "string", "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": 107, "kind": "function", "displayName": "Generate 
UUID", "group": "other", "label": "other", "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 `UuidGenera [...]
+    "variable.name": { "index": 108, "kind": "function", "displayName": 
"Variable", "group": "core", "label": "core", "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": 109, "kind": "function", "displayName": 
"Variable As", "group": "core", "label": "core", "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": 110, "kind": "function", "displayName": 
"Variables", "group": "core", "label": "core", "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": 111, "kind": "function", "displayName": 
"XPath", "group": "xml", "label": "xml", "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), you ca [...]
   }
 }
diff --git a/tooling/camel-spring-boot-dependencies/pom.xml 
b/tooling/camel-spring-boot-dependencies/pom.xml
index c55ebb8bb5e..549e98bcaaa 100644
--- a/tooling/camel-spring-boot-dependencies/pom.xml
+++ b/tooling/camel-spring-boot-dependencies/pom.xml
@@ -4634,6 +4634,11 @@
         <artifactId>camel-tensorflow-serving</artifactId>
         <version>4.18.0-SNAPSHOT</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-test</artifactId>
+        <version>4.18.0-SNAPSHOT</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
         <artifactId>camel-test-junit5</artifactId>

Reply via email to