This is an automated email from the ASF dual-hosted git repository.

marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git

commit 020e4d20d64008302cba089677a98cd2f150cec4
Author: Marat Gubaidullin <marat.gubaidul...@gmail.com>
AuthorDate: Sat Jul 1 13:20:44 2023 -0400

    Fix #810
---
 karavan-app/pom.xml                                |  2 +-
 .../pipelines/karavan-task-dev-quarkus.yaml        |  2 +-
 .../pipelines/karavan-task-dev-spring-boot.yaml    |  2 +-
 .../spring-boot-kubernetes-application.properties  |  4 +-
 .../spring-boot-openshift-application.properties   |  4 +-
 karavan-builder/Dockerfile                         |  2 +-
 karavan-cloud/AWS/karavan-quarkus-task-aws.yaml    |  2 +-
 .../AWS/karavan-spring-boot-task-aws.yaml          |  2 +-
 karavan-core/src/core/api/CamelDefinitionApi.ts    |  4 +-
 .../src/core/api/CamelDefinitionYamlStep.ts        |  4 +-
 karavan-core/src/core/model/CamelDefinition.ts     |  9 +++-
 karavan-core/src/core/model/CamelMetadata.ts       | 50 ++++++++++++----------
 karavan-demo/jms-to-kafka/docs/README.md           |  2 +-
 karavan-generator/pom.xml                          |  2 +-
 .../resources/quarkus-builder-script-kubernetes.sh |  2 +-
 .../resources/quarkus-builder-script-openshift.sh  |  2 +-
 .../spring-boot-builder-script-kubernetes.sh       |  2 +-
 .../spring-boot-builder-script-openshift.sh        |  2 +-
 karavan-runner/Dockerfile                          |  2 +-
 karavan-vscode/CHANGELOG.md                        |  4 +-
 karavan-vscode/README.md                           |  4 +-
 karavan-vscode/package.json                        |  6 +--
 22 files changed, 63 insertions(+), 52 deletions(-)

diff --git a/karavan-app/pom.xml b/karavan-app/pom.xml
index 2a5da14c..6f21699e 100644
--- a/karavan-app/pom.xml
+++ b/karavan-app/pom.xml
@@ -31,7 +31,7 @@
         
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
         <quarkus.platform.version>2.16.7.Final</quarkus.platform.version>
         <camel-quarkus.version>2.16.7</camel-quarkus.version>
-        <camel.version>3.20.6</camel.version>
+        <camel.version>3.21.0</camel.version>
         <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
         <infinispan.version>14.0.6.Final</infinispan.version>
         <tekton.version>6.3.1</tekton.version>
diff --git 
a/karavan-app/src/main/resources/pipelines/karavan-task-dev-quarkus.yaml 
b/karavan-app/src/main/resources/pipelines/karavan-task-dev-quarkus.yaml
index e7a89556..19940ac7 100644
--- a/karavan-app/src/main/resources/pipelines/karavan-task-dev-quarkus.yaml
+++ b/karavan-app/src/main/resources/pipelines/karavan-task-dev-quarkus.yaml
@@ -54,7 +54,7 @@ spec:
 
         cd ${CHECKOUT_DIR}/$(inputs.params.project)
 
-        entrypoint -Dcamel.jbang.version=3.20.6 camel@apache/camel export
+        entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export
         --local-kamelet-dir=${KAMELETS_DIR}
 
         export LAST_COMMIT=$(git rev-parse --short HEAD)
diff --git 
a/karavan-app/src/main/resources/pipelines/karavan-task-dev-spring-boot.yaml 
b/karavan-app/src/main/resources/pipelines/karavan-task-dev-spring-boot.yaml
index 1c96d652..cf57e23e 100644
--- a/karavan-app/src/main/resources/pipelines/karavan-task-dev-spring-boot.yaml
+++ b/karavan-app/src/main/resources/pipelines/karavan-task-dev-spring-boot.yaml
@@ -54,7 +54,7 @@ spec:
 
         cd ${CHECKOUT_DIR}/$(inputs.params.project)
 
-        entrypoint -Dcamel.jbang.version=3.20.6 camel@apache/camel export
+        entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export
         --local-kamelet-dir=${KAMELETS_DIR}
 
         export LAST_COMMIT=$(git rev-parse --short HEAD)
diff --git 
a/karavan-app/src/main/resources/snippets/spring-boot-kubernetes-application.properties
 
b/karavan-app/src/main/resources/snippets/spring-boot-kubernetes-application.properties
index 1669574d..352f7d97 100644
--- 
a/karavan-app/src/main/resources/snippets/spring-boot-kubernetes-application.properties
+++ 
b/karavan-app/src/main/resources/snippets/spring-boot-kubernetes-application.properties
@@ -3,8 +3,8 @@ camel.karavan.project-name={projectName}
 camel.karavan.project-description={projectDescription}
 camel.jbang.gav=org.camel.karavan.demo:{projectId}:1
 camel.jbang.runtime=spring-boot
-camel.jbang.camelSpringBootVersion=3.20.6
-camel.jbang.springBootVersion=2.7.11
+camel.jbang.camelSpringBootVersion=3.21.0
+camel.jbang.springBootVersion=2.7.13
 camel.jbang.dependencies=camel:microprofile-health
 camel.health.enabled=true
 camel.health.exposure-level=full
diff --git 
a/karavan-app/src/main/resources/snippets/spring-boot-openshift-application.properties
 
b/karavan-app/src/main/resources/snippets/spring-boot-openshift-application.properties
index 3788ab80..a8026fbe 100644
--- 
a/karavan-app/src/main/resources/snippets/spring-boot-openshift-application.properties
+++ 
b/karavan-app/src/main/resources/snippets/spring-boot-openshift-application.properties
@@ -3,8 +3,8 @@ camel.karavan.project-name={projectName}
 camel.karavan.project-description={projectDescription}
 camel.jbang.gav=org.camel.karavan.demo:{projectId}:1
 camel.jbang.runtime=spring-boot
-camel.jbang.camelSpringBootVersion=3.20.6
-camel.jbang.springBootVersion=2.7.11
+camel.jbang.camelSpringBootVersion=3.21.0
+camel.jbang.springBootVersion=2.7.13
 camel.jbang.dependencies=camel:microprofile-health
 camel.health.enabled=true
 camel.health.exposure-level=full
diff --git a/karavan-builder/Dockerfile b/karavan-builder/Dockerfile
index 2ba9bdcb..75c605d7 100644
--- a/karavan-builder/Dockerfile
+++ b/karavan-builder/Dockerfile
@@ -1,6 +1,6 @@
 FROM jbangdev/jbang-action:0.106.1
 
-ENV CAMEL_VERSION=3.20.6
+ENV CAMEL_VERSION=3.21.0
 ENV MAVEN_SETTINGS="/karavan-config-map/maven-settings.xml"
 
 # Add Camel-JBang
diff --git a/karavan-cloud/AWS/karavan-quarkus-task-aws.yaml 
b/karavan-cloud/AWS/karavan-quarkus-task-aws.yaml
index 2749dc1b..3b756680 100644
--- a/karavan-cloud/AWS/karavan-quarkus-task-aws.yaml
+++ b/karavan-cloud/AWS/karavan-quarkus-task-aws.yaml
@@ -79,7 +79,7 @@ spec:
         
         cd ${CHECKOUT_DIR}/$(inputs.params.project)
         
-        entrypoint -Dcamel.jbang.version=3.20.6 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
+        entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
         
         export LAST_COMMIT=$(git rev-parse --short HEAD)
         export DATE=$(date '+%Y%m%d%H%M%S')
diff --git a/karavan-cloud/AWS/karavan-spring-boot-task-aws.yaml 
b/karavan-cloud/AWS/karavan-spring-boot-task-aws.yaml
index 63f64171..d9696c79 100644
--- a/karavan-cloud/AWS/karavan-spring-boot-task-aws.yaml
+++ b/karavan-cloud/AWS/karavan-spring-boot-task-aws.yaml
@@ -79,7 +79,7 @@ spec:
 
           cd ${CHECKOUT_DIR}/$(inputs.params.project)
 
-          entrypoint -Dcamel.jbang.version=3.20.6 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
+          entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
 
           export LAST_COMMIT=$(git rev-parse --short HEAD)
           export DATE=$(date '+%Y%m%d%H%M%S')
diff --git a/karavan-core/src/core/api/CamelDefinitionApi.ts 
b/karavan-core/src/core/api/CamelDefinitionApi.ts
index 446aeb60..bf765304 100644
--- a/karavan-core/src/core/api/CamelDefinitionApi.ts
+++ b/karavan-core/src/core/api/CamelDefinitionApi.ts
@@ -1267,7 +1267,7 @@ export class CamelDefinitionApi {
     static createRouteTemplateDefinition = (element: any): 
RouteTemplateDefinition => { 
         const def = element ? new RouteTemplateDefinition({...element}) : new 
RouteTemplateDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        def.beans = element && element?.beans ? element?.beans.map((x:any) => 
CamelDefinitionApi.createNamedBeanDefinition(x)) :[];
+        def.beans = element && element?.beans ? element?.beans.map((x:any) => 
CamelDefinitionApi.createRouteTemplateBeanDefinition(x)) :[];
         if (element?.from !== undefined) { 
             def.from = CamelDefinitionApi.createFromDefinition(element.from); 
         }
@@ -1396,7 +1396,7 @@ export class CamelDefinitionApi {
     static createTemplatedRouteDefinition = (element: any): 
TemplatedRouteDefinition => { 
         const def = element ? new TemplatedRouteDefinition({...element}) : new 
TemplatedRouteDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        def.beans = element && element?.beans ? element?.beans.map((x:any) => 
CamelDefinitionApi.createNamedBeanDefinition(x)) :[];
+        def.beans = element && element?.beans ? element?.beans.map((x:any) => 
CamelDefinitionApi.createTemplatedRouteBeanDefinition(x)) :[];
         def.parameters = element && element?.parameters ? 
element?.parameters.map((x:any) => 
CamelDefinitionApi.createTemplatedRouteParameterDefinition(x)) :[];
         return def;
     }
diff --git a/karavan-core/src/core/api/CamelDefinitionYamlStep.ts 
b/karavan-core/src/core/api/CamelDefinitionYamlStep.ts
index c31272f9..fe953d0c 100644
--- a/karavan-core/src/core/api/CamelDefinitionYamlStep.ts
+++ b/karavan-core/src/core/api/CamelDefinitionYamlStep.ts
@@ -2063,7 +2063,7 @@ export class CamelDefinitionYamlStep {
                def.route = 
CamelDefinitionYamlStep.readRouteDefinition(element.route); 
             } 
         } 
-        def.beans = element && element?.beans ? element?.beans.map((x:any) => 
CamelDefinitionYamlStep.readNamedBeanDefinition(x)) :[]; 
+        def.beans = element && element?.beans ? element?.beans.map((x:any) => 
CamelDefinitionYamlStep.readRouteTemplateBeanDefinition(x)) :[]; 
         if (element?.from !== undefined) { 
             if (Array.isArray(element.from)) { 
                def.from = 
CamelDefinitionYamlStep.readFromDefinition(element.from[0]); 
@@ -2267,7 +2267,7 @@ export class CamelDefinitionYamlStep {
     static readTemplatedRouteDefinition = (element: any): 
TemplatedRouteDefinition => {
         
         let def = element ? new TemplatedRouteDefinition({...element}) : new 
TemplatedRouteDefinition();
-        def.beans = element && element?.beans ? element?.beans.map((x:any) => 
CamelDefinitionYamlStep.readNamedBeanDefinition(x)) :[]; 
+        def.beans = element && element?.beans ? element?.beans.map((x:any) => 
CamelDefinitionYamlStep.readTemplatedRouteBeanDefinition(x)) :[]; 
         def.parameters = element && element?.parameters ? 
element?.parameters.map((x:any) => 
CamelDefinitionYamlStep.readTemplatedRouteParameterDefinition(x)) :[]; 
 
         return def;
diff --git a/karavan-core/src/core/model/CamelDefinition.ts 
b/karavan-core/src/core/model/CamelDefinition.ts
index e27de264..13875680 100644
--- a/karavan-core/src/core/model/CamelDefinition.ts
+++ b/karavan-core/src/core/model/CamelDefinition.ts
@@ -692,6 +692,7 @@ export class MulticastDefinition extends CamelElement {
     aggregationStrategyMethodAllowNull?: boolean;
     parallelAggregate?: boolean;
     parallelProcessing?: boolean;
+    synchronous?: boolean;
     streaming?: boolean;
     stopOnException?: boolean;
     timeout?: string;
@@ -932,6 +933,7 @@ export class RecipientListDefinition extends CamelElement {
     aggregationStrategyMethodAllowNull?: boolean;
     parallelAggregate?: boolean;
     parallelProcessing?: boolean;
+    synchronous?: boolean;
     timeout?: string;
     executorService?: string;
     stopOnException?: boolean;
@@ -1197,7 +1199,7 @@ export class RouteTemplateDefinition extends CamelElement 
{
     stepName?: string = 'routeTemplate';
     route?: RouteDefinition;
     id: string = 'routeTemplate-' + uuidv4().substring(0,4);
-    beans?: NamedBeanDefinition[] = [];
+    beans?: RouteTemplateBeanDefinition[] = [];
     from?: FromDefinition;
     parameters?: RouteTemplateParameterDefinition[] = [];
     public constructor(init?: Partial<RouteTemplateDefinition>) {
@@ -1372,6 +1374,7 @@ export class SplitDefinition extends CamelElement {
     aggregationStrategyMethodAllowNull?: boolean;
     parallelAggregate?: boolean;
     parallelProcessing?: boolean;
+    synchronous?: boolean;
     streaming?: boolean;
     stopOnException?: boolean;
     timeout?: string;
@@ -1433,7 +1436,7 @@ export class TemplatedRouteDefinition extends 
CamelElement {
     routeTemplateRef: string = '';
     routeId?: string;
     prefixId?: string;
-    beans?: NamedBeanDefinition[] = [];
+    beans?: TemplatedRouteBeanDefinition[] = [];
     parameters?: TemplatedRouteParameterDefinition[] = [];
     public constructor(init?: Partial<TemplatedRouteDefinition>) {
         super('TemplatedRouteDefinition');
@@ -2428,6 +2431,7 @@ export class JaxbDataFormat extends CamelElement {
     noNamespaceSchemaLocation?: string;
     jaxbProviderProperties?: string;
     contentTypeHeader?: boolean;
+    accessExternalSchemaProtocols?: string;
     id?: string = 'jaxb-' + uuidv4().substring(0,4);
     public constructor(init?: Partial<JaxbDataFormat>) {
         super('JaxbDataFormat');
@@ -2471,6 +2475,7 @@ export class JsonDataFormat extends CamelElement {
     autoDiscoverSchemaResolver?: boolean;
     namingStrategy?: string;
     contentTypeHeader?: boolean;
+    dateFormatPattern?: string;
     id?: string = 'json-' + uuidv4().substring(0,4);
     public constructor(init?: Partial<JsonDataFormat>) {
         super('JsonDataFormat');
diff --git a/karavan-core/src/core/model/CamelMetadata.ts 
b/karavan-core/src/core/model/CamelMetadata.ts
index 3670c612..20f0c884 100644
--- a/karavan-core/src/core/model/CamelMetadata.ts
+++ b/karavan-core/src/core/model/CamelMetadata.ts
@@ -195,7 +195,7 @@ export const CamelDataFormatMetadata: ElementMeta[] = [
     ]),
     new ElementMeta('avro', 'AvroDataFormat', 'Avro', "Serialize and 
deserialize messages using Apache Avro binary data format.", 
'dataformat,transformation', [
         new PropertyMeta('instanceClassName', 'Instance Class Name', "Class 
name to use for marshal and unmarshalling", 'string', '', '', false, false, 
false, false, '', ''),
-        new PropertyMeta('library', 'Library', "Which Avro library to use.", 
'string', 'apache-avro, jackson', 'ApacheAvro', false, false, false, false, '', 
''),
+        new PropertyMeta('library', 'Library', "Which Avro library to use.", 
'string', 'ApacheAvro, Jackson', 'ApacheAvro', false, false, false, false, '', 
''),
         new PropertyMeta('objectMapper', 'Object Mapper', "Lookup and use the 
existing ObjectMapper with the given id when using Jackson.", 'string', '', '', 
false, false, false, false, 'advanced', ''),
         new PropertyMeta('useDefaultObjectMapper', 'Use Default Object 
Mapper', "Whether to lookup and use default Jackson ObjectMapper from the 
registry.", 'boolean', '', 'true', false, false, false, false, '', ''),
         new PropertyMeta('unmarshalType', 'Unmarshal Type', "Class name of the 
java type to use when unmarshalling", 'string', '', '', false, false, false, 
false, '', ''),
@@ -248,7 +248,7 @@ export const CamelDataFormatMetadata: ElementMeta[] = [
         new PropertyMeta('objectMapper', 'Object Mapper', "Lookup and use the 
existing ObjectMapper with the given id when using Jackson.", 'string', '', '', 
false, false, false, false, 'advanced', ''),
         new PropertyMeta('useDefaultObjectMapper', 'Use Default Object 
Mapper', "Whether to lookup and use default Jackson ObjectMapper from the 
registry.", 'boolean', '', 'true', false, false, false, false, '', ''),
         new PropertyMeta('autoDiscoverObjectMapper', 'Auto Discover Object 
Mapper', "If set to true then Jackson will lookup for an objectMapper into the 
registry", 'boolean', '', 'false', false, false, false, false, '', ''),
-        new PropertyMeta('library', 'Library', "Which Protobuf library to 
use.", 'string', 'google-protobuf, jackson', 'GoogleProtobuf', false, false, 
false, false, '', ''),
+        new PropertyMeta('library', 'Library', "Which Protobuf library to 
use.", 'string', 'GoogleProtobuf, Jackson', 'GoogleProtobuf', false, false, 
false, false, '', ''),
         new PropertyMeta('unmarshalType', 'Unmarshal Type', "Class name of the 
java type to use when unmarshalling", 'string', '', '', false, false, false, 
false, '', ''),
         new PropertyMeta('jsonView', 'Json View', "When marshalling a POJO to 
JSON you might want to exclude certain fields from the JSON output. With 
Jackson you can use JSON views to accomplish this. This option is to refer to 
the class which has JsonView annotations", 'string', '', '', false, false, 
false, false, '', ''),
         new PropertyMeta('include', 'Include', "If you want to marshal a pojo 
to JSON, and the pojo has some fields with null values. And you want to skip 
these null values, you can set this option to NON_NULL", 'string', '', '', 
false, false, false, false, '', ''),
@@ -295,7 +295,7 @@ export const CamelDataFormatMetadata: ElementMeta[] = [
         new PropertyMeta('useDefaultObjectMapper', 'Use Default Object 
Mapper', "Whether to lookup and use default Jackson ObjectMapper from the 
registry.", 'boolean', '', 'true', false, false, false, false, '', ''),
         new PropertyMeta('autoDiscoverObjectMapper', 'Auto Discover Object 
Mapper', "If set to true then Jackson will look for an objectMapper to use from 
the registry", 'boolean', '', 'false', false, false, false, false, '', ''),
         new PropertyMeta('prettyPrint', 'Pretty Print', "To enable pretty 
printing output nicely formatted. Is by default false.", 'boolean', '', 
'false', false, false, false, false, '', ''),
-        new PropertyMeta('library', 'Library', "Which json library to use.", 
'string', 'fastjson, gson, jackson, johnzon, jsonb, x-stream', 'Jackson', 
false, false, false, false, '', ''),
+        new PropertyMeta('library', 'Library', "Which json library to use.", 
'string', 'Fastjson, Gson, Jackson, Johnzon, Jsonb, XStream', 'Jackson', false, 
false, false, false, '', ''),
         new PropertyMeta('unmarshalType', 'Unmarshal Type', "Class name of the 
java type to use when unmarshalling", 'string', '', '', false, false, false, 
false, '', ''),
         new PropertyMeta('jsonView', 'Json View', "When marshalling a POJO to 
JSON you might want to exclude certain fields from the JSON output. With 
Jackson you can use JSON views to accomplish this. This option is to refer to 
the class which has JsonView annotations", 'string', '', '', false, false, 
false, false, 'advanced', ''),
         new PropertyMeta('include', 'Include', "If you want to marshal a pojo 
to JSON, and the pojo has some fields with null values. And you want to skip 
these null values, you can set this option to NON_NULL", 'string', '', '', 
false, false, false, false, 'advanced', ''),
@@ -314,6 +314,7 @@ export const CamelDataFormatMetadata: ElementMeta[] = [
         new PropertyMeta('autoDiscoverSchemaResolver', 'Auto Discover Schema 
Resolver', "When not disabled, the SchemaResolver will be looked up into the 
registry", 'boolean', '', 'true', false, false, false, false, 'advanced', ''),
         new PropertyMeta('namingStrategy', 'Naming Strategy', "If set then 
Jackson will use the the defined Property Naming Strategy.Possible values are: 
LOWER_CAMEL_CASE, LOWER_DOT_CASE, LOWER_CASE, KEBAB_CASE, SNAKE_CASE and 
UPPER_CAMEL_CASE", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('contentTypeHeader', 'Content Type Header', "Whether 
the data format should set the Content-Type header with the type from the data 
format. For example application/xml for data formats marshalling to XML, or 
application/json for data formats marshalling to JSON", 'boolean', '', 'true', 
false, false, false, false, '', ''),
+        new PropertyMeta('dateFormatPattern', 'Date Format Pattern', "To 
configure the date format while marshall or unmarshall Date fields in JSON 
using Gson", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('id', 'Id', "The id of this node", 'string', '', '', 
false, false, false, false, '', ''),
     ]),
     new ElementMeta('mimeMultipart', 'MimeMultipartDataFormat', 'MIME 
Multipart', "Marshal Camel messages with attachments into MIME-Multipart 
messages and back.", 'dataformat,transformation', [
@@ -379,7 +380,7 @@ export const CamelDataFormatMetadata: ElementMeta[] = [
         new PropertyMeta('id', 'Id', "The id of this node", 'string', '', '', 
false, false, false, false, '', ''),
     ]),
     new ElementMeta('yaml', 'YAMLDataFormat', 'YAML', "Marshal and unmarshal 
Java objects to and from YAML.", 'dataformat,transformation,yaml', [
-        new PropertyMeta('library', 'Library', "Which yaml library to use. By 
default it is SnakeYAML", 'string', 'snake-yaml', 'SnakeYAML', false, false, 
false, false, '', ''),
+        new PropertyMeta('library', 'Library', "Which yaml library to use. By 
default it is SnakeYAML", 'string', 'SnakeYAML', 'SnakeYAML', false, false, 
false, false, '', ''),
         new PropertyMeta('unmarshalType', 'Unmarshal Type', "Class name of the 
java type to use when unmarshalling", 'string', '', '', false, false, false, 
false, '', ''),
         new PropertyMeta('constructor', 'Constructor', "BaseConstructor to 
construct incoming documents.", 'string', '', '', false, false, false, false, 
'advanced', ''),
         new PropertyMeta('representer', 'Representer', "Representer to emit 
outgoing objects.", 'string', '', '', false, false, false, false, 'advanced', 
''),
@@ -460,6 +461,7 @@ export const CamelDataFormatMetadata: ElementMeta[] = [
         new PropertyMeta('noNamespaceSchemaLocation', 'No Namespace Schema 
Location', "To define the location of the namespaceless schema", 'string', '', 
'', false, false, false, false, 'advanced', ''),
         new PropertyMeta('jaxbProviderProperties', 'Jaxb Provider Properties', 
"Refers to a custom java.util.Map to lookup in the registry containing custom 
JAXB provider properties to be used with the JAXB marshaller.", 'string', '', 
'', false, false, false, false, 'advanced', ''),
         new PropertyMeta('contentTypeHeader', 'Content Type Header', "Whether 
the data format should set the Content-Type header with the type from the data 
format. For example application/xml for data formats marshalling to XML, or 
application/json for data formats marshalling to JSON", 'boolean', '', 'true', 
false, false, false, false, '', ''),
+        new PropertyMeta('accessExternalSchemaProtocols', 'Access External 
Schema Protocols', "Only in use if schema validation has been enabled. Restrict 
access to the protocols specified for external reference set by the 
schemaLocation attribute, Import and Include element. Examples of protocols are 
file, http, jar:file. false or none to deny all access to external references; 
a specific protocol, such as file, to give permission to only the protocol; the 
keyword all to grant permissio [...]
         new PropertyMeta('id', 'Id', "The id of this node", 'string', '', '', 
false, false, false, false, '', ''),
     ]),
     new ElementMeta('univocityTsv', 'UniVocityTsvDataFormat', 'uniVocity TSV', 
"Marshal and unmarshal Java objects from and to TSV (Tab-Separated Values) 
records using UniVocity Parsers.", 'dataformat,transformation,csv', [
@@ -688,7 +690,7 @@ export const CamelLanguageMetadata: ElementMeta[] = [
         new PropertyMeta('inheritNamespaceTagName', 'Inherit Namespace Tag 
Name', "To inherit namespaces from a root/parent tag name when using XML You 
can use simple language as the tag name to support dynamic names.", 'string', 
'', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('regex', 'Regex', "If the token is a regular 
expression pattern. The default value is false", 'boolean', '', 'false', false, 
false, false, false, 'advanced', ''),
         new PropertyMeta('xml', 'Xml', "Whether the input is XML messages. 
This option must be set to true if working with XML payloads.", 'boolean', '', 
'false', false, false, false, false, '', ''),
-        new PropertyMeta('includeTokens', 'Include Tokens', "Whether to 
include the tokens in the parts when using pairs The default value is false", 
'boolean', '', 'false', false, false, false, false, '', ''),
+        new PropertyMeta('includeTokens', 'Include Tokens', "Whether to 
include the tokens in the parts when using pairs. When including tokens then 
the endToken property must also be configured (to use pair mode). The default 
value is false", 'boolean', '', 'false', false, false, false, false, '', ''),
         new PropertyMeta('group', 'Group', "To group N parts together, for 
example to split big files into chunks of 1000 lines. You can use simple 
language as the group to support dynamic group sizes.", 'string', '', '', 
false, false, false, false, 'advanced', ''),
         new PropertyMeta('groupDelimiter', 'Group Delimiter', "Sets the 
delimiter to use when grouping. If this has not been set then token will be 
used as the delimiter.", 'string', '', '', false, false, false, false, 
'advanced', ''),
         new PropertyMeta('skipFirst', 'Skip First', "To skip the very first 
element", 'boolean', '', 'false', false, false, false, false, 'advanced', ''),
@@ -922,7 +924,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('apiContextPath', 'Api Context Path', "Sets a leading 
API context-path the REST API services will be using. This can be used when 
using components such as camel-servlet where the deployed web application is 
deployed using a context-path.", 'string', '', '', false, false, false, false, 
'consumer', ''),
         new PropertyMeta('apiContextRouteId', 'Api Context Route Id', "Sets 
the route id to use for the route that services the REST API. The route will by 
default use an auto assigned route id.", 'string', '', '', false, false, false, 
false, 'consumer,advanced', ''),
         new PropertyMeta('apiVendorExtension', 'Api Vendor Extension', 
"Whether vendor extension is enabled in the Rest APIs. If enabled then Camel 
will include additional information as vendor extension (eg keys starting with 
x-) such as route ids, class names etc. Not all 3rd party API gateways and 
tools supports vendor-extensions when importing your API docs.", 'boolean', '', 
'false', false, false, false, false, 'consumer,advanced', ''),
-        new PropertyMeta('hostNameResolver', 'Host Name Resolver', "If no 
hostname has been explicit configured, then this resolver is used to compute 
the hostname the REST service will be using.", 'string', 'all-local-ip, 
local-host-name, local-ip', 'allLocalIp', false, false, false, false, 
'consumer,advanced', ''),
+        new PropertyMeta('hostNameResolver', 'Host Name Resolver', "If no 
hostname has been explicit configured, then this resolver is used to compute 
the hostname the REST service will be using.", 'string', 'allLocalIp, 
localHostName, localIp', 'allLocalIp', false, false, false, false, 
'consumer,advanced', ''),
         new PropertyMeta('bindingMode', 'Binding Mode', "Sets the binding mode 
to use. The default value is off", 'string', 'off, auto, json, xml, json_xml', 
'off', false, false, false, false, '', ''),
         new PropertyMeta('skipBindingOnErrorCode', 'Skip Binding On Error 
Code', "Whether to skip binding on output if there is a custom HTTP error code 
header. This allows to build custom error messages that do not bind to json / 
xml etc, as success messages otherwise will do.", 'boolean', '', 'false', 
false, false, false, false, 'advanced', ''),
         new PropertyMeta('clientRequestValidation', 'Client Request 
Validation', "Whether to enable validation of the client request to check: 1) 
Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 
if validation error. 2) Accept header matches what the Rest DSL produces; 
returns HTTP Status 406 if validation error. 3) Missing required data (query 
parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 
4) Parsing error of the message body  [...]
@@ -1133,7 +1135,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('routeTemplateRef', 'Route Template Ref', "Sets the 
id of the route template to use to build the route.", 'string', '', '', true, 
false, false, false, '', ''),
         new PropertyMeta('routeId', 'Route Id', "Sets the id of the route 
built from the route template.", 'string', '', '', false, false, false, false, 
'', ''),
         new PropertyMeta('prefixId', 'Prefix Id', "Sets a prefix to use for 
all node ids (not route id).", 'string', '', '', false, false, false, false, 
'', ''),
-        new PropertyMeta('beans', 'beans', "beans", 'NamedBeanDefinition', '', 
'', false, false, true, true, '', ''),
+        new PropertyMeta('beans', 'beans', "beans", 
'TemplatedRouteBeanDefinition', '', '', false, false, true, true, '', ''),
         new PropertyMeta('parameters', 'parameters', "parameters", 
'TemplatedRouteParameterDefinition', '', '', false, false, true, true, '', ''),
     ]),
     new ElementMeta('customLoadBalancer', 'CustomLoadBalancerDefinition', 
'Custom Load Balancer', "To use a custom load balancer implementation.", 
'eip,routing', [
@@ -1142,7 +1144,7 @@ export const CamelModelMetadata: ElementMeta[] = [
     ]),
     new ElementMeta('param', 'ParamDefinition', 'Param', "To specify the rest 
operation parameters.", 'rest', [
         new PropertyMeta('name', 'Name', "Sets the parameter name.", 'string', 
'', '', true, false, false, false, '', ''),
-        new PropertyMeta('type', 'Type', "Sets the parameter type.", 'string', 
'body, form-data, header, path, query', 'path', false, false, false, false, '', 
''),
+        new PropertyMeta('type', 'Type', "Sets the parameter type.", 'string', 
'body, formData, header, path, query', 'path', false, false, false, false, '', 
''),
         new PropertyMeta('defaultValue', 'Default Value', "Sets the parameter 
default value.", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('required', 'Required', "Sets the parameter required 
flag.", 'boolean', '', 'true', false, false, false, false, '', ''),
         new PropertyMeta('collectionFormat', 'Collection Format', "Sets the 
parameter collection format.", 'string', 'csv, multi, pipes, ssv, tsv', 'csv', 
false, false, false, false, '', ''),
@@ -1192,8 +1194,8 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('loggerRef', 'Logger Ref', "References to a logger to 
use as logger for the error handler", 'string', '', '', false, false, false, 
false, 'advanced', ''),
         new PropertyMeta('level', 'Level', "Logging level to use when using 
the logging error handler type.", 'string', 'TRACE, DEBUG, INFO, WARN, ERROR, 
OFF', 'ERROR', false, false, false, false, 'advanced', ''),
         new PropertyMeta('logName', 'Log Name', "Name of the logger to use for 
the logging error handler", 'string', '', '', false, false, false, false, 
'advanced', ''),
-        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
-        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
+        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
+        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
         new PropertyMeta('onRedeliveryRef', 'On Redelivery Ref', "Sets a 
reference to a processor that should be processed before a redelivery attempt. 
Can be used to change the org.apache.camel.Exchange before its being 
redelivered.", 'string', '', '', false, false, false, false, 'advanced', 
'org.apache.camel.Processor'),
         new PropertyMeta('onExceptionOccurredRef', 'On Exception Occurred 
Ref', "Sets a reference to a processor that should be processed just after an 
exception occurred. Can be used to perform custom logging about the occurred 
exception at the exact time it happened. Important: Any exception thrown from 
this processor will be ignored.", 'string', '', '', false, false, false, false, 
'advanced', 'org.apache.camel.Processor'),
         new PropertyMeta('onPrepareFailureRef', 'On Prepare Failure Ref', 
"Sets a reference to a processor to prepare the org.apache.camel.Exchange 
before handled by the failure processor / dead letter channel. This allows for 
example to enrich the message before sending to a dead letter queue.", 
'string', '', '', false, false, false, false, 'advanced', 
'org.apache.camel.Processor'),
@@ -1679,7 +1681,8 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('aggregationStrategyMethodName', 'Aggregation 
Strategy Method Name', "This option can be used to explicit declare the method 
name to use, when using POJOs as the AggregationStrategy.", 'string', '', '', 
false, false, false, false, 'advanced', ''),
         new PropertyMeta('aggregationStrategyMethodAllowNull', 'Aggregation 
Strategy Method Allow Null', "If this option is false then the aggregate method 
is not used if there was no data to enrich. If this option is true then null 
values is used as the oldExchange (when no data to enrich), when using POJOs as 
the AggregationStrategy", 'boolean', '', 'false', false, false, false, false, 
'advanced', ''),
         new PropertyMeta('parallelAggregate', 'Parallel Aggregate', "If 
enabled then the aggregate method on AggregationStrategy can be called 
concurrently. Notice that this would require the implementation of 
AggregationStrategy to be implemented as thread-safe. By default this is false 
meaning that Camel synchronizes the call to the aggregate method. Though in 
some use-cases this can be used to archive higher performance when the 
AggregationStrategy is implemented as thread-safe.", 'bo [...]
-        new PropertyMeta('parallelProcessing', 'Parallel Processing', "If 
enabled then processing each split messages occurs concurrently. Note the 
caller thread will still wait until all messages has been fully processed, 
before it continues. It's only processing the sub messages from the splitter 
which happens concurrently.", 'boolean', '', 'false', false, false, false, 
false, '', ''),
+        new PropertyMeta('parallelProcessing', 'Parallel Processing', "If 
enabled then processing each split messages occurs concurrently. Note the 
caller thread will still wait until all messages has been fully processed, 
before it continues. It's only processing the sub messages from the splitter 
which happens concurrently. When parallel processing is enabled, then the Camel 
routing engin will continue processing using last used thread from the parallel 
thread pool. However, if you wan [...]
+        new PropertyMeta('synchronous', 'Synchronous', "Sets whether 
synchronous processing should be strictly used. When enabled then the same 
thread is used to continue routing after the split is complete, even if 
parallel processing is enabled.", 'boolean', '', 'false', false, false, false, 
false, '', ''),
         new PropertyMeta('streaming', 'Streaming', "When in streaming mode, 
then the splitter splits the original message on-demand, and each split message 
is processed one by one. This reduces memory usage as the splitter do not split 
all the messages first, but then we do not know the total size, and therefore 
the org.apache.camel.Exchange#SPLIT_SIZE is empty. In non-streaming mode 
(default) the splitter will split each message first, to know the total size, 
and then process each messa [...]
         new PropertyMeta('stopOnException', 'Stop On Exception', "Will now 
stop further processing if an exception or failure occurred during processing 
of an org.apache.camel.Exchange and the caused exception will be thrown. Will 
also stop if processing the exchange failed (has a fault message) or an 
exception was thrown and handled by the error handler (such as using 
onException). In all situations the splitter will stop further processing. This 
is the same behavior as in pipeline, whi [...]
         new PropertyMeta('timeout', 'Timeout', "Sets a total timeout specified 
in millis, when using parallel processing. If the Splitter hasn't been able to 
split and process all the sub messages within the given timeframe, then the 
timeout triggers and the Splitter breaks out and continues. Notice if you 
provide a TimeoutAwareAggregationStrategy then the timeout method is invoked 
before breaking out. If the timeout is reached with running tasks still 
remaining, certain tasks for which  [...]
@@ -1711,8 +1714,8 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('continued', 'Continued', "Sets whether the exchange 
should handle and continue routing from the point of failure. If this option is 
enabled then its considered handled as well.", 
'ExpressionSubElementDefinition', '', '', false, false, false, true, 
'advanced', ''),
         new PropertyMeta('onRedeliveryRef', 'On Redelivery Ref', "Sets a 
reference to a processor that should be processed before a redelivery attempt. 
Can be used to change the org.apache.camel.Exchange before its being 
redelivered.", 'string', '', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('onExceptionOccurredRef', 'On Exception Occurred 
Ref', "Sets a reference to a processor that should be processed just after an 
exception occurred. Can be used to perform custom logging about the occurred 
exception at the exact time it happened. Important: Any exception thrown from 
this processor will be ignored.", 'string', '', '', false, false, false, false, 
'advanced', ''),
-        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
-        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
+        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
+        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
         new PropertyMeta('disabled', 'Disabled', "Whether to disable this EIP 
from the route during build time. Once an EIP has been disabled then it cannot 
be enabled later at runtime.", 'boolean', '', 'false', false, false, false, 
false, 'advanced', ''),
         new PropertyMeta('id', 'Id', "Sets the id of this node", 'string', '', 
'', false, false, false, false, '', ''),
         new PropertyMeta('description', 'Description', "Sets the description 
of this node", 'string', '', '', false, false, false, false, '', ''),
@@ -1723,7 +1726,8 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('aggregationStrategyMethodName', 'Aggregation 
Strategy Method Name', "This option can be used to explicit declare the method 
name to use, when using POJOs as the AggregationStrategy.", 'string', '', '', 
false, false, false, false, 'advanced', ''),
         new PropertyMeta('aggregationStrategyMethodAllowNull', 'Aggregation 
Strategy Method Allow Null', "If this option is false then the aggregate method 
is not used if there was no data to enrich. If this option is true then null 
values is used as the oldExchange (when no data to enrich), when using POJOs as 
the AggregationStrategy", 'boolean', '', 'false', false, false, false, false, 
'advanced', ''),
         new PropertyMeta('parallelAggregate', 'Parallel Aggregate', "If 
enabled then the aggregate method on AggregationStrategy can be called 
concurrently. Notice that this would require the implementation of 
AggregationStrategy to be implemented as thread-safe. By default this is false 
meaning that Camel synchronizes the call to the aggregate method. Though in 
some use-cases this can be used to archive higher performance when the 
AggregationStrategy is implemented as thread-safe.", 'bo [...]
-        new PropertyMeta('parallelProcessing', 'Parallel Processing', "If 
enabled then sending messages to the multicasts occurs concurrently. Note the 
caller thread will still wait until all messages has been fully processed, 
before it continues. Its only the sending and processing the replies from the 
multicasts which happens concurrently.", 'boolean', '', 'false', false, false, 
false, false, '', ''),
+        new PropertyMeta('parallelProcessing', 'Parallel Processing', "If 
enabled then sending messages to the multicasts occurs concurrently. Note the 
caller thread will still wait until all messages has been fully processed, 
before it continues. Its only the sending and processing the replies from the 
multicasts which happens concurrently. When parallel processing is enabled, 
then the Camel routing engin will continue processing using last used thread 
from the parallel thread pool. How [...]
+        new PropertyMeta('synchronous', 'Synchronous', "Sets whether 
synchronous processing should be strictly used. When enabled then the same 
thread is used to continue routing after the multicast is complete, even if 
parallel processing is enabled.", 'boolean', '', 'false', false, false, false, 
false, '', ''),
         new PropertyMeta('streaming', 'Streaming', "If enabled then Camel will 
process replies out-of-order, eg in the order they come back. If disabled, 
Camel will process replies in the same order as defined by the multicast.", 
'boolean', '', 'false', false, false, false, false, '', ''),
         new PropertyMeta('stopOnException', 'Stop On Exception', "Will now 
stop further processing if an exception or failure occurred during processing 
of an org.apache.camel.Exchange and the caused exception will be thrown. Will 
also stop if processing the exchange failed (has a fault message) or an 
exception was thrown and handled by the error handler (such as using 
onException). In all situations the multicast will stop further processing. 
This is the same behavior as in pipeline, wh [...]
         new PropertyMeta('timeout', 'Timeout', "Sets a total timeout specified 
in millis, when using parallel processing. If the Multicast hasn't been able to 
send and process all replies within the given timeframe, then the timeout 
triggers and the Multicast breaks out and continues. Notice if you provide a 
TimeoutAwareAggregationStrategy then the timeout method is invoked before 
breaking out. If the timeout is reached with running tasks still remaining, 
certain tasks for which it is di [...]
@@ -1769,8 +1773,8 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('loggerRef', 'Logger Ref', "References to a logger to 
use as logger for the error handler", 'string', '', '', false, false, false, 
false, 'advanced', ''),
         new PropertyMeta('level', 'Level', "Logging level to use when using 
the logging error handler type.", 'string', 'TRACE, DEBUG, INFO, WARN, ERROR, 
OFF', 'ERROR', false, false, false, false, 'advanced', ''),
         new PropertyMeta('logName', 'Log Name', "Name of the logger to use for 
the logging error handler", 'string', '', '', false, false, false, false, 
'advanced', ''),
-        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
-        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
+        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
+        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
         new PropertyMeta('onRedeliveryRef', 'On Redelivery Ref', "Sets a 
reference to a processor that should be processed before a redelivery attempt. 
Can be used to change the org.apache.camel.Exchange before its being 
redelivered.", 'string', '', '', false, false, false, false, 'advanced', 
'org.apache.camel.Processor'),
         new PropertyMeta('onExceptionOccurredRef', 'On Exception Occurred 
Ref', "Sets a reference to a processor that should be processed just after an 
exception occurred. Can be used to perform custom logging about the occurred 
exception at the exact time it happened. Important: Any exception thrown from 
this processor will be ignored.", 'string', '', '', false, false, false, false, 
'advanced', 'org.apache.camel.Processor'),
         new PropertyMeta('onPrepareFailureRef', 'On Prepare Failure Ref', 
"Sets a reference to a processor to prepare the org.apache.camel.Exchange 
before handled by the failure processor / dead letter channel. This allows for 
example to enrich the message before sending to a dead letter queue.", 
'string', '', '', false, false, false, false, 'advanced', 
'org.apache.camel.Processor'),
@@ -1900,8 +1904,8 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('loggerRef', 'Logger Ref', "References to a logger to 
use as logger for the error handler", 'string', '', '', false, false, false, 
false, 'advanced', ''),
         new PropertyMeta('level', 'Level', "Logging level to use when using 
the logging error handler type.", 'string', 'TRACE, DEBUG, INFO, WARN, ERROR, 
OFF', 'ERROR', false, false, false, false, 'advanced', ''),
         new PropertyMeta('logName', 'Log Name', "Name of the logger to use for 
the logging error handler", 'string', '', '', false, false, false, false, 
'advanced', ''),
-        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
-        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
+        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
+        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
         new PropertyMeta('onRedeliveryRef', 'On Redelivery Ref', "Sets a 
reference to a processor that should be processed before a redelivery attempt. 
Can be used to change the org.apache.camel.Exchange before its being 
redelivered.", 'string', '', '', false, false, false, false, 'advanced', 
'org.apache.camel.Processor'),
         new PropertyMeta('onExceptionOccurredRef', 'On Exception Occurred 
Ref', "Sets a reference to a processor that should be processed just after an 
exception occurred. Can be used to perform custom logging about the occurred 
exception at the exact time it happened. Important: Any exception thrown from 
this processor will be ignored.", 'string', '', '', false, false, false, false, 
'advanced', 'org.apache.camel.Processor'),
         new PropertyMeta('onPrepareFailureRef', 'On Prepare Failure Ref', 
"Sets a reference to a processor to prepare the org.apache.camel.Exchange 
before handled by the failure processor / dead letter channel. This allows for 
example to enrich the message before sending to a dead letter queue.", 
'string', '', '', false, false, false, false, 'advanced', 
'org.apache.camel.Processor'),
@@ -2037,7 +2041,8 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('aggregationStrategyMethodName', 'Aggregation 
Strategy Method Name', "This option can be used to explicit declare the method 
name to use, when using POJOs as the AggregationStrategy.", 'string', '', '', 
false, false, false, false, 'advanced', ''),
         new PropertyMeta('aggregationStrategyMethodAllowNull', 'Aggregation 
Strategy Method Allow Null', "If this option is false then the aggregate method 
is not used if there was no data to enrich. If this option is true then null 
values is used as the oldExchange (when no data to enrich), when using POJOs as 
the AggregationStrategy", 'boolean', '', 'false', false, false, false, false, 
'advanced', ''),
         new PropertyMeta('parallelAggregate', 'Parallel Aggregate', "If 
enabled then the aggregate method on AggregationStrategy can be called 
concurrently. Notice that this would require the implementation of 
AggregationStrategy to be implemented as thread-safe. By default this is false 
meaning that Camel synchronizes the call to the aggregate method. Though in 
some use-cases this can be used to archive higher performance when the 
AggregationStrategy is implemented as thread-safe.", 'bo [...]
-        new PropertyMeta('parallelProcessing', 'Parallel Processing', "If 
enabled then sending messages to the recipients occurs concurrently. Note the 
caller thread will still wait until all messages has been fully processed, 
before it continues. Its only the sending and processing the replies from the 
recipients which happens concurrently.", 'boolean', '', 'false', false, false, 
false, false, '', ''),
+        new PropertyMeta('parallelProcessing', 'Parallel Processing', "If 
enabled then sending messages to the recipients occurs concurrently. Note the 
caller thread will still wait until all messages has been fully processed, 
before it continues. Its only the sending and processing the replies from the 
recipients which happens concurrently. When parallel processing is enabled, 
then the Camel routing engin will continue processing using last used thread 
from the parallel thread pool. How [...]
+        new PropertyMeta('synchronous', 'Synchronous', "Sets whether 
synchronous processing should be strictly used. When enabled then the same 
thread is used to continue routing after the recipient list is complete, even 
if parallel processing is enabled.", 'boolean', '', 'false', false, false, 
false, false, '', ''),
         new PropertyMeta('timeout', 'Timeout', "Sets a total timeout specified 
in millis, when using parallel processing. If the Recipient List hasn't been 
able to send and process all replies within the given timeframe, then the 
timeout triggers and the Recipient List breaks out and continues. Notice if you 
provide a TimeoutAwareAggregationStrategy then the timeout method is invoked 
before breaking out. If the timeout is reached with running tasks still 
remaining, certain tasks for whic [...]
         new PropertyMeta('executorService', 'Executor Service', "To use a 
custom Thread Pool to be used for parallel processing. Notice if you set this 
option, then parallel processing is automatic implied, and you do not have to 
enable that option as well.", 'string', '', '', false, false, false, false, 
'advanced', ''),
         new PropertyMeta('stopOnException', 'Stop On Exception', "Will now 
stop further processing if an exception or failure occurred during processing 
of an org.apache.camel.Exchange and the caused exception will be thrown. Will 
also stop if processing the exchange failed (has a fault message) or an 
exception was thrown and handled by the error handler (such as using 
onException). In all situations the recipient list will stop further 
processing. This is the same behavior as in pipelin [...]
@@ -2081,8 +2086,8 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('loggerRef', 'Logger Ref', "References to a logger to 
use as logger for the error handler", 'string', '', '', false, false, false, 
false, 'advanced', ''),
         new PropertyMeta('level', 'Level', "Logging level to use when using 
the logging error handler type.", 'string', 'TRACE, DEBUG, INFO, WARN, ERROR, 
OFF', 'ERROR', false, false, false, false, 'advanced', ''),
         new PropertyMeta('logName', 'Log Name', "Name of the logger to use for 
the logging error handler", 'string', '', '', false, false, false, false, 
'advanced', ''),
-        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
-        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
+        new PropertyMeta('useOriginalMessage', 'Use Original Message', "Will 
use the original input org.apache.camel.Message (original body and headers) 
when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: 
this only applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the [...]
+        new PropertyMeta('useOriginalBody', 'Use Original Body', "Will use the 
original input org.apache.camel.Message body (original body only) when an 
org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only 
applies when all redeliveries attempt have failed and the 
org.apache.camel.Exchange is doomed for failure. Instead of using the current 
inprogress org.apache.camel.Exchange IN message we use the original IN message 
instead. This allows you to store the origina [...]
         new PropertyMeta('onRedeliveryRef', 'On Redelivery Ref', "Sets a 
reference to a processor that should be processed before a redelivery attempt. 
Can be used to change the org.apache.camel.Exchange before its being 
redelivered.", 'string', '', '', false, false, false, false, 'advanced', 
'org.apache.camel.Processor'),
         new PropertyMeta('onExceptionOccurredRef', 'On Exception Occurred 
Ref', "Sets a reference to a processor that should be processed just after an 
exception occurred. Can be used to perform custom logging about the occurred 
exception at the exact time it happened. Important: Any exception thrown from 
this processor will be ignored.", 'string', '', '', false, false, false, false, 
'advanced', 'org.apache.camel.Processor'),
         new PropertyMeta('onPrepareFailureRef', 'On Prepare Failure Ref', 
"Sets a reference to a processor to prepare the org.apache.camel.Exchange 
before handled by the failure processor / dead letter channel. This allows for 
example to enrich the message before sending to a dead letter queue.", 
'string', '', '', false, false, false, false, 'advanced', 
'org.apache.camel.Processor'),
@@ -2124,7 +2129,7 @@ export const CamelModelMetadata: ElementMeta[] = [
     new ElementMeta('routeTemplate', 'RouteTemplateDefinition', 'Route 
Template', "Defines a route template (parameterized routes)", 'configuration', [
         new PropertyMeta('route', 'Route', "To define the route in the 
template", 'RouteDefinition', '', '', true, false, false, true, '', ''),
         new PropertyMeta('id', 'Id', "Sets the id of this node", 'string', '', 
'', false, false, false, false, '', ''),
-        new PropertyMeta('beans', 'beans', "beans", 'NamedBeanDefinition', '', 
'', false, false, true, true, '', ''),
+        new PropertyMeta('beans', 'beans', "beans", 
'RouteTemplateBeanDefinition', '', '', false, false, true, true, '', ''),
         new PropertyMeta('from', 'from', "from", 'FromDefinition', '', '', 
false, false, false, true, '', ''),
         new PropertyMeta('parameters', 'parameters', "parameters", 
'RouteTemplateParameterDefinition', '', '', false, false, true, true, '', ''),
     ]),
@@ -2185,6 +2190,7 @@ export const CamelModelMetadata: ElementMeta[] = [
 
 export const SensitiveKeys: string[] = [
     "oauthtokenurl",
+    "clientid",
     "sassignature",
     "connectionstring",
     "sslpassword",
diff --git a/karavan-demo/jms-to-kafka/docs/README.md 
b/karavan-demo/jms-to-kafka/docs/README.md
index 98b363e0..6fd39330 100644
--- a/karavan-demo/jms-to-kafka/docs/README.md
+++ b/karavan-demo/jms-to-kafka/docs/README.md
@@ -26,7 +26,7 @@ docker-compose up
 
 ### Start integration 
 ```
-jbang -Dcamel.jbang.version=3.20.6 camel@apache/camel run *
+jbang -Dcamel.jbang.version=3.21.0 camel@apache/camel run *
 ```
 
 ### Publish payment to JMS
diff --git a/karavan-generator/pom.xml b/karavan-generator/pom.xml
index 4078ae21..3a39828c 100644
--- a/karavan-generator/pom.xml
+++ b/karavan-generator/pom.xml
@@ -28,7 +28,7 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
-        <version.camel-core>3.20.6</version.camel-core>
+        <version.camel-core>3.21.0</version.camel-core>
         <version.camel-kamelet>3.20.5</version.camel-kamelet>
         <version.vertx>4.4.3</version.vertx>
     </properties>
diff --git 
a/karavan-operator/src/main/resources/quarkus-builder-script-kubernetes.sh 
b/karavan-operator/src/main/resources/quarkus-builder-script-kubernetes.sh
index 13d8a207..8df65507 100644
--- a/karavan-operator/src/main/resources/quarkus-builder-script-kubernetes.sh
+++ b/karavan-operator/src/main/resources/quarkus-builder-script-kubernetes.sh
@@ -14,7 +14,7 @@ fi
 
 cd ${CHECKOUT_DIR}/$(inputs.params.project)
 
-entrypoint -Dcamel.jbang.version=3.20.6 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
+entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
 
 export LAST_COMMIT=$(git rev-parse --short HEAD)
 export DATE=$(date '+%Y%m%d%H%M%S')
diff --git 
a/karavan-operator/src/main/resources/quarkus-builder-script-openshift.sh 
b/karavan-operator/src/main/resources/quarkus-builder-script-openshift.sh
index b15d3fc8..d3c3b559 100644
--- a/karavan-operator/src/main/resources/quarkus-builder-script-openshift.sh
+++ b/karavan-operator/src/main/resources/quarkus-builder-script-openshift.sh
@@ -14,7 +14,7 @@ fi
 
 cd ${CHECKOUT_DIR}/$(inputs.params.project)
 
-entrypoint -Dcamel.jbang.version=3.20.6 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
+entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
 
 export LAST_COMMIT=$(git rev-parse --short HEAD)
 export DATE=$(date '+%Y%m%d%H%M%S')
diff --git 
a/karavan-operator/src/main/resources/spring-boot-builder-script-kubernetes.sh 
b/karavan-operator/src/main/resources/spring-boot-builder-script-kubernetes.sh
index 656c4381..6d52f005 100644
--- 
a/karavan-operator/src/main/resources/spring-boot-builder-script-kubernetes.sh
+++ 
b/karavan-operator/src/main/resources/spring-boot-builder-script-kubernetes.sh
@@ -14,7 +14,7 @@ fi
 
 cd ${CHECKOUT_DIR}/$(inputs.params.project)
 
-entrypoint -Dcamel.jbang.version=3.20.6 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
+entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
 
 export LAST_COMMIT=$(git rev-parse --short HEAD)
 export DATE=$(date '+%Y%m%d%H%M%S')
diff --git 
a/karavan-operator/src/main/resources/spring-boot-builder-script-openshift.sh 
b/karavan-operator/src/main/resources/spring-boot-builder-script-openshift.sh
index 01fefb19..f08a43ee 100644
--- 
a/karavan-operator/src/main/resources/spring-boot-builder-script-openshift.sh
+++ 
b/karavan-operator/src/main/resources/spring-boot-builder-script-openshift.sh
@@ -14,7 +14,7 @@ fi
 
 cd ${CHECKOUT_DIR}/$(inputs.params.project)
 
-entrypoint -Dcamel.jbang.version=3.20.6 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
+entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export 
--local-kamelet-dir=${KAMELETS_DIR}
 
 export LAST_COMMIT=$(git rev-parse --short HEAD)
 export DATE=$(date '+%Y%m%d%H%M%S')
diff --git a/karavan-runner/Dockerfile b/karavan-runner/Dockerfile
index 0cbaebea..b820e3d1 100644
--- a/karavan-runner/Dockerfile
+++ b/karavan-runner/Dockerfile
@@ -1,6 +1,6 @@
 FROM jbangdev/jbang-action:0.106.1
 
-ENV CAMEL_VERSION=3.20.6
+ENV CAMEL_VERSION=3.21.0
 ENV MAVEN_SETTINGS="/karavan-config-map/maven-settings.xml"
 ENV KAMELETS_DIR="/scripts/kamelets"
 ENV CODE_DIR="/scripts/code"
diff --git a/karavan-vscode/CHANGELOG.md b/karavan-vscode/CHANGELOG.md
index 3547e0e9..e636c8af 100644
--- a/karavan-vscode/CHANGELOG.md
+++ b/karavan-vscode/CHANGELOG.md
@@ -1,8 +1,8 @@
 # Changelog
 
 ## 3.20.2
-0. Camel 3.20.6
-1. Spring Boot 2.7.11
+0. Camel 3.21.0
+1. Spring Boot 2.7.13
 
 ## 3.20.1
 0. Camel 3.20.3
diff --git a/karavan-vscode/README.md b/karavan-vscode/README.md
index eb815488..2908e4aa 100644
--- a/karavan-vscode/README.md
+++ b/karavan-vscode/README.md
@@ -72,7 +72,7 @@ Build-in catalogues:
 
 * Run using CLI
     ```shell
-    jbang -Dcamel.jbang.version=3.20.6 camel@apache/camel run 
$INTEGRATION.yaml --max-messages=10 --logging-level=info
+    jbang -Dcamel.jbang.version=3.21.0 camel@apache/camel run 
$INTEGRATION.yaml --max-messages=10 --logging-level=info
     ```
 
 ## Export integration to Maven project
@@ -82,7 +82,7 @@ Build-in catalogues:
 
 * Export using CLI
     ```shell
-    jbang -Dcamel.jbang.version=3.20.6 camel@apache/camel export 
--directory=export
+    jbang -Dcamel.jbang.version=3.21.0 camel@apache/camel export 
--directory=export
     ```
 
 # Issues
diff --git a/karavan-vscode/package.json b/karavan-vscode/package.json
index 19ac5013..1001c714 100644
--- a/karavan-vscode/package.json
+++ b/karavan-vscode/package.json
@@ -64,7 +64,7 @@
       "properties": {
         "camel.version": {
           "type": "string",
-          "default": "3.20.6",
+          "default": "3.21.0",
           "description": "Camel version",
           "scope": "machine",
           "order": 10
@@ -246,8 +246,8 @@
             "camel.karavan.project-description=$NAME",
             "camel.karavan.target=$TARGET",
             "camel.jbang.gav=$GAV",
-            "camel.jbang.camelSpringBootVersion=3.20.6",
-            "camel.jbang.springBootVersion=2.7.11",
+            "camel.jbang.camelSpringBootVersion=3.21.0",
+            "camel.jbang.springBootVersion=2.7.13",
             "camel.jbang.runtime=$RUNTIME",
             "camel.jbang.exportDir=.export",
             "management.endpoints.web.exposure.include=health",

Reply via email to