You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2023/07/31 19:16:20 UTC

[camel-karavan] branch main updated: Fix #834

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


The following commit(s) were added to refs/heads/main by this push:
     new abd6f61b Fix #834
abd6f61b is described below

commit abd6f61bc1a808fe4e302c841b2365bade0d51f9
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Mon Jul 31 15:15:50 2023 -0400

    Fix #834
---
 .github/workflows/app.yml                          |   2 +-
 .github/workflows/cli.yml                          |   2 +-
 .github/workflows/docker-builder.yml               |   2 +-
 .github/workflows/docker-devmode.yml               |   2 +-
 .github/workflows/headless.yml                     |   2 +-
 .github/workflows/operator.yml                     |   2 +-
 change_version.sh                                  |  24 +-
 docs/AWS/karavan-app-deployment-public.yaml        |   2 +-
 docs/AWS/karavan-quarkus-task-aws.yaml             |   2 +-
 docs/AWS/karavan-spring-boot-task-aws.yaml         |   4 +-
 docs/VSCODE_HOWTO.md                               |   4 +-
 docs/WEB_INSTALL.md                                |   6 +-
 karavan-core/package.json                          |   2 +-
 karavan-core/src/core/api/CamelDefinitionApi.ts    | 193 ++++++++--------
 karavan-core/src/core/api/CamelDefinitionApiExt.ts |  10 +-
 karavan-core/src/core/api/CamelDefinitionYaml.ts   |   6 +-
 .../src/core/api/CamelDefinitionYamlStep.ts        | 257 +++++++++++----------
 karavan-core/src/core/api/CamelUtil.ts             |   6 +-
 karavan-core/src/core/model/CamelDefinition.ts     | 215 +++++++++--------
 karavan-core/src/core/model/CamelMetadata.ts       | 110 ++++-----
 .../src/core/model/IntegrationDefinition.ts        |   4 +-
 .../test/getElementPropertiesByName.spec.ts        |   2 +-
 karavan-demo/jms-to-kafka/docs/README.md           |   2 +-
 karavan-designer/package.json                      |   2 +-
 karavan-designer/src/designer/beans/BeanCard.tsx   |  10 +-
 .../src/designer/beans/BeanProperties.tsx          |  12 +-
 .../src/designer/beans/BeansDesigner.tsx           |  14 +-
 karavan-designer/src/designer/utils/CamelUi.tsx    |   6 +-
 karavan-generator/pom.xml                          |  10 +-
 .../karavan/generator/CamelMetadataGenerator.java  |  14 +-
 karavan-space/package.json                         |   2 +-
 karavan-vscode/CHANGELOG.md                        |   8 +
 karavan-vscode/README.md                           |   4 +-
 karavan-vscode/package.json                        |  14 +-
 karavan-web/docker/Dockerfile.builder              |   2 +-
 karavan-web/docker/Dockerfile.runner               |   2 +-
 .../camel/karavan/api/InfrastructureResource.java  |   4 +
 .../src/main/resources/application.properties      |   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-app/src/main/webui/package.json        |   2 +-
 .../src/main/webui/src/designer/beans/BeanCard.tsx |  10 +-
 .../webui/src/designer/beans/BeanProperties.tsx    |  12 +-
 .../webui/src/designer/beans/BeansDesigner.tsx     |  14 +-
 .../src/main/webui/src/designer/utils/CamelUi.tsx  |   6 +-
 karavan-web/karavan-cli/pom.xml                    |   6 +-
 .../apache/camel/karavan/cli/InstallCommand.java   |   2 +-
 karavan-web/karavan-operator/Makefile              |   2 +-
 karavan-web/karavan-operator/pom.xml               |   8 +-
 .../src/main/resources/application.properties      |   4 +-
 .../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-web/pom.xml                                |  13 +-
 57 files changed, 552 insertions(+), 514 deletions(-)

diff --git a/.github/workflows/app.yml b/.github/workflows/app.yml
index e21b3ad9..fd66e351 100644
--- a/.github/workflows/app.yml
+++ b/.github/workflows/app.yml
@@ -9,7 +9,7 @@ on:
     branches: [ main ]
 
 env:
-  TAG: 3.21.1-SNAPSHOT
+  TAG: 4.0.0-RC2
 
 jobs:
   build:
diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml
index 27254daa..490002cb 100644
--- a/.github/workflows/cli.yml
+++ b/.github/workflows/cli.yml
@@ -9,7 +9,7 @@ on:
     branches: [ main ]
 
 env:
-  TAG: 3.21.1-SNAPSHOT
+  TAG: 4.0.0-RC2
 
 jobs:
   build:
diff --git a/.github/workflows/docker-builder.yml b/.github/workflows/docker-builder.yml
index 3760d29b..162d7364 100644
--- a/.github/workflows/docker-builder.yml
+++ b/.github/workflows/docker-builder.yml
@@ -9,7 +9,7 @@ on:
 env:
   REGISTRY: ghcr.io
   IMAGE_NAME: ${{ github.repository }}-builder
-  TAG: 3.21.1-SNAPSHOT
+  TAG: 4.0.0-RC2
 
 jobs:
   build:
diff --git a/.github/workflows/docker-devmode.yml b/.github/workflows/docker-devmode.yml
index d247bb8d..35a7b030 100644
--- a/.github/workflows/docker-devmode.yml
+++ b/.github/workflows/docker-devmode.yml
@@ -9,7 +9,7 @@ on:
 env:
   REGISTRY: ghcr.io
   IMAGE_NAME: ${{ github.repository }}-runner
-  TAG: 3.21.1-SNAPSHOT
+  TAG: 4.0.0-RC2
 
 jobs:
   build:
diff --git a/.github/workflows/headless.yml b/.github/workflows/headless.yml
index aada2f16..45614316 100644
--- a/.github/workflows/headless.yml
+++ b/.github/workflows/headless.yml
@@ -9,7 +9,7 @@ on:
     branches: [ main ]
 
 env:
-  TAG: 3.21.1-SNAPSHOT
+  TAG: 4.0.0-RC2
 
 jobs:
   build:
diff --git a/.github/workflows/operator.yml b/.github/workflows/operator.yml
index 4de5b623..c88be6ec 100644
--- a/.github/workflows/operator.yml
+++ b/.github/workflows/operator.yml
@@ -13,7 +13,7 @@ env:
   REGISTRY: ghcr.io
   IMAGE_NAME: ${{ github.repository }}-operator
   IMAGE_NAME_BUNDLE: ${{ github.repository }}-bundle
-  TAG: 3.21.1-SNAPSHOT
+  TAG: 4.0.0-RC2
 
 jobs:
   build:
diff --git a/change_version.sh b/change_version.sh
index e4abd0ad..f7bef132 100755
--- a/change_version.sh
+++ b/change_version.sh
@@ -4,13 +4,13 @@ echo "Set Generator pom.xml version: $1";
 mvn versions:set -DnewVersion=$1 -f karavan-generator
 
 echo "Set Application pom.xml version: $1";
-mvn versions:set -DnewVersion=$1 -f karavan-app
+mvn versions:set -DnewVersion=$1 -f karavan-web/karavan-app
 
 echo "Set Operator pom.xml version: $1";
-mvn versions:set -DnewVersion=$1 -f karavan-operator
+mvn versions:set -DnewVersion=$1 -f karavan-web/karavan-operator
 
 echo "Set Operator pom.xml version: $1";
-mvn versions:set -DnewVersion=$1 -f karavan-cli
+mvn versions:set -DnewVersion=$1 -f karavan-web/karavan-cli
 
 echo "Set Core package.json extension version: $1";
 yarn version --new-version $1 --no-commit --no-git-tag-version --cwd karavan-core
@@ -19,7 +19,7 @@ echo "Set Designer package.json version: $1";
 yarn version --new-version $1 --no-commit --no-git-tag-version --cwd karavan-designer
 
 echo "Set Application package.json extension version: $1";
-yarn version --new-version $1 --no-commit --no-git-tag-version --cwd karavan-app/src/main/webui/
+yarn version --new-version $1 --no-commit --no-git-tag-version --cwd karavan-web/karavan-app/src/main/webui/
 
 echo "Set VSCode extension package.json version: $1";
 yarn version --new-version $1 --no-commit --no-git-tag-version --cwd karavan-vscode
@@ -28,9 +28,9 @@ echo "Set VSCode extension package.json version: $1";
 yarn version --new-version $1 --no-commit --no-git-tag-version --cwd karavan-space
 
 echo "Set Github Workflow Builder TAG version: $1";
-sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/builder.yml 
+sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/docker-builder.yml 
 echo "Set Github Workflow Runner TAG version: $1";
-sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/runner.yml 
+sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/docker-devmode.yml 
 
 echo "Set Github Workflow App TAG version: $1";
 sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/app.yml 
@@ -41,10 +41,14 @@ sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/operator.yml
 echo "Set Github Workflow App TAG version: $1";
 sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/cli.yml
 
+
+echo "Set Github Workflow App TAG version: $1";
+sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/headless.yml
+
 echo "Set application.properties karavan.version=$1";
-sed -i.bak 's/karavan.version.*/karavan.version='"$1"'/g' karavan-operator/src/main/resources/application.properties 
-sed -i.bak 's/quarkus.container-image.tag.*/quarkus.container-image.tag='"$1"'/g' karavan-operator/src/main/resources/application.properties 
-sed -i.bak 's/VERSION ?=.*/VERSION ?='"$1"'/g' karavan-operator/Makefile
+sed -i.bak 's/karavan.version.*/karavan.version='"$1"'/g' karavan-web/karavan-operator/src/main/resources/application.properties 
+sed -i.bak 's/quarkus.container-image.tag.*/quarkus.container-image.tag='"$1"'/g' karavan-web/karavan-operator/src/main/resources/application.properties 
+sed -i.bak 's/VERSION ?=.*/VERSION ?='"$1"'/g' karavan-web/karavan-operator/Makefile
 
 echo "Set application.properties karavan.version=$1";
-sed -i.bak 's/karavan.version.*/karavan.version='"$1"'/g' karavan-app/src/main/resources/application.properties 
\ No newline at end of file
+sed -i.bak 's/karavan.version.*/karavan.version='"$1"'/g' karavan-web/karavan-app/src/main/resources/application.properties 
\ No newline at end of file
diff --git a/docs/AWS/karavan-app-deployment-public.yaml b/docs/AWS/karavan-app-deployment-public.yaml
index 7e8ac051..3f4bf50a 100644
--- a/docs/AWS/karavan-app-deployment-public.yaml
+++ b/docs/AWS/karavan-app-deployment-public.yaml
@@ -23,7 +23,7 @@ spec:
               valueFrom:
                 fieldRef:
                   fieldPath: metadata.namespace
-          image: ghcr.io/apache/camel-karavan:3.21.0
+          image: ghcr.io/apache/camel-karavan:4.0.0-RC2
           imagePullPolicy: Always
           name: karavan
           resources:
diff --git a/docs/AWS/karavan-quarkus-task-aws.yaml b/docs/AWS/karavan-quarkus-task-aws.yaml
index d71a991a..86f76e5c 100644
--- a/docs/AWS/karavan-quarkus-task-aws.yaml
+++ b/docs/AWS/karavan-quarkus-task-aws.yaml
@@ -79,7 +79,7 @@ spec:
         
         cd ${CHECKOUT_DIR}/$(inputs.params.project)
         
-        entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export --local-kamelet-dir=${KAMELETS_DIR}
+        entrypoint -Dcamel.jbang.version=4.0.0-RC2 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/docs/AWS/karavan-spring-boot-task-aws.yaml b/docs/AWS/karavan-spring-boot-task-aws.yaml
index 38c50446..2e6ee429 100644
--- a/docs/AWS/karavan-spring-boot-task-aws.yaml
+++ b/docs/AWS/karavan-spring-boot-task-aws.yaml
@@ -79,7 +79,7 @@ spec:
 
           cd ${CHECKOUT_DIR}/$(inputs.params.project)
 
-          entrypoint -Dcamel.jbang.version=3.21.0 camel@apache/camel export --local-kamelet-dir=${KAMELETS_DIR}
+          entrypoint -Dcamel.jbang.version=4.0.0-RC2 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')
@@ -97,7 +97,7 @@ spec:
               -Djkube.docker.push.registry=$AWS_ACCOUNT.dkr.ecr.$AWS_REGION.amazonaws.com \
               -Djkube.generator.name=$AWS_ACCOUNT.dkr.ecr.$AWS_REGION.amazonaws.com/${NAMESPACE}/$(inputs.params.project):${DATE}
 
-      image: ghcr.io/apache/camel-karavan-builder:3.21.0
+      image: ghcr.io/apache/camel-karavan-builder:4.0.0-RC2
       env:
         - name: GIT_REPOSITORY
           valueFrom:
diff --git a/docs/VSCODE_HOWTO.md b/docs/VSCODE_HOWTO.md
index 85247333..7b232d6f 100644
--- a/docs/VSCODE_HOWTO.md
+++ b/docs/VSCODE_HOWTO.md
@@ -16,7 +16,7 @@
 
 * Run using CLI
     ```shell
-    jbang -Dcamel.jbang.version=3.21.0 camel@apache/camel run $INTEGRATION.yaml --max-messages=10 --logging-level=info
+    jbang -Dcamel.jbang.version=4.0.0-RC2 camel@apache/camel run $INTEGRATION.yaml --max-messages=10 --logging-level=info
     ```
 
 ## Export integration to Maven project
@@ -26,5 +26,5 @@
 
 * Export using CLI
     ```shell
-    jbang -Dcamel.jbang.version=3.21.0 camel@apache/camel export --directory=export
+    jbang -Dcamel.jbang.version=4.0.0-RC2 camel@apache/camel export --directory=export
     ```
\ No newline at end of file
diff --git a/docs/WEB_INSTALL.md b/docs/WEB_INSTALL.md
index 4fe0604f..cc8fbe8b 100644
--- a/docs/WEB_INSTALL.md
+++ b/docs/WEB_INSTALL.md
@@ -20,13 +20,13 @@
 
     Option 1:
     ```
-    mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:copy -Dartifact=org.apache.camel.karavan:karavan-cli:3.21.0:jar -DoutputDirectory=. 
+    mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:copy -Dartifact=org.apache.camel.karavan:karavan-cli:4.0.0-RC2:jar -DoutputDirectory=. 
 
-    java -jar karavan-cli-3.21.0.jar install --git-repository=$GIT_REPOSITORY --git-password=$GIT_TOKEN --git-username=$GIT_USERNAME  --node-port=30777
+    java -jar karavan-cli-4.0.0-RC2.jar install --git-repository=$GIT_REPOSITORY --git-password=$GIT_TOKEN --git-username=$GIT_USERNAME  --node-port=30777
     ```
     Option 2:
     ```
-    jbang org.apache.camel.karavan:karavan-cli:3.21.0 install --git-repository=$GIT_REPOSITORY --git-password=$GIT_TOKEN --git-username=$GIT_USERNAME  --node-port=30777
+    jbang org.apache.camel.karavan:karavan-cli:4.0.0-RC2 install --git-repository=$GIT_REPOSITORY --git-password=$GIT_TOKEN --git-username=$GIT_USERNAME  --node-port=30777
     ```
 5. Get karavan service URL
     ```
diff --git a/karavan-core/package.json b/karavan-core/package.json
index 489e6909..a593eb85 100644
--- a/karavan-core/package.json
+++ b/karavan-core/package.json
@@ -1,7 +1,7 @@
 {
   "name": "karavan-core",
   "publisher": "camel-karavan",
-  "version": "3.21.1-SNAPSHOT",
+  "version": "4.0.0-RC2",
   "description": "Apache Camel Karavan Core",
   "scripts": {
     "build": "tsc && tsc-alias",
diff --git a/karavan-core/src/core/api/CamelDefinitionApi.ts b/karavan-core/src/core/api/CamelDefinitionApi.ts
index bf765304..25f97b4e 100644
--- a/karavan-core/src/core/api/CamelDefinitionApi.ts
+++ b/karavan-core/src/core/api/CamelDefinitionApi.ts
@@ -6,7 +6,6 @@ import {
     ProcessorDefinition,
     BeansDeserializer,
     ErrorHandlerBuilderDeserializer,
-    NamedBeanDefinition,
     OutputAwareFromDefinition,
     AggregateDefinition,
     BeanDefinition,
@@ -18,7 +17,6 @@ import {
     ConvertBodyDefinition,
     DataFormatDefinition,
     DelayDefinition,
-    DescriptionDefinition,
     DynamicRouterDefinition,
     EnrichDefinition,
     ErrorHandlerDefinition,
@@ -30,8 +28,6 @@ import {
     GlobalOptionDefinition,
     GlobalOptionsDefinition,
     IdempotentConsumerDefinition,
-    InOnlyDefinition,
-    InOutDefinition,
     InputTypeDefinition,
     InterceptDefinition,
     InterceptFromDefinition,
@@ -107,6 +103,12 @@ import {
     WhenDefinition,
     WhenSkipSendToEndpointDefinition,
     WireTapDefinition,
+    ApplicationDefinition,
+    BeanPropertiesDefinition,
+    BeanPropertyDefinition,
+    BeansDefinition,
+    ComponentScanDefinition,
+    RegistryBeanDefinition,
     BlacklistServiceCallServiceFilterConfiguration,
     CachingServiceCallServiceDiscoveryConfiguration,
     CombinedServiceCallServiceDiscoveryConfiguration,
@@ -130,7 +132,6 @@ import {
     BatchResequencerConfig,
     StreamResequencerConfig,
     ASN1DataFormat,
-    Any23DataFormat,
     AvroDataFormat,
     BarcodeDataFormat,
     Base64DataFormat,
@@ -154,6 +155,7 @@ import {
     LZFDataFormat,
     MimeMultipartDataFormat,
     PGPDataFormat,
+    ParquetAvroDataFormat,
     ProtobufDataFormat,
     RssDataFormat,
     SoapDataFormat,
@@ -168,7 +170,6 @@ import {
     UniVocityHeader,
     UniVocityTsvDataFormat,
     XMLSecurityDataFormat,
-    XStreamDataFormat,
     YAMLDataFormat,
     YAMLTypeFilterDefinition,
     ZipDeflaterDataFormat,
@@ -235,6 +236,7 @@ import {
     CustomTransformerDefinition,
     DataFormatTransformerDefinition,
     EndpointTransformerDefinition,
+    LoadTransformerDefinition,
     TransformersDefinition,
     CustomValidatorDefinition,
     EndpointValidatorDefinition,
@@ -287,12 +289,6 @@ export class CamelDefinitionApi {
         if (element?.idempotentConsumer !== undefined) { 
             def.idempotentConsumer = CamelDefinitionApi.createIdempotentConsumerDefinition(element.idempotentConsumer); 
         }
-        if (element?.inOnly !== undefined) { 
-            def.inOnly = CamelDefinitionApi.createInOnlyDefinition(element.inOnly); 
-        }
-        if (element?.inOut !== undefined) { 
-            def.inOut = CamelDefinitionApi.createInOutDefinition(element.inOut); 
-        }
         if (element?.intercept !== undefined) { 
             def.intercept = CamelDefinitionApi.createInterceptDefinition(element.intercept); 
         }
@@ -473,12 +469,6 @@ export class CamelDefinitionApi {
         return def;
     }
 
-    static createNamedBeanDefinition = (element: any): NamedBeanDefinition => { 
-        const def = element ? new NamedBeanDefinition({...element}) : new NamedBeanDefinition();
-        def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        return def;
-    }
-
     static createOutputAwareFromDefinition = (element: any): OutputAwareFromDefinition => { 
         const def = element ? new OutputAwareFromDefinition({...element}) : new OutputAwareFromDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
@@ -585,12 +575,6 @@ export class CamelDefinitionApi {
         return def;
     }
 
-    static createDescriptionDefinition = (element: any): DescriptionDefinition => { 
-        const def = element ? new DescriptionDefinition({...element}) : new DescriptionDefinition();
-        def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        return def;
-    }
-
     static createDynamicRouterDefinition = (element: any): DynamicRouterDefinition => { 
         const def = element ? new DynamicRouterDefinition({...element}) : new DynamicRouterDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
@@ -757,24 +741,6 @@ export class CamelDefinitionApi {
         return def;
     }
 
-    static createInOnlyDefinition = (element: any): InOnlyDefinition => { 
-        if (element && typeof element === 'string') {
-            element = {uri: element};
-        }
-        const def = element ? new InOnlyDefinition({...element}) : new InOnlyDefinition();
-        def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        return def;
-    }
-
-    static createInOutDefinition = (element: any): InOutDefinition => { 
-        if (element && typeof element === 'string') {
-            element = {uri: element};
-        }
-        const def = element ? new InOutDefinition({...element}) : new InOutDefinition();
-        def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        return def;
-    }
-
     static createInputTypeDefinition = (element: any): InputTypeDefinition => { 
         const def = element ? new InputTypeDefinition({...element}) : new InputTypeDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
@@ -863,9 +829,6 @@ export class CamelDefinitionApi {
     static createMarshalDefinition = (element: any): MarshalDefinition => { 
         const def = element ? new MarshalDefinition({...element}) : new MarshalDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        if (element?.any23 !== undefined) { 
-            def.any23 = CamelDefinitionApi.createAny23DataFormat(element.any23); 
-        }
         if (element?.asn1 !== undefined) { 
             def.asn1 = CamelDefinitionApi.createASN1DataFormat(element.asn1); 
         }
@@ -932,6 +895,9 @@ export class CamelDefinitionApi {
         if (element?.mimeMultipart !== undefined) { 
             def.mimeMultipart = CamelDefinitionApi.createMimeMultipartDataFormat(element.mimeMultipart); 
         }
+        if (element?.parquetAvro !== undefined) { 
+            def.parquetAvro = CamelDefinitionApi.createParquetAvroDataFormat(element.parquetAvro); 
+        }
         if (element?.pgp !== undefined) { 
             def.pgp = CamelDefinitionApi.createPGPDataFormat(element.pgp); 
         }
@@ -974,9 +940,6 @@ export class CamelDefinitionApi {
         if (element?.xmlSecurity !== undefined) { 
             def.xmlSecurity = CamelDefinitionApi.createXMLSecurityDataFormat(element.xmlSecurity); 
         }
-        if (element?.xstream !== undefined) { 
-            def.xstream = CamelDefinitionApi.createXStreamDataFormat(element.xstream); 
-        }
         if (element?.yaml !== undefined) { 
             def.yaml = CamelDefinitionApi.createYAMLDataFormat(element.yaml); 
         }
@@ -1254,6 +1217,12 @@ export class CamelDefinitionApi {
         if (element?.from !== undefined) { 
             def.from = CamelDefinitionApi.createFromDefinition(element.from); 
         }
+        if (element?.inputType !== undefined) { 
+            def.inputType = CamelDefinitionApi.createInputTypeDefinition(element.inputType); 
+        }
+        if (element?.outputType !== undefined) { 
+            def.outputType = CamelDefinitionApi.createOutputTypeDefinition(element.outputType); 
+        }
         return def;
     }
 
@@ -1483,9 +1452,6 @@ export class CamelDefinitionApi {
     static createUnmarshalDefinition = (element: any): UnmarshalDefinition => { 
         const def = element ? new UnmarshalDefinition({...element}) : new UnmarshalDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        if (element?.any23 !== undefined) { 
-            def.any23 = CamelDefinitionApi.createAny23DataFormat(element.any23); 
-        }
         if (element?.asn1 !== undefined) { 
             def.asn1 = CamelDefinitionApi.createASN1DataFormat(element.asn1); 
         }
@@ -1552,6 +1518,9 @@ export class CamelDefinitionApi {
         if (element?.mimeMultipart !== undefined) { 
             def.mimeMultipart = CamelDefinitionApi.createMimeMultipartDataFormat(element.mimeMultipart); 
         }
+        if (element?.parquetAvro !== undefined) { 
+            def.parquetAvro = CamelDefinitionApi.createParquetAvroDataFormat(element.parquetAvro); 
+        }
         if (element?.pgp !== undefined) { 
             def.pgp = CamelDefinitionApi.createPGPDataFormat(element.pgp); 
         }
@@ -1594,9 +1563,6 @@ export class CamelDefinitionApi {
         if (element?.xmlSecurity !== undefined) { 
             def.xmlSecurity = CamelDefinitionApi.createXMLSecurityDataFormat(element.xmlSecurity); 
         }
-        if (element?.xstream !== undefined) { 
-            def.xstream = CamelDefinitionApi.createXStreamDataFormat(element.xstream); 
-        }
         if (element?.yaml !== undefined) { 
             def.yaml = CamelDefinitionApi.createYAMLDataFormat(element.yaml); 
         }
@@ -1647,6 +1613,62 @@ export class CamelDefinitionApi {
         return def;
     }
 
+    static createApplicationDefinition = (element: any): ApplicationDefinition => { 
+        const def = element ? new ApplicationDefinition({...element}) : new ApplicationDefinition();
+        def.uuid = element?.uuid ? element.uuid : def.uuid; 
+        def.bean = element && element?.bean ? element?.bean.map((x:any) => CamelDefinitionApi.createRegistryBeanDefinition(x)) :[];
+        def.componentScan = element && element?.componentScan ? element?.componentScan.map((x:any) => CamelDefinitionApi.createComponentScanDefinition(x)) :[];
+        def.rest = element && element?.rest ? element?.rest.map((x:any) => CamelDefinitionApi.createRestDefinition(x)) :[];
+        def.restConfiguration = element && element?.restConfiguration ? element?.restConfiguration.map((x:any) => CamelDefinitionApi.createRestConfigurationDefinition(x)) :[];
+        def.route = element && element?.route ? element?.route.map((x:any) => CamelDefinitionApi.createRouteDefinition(x)) :[];
+        def.routeConfiguration = element && element?.routeConfiguration ? element?.routeConfiguration.map((x:any) => CamelDefinitionApi.createRouteConfigurationDefinition(x)) :[];
+        def.routeTemplate = element && element?.routeTemplate ? element?.routeTemplate.map((x:any) => CamelDefinitionApi.createRouteTemplateDefinition(x)) :[];
+        def.templatedRoute = element && element?.templatedRoute ? element?.templatedRoute.map((x:any) => CamelDefinitionApi.createTemplatedRouteDefinition(x)) :[];
+        return def;
+    }
+
+    static createBeanPropertiesDefinition = (element: any): BeanPropertiesDefinition => { 
+        const def = element ? new BeanPropertiesDefinition({...element}) : new BeanPropertiesDefinition();
+        def.uuid = element?.uuid ? element.uuid : def.uuid; 
+        def.property = element && element?.property ? element?.property.map((x:any) => CamelDefinitionApi.createBeanPropertyDefinition(x)) :[];
+        return def;
+    }
+
+    static createBeanPropertyDefinition = (element: any): BeanPropertyDefinition => { 
+        const def = element ? new BeanPropertyDefinition({...element}) : new BeanPropertyDefinition();
+        def.uuid = element?.uuid ? element.uuid : def.uuid; 
+        if (element?.properties !== undefined) { 
+            def.properties = CamelDefinitionApi.createBeanPropertiesDefinition(element.properties); 
+        }
+        return def;
+    }
+
+    static createBeansDefinition = (element: any): BeansDefinition => { 
+        const def = element ? new BeansDefinition({...element}) : new BeansDefinition();
+        def.uuid = element?.uuid ? element.uuid : def.uuid; 
+        def.bean = element && element?.bean ? element?.bean.map((x:any) => CamelDefinitionApi.createRegistryBeanDefinition(x)) :[];
+        def.componentScan = element && element?.componentScan ? element?.componentScan.map((x:any) => CamelDefinitionApi.createComponentScanDefinition(x)) :[];
+        def.rest = element && element?.rest ? element?.rest.map((x:any) => CamelDefinitionApi.createRestDefinition(x)) :[];
+        def.restConfiguration = element && element?.restConfiguration ? element?.restConfiguration.map((x:any) => CamelDefinitionApi.createRestConfigurationDefinition(x)) :[];
+        def.route = element && element?.route ? element?.route.map((x:any) => CamelDefinitionApi.createRouteDefinition(x)) :[];
+        def.routeConfiguration = element && element?.routeConfiguration ? element?.routeConfiguration.map((x:any) => CamelDefinitionApi.createRouteConfigurationDefinition(x)) :[];
+        def.routeTemplate = element && element?.routeTemplate ? element?.routeTemplate.map((x:any) => CamelDefinitionApi.createRouteTemplateDefinition(x)) :[];
+        def.templatedRoute = element && element?.templatedRoute ? element?.templatedRoute.map((x:any) => CamelDefinitionApi.createTemplatedRouteDefinition(x)) :[];
+        return def;
+    }
+
+    static createComponentScanDefinition = (element: any): ComponentScanDefinition => { 
+        const def = element ? new ComponentScanDefinition({...element}) : new ComponentScanDefinition();
+        def.uuid = element?.uuid ? element.uuid : def.uuid; 
+        return def;
+    }
+
+    static createRegistryBeanDefinition = (element: any): RegistryBeanDefinition => { 
+        const def = element ? new RegistryBeanDefinition({...element}) : new RegistryBeanDefinition();
+        def.uuid = element?.uuid ? element.uuid : def.uuid; 
+        return def;
+    }
+
     static createBlacklistServiceCallServiceFilterConfiguration = (element: any): BlacklistServiceCallServiceFilterConfiguration => { 
         const def = element ? new BlacklistServiceCallServiceFilterConfiguration({...element}) : new BlacklistServiceCallServiceFilterConfiguration();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
@@ -1934,13 +1956,6 @@ export class CamelDefinitionApi {
         return def;
     }
 
-    static createAny23DataFormat = (element: any): Any23DataFormat => { 
-        const def = element ? new Any23DataFormat({...element}) : new Any23DataFormat();
-        def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        def.configuration = element && element?.configuration ? element?.configuration.map((x:any) => CamelDefinitionApi.createPropertyDefinition(x)) :[];
-        return def;
-    }
-
     static createAvroDataFormat = (element: any): AvroDataFormat => { 
         const def = element ? new AvroDataFormat({...element}) : new AvroDataFormat();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
@@ -1995,9 +2010,6 @@ export class CamelDefinitionApi {
     static createDataFormatsDefinition = (element: any): DataFormatsDefinition => { 
         const def = element ? new DataFormatsDefinition({...element}) : new DataFormatsDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        if (element?.any23 !== undefined) { 
-            def.any23 = CamelDefinitionApi.createAny23DataFormat(element.any23); 
-        }
         if (element?.asn1 !== undefined) { 
             def.asn1 = CamelDefinitionApi.createASN1DataFormat(element.asn1); 
         }
@@ -2106,9 +2118,6 @@ export class CamelDefinitionApi {
         if (element?.xmlSecurity !== undefined) { 
             def.xmlSecurity = CamelDefinitionApi.createXMLSecurityDataFormat(element.xmlSecurity); 
         }
-        if (element?.xstream !== undefined) { 
-            def.xstream = CamelDefinitionApi.createXStreamDataFormat(element.xstream); 
-        }
         if (element?.yaml !== undefined) { 
             def.yaml = CamelDefinitionApi.createYAMLDataFormat(element.yaml); 
         }
@@ -2205,6 +2214,12 @@ export class CamelDefinitionApi {
         return def;
     }
 
+    static createParquetAvroDataFormat = (element: any): ParquetAvroDataFormat => { 
+        const def = element ? new ParquetAvroDataFormat({...element}) : new ParquetAvroDataFormat();
+        def.uuid = element?.uuid ? element.uuid : def.uuid; 
+        return def;
+    }
+
     static createProtobufDataFormat = (element: any): ProtobufDataFormat => { 
         const def = element ? new ProtobufDataFormat({...element}) : new ProtobufDataFormat();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
@@ -2295,16 +2310,6 @@ export class CamelDefinitionApi {
         return def;
     }
 
-    static createXStreamDataFormat = (element: any): XStreamDataFormat => { 
-        const def = element ? new XStreamDataFormat({...element}) : new XStreamDataFormat();
-        def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        def.aliases = element && element?.aliases ? element?.aliases.map((x:any) => CamelDefinitionApi.createPropertyDefinition(x)) :[];
-        def.converters = element && element?.converters ? element?.converters.map((x:any) => CamelDefinitionApi.createPropertyDefinition(x)) :[];
-        def.implicitCollections = element && element?.implicitCollections ? element?.implicitCollections.map((x:any) => CamelDefinitionApi.createPropertyDefinition(x)) :[];
-        def.omitFields = element && element?.omitFields ? element?.omitFields.map((x:any) => CamelDefinitionApi.createPropertyDefinition(x)) :[];
-        return def;
-    }
-
     static createYAMLDataFormat = (element: any): YAMLDataFormat => { 
         const def = element ? new YAMLDataFormat({...element}) : new YAMLDataFormat();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
@@ -2908,9 +2913,6 @@ export class CamelDefinitionApi {
     static createDataFormatTransformerDefinition = (element: any): DataFormatTransformerDefinition => { 
         const def = element ? new DataFormatTransformerDefinition({...element}) : new DataFormatTransformerDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
-        if (element?.any23 !== undefined) { 
-            def.any23 = CamelDefinitionApi.createAny23DataFormat(element.any23); 
-        }
         if (element?.asn1 !== undefined) { 
             def.asn1 = CamelDefinitionApi.createASN1DataFormat(element.asn1); 
         }
@@ -2977,6 +2979,9 @@ export class CamelDefinitionApi {
         if (element?.mimeMultipart !== undefined) { 
             def.mimeMultipart = CamelDefinitionApi.createMimeMultipartDataFormat(element.mimeMultipart); 
         }
+        if (element?.parquetAvro !== undefined) { 
+            def.parquetAvro = CamelDefinitionApi.createParquetAvroDataFormat(element.parquetAvro); 
+        }
         if (element?.pgp !== undefined) { 
             def.pgp = CamelDefinitionApi.createPGPDataFormat(element.pgp); 
         }
@@ -3019,9 +3024,6 @@ export class CamelDefinitionApi {
         if (element?.xmlSecurity !== undefined) { 
             def.xmlSecurity = CamelDefinitionApi.createXMLSecurityDataFormat(element.xmlSecurity); 
         }
-        if (element?.xstream !== undefined) { 
-            def.xstream = CamelDefinitionApi.createXStreamDataFormat(element.xstream); 
-        }
         if (element?.yaml !== undefined) { 
             def.yaml = CamelDefinitionApi.createYAMLDataFormat(element.yaml); 
         }
@@ -3040,6 +3042,12 @@ export class CamelDefinitionApi {
         return def;
     }
 
+    static createLoadTransformerDefinition = (element: any): LoadTransformerDefinition => { 
+        const def = element ? new LoadTransformerDefinition({...element}) : new LoadTransformerDefinition();
+        def.uuid = element?.uuid ? element.uuid : def.uuid; 
+        return def;
+    }
+
     static createTransformersDefinition = (element: any): TransformersDefinition => { 
         const def = element ? new TransformersDefinition({...element}) : new TransformersDefinition();
         def.uuid = element?.uuid ? element.uuid : def.uuid; 
@@ -3052,6 +3060,9 @@ export class CamelDefinitionApi {
         if (element?.endpointTransformer !== undefined) { 
             def.endpointTransformer = CamelDefinitionApi.createEndpointTransformerDefinition(element.endpointTransformer); 
         }
+        if (element?.loadTransformer !== undefined) { 
+            def.loadTransformer = CamelDefinitionApi.createLoadTransformerDefinition(element.loadTransformer); 
+        }
         return def;
     }
 
@@ -3096,7 +3107,6 @@ export class CamelDefinitionApi {
             case 'ProcessorDefinition': return CamelDefinitionApi.createProcessorDefinition(newBody);
             case 'BeansDeserializer': return CamelDefinitionApi.createBeansDeserializer(newBody);
             case 'ErrorHandlerBuilderDeserializer': return CamelDefinitionApi.createErrorHandlerBuilderDeserializer(newBody);
-            case 'NamedBeanDefinition': return CamelDefinitionApi.createNamedBeanDefinition(newBody);
             case 'OutputAwareFromDefinition': return CamelDefinitionApi.createOutputAwareFromDefinition(newBody);
             case 'AggregateDefinition': return CamelDefinitionApi.createAggregateDefinition(newBody);
             case 'BeanDefinition': return CamelDefinitionApi.createBeanDefinition(newBody);
@@ -3108,7 +3118,6 @@ export class CamelDefinitionApi {
             case 'ConvertBodyDefinition': return CamelDefinitionApi.createConvertBodyDefinition(newBody);
             case 'DataFormatDefinition': return CamelDefinitionApi.createDataFormatDefinition(newBody);
             case 'DelayDefinition': return CamelDefinitionApi.createDelayDefinition(newBody);
-            case 'DescriptionDefinition': return CamelDefinitionApi.createDescriptionDefinition(newBody);
             case 'DynamicRouterDefinition': return CamelDefinitionApi.createDynamicRouterDefinition(newBody);
             case 'EnrichDefinition': return CamelDefinitionApi.createEnrichDefinition(newBody);
             case 'ErrorHandlerDefinition': return CamelDefinitionApi.createErrorHandlerDefinition(newBody);
@@ -3120,8 +3129,6 @@ export class CamelDefinitionApi {
             case 'GlobalOptionDefinition': return CamelDefinitionApi.createGlobalOptionDefinition(newBody);
             case 'GlobalOptionsDefinition': return CamelDefinitionApi.createGlobalOptionsDefinition(newBody);
             case 'IdempotentConsumerDefinition': return CamelDefinitionApi.createIdempotentConsumerDefinition(newBody);
-            case 'InOnlyDefinition': return CamelDefinitionApi.createInOnlyDefinition(newBody);
-            case 'InOutDefinition': return CamelDefinitionApi.createInOutDefinition(newBody);
             case 'InputTypeDefinition': return CamelDefinitionApi.createInputTypeDefinition(newBody);
             case 'InterceptDefinition': return CamelDefinitionApi.createInterceptDefinition(newBody);
             case 'InterceptFromDefinition': return CamelDefinitionApi.createInterceptFromDefinition(newBody);
@@ -3197,6 +3204,12 @@ export class CamelDefinitionApi {
             case 'WhenDefinition': return CamelDefinitionApi.createWhenDefinition(newBody);
             case 'WhenSkipSendToEndpointDefinition': return CamelDefinitionApi.createWhenSkipSendToEndpointDefinition(newBody);
             case 'WireTapDefinition': return CamelDefinitionApi.createWireTapDefinition(newBody);
+            case 'ApplicationDefinition': return CamelDefinitionApi.createApplicationDefinition(newBody);
+            case 'BeanPropertiesDefinition': return CamelDefinitionApi.createBeanPropertiesDefinition(newBody);
+            case 'BeanPropertyDefinition': return CamelDefinitionApi.createBeanPropertyDefinition(newBody);
+            case 'BeansDefinition': return CamelDefinitionApi.createBeansDefinition(newBody);
+            case 'ComponentScanDefinition': return CamelDefinitionApi.createComponentScanDefinition(newBody);
+            case 'RegistryBeanDefinition': return CamelDefinitionApi.createRegistryBeanDefinition(newBody);
             case 'BlacklistServiceCallServiceFilterConfiguration': return CamelDefinitionApi.createBlacklistServiceCallServiceFilterConfiguration(newBody);
             case 'CachingServiceCallServiceDiscoveryConfiguration': return CamelDefinitionApi.createCachingServiceCallServiceDiscoveryConfiguration(newBody);
             case 'CombinedServiceCallServiceDiscoveryConfiguration': return CamelDefinitionApi.createCombinedServiceCallServiceDiscoveryConfiguration(newBody);
@@ -3220,7 +3233,6 @@ export class CamelDefinitionApi {
             case 'BatchResequencerConfig': return CamelDefinitionApi.createBatchResequencerConfig(newBody);
             case 'StreamResequencerConfig': return CamelDefinitionApi.createStreamResequencerConfig(newBody);
             case 'ASN1DataFormat': return CamelDefinitionApi.createASN1DataFormat(newBody);
-            case 'Any23DataFormat': return CamelDefinitionApi.createAny23DataFormat(newBody);
             case 'AvroDataFormat': return CamelDefinitionApi.createAvroDataFormat(newBody);
             case 'BarcodeDataFormat': return CamelDefinitionApi.createBarcodeDataFormat(newBody);
             case 'Base64DataFormat': return CamelDefinitionApi.createBase64DataFormat(newBody);
@@ -3244,6 +3256,7 @@ export class CamelDefinitionApi {
             case 'LZFDataFormat': return CamelDefinitionApi.createLZFDataFormat(newBody);
             case 'MimeMultipartDataFormat': return CamelDefinitionApi.createMimeMultipartDataFormat(newBody);
             case 'PGPDataFormat': return CamelDefinitionApi.createPGPDataFormat(newBody);
+            case 'ParquetAvroDataFormat': return CamelDefinitionApi.createParquetAvroDataFormat(newBody);
             case 'ProtobufDataFormat': return CamelDefinitionApi.createProtobufDataFormat(newBody);
             case 'RssDataFormat': return CamelDefinitionApi.createRssDataFormat(newBody);
             case 'SoapDataFormat': return CamelDefinitionApi.createSoapDataFormat(newBody);
@@ -3258,7 +3271,6 @@ export class CamelDefinitionApi {
             case 'UniVocityHeader': return CamelDefinitionApi.createUniVocityHeader(newBody);
             case 'UniVocityTsvDataFormat': return CamelDefinitionApi.createUniVocityTsvDataFormat(newBody);
             case 'XMLSecurityDataFormat': return CamelDefinitionApi.createXMLSecurityDataFormat(newBody);
-            case 'XStreamDataFormat': return CamelDefinitionApi.createXStreamDataFormat(newBody);
             case 'YAMLDataFormat': return CamelDefinitionApi.createYAMLDataFormat(newBody);
             case 'YAMLTypeFilterDefinition': return CamelDefinitionApi.createYAMLTypeFilterDefinition(newBody);
             case 'ZipDeflaterDataFormat': return CamelDefinitionApi.createZipDeflaterDataFormat(newBody);
@@ -3325,6 +3337,7 @@ export class CamelDefinitionApi {
             case 'CustomTransformerDefinition': return CamelDefinitionApi.createCustomTransformerDefinition(newBody);
             case 'DataFormatTransformerDefinition': return CamelDefinitionApi.createDataFormatTransformerDefinition(newBody);
             case 'EndpointTransformerDefinition': return CamelDefinitionApi.createEndpointTransformerDefinition(newBody);
+            case 'LoadTransformerDefinition': return CamelDefinitionApi.createLoadTransformerDefinition(newBody);
             case 'TransformersDefinition': return CamelDefinitionApi.createTransformersDefinition(newBody);
             case 'CustomValidatorDefinition': return CamelDefinitionApi.createCustomValidatorDefinition(newBody);
             case 'EndpointValidatorDefinition': return CamelDefinitionApi.createEndpointValidatorDefinition(newBody);
@@ -3371,7 +3384,6 @@ export class CamelDefinitionApi {
        delete newBody.dataFormatName;
        delete newBody.dslName;
        switch (name) { 
-            case 'Any23DataFormat': return CamelDefinitionApi.createAny23DataFormat(newBody);
             case 'TarFileDataFormat': return CamelDefinitionApi.createTarFileDataFormat(newBody);
             case 'CBORDataFormat': return CamelDefinitionApi.createCBORDataFormat(newBody);
             case 'LZFDataFormat': return CamelDefinitionApi.createLZFDataFormat(newBody);
@@ -3400,7 +3412,6 @@ export class CamelDefinitionApi {
             case 'MimeMultipartDataFormat': return CamelDefinitionApi.createMimeMultipartDataFormat(newBody);
             case 'ZipDeflaterDataFormat': return CamelDefinitionApi.createZipDeflaterDataFormat(newBody);
             case 'ASN1DataFormat': return CamelDefinitionApi.createASN1DataFormat(newBody);
-            case 'XStreamDataFormat': return CamelDefinitionApi.createXStreamDataFormat(newBody);
             case 'YAMLDataFormat': return CamelDefinitionApi.createYAMLDataFormat(newBody);
             case 'SwiftMxDataFormat': return CamelDefinitionApi.createSwiftMxDataFormat(newBody);
             case 'CustomDataFormat': return CamelDefinitionApi.createCustomDataFormat(newBody);
diff --git a/karavan-core/src/core/api/CamelDefinitionApiExt.ts b/karavan-core/src/core/api/CamelDefinitionApiExt.ts
index 82169033..9ff5f563 100644
--- a/karavan-core/src/core/api/CamelDefinitionApiExt.ts
+++ b/karavan-core/src/core/api/CamelDefinitionApiExt.ts
@@ -18,7 +18,7 @@ import { CamelMetadataApi, ElementMeta, Languages, PropertyMeta } from '../model
 import { ComponentApi } from './ComponentApi';
 import { CamelUtil } from './CamelUtil';
 import {
-    NamedBeanDefinition,
+    RegistryBeanDefinition,
     ExpressionDefinition,
     RouteDefinition,
     RestDefinition,
@@ -314,7 +314,7 @@ export class CamelDefinitionApiExt {
         return result;
     };
 
-    static addBeanToIntegration = (integration: Integration, bean: NamedBeanDefinition): Integration => {
+    static addBeanToIntegration = (integration: Integration, bean: RegistryBeanDefinition): Integration => {
         const flows: any[] = [];
         const beans: Beans[] = integration.spec.flows?.filter(flow => flow.dslName === 'Beans') ?? [];
         if (integration.spec.flows && beans.length === 0) {
@@ -323,7 +323,7 @@ export class CamelDefinitionApiExt {
         } else {
             flows.push(...integration.spec.flows?.filter(flow => flow.dslName !== 'Beans') ?? []);
             for (const flow of beans) {
-                const beans: NamedBeanDefinition[] = [];
+                const beans: RegistryBeanDefinition[] = [];
                 if ((flow as Beans).beans.filter(b => b.uuid === bean.uuid).length === 0) {
                     beans.push(...(flow as Beans).beans.filter(b => b.uuid !== bean.uuid));
                     beans.push(bean);
@@ -341,11 +341,11 @@ export class CamelDefinitionApiExt {
         return integration;
     };
 
-    static deleteBeanFromIntegration = (integration: Integration, bean?: NamedBeanDefinition): Integration => {
+    static deleteBeanFromIntegration = (integration: Integration, bean?: RegistryBeanDefinition): Integration => {
         const flows: any[] = [];
         for (const flow of integration.spec.flows ?? []) {
             if (flow.dslName === 'Beans') {
-                const beans: NamedBeanDefinition[] = (flow as Beans).beans.filter(
+                const beans: RegistryBeanDefinition[] = (flow as Beans).beans.filter(
                     b => !(b.uuid === bean?.uuid && b.type === bean?.type),
                 );
                 if (beans.length > 0) {
diff --git a/karavan-core/src/core/api/CamelDefinitionYaml.ts b/karavan-core/src/core/api/CamelDefinitionYaml.ts
index 99a2b94d..073b1a5f 100644
--- a/karavan-core/src/core/api/CamelDefinitionYaml.ts
+++ b/karavan-core/src/core/api/CamelDefinitionYaml.ts
@@ -16,7 +16,7 @@
  */
 import * as yaml from 'js-yaml';
 import { Integration, CamelElement, Beans } from '../model/IntegrationDefinition';
-import { RouteDefinition, NamedBeanDefinition, RouteConfigurationDefinition } from '../model/CamelDefinition';
+import { RouteDefinition, RegistryBeanDefinition, RouteConfigurationDefinition } from '../model/CamelDefinition';
 import { CamelUtil } from './CamelUtil';
 import { CamelDefinitionYamlStep } from './CamelDefinitionYamlStep';
 
@@ -61,7 +61,7 @@ export class CamelDefinitionYaml {
             delete object.expressionName;
         } else if (object.dslName.endsWith('DataFormat')) {
             delete object.dataFormatName;
-        } else if (object.dslName === 'NamedBeanDefinition') {
+        } else if (object.dslName === 'RegistryBeanDefinition') {
             if (object.properties && Object.keys(object.properties).length === 0) {
                 delete object.properties;
             }
@@ -273,7 +273,7 @@ export class CamelDefinitionYaml {
                 }
             }
             bean.properties = props;
-            result.beans.push(new NamedBeanDefinition(bean));
+            result.beans.push(new RegistryBeanDefinition(bean));
         }
         return result;
     };
diff --git a/karavan-core/src/core/api/CamelDefinitionYamlStep.ts b/karavan-core/src/core/api/CamelDefinitionYamlStep.ts
index fe953d0c..ec3d1e1e 100644
--- a/karavan-core/src/core/api/CamelDefinitionYamlStep.ts
+++ b/karavan-core/src/core/api/CamelDefinitionYamlStep.ts
@@ -7,7 +7,6 @@ import {
     ProcessorDefinition,
     BeansDeserializer,
     ErrorHandlerBuilderDeserializer,
-    NamedBeanDefinition,
     OutputAwareFromDefinition,
     AggregateDefinition,
     BeanDefinition,
@@ -19,7 +18,6 @@ import {
     ConvertBodyDefinition,
     DataFormatDefinition,
     DelayDefinition,
-    DescriptionDefinition,
     DynamicRouterDefinition,
     EnrichDefinition,
     ErrorHandlerDefinition,
@@ -31,8 +29,6 @@ import {
     GlobalOptionDefinition,
     GlobalOptionsDefinition,
     IdempotentConsumerDefinition,
-    InOnlyDefinition,
-    InOutDefinition,
     InputTypeDefinition,
     InterceptDefinition,
     InterceptFromDefinition,
@@ -108,6 +104,12 @@ import {
     WhenDefinition,
     WhenSkipSendToEndpointDefinition,
     WireTapDefinition,
+    ApplicationDefinition,
+    BeanPropertiesDefinition,
+    BeanPropertyDefinition,
+    BeansDefinition,
+    ComponentScanDefinition,
+    RegistryBeanDefinition,
     BlacklistServiceCallServiceFilterConfiguration,
     CachingServiceCallServiceDiscoveryConfiguration,
     CombinedServiceCallServiceDiscoveryConfiguration,
@@ -131,7 +133,6 @@ import {
     BatchResequencerConfig,
     StreamResequencerConfig,
     ASN1DataFormat,
-    Any23DataFormat,
     AvroDataFormat,
     BarcodeDataFormat,
     Base64DataFormat,
@@ -155,6 +156,7 @@ import {
     LZFDataFormat,
     MimeMultipartDataFormat,
     PGPDataFormat,
+    ParquetAvroDataFormat,
     ProtobufDataFormat,
     RssDataFormat,
     SoapDataFormat,
@@ -169,7 +171,6 @@ import {
     UniVocityHeader,
     UniVocityTsvDataFormat,
     XMLSecurityDataFormat,
-    XStreamDataFormat,
     YAMLDataFormat,
     YAMLTypeFilterDefinition,
     ZipDeflaterDataFormat,
@@ -236,6 +237,7 @@ import {
     CustomTransformerDefinition,
     DataFormatTransformerDefinition,
     EndpointTransformerDefinition,
+    LoadTransformerDefinition,
     TransformersDefinition,
     CustomValidatorDefinition,
     EndpointValidatorDefinition,
@@ -300,20 +302,6 @@ export class CamelDefinitionYamlStep {
                def.setHeader = CamelDefinitionYamlStep.readSetHeaderDefinition(element.setHeader); 
             } 
         } 
-        if (element?.inOnly !== undefined) { 
-            if (Array.isArray(element.inOnly)) { 
-               def.inOnly = CamelDefinitionYamlStep.readInOnlyDefinition(element.inOnly[0]); 
-            } else { 
-               def.inOnly = CamelDefinitionYamlStep.readInOnlyDefinition(element.inOnly); 
-            } 
-        } 
-        if (element?.inOut !== undefined) { 
-            if (Array.isArray(element.inOut)) { 
-               def.inOut = CamelDefinitionYamlStep.readInOutDefinition(element.inOut[0]); 
-            } else { 
-               def.inOut = CamelDefinitionYamlStep.readInOutDefinition(element.inOut); 
-            } 
-        } 
         if (element?.split !== undefined) { 
             if (Array.isArray(element.split)) { 
                def.split = CamelDefinitionYamlStep.readSplitDefinition(element.split[0]); 
@@ -759,13 +747,6 @@ export class CamelDefinitionYamlStep {
         return def;
     }
 
-    static readNamedBeanDefinition = (element: any): NamedBeanDefinition => {
-        
-        let def = element ? new NamedBeanDefinition({...element}) : new NamedBeanDefinition();
-
-        return def;
-    }
-
     static readOutputAwareFromDefinition = (element: any): OutputAwareFromDefinition => {
         
         let def = element ? new OutputAwareFromDefinition({...element}) : new OutputAwareFromDefinition();
@@ -930,13 +911,6 @@ export class CamelDefinitionYamlStep {
         return def;
     }
 
-    static readDescriptionDefinition = (element: any): DescriptionDefinition => {
-        
-        let def = element ? new DescriptionDefinition({...element}) : new DescriptionDefinition();
-
-        return def;
-    }
-
     static readDynamicRouterDefinition = (element: any): DynamicRouterDefinition => {
         
         let def = element ? new DynamicRouterDefinition({...element}) : new DynamicRouterDefinition();
@@ -1260,22 +1234,6 @@ export class CamelDefinitionYamlStep {
         return def;
     }
 
-    static readInOnlyDefinition = (element: any): InOnlyDefinition => {
-        if (element && typeof element === 'string') element = {uri: element};
-        let def = element ? new InOnlyDefinition({...element}) : new InOnlyDefinition();
-        def = ComponentApi.parseElementUri(def);
-
-        return def;
-    }
-
-    static readInOutDefinition = (element: any): InOutDefinition => {
-        if (element && typeof element === 'string') element = {uri: element};
-        let def = element ? new InOutDefinition({...element}) : new InOutDefinition();
-        def = ComponentApi.parseElementUri(def);
-
-        return def;
-    }
-
     static readInputTypeDefinition = (element: any): InputTypeDefinition => {
         
         let def = element ? new InputTypeDefinition({...element}) : new InputTypeDefinition();
@@ -1479,6 +1437,13 @@ export class CamelDefinitionYamlStep {
                def.jaxb = CamelDefinitionYamlStep.readJaxbDataFormat(element.jaxb); 
             } 
         } 
+        if (element?.parquetAvro !== undefined) { 
+            if (Array.isArray(element.parquetAvro)) { 
+               def.parquetAvro = CamelDefinitionYamlStep.readParquetAvroDataFormat(element.parquetAvro[0]); 
+            } else { 
+               def.parquetAvro = CamelDefinitionYamlStep.readParquetAvroDataFormat(element.parquetAvro); 
+            } 
+        } 
         if (element?.rss !== undefined) { 
             if (Array.isArray(element.rss)) { 
                def.rss = CamelDefinitionYamlStep.readRssDataFormat(element.rss[0]); 
@@ -1563,13 +1528,6 @@ export class CamelDefinitionYamlStep {
                def.fhirJson = CamelDefinitionYamlStep.readFhirJsonDataFormat(element.fhirJson); 
             } 
         } 
-        if (element?.any23 !== undefined) { 
-            if (Array.isArray(element.any23)) { 
-               def.any23 = CamelDefinitionYamlStep.readAny23DataFormat(element.any23[0]); 
-            } else { 
-               def.any23 = CamelDefinitionYamlStep.readAny23DataFormat(element.any23); 
-            } 
-        } 
         if (element?.custom !== undefined) { 
             if (Array.isArray(element.custom)) { 
                def.custom = CamelDefinitionYamlStep.readCustomDataFormat(element.custom[0]); 
@@ -1668,13 +1626,6 @@ export class CamelDefinitionYamlStep {
                def.grok = CamelDefinitionYamlStep.readGrokDataFormat(element.grok); 
             } 
         } 
-        if (element?.xstream !== undefined) { 
-            if (Array.isArray(element.xstream)) { 
-               def.xstream = CamelDefinitionYamlStep.readXStreamDataFormat(element.xstream[0]); 
-            } else { 
-               def.xstream = CamelDefinitionYamlStep.readXStreamDataFormat(element.xstream); 
-            } 
-        } 
         if (element?.gzipDeflater !== undefined) { 
             if (Array.isArray(element.gzipDeflater)) { 
                def.gzipDeflater = CamelDefinitionYamlStep.readGzipDeflaterDataFormat(element.gzipDeflater[0]); 
@@ -2034,6 +1985,13 @@ export class CamelDefinitionYamlStep {
     static readRouteDefinition = (element: any): RouteDefinition => {
         
         let def = element ? new RouteDefinition({...element}) : new RouteDefinition();
+        if (element?.outputType !== undefined) { 
+            if (Array.isArray(element.outputType)) { 
+               def.outputType = CamelDefinitionYamlStep.readOutputTypeDefinition(element.outputType[0]); 
+            } else { 
+               def.outputType = CamelDefinitionYamlStep.readOutputTypeDefinition(element.outputType); 
+            } 
+        } 
         if (element?.from !== undefined) { 
             if (Array.isArray(element.from)) { 
                def.from = CamelDefinitionYamlStep.readFromDefinition(element.from[0]); 
@@ -2041,6 +1999,13 @@ export class CamelDefinitionYamlStep {
                def.from = CamelDefinitionYamlStep.readFromDefinition(element.from); 
             } 
         } 
+        if (element?.inputType !== undefined) { 
+            if (Array.isArray(element.inputType)) { 
+               def.inputType = CamelDefinitionYamlStep.readInputTypeDefinition(element.inputType[0]); 
+            } else { 
+               def.inputType = CamelDefinitionYamlStep.readInputTypeDefinition(element.inputType); 
+            } 
+        } 
 
         return def;
     }
@@ -2464,6 +2429,13 @@ export class CamelDefinitionYamlStep {
                def.jaxb = CamelDefinitionYamlStep.readJaxbDataFormat(element.jaxb); 
             } 
         } 
+        if (element?.parquetAvro !== undefined) { 
+            if (Array.isArray(element.parquetAvro)) { 
+               def.parquetAvro = CamelDefinitionYamlStep.readParquetAvroDataFormat(element.parquetAvro[0]); 
+            } else { 
+               def.parquetAvro = CamelDefinitionYamlStep.readParquetAvroDataFormat(element.parquetAvro); 
+            } 
+        } 
         if (element?.rss !== undefined) { 
             if (Array.isArray(element.rss)) { 
                def.rss = CamelDefinitionYamlStep.readRssDataFormat(element.rss[0]); 
@@ -2548,13 +2520,6 @@ export class CamelDefinitionYamlStep {
                def.fhirJson = CamelDefinitionYamlStep.readFhirJsonDataFormat(element.fhirJson); 
             } 
         } 
-        if (element?.any23 !== undefined) { 
-            if (Array.isArray(element.any23)) { 
-               def.any23 = CamelDefinitionYamlStep.readAny23DataFormat(element.any23[0]); 
-            } else { 
-               def.any23 = CamelDefinitionYamlStep.readAny23DataFormat(element.any23); 
-            } 
-        } 
         if (element?.custom !== undefined) { 
             if (Array.isArray(element.custom)) { 
                def.custom = CamelDefinitionYamlStep.readCustomDataFormat(element.custom[0]); 
@@ -2653,13 +2618,6 @@ export class CamelDefinitionYamlStep {
                def.grok = CamelDefinitionYamlStep.readGrokDataFormat(element.grok); 
             } 
         } 
-        if (element?.xstream !== undefined) { 
-            if (Array.isArray(element.xstream)) { 
-               def.xstream = CamelDefinitionYamlStep.readXStreamDataFormat(element.xstream[0]); 
-            } else { 
-               def.xstream = CamelDefinitionYamlStep.readXStreamDataFormat(element.xstream); 
-            } 
-        } 
         if (element?.gzipDeflater !== undefined) { 
             if (Array.isArray(element.gzipDeflater)) { 
                def.gzipDeflater = CamelDefinitionYamlStep.readGzipDeflaterDataFormat(element.gzipDeflater[0]); 
@@ -2749,6 +2707,72 @@ export class CamelDefinitionYamlStep {
         return def;
     }
 
+    static readApplicationDefinition = (element: any): ApplicationDefinition => {
+        
+        let def = element ? new ApplicationDefinition({...element}) : new ApplicationDefinition();
+        def.rest = element && element?.rest ? element?.rest.map((x:any) => CamelDefinitionYamlStep.readRestDefinition(x)) :[]; 
+        def.routeTemplate = element && element?.routeTemplate ? element?.routeTemplate.map((x:any) => CamelDefinitionYamlStep.readRouteTemplateDefinition(x)) :[]; 
+        def.route = element && element?.route ? element?.route.map((x:any) => CamelDefinitionYamlStep.readRouteDefinition(x)) :[]; 
+        def.restConfiguration = element && element?.restConfiguration ? element?.restConfiguration.map((x:any) => CamelDefinitionYamlStep.readRestConfigurationDefinition(x)) :[]; 
+        def.templatedRoute = element && element?.templatedRoute ? element?.templatedRoute.map((x:any) => CamelDefinitionYamlStep.readTemplatedRouteDefinition(x)) :[]; 
+        def.routeConfiguration = element && element?.routeConfiguration ? element?.routeConfiguration.map((x:any) => CamelDefinitionYamlStep.readRouteConfigurationDefinition(x)) :[]; 
+        def.bean = element && element?.bean ? element?.bean.map((x:any) => CamelDefinitionYamlStep.readRegistryBeanDefinition(x)) :[]; 
+        def.componentScan = element && element?.componentScan ? element?.componentScan.map((x:any) => CamelDefinitionYamlStep.readComponentScanDefinition(x)) :[]; 
+
+        return def;
+    }
+
+    static readBeanPropertiesDefinition = (element: any): BeanPropertiesDefinition => {
+        
+        let def = element ? new BeanPropertiesDefinition({...element}) : new BeanPropertiesDefinition();
+        def.property = element && element?.property ? element?.property.map((x:any) => CamelDefinitionYamlStep.readBeanPropertyDefinition(x)) :[]; 
+
+        return def;
+    }
+
+    static readBeanPropertyDefinition = (element: any): BeanPropertyDefinition => {
+        
+        let def = element ? new BeanPropertyDefinition({...element}) : new BeanPropertyDefinition();
+        if (element?.properties !== undefined) { 
+            if (Array.isArray(element.properties)) { 
+               def.properties = CamelDefinitionYamlStep.readBeanPropertiesDefinition(element.properties[0]); 
+            } else { 
+               def.properties = CamelDefinitionYamlStep.readBeanPropertiesDefinition(element.properties); 
+            } 
+        } 
+
+        return def;
+    }
+
+    static readBeansDefinition = (element: any): BeansDefinition => {
+        
+        let def = element ? new BeansDefinition({...element}) : new BeansDefinition();
+        def.rest = element && element?.rest ? element?.rest.map((x:any) => CamelDefinitionYamlStep.readRestDefinition(x)) :[]; 
+        def.routeTemplate = element && element?.routeTemplate ? element?.routeTemplate.map((x:any) => CamelDefinitionYamlStep.readRouteTemplateDefinition(x)) :[]; 
+        def.route = element && element?.route ? element?.route.map((x:any) => CamelDefinitionYamlStep.readRouteDefinition(x)) :[]; 
+        def.restConfiguration = element && element?.restConfiguration ? element?.restConfiguration.map((x:any) => CamelDefinitionYamlStep.readRestConfigurationDefinition(x)) :[]; 
+        def.templatedRoute = element && element?.templatedRoute ? element?.templatedRoute.map((x:any) => CamelDefinitionYamlStep.readTemplatedRouteDefinition(x)) :[]; 
+        def.routeConfiguration = element && element?.routeConfiguration ? element?.routeConfiguration.map((x:any) => CamelDefinitionYamlStep.readRouteConfigurationDefinition(x)) :[]; 
+        def.bean = element && element?.bean ? element?.bean.map((x:any) => CamelDefinitionYamlStep.readRegistryBeanDefinition(x)) :[]; 
+        def.componentScan = element && element?.componentScan ? element?.componentScan.map((x:any) => CamelDefinitionYamlStep.readComponentScanDefinition(x)) :[]; 
+
+        return def;
+    }
+
+    static readComponentScanDefinition = (element: any): ComponentScanDefinition => {
+        
+        let def = element ? new ComponentScanDefinition({...element}) : new ComponentScanDefinition();
+
+        return def;
+    }
+
+    static readRegistryBeanDefinition = (element: any): RegistryBeanDefinition => {
+        
+        let def = element ? new RegistryBeanDefinition({...element}) : new RegistryBeanDefinition();
+
+        return def;
+    }
+
     static readBlacklistServiceCallServiceFilterConfiguration = (element: any): BlacklistServiceCallServiceFilterConfiguration => {
         
         let def = element ? new BlacklistServiceCallServiceFilterConfiguration({...element}) : new BlacklistServiceCallServiceFilterConfiguration();
@@ -3235,14 +3259,6 @@ export class CamelDefinitionYamlStep {
         return def;
     }
 
-    static readAny23DataFormat = (element: any): Any23DataFormat => {
-        
-        let def = element ? new Any23DataFormat({...element}) : new Any23DataFormat();
-        def.configuration = element && element?.configuration ? element?.configuration.map((x:any) => CamelDefinitionYamlStep.readPropertyDefinition(x)) :[]; 
-
-        return def;
-    }
-
     static readAvroDataFormat = (element: any): AvroDataFormat => {
         
         let def = element ? new AvroDataFormat({...element}) : new AvroDataFormat();
@@ -3463,13 +3479,6 @@ export class CamelDefinitionYamlStep {
                def.fhirJson = CamelDefinitionYamlStep.readFhirJsonDataFormat(element.fhirJson); 
             } 
         } 
-        if (element?.any23 !== undefined) { 
-            if (Array.isArray(element.any23)) { 
-               def.any23 = CamelDefinitionYamlStep.readAny23DataFormat(element.any23[0]); 
-            } else { 
-               def.any23 = CamelDefinitionYamlStep.readAny23DataFormat(element.any23); 
-            } 
-        } 
         if (element?.custom !== undefined) { 
             if (Array.isArray(element.custom)) { 
                def.custom = CamelDefinitionYamlStep.readCustomDataFormat(element.custom[0]); 
@@ -3568,13 +3577,6 @@ export class CamelDefinitionYamlStep {
                def.grok = CamelDefinitionYamlStep.readGrokDataFormat(element.grok); 
             } 
         } 
-        if (element?.xstream !== undefined) { 
-            if (Array.isArray(element.xstream)) { 
-               def.xstream = CamelDefinitionYamlStep.readXStreamDataFormat(element.xstream[0]); 
-            } else { 
-               def.xstream = CamelDefinitionYamlStep.readXStreamDataFormat(element.xstream); 
-            } 
-        } 
         if (element?.gzipDeflater !== undefined) { 
             if (Array.isArray(element.gzipDeflater)) { 
                def.gzipDeflater = CamelDefinitionYamlStep.readGzipDeflaterDataFormat(element.gzipDeflater[0]); 
@@ -3691,6 +3693,13 @@ export class CamelDefinitionYamlStep {
         return def;
     }
 
+    static readParquetAvroDataFormat = (element: any): ParquetAvroDataFormat => {
+        
+        let def = element ? new ParquetAvroDataFormat({...element}) : new ParquetAvroDataFormat();
+
+        return def;
+    }
+
     static readProtobufDataFormat = (element: any): ProtobufDataFormat => {
         
         let def = element ? new ProtobufDataFormat({...element}) : new ProtobufDataFormat();
@@ -3792,17 +3801,6 @@ export class CamelDefinitionYamlStep {
         return def;
     }
 
-    static readXStreamDataFormat = (element: any): XStreamDataFormat => {
-        
-        let def = element ? new XStreamDataFormat({...element}) : new XStreamDataFormat();
-        def.omitFields = element && element?.omitFields ? element?.omitFields.map((x:any) => CamelDefinitionYamlStep.readPropertyDefinition(x)) :[]; 
-        def.aliases = element && element?.aliases ? element?.aliases.map((x:any) => CamelDefinitionYamlStep.readPropertyDefinition(x)) :[]; 
-        def.implicitCollections = element && element?.implicitCollections ? element?.implicitCollections.map((x:any) => CamelDefinitionYamlStep.readPropertyDefinition(x)) :[]; 
-        def.converters = element && element?.converters ? element?.converters.map((x:any) => CamelDefinitionYamlStep.readPropertyDefinition(x)) :[]; 
-
-        return def;
-    }
-
     static readYAMLDataFormat = (element: any): YAMLDataFormat => {
         
         let def = element ? new YAMLDataFormat({...element}) : new YAMLDataFormat();
@@ -4618,6 +4616,13 @@ export class CamelDefinitionYamlStep {
                def.jaxb = CamelDefinitionYamlStep.readJaxbDataFormat(element.jaxb); 
             } 
         } 
+        if (element?.parquetAvro !== undefined) { 
+            if (Array.isArray(element.parquetAvro)) { 
+               def.parquetAvro = CamelDefinitionYamlStep.readParquetAvroDataFormat(element.parquetAvro[0]); 
+            } else { 
+               def.parquetAvro = CamelDefinitionYamlStep.readParquetAvroDataFormat(element.parquetAvro); 
+            } 
+        } 
         if (element?.rss !== undefined) { 
             if (Array.isArray(element.rss)) { 
                def.rss = CamelDefinitionYamlStep.readRssDataFormat(element.rss[0]); 
@@ -4702,13 +4707,6 @@ export class CamelDefinitionYamlStep {
                def.fhirJson = CamelDefinitionYamlStep.readFhirJsonDataFormat(element.fhirJson); 
             } 
         } 
-        if (element?.any23 !== undefined) { 
-            if (Array.isArray(element.any23)) { 
-               def.any23 = CamelDefinitionYamlStep.readAny23DataFormat(element.any23[0]); 
-            } else { 
-               def.any23 = CamelDefinitionYamlStep.readAny23DataFormat(element.any23); 
-            } 
-        } 
         if (element?.custom !== undefined) { 
             if (Array.isArray(element.custom)) { 
                def.custom = CamelDefinitionYamlStep.readCustomDataFormat(element.custom[0]); 
@@ -4807,13 +4805,6 @@ export class CamelDefinitionYamlStep {
                def.grok = CamelDefinitionYamlStep.readGrokDataFormat(element.grok); 
             } 
         } 
-        if (element?.xstream !== undefined) { 
-            if (Array.isArray(element.xstream)) { 
-               def.xstream = CamelDefinitionYamlStep.readXStreamDataFormat(element.xstream[0]); 
-            } else { 
-               def.xstream = CamelDefinitionYamlStep.readXStreamDataFormat(element.xstream); 
-            } 
-        } 
         if (element?.gzipDeflater !== undefined) { 
             if (Array.isArray(element.gzipDeflater)) { 
                def.gzipDeflater = CamelDefinitionYamlStep.readGzipDeflaterDataFormat(element.gzipDeflater[0]); 
@@ -4840,6 +4831,13 @@ export class CamelDefinitionYamlStep {
         return def;
     }
 
+    static readLoadTransformerDefinition = (element: any): LoadTransformerDefinition => {
+        
+        let def = element ? new LoadTransformerDefinition({...element}) : new LoadTransformerDefinition();
+
+        return def;
+    }
+
     static readTransformersDefinition = (element: any): TransformersDefinition => {
         
         let def = element ? new TransformersDefinition({...element}) : new TransformersDefinition();
@@ -4857,6 +4855,13 @@ export class CamelDefinitionYamlStep {
                def.customTransformer = CamelDefinitionYamlStep.readCustomTransformerDefinition(element.customTransformer); 
             } 
         } 
+        if (element?.loadTransformer !== undefined) { 
+            if (Array.isArray(element.loadTransformer)) { 
+               def.loadTransformer = CamelDefinitionYamlStep.readLoadTransformerDefinition(element.loadTransformer[0]); 
+            } else { 
+               def.loadTransformer = CamelDefinitionYamlStep.readLoadTransformerDefinition(element.loadTransformer); 
+            } 
+        } 
         if (element?.dataFormatTransformer !== undefined) { 
             if (Array.isArray(element.dataFormatTransformer)) { 
                def.dataFormatTransformer = CamelDefinitionYamlStep.readDataFormatTransformerDefinition(element.dataFormatTransformer[0]); 
@@ -4936,7 +4941,6 @@ export class CamelDefinitionYamlStep {
             case 'setProperty': return CamelDefinitionYamlStep.readSetPropertyDefinition(newBody);
             case 'to': return CamelDefinitionYamlStep.readToDefinition(newBody);
             case 'doCatch': return CamelDefinitionYamlStep.readCatchDefinition(newBody);
-            case 'inOut': return CamelDefinitionYamlStep.readInOutDefinition(newBody);
             case 'onFallback': return CamelDefinitionYamlStep.readOnFallbackDefinition(newBody);
             case 'loadBalance': return CamelDefinitionYamlStep.readLoadBalanceDefinition(newBody);
             case 'process': return CamelDefinitionYamlStep.readProcessDefinition(newBody);
@@ -4967,7 +4971,6 @@ export class CamelDefinitionYamlStep {
             case 'doTry': return CamelDefinitionYamlStep.readTryDefinition(newBody);
             case 'delay': return CamelDefinitionYamlStep.readDelayDefinition(newBody);
             case 'script': return CamelDefinitionYamlStep.readScriptDefinition(newBody);
-            case 'inOnly': return CamelDefinitionYamlStep.readInOnlyDefinition(newBody);
             case 'enrich': return CamelDefinitionYamlStep.readEnrichDefinition(newBody);
             case 'onCompletion': return CamelDefinitionYamlStep.readOnCompletionDefinition(newBody);
             case 'wireTap': return CamelDefinitionYamlStep.readWireTapDefinition(newBody);
diff --git a/karavan-core/src/core/api/CamelUtil.ts b/karavan-core/src/core/api/CamelUtil.ts
index 4ccdfbd4..791ec0fa 100644
--- a/karavan-core/src/core/api/CamelUtil.ts
+++ b/karavan-core/src/core/api/CamelUtil.ts
@@ -18,7 +18,7 @@ import { Integration, CamelElement, Beans } from '../model/IntegrationDefinition
 import { CamelDefinitionApi } from './CamelDefinitionApi';
 import {
     KameletDefinition,
-    NamedBeanDefinition,
+    RegistryBeanDefinition,
     RouteConfigurationDefinition,
     ToDefinition,
 } from '../model/CamelDefinition';
@@ -70,9 +70,9 @@ export class CamelUtil {
         return CamelDefinitionApi.createStep(step.dslName, clone, true);
     };
 
-    static cloneBean = (bean: NamedBeanDefinition): NamedBeanDefinition => {
+    static cloneBean = (bean: RegistryBeanDefinition): RegistryBeanDefinition => {
         const clone = JSON.parse(JSON.stringify(bean));
-        const newBean = new NamedBeanDefinition(clone);
+        const newBean = new RegistryBeanDefinition(clone);
         newBean.uuid = bean.uuid;
         return newBean;
     };
diff --git a/karavan-core/src/core/model/CamelDefinition.ts b/karavan-core/src/core/model/CamelDefinition.ts
index 13875680..5aa13156 100644
--- a/karavan-core/src/core/model/CamelDefinition.ts
+++ b/karavan-core/src/core/model/CamelDefinition.ts
@@ -18,8 +18,6 @@ export class ProcessorDefinition extends CamelElement {
     filter?: FilterDefinition;
     doFinally?: FinallyDefinition;
     idempotentConsumer?: IdempotentConsumerDefinition;
-    inOnly?: InOnlyDefinition | string;
-    inOut?: InOutDefinition | string;
     intercept?: InterceptDefinition;
     interceptFrom?: InterceptFromDefinition | string;
     interceptSendToEndpoint?: InterceptSendToEndpointDefinition | string;
@@ -98,16 +96,6 @@ export class ErrorHandlerBuilderDeserializer extends CamelElement {
     }
 }
 
-export class NamedBeanDefinition extends CamelElement {
-    name: string = '';
-    properties?: any = {};
-    type: string = '';
-    public constructor(init?: Partial<NamedBeanDefinition>) {
-        super('NamedBeanDefinition');
-        Object.assign(this, init);
-    }
-}
-
 export class OutputAwareFromDefinition extends CamelElement {
     description?: string;
     id?: string;
@@ -208,14 +196,14 @@ export class ChoiceDefinition extends CamelElement {
 
 export class CircuitBreakerDefinition extends CamelElement {
     stepName?: string = 'circuitBreaker';
+    configuration?: string;
     resilience4jConfiguration?: Resilience4jConfigurationDefinition;
     faultToleranceConfiguration?: FaultToleranceConfigurationDefinition;
-    configuration?: string;
+    onFallback?: OnFallbackDefinition;
     disabled?: boolean;
     id?: string = 'circuitBreaker-' + uuidv4().substring(0,4);
     description?: string;
     inheritErrorHandler?: boolean;
-    onFallback?: OnFallbackDefinition;
     steps?: CamelElement[] = [];
     public constructor(init?: Partial<CircuitBreakerDefinition>) {
         super('CircuitBreakerDefinition');
@@ -291,16 +279,6 @@ export class DelayDefinition extends CamelElement {
     }
 }
 
-export class DescriptionDefinition extends CamelElement {
-    stepName?: string = 'description';
-    lang?: string;
-    text?: string;
-    public constructor(init?: Partial<DescriptionDefinition>) {
-        super('DescriptionDefinition');
-        Object.assign(this, init);
-    }
-}
-
 export class DynamicRouterDefinition extends CamelElement {
     stepName?: string = 'dynamicRouter';
     expression?: ExpressionDefinition;
@@ -484,34 +462,6 @@ export class IdempotentConsumerDefinition extends CamelElement {
     }
 }
 
-export class InOnlyDefinition extends CamelElement {
-    stepName?: string = 'inOnly';
-    uri: string = '';
-    disabled?: boolean;
-    id?: string = 'inOnly-' + uuidv4().substring(0,4);
-    description?: string;
-    inheritErrorHandler?: boolean;
-    parameters?: any = {};
-    public constructor(init?: Partial<InOnlyDefinition>) {
-        super('InOnlyDefinition');
-        Object.assign(this, init);
-    }
-}
-
-export class InOutDefinition extends CamelElement {
-    stepName?: string = 'inOut';
-    uri: string = '';
-    disabled?: boolean;
-    id?: string = 'inOut-' + uuidv4().substring(0,4);
-    description?: string;
-    inheritErrorHandler?: boolean;
-    parameters?: any = {};
-    public constructor(init?: Partial<InOutDefinition>) {
-        super('InOutDefinition');
-        Object.assign(this, init);
-    }
-}
-
 export class InputTypeDefinition extends CamelElement {
     stepName?: string = 'inputType';
     urn: string = '';
@@ -637,7 +587,6 @@ export class MarshalDefinition extends CamelElement {
     disabled?: boolean;
     id?: string = 'marshal-' + uuidv4().substring(0,4);
     description?: string;
-    any23?: Any23DataFormat | string;
     asn1?: ASN1DataFormat | string;
     avro?: AvroDataFormat | string;
     barcode?: BarcodeDataFormat;
@@ -661,6 +610,7 @@ export class MarshalDefinition extends CamelElement {
     jsonApi?: JsonApiDataFormat;
     lzf?: LZFDataFormat;
     mimeMultipart?: MimeMultipartDataFormat;
+    parquetAvro?: ParquetAvroDataFormat | string;
     pgp?: PGPDataFormat;
     protobuf?: ProtobufDataFormat | string;
     rss?: RssDataFormat;
@@ -675,7 +625,6 @@ export class MarshalDefinition extends CamelElement {
     univocityFixed?: UniVocityFixedDataFormat;
     univocityTsv?: UniVocityTsvDataFormat;
     xmlSecurity?: XMLSecurityDataFormat;
-    xstream?: XStreamDataFormat | string;
     yaml?: YAMLDataFormat;
     zipDeflater?: ZipDeflaterDataFormat;
     zipFile?: ZipFileDataFormat;
@@ -1070,6 +1019,13 @@ export class Resilience4jConfigurationDefinition extends CamelElement {
     automaticTransitionFromOpenToHalfOpenEnabled?: boolean;
     slowCallRateThreshold?: number;
     slowCallDurationThreshold?: number;
+    bulkheadEnabled?: boolean;
+    bulkheadMaxConcurrentCalls?: number;
+    bulkheadMaxWaitDuration?: number;
+    timeoutEnabled?: boolean;
+    timeoutExecutorService?: string;
+    timeoutDuration?: number;
+    timeoutCancelRunningFuture?: boolean;
     id?: string = 'resilience4jConfiguration-' + uuidv4().substring(0,4);
     public constructor(init?: Partial<Resilience4jConfigurationDefinition>) {
         super('Resilience4jConfigurationDefinition');
@@ -1089,6 +1045,7 @@ export class RestContextRefDefinition extends CamelElement {
 export class ResumableDefinition extends CamelElement {
     stepName?: string = 'resumable';
     resumeStrategy: string = '';
+    loggingLevel?: string;
     intermittent?: boolean;
     disabled?: boolean;
     id?: string = 'resumable-' + uuidv4().substring(0,4);
@@ -1173,6 +1130,8 @@ export class RouteDefinition extends CamelElement {
     id?: string = 'route-' + uuidv4().substring(0,4);
     description?: string;
     from: FromDefinition = new FromDefinition();
+    inputType?: InputTypeDefinition;
+    outputType?: OutputTypeDefinition;
     routePolicy?: string;
     streamCaching?: boolean;
     public constructor(init?: Partial<RouteDefinition>) {
@@ -1199,6 +1158,7 @@ export class RouteTemplateDefinition extends CamelElement {
     stepName?: string = 'routeTemplate';
     route?: RouteDefinition;
     id: string = 'routeTemplate-' + uuidv4().substring(0,4);
+    description?: string;
     beans?: RouteTemplateBeanDefinition[] = [];
     from?: FromDefinition;
     parameters?: RouteTemplateParameterDefinition[] = [];
@@ -1423,8 +1383,8 @@ export class TemplatedRouteBeanDefinition extends CamelElement {
     type: string = '';
     beanType?: string;
     property?: PropertyDefinition[] = [];
-    script?: string;
     properties?: any = {};
+    script?: string;
     public constructor(init?: Partial<TemplatedRouteBeanDefinition>) {
         super('TemplatedRouteBeanDefinition');
         Object.assign(this, init);
@@ -1579,6 +1539,8 @@ export class TransactedDefinition extends CamelElement {
 export class TransformDefinition extends CamelElement {
     stepName?: string = 'transform';
     expression?: ExpressionDefinition;
+    fromType?: string;
+    toType?: string;
     disabled?: boolean;
     id?: string = 'transform-' + uuidv4().substring(0,4);
     description?: string;
@@ -1610,7 +1572,6 @@ export class UnmarshalDefinition extends CamelElement {
     disabled?: boolean;
     id?: string = 'unmarshal-' + uuidv4().substring(0,4);
     description?: string;
-    any23?: Any23DataFormat | string;
     asn1?: ASN1DataFormat | string;
     avro?: AvroDataFormat | string;
     barcode?: BarcodeDataFormat;
@@ -1634,6 +1595,7 @@ export class UnmarshalDefinition extends CamelElement {
     jsonApi?: JsonApiDataFormat;
     lzf?: LZFDataFormat;
     mimeMultipart?: MimeMultipartDataFormat;
+    parquetAvro?: ParquetAvroDataFormat | string;
     pgp?: PGPDataFormat;
     protobuf?: ProtobufDataFormat | string;
     rss?: RssDataFormat;
@@ -1648,7 +1610,6 @@ export class UnmarshalDefinition extends CamelElement {
     univocityFixed?: UniVocityFixedDataFormat;
     univocityTsv?: UniVocityTsvDataFormat;
     xmlSecurity?: XMLSecurityDataFormat;
-    xstream?: XStreamDataFormat | string;
     yaml?: YAMLDataFormat;
     zipDeflater?: ZipDeflaterDataFormat;
     zipFile?: ZipFileDataFormat;
@@ -1732,6 +1693,78 @@ export class WireTapDefinition extends CamelElement {
     }
 }
 
+export class ApplicationDefinition extends CamelElement {
+    stepName?: string = 'application';
+    bean?: RegistryBeanDefinition[] = [];
+    componentScan?: ComponentScanDefinition[] = [];
+    rest?: RestDefinition[] = [];
+    restConfiguration?: RestConfigurationDefinition[] = [];
+    route?: RouteDefinition[] = [];
+    routeConfiguration?: RouteConfigurationDefinition[] = [];
+    routeTemplate?: RouteTemplateDefinition[] = [];
+    templatedRoute?: TemplatedRouteDefinition[] = [];
+    public constructor(init?: Partial<ApplicationDefinition>) {
+        super('ApplicationDefinition');
+        Object.assign(this, init);
+    }
+}
+
+export class BeanPropertiesDefinition extends CamelElement {
+    stepName?: string = 'beanProperties';
+    property?: BeanPropertyDefinition[] = [];
+    public constructor(init?: Partial<BeanPropertiesDefinition>) {
+        super('BeanPropertiesDefinition');
+        Object.assign(this, init);
+    }
+}
+
+export class BeanPropertyDefinition extends CamelElement {
+    stepName?: string = 'beanProperty';
+    key?: string;
+    properties?: BeanPropertiesDefinition;
+    value?: string;
+    public constructor(init?: Partial<BeanPropertyDefinition>) {
+        super('BeanPropertyDefinition');
+        Object.assign(this, init);
+    }
+}
+
+export class BeansDefinition extends CamelElement {
+    stepName?: string = 'beans';
+    bean?: RegistryBeanDefinition[] = [];
+    restConfiguration?: RestConfigurationDefinition[] = [];
+    rest?: RestDefinition[] = [];
+    routeConfiguration?: RouteConfigurationDefinition[] = [];
+    routeTemplate?: RouteTemplateDefinition[] = [];
+    templatedRoute?: TemplatedRouteDefinition[] = [];
+    route?: RouteDefinition[] = [];
+    componentScan?: ComponentScanDefinition[] = [];
+    public constructor(init?: Partial<BeansDefinition>) {
+        super('BeansDefinition');
+        Object.assign(this, init);
+    }
+}
+
+export class ComponentScanDefinition extends CamelElement {
+    stepName?: string = 'componentScan';
+    basePackage?: string;
+    public constructor(init?: Partial<ComponentScanDefinition>) {
+        super('ComponentScanDefinition');
+        Object.assign(this, init);
+    }
+}
+
+export class RegistryBeanDefinition extends CamelElement {
+    stepName?: string = 'registryBean';
+    name?: string;
+    properties?: any = {};
+    type?: string;
+    public constructor(init?: Partial<RegistryBeanDefinition>) {
+        super('RegistryBeanDefinition');
+        Object.assign(this, init);
+    }
+}
+
 export class BlacklistServiceCallServiceFilterConfiguration extends CamelElement {
     id?: string = 'blacklistServiceCallServiceFilterConfiguration-' + uuidv4().substring(0,4);
     properties?: PropertyDefinition[] = [];
@@ -2057,19 +2090,6 @@ export class ASN1DataFormat extends CamelElement {
     }
 }
 
-export class Any23DataFormat extends CamelElement {
-    dataFormatName?: string = 'any23';
-    outputFormat?: string;
-    baseUri?: string;
-    configuration?: PropertyDefinition[] = [];
-    extractors?: string[] = [];
-    id?: string = 'any23-' + uuidv4().substring(0,4);
-    public constructor(init?: Partial<Any23DataFormat>) {
-        super('Any23DataFormat');
-        Object.assign(this, init);
-    }
-}
-
 export class AvroDataFormat extends CamelElement {
     dataFormatName?: string = 'avro';
     instanceClassName?: string;
@@ -2225,7 +2245,6 @@ export class CustomDataFormat extends CamelElement {
 
 export class DataFormatsDefinition extends CamelElement {
     stepName?: string = 'dataFormats';
-    any23?: Any23DataFormat | string;
     asn1?: ASN1DataFormat | string;
     avro?: AvroDataFormat | string;
     barcode?: BarcodeDataFormat;
@@ -2262,7 +2281,6 @@ export class DataFormatsDefinition extends CamelElement {
     univocityFixed?: UniVocityFixedDataFormat;
     univocityTsv?: UniVocityTsvDataFormat;
     xmlSecurity?: XMLSecurityDataFormat;
-    xstream?: XStreamDataFormat | string;
     yaml?: YAMLDataFormat;
     zipDeflater?: ZipDeflaterDataFormat;
     zipFile?: ZipFileDataFormat;
@@ -2467,10 +2485,8 @@ export class JsonDataFormat extends CamelElement {
     moduleRefs?: string;
     enableFeatures?: string;
     disableFeatures?: string;
-    permissions?: string;
     allowUnmarshallType?: boolean;
     timezone?: string;
-    dropRootNode?: boolean;
     schemaResolver?: string;
     autoDiscoverSchemaResolver?: boolean;
     namingStrategy?: string;
@@ -2530,6 +2546,17 @@ export class PGPDataFormat extends CamelElement {
     }
 }
 
+export class ParquetAvroDataFormat extends CamelElement {
+    dataFormatName?: string = 'parquetAvroDataFormat';
+    compressionCodecName?: string;
+    id?: string = 'parquetAvroDataFormat-' + uuidv4().substring(0,4);
+    unmarshalType?: string;
+    public constructor(init?: Partial<ParquetAvroDataFormat>) {
+        super('ParquetAvroDataFormat');
+        Object.assign(this, init);
+    }
+}
+
 export class ProtobufDataFormat extends CamelElement {
     dataFormatName?: string = 'protobuf';
     instanceClass?: string;
@@ -2759,25 +2786,6 @@ export class XMLSecurityDataFormat extends CamelElement {
     }
 }
 
-export class XStreamDataFormat extends CamelElement {
-    dataFormatName?: string = 'xstream';
-    permissions?: string;
-    encoding?: string;
-    driver?: string;
-    driverRef?: string;
-    mode?: string;
-    contentTypeHeader?: boolean;
-    converters?: PropertyDefinition[] = [];
-    aliases?: PropertyDefinition[] = [];
-    omitFields?: PropertyDefinition[] = [];
-    implicitCollections?: PropertyDefinition[] = [];
-    id?: string = 'xstream-' + uuidv4().substring(0,4);
-    public constructor(init?: Partial<XStreamDataFormat>) {
-        super('XStreamDataFormat');
-        Object.assign(this, init);
-    }
-}
-
 export class YAMLDataFormat extends CamelElement {
     dataFormatName?: string = 'yaml';
     library?: string;
@@ -3777,6 +3785,7 @@ export class CustomTransformerDefinition extends CamelElement {
     stepName?: string = 'customTransformer';
     className?: string;
     fromType?: string;
+    name?: string;
     ref?: string;
     scheme?: string;
     toType?: string;
@@ -3788,7 +3797,6 @@ export class CustomTransformerDefinition extends CamelElement {
 
 export class DataFormatTransformerDefinition extends CamelElement {
     stepName?: string = 'dataFormatTransformer';
-    any23?: Any23DataFormat | string;
     asn1?: ASN1DataFormat | string;
     avro?: AvroDataFormat | string;
     barcode?: BarcodeDataFormat;
@@ -3812,6 +3820,8 @@ export class DataFormatTransformerDefinition extends CamelElement {
     jsonApi?: JsonApiDataFormat;
     lzf?: LZFDataFormat;
     mimeMultipart?: MimeMultipartDataFormat;
+    name?: string;
+    parquetAvro?: ParquetAvroDataFormat | string;
     pgp?: PGPDataFormat;
     protobuf?: ProtobufDataFormat | string;
     rss?: RssDataFormat;
@@ -3828,7 +3838,6 @@ export class DataFormatTransformerDefinition extends CamelElement {
     univocityFixed?: UniVocityFixedDataFormat;
     univocityTsv?: UniVocityTsvDataFormat;
     xmlSecurity?: XMLSecurityDataFormat;
-    xstream?: XStreamDataFormat | string;
     yaml?: YAMLDataFormat;
     zipDeflater?: ZipDeflaterDataFormat;
     zipFile?: ZipFileDataFormat;
@@ -3841,6 +3850,7 @@ export class DataFormatTransformerDefinition extends CamelElement {
 export class EndpointTransformerDefinition extends CamelElement {
     stepName?: string = 'endpointTransformer';
     fromType?: string;
+    name?: string;
     ref?: string;
     scheme?: string;
     toType?: string;
@@ -3851,11 +3861,26 @@ export class EndpointTransformerDefinition extends CamelElement {
     }
 }
 
+export class LoadTransformerDefinition extends CamelElement {
+    stepName?: string = 'loadTransformer';
+    defaults?: boolean;
+    fromType?: string;
+    name?: string;
+    packageScan?: string;
+    scheme?: string;
+    toType?: string;
+    public constructor(init?: Partial<LoadTransformerDefinition>) {
+        super('LoadTransformerDefinition');
+        Object.assign(this, init);
+    }
+}
+
 export class TransformersDefinition extends CamelElement {
     stepName?: string = 'transformers';
     customTransformer?: CustomTransformerDefinition;
     dataFormatTransformer?: DataFormatTransformerDefinition;
     endpointTransformer?: EndpointTransformerDefinition;
+    loadTransformer?: LoadTransformerDefinition;
     public constructor(init?: Partial<TransformersDefinition>) {
         super('TransformersDefinition');
         Object.assign(this, init);
diff --git a/karavan-core/src/core/model/CamelMetadata.ts b/karavan-core/src/core/model/CamelMetadata.ts
index 20f0c884..1d1f0fe1 100644
--- a/karavan-core/src/core/model/CamelMetadata.ts
+++ b/karavan-core/src/core/model/CamelMetadata.ts
@@ -89,7 +89,6 @@ export class CamelMetadataApi {
 }
 
 export const DataFormats: [string, string, string][] = [
-    ['any23','Any23',"Extract RDF data from HTML documents."],
     ['asn1','ASN.1 File',"Encode and decode data structures using Abstract Syntax Notation One (ASN.1)."],
     ['avro','Avro',"Serialize and deserialize messages using Apache Avro binary data format."],
     ['barcode','Barcode',"Transform strings to various 1D/2D barcode bitmap formats and back."],
@@ -126,20 +125,12 @@ export const DataFormats: [string, string, string][] = [
     ['univocityFixed','uniVocity Fixed Length',"Marshal and unmarshal Java objects from and to fixed length records using UniVocity Parsers."],
     ['univocityTsv','uniVocity TSV',"Marshal and unmarshal Java objects from and to TSV (Tab-Separated Values) records using UniVocity Parsers."],
     ['xmlSecurity','XML Security',"Encrypt and decrypt XML payloads using Apache Santuario."],
-    ['xstream','XStream',"Marshal and unmarshal POJOs to/from XML using XStream library."],
     ['yaml','YAML',"Marshal and unmarshal Java objects to and from YAML."],
     ['zipDeflater','Zip Deflater',"Compress and decompress streams using java.util.zip.Deflater and java.util.zip.Inflater."],
     ['zipFile','Zip File',"Compression and decompress streams using java.util.zip.ZipStream."],
 ]
 
 export const CamelDataFormatMetadata: ElementMeta[] = [
-    new ElementMeta('any23', 'Any23DataFormat', 'Any23', "Extract RDF data from HTML documents.", 'dataformat,transformation', [
-        new PropertyMeta('outputFormat', 'Output Format', "What RDF syntax to unmarshal as, can be: NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, RDF4JMODEL. It is by default: RDF4JMODEL.", 'string', 'NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, RDF4JMODEL', 'RDF4JMODEL', false, false, false, false, '', ''),
-        new PropertyMeta('baseUri', 'Base Uri', "The URI to use as base for building RDF entities if only relative paths are provided.", 'string', '', '', false, false, false, false, '', ''),
-        new PropertyMeta('configuration', 'Configuration', "Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used.", 'PropertyDefinition', '', '', false, false, true, true, '', ''),
-        new PropertyMeta('extractors', 'Extractors', "List of Any23 extractors to be used in the unmarshal operation. A list of the available extractors can be found here here. If not provided, all the available extractors are used.", 'string', '', '', false, false, true, true, '', ''),
-        new PropertyMeta('id', 'Id', "The id of this node", 'string', '', '', false, false, false, false, '', ''),
-    ]),
     new ElementMeta('tarFile', 'TarFileDataFormat', 'Tar File', "Archive files into tarballs or extract files from tarballs.", 'dataformat,transformation,file', [
         new PropertyMeta('usingIterator', 'Using Iterator', "If the tar file has more than one entry, the setting this option to true, allows working with the splitter EIP, to split the data using an iterator in a streaming mode.", 'boolean', '', 'false', false, false, false, false, '', ''),
         new PropertyMeta('allowEmptyDirectory', 'Allow Empty Directory', "If the tar file has more than one entry, setting this option to true, allows to get the iterator even if the directory is empty", 'boolean', '', 'false', false, false, false, false, '', ''),
@@ -295,7 +286,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, XStream', 'Jackson', false, false, false, false, '', ''),
+        new PropertyMeta('library', 'Library', "Which json library to use.", 'string', 'Fastjson, Gson, Jackson, Johnzon, Jsonb', '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', ''),
@@ -306,10 +297,8 @@ export const CamelDataFormatMetadata: ElementMeta[] = [
         new PropertyMeta('moduleRefs', 'Module Refs', "To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.", 'string', '', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('enableFeatures', 'Enable Features', "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma", 'string', '', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('disableFeatures', 'Disable Features', "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma", 'string', '', '', false, false, false, false, 'advanced', ''),
-        new PropertyMeta('permissions', 'Permissions', "Adds permissions that controls which Java packages and classes XStream is allowed to use during unmarshal from xml/json to Java beans. A permission must be configured either here or globally using a JVM system property. The permission can be specified in a syntax where a plus sign is allow, and minus sign is deny. Wildcards is supported by using . as prefix. For example to allow com.foo and all subpackages then specfy com.foo.. Mult [...]
         new PropertyMeta('allowUnmarshallType', 'Allow Unmarshall Type', "If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.", 'boolean', '', 'false', false, false, false, false, '', ''),
-        new PropertyMeta('timezone', 'Timezone', "If set then Jackson will use the Timezone when marshalling/unmarshalling. This option will have no effect on the others Json DataFormat, like gson, fastjson and xstream.", 'string', '', '', false, false, false, false, 'advanced', ''),
-        new PropertyMeta('dropRootNode', 'Drop Root Node', "Whether XStream will drop the root node in the generated JSon. You may want to enable this when using POJOs; as then the written object will include the class name as root node, which is often not intended to be written in the JSON output.", 'boolean', '', 'false', false, false, false, false, 'advanced', ''),
+        new PropertyMeta('timezone', 'Timezone', "If set then Jackson will use the Timezone when marshalling/unmarshalling. This option will have no effect on the others Json DataFormat, like gson and fastjson.", 'string', '', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('schemaResolver', 'Schema Resolver', "Optional schema resolver used to lookup schemas for the data in transit.", 'string', '', '', false, false, false, false, 'advanced', ''),
         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, '', ''),
@@ -366,19 +355,6 @@ export const CamelDataFormatMetadata: ElementMeta[] = [
         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('id', 'Id', "The id of this node", 'string', '', '', false, false, false, false, '', ''),
     ]),
-    new ElementMeta('xstream', 'XStreamDataFormat', 'XStream', "Marshal and unmarshal POJOs to/from XML using XStream library.", 'dataformat,transformation,xml,json', [
-        new PropertyMeta('permissions', 'Permissions', "Adds permissions that controls which Java packages and classes XStream is allowed to use during unmarshal from xml/json to Java beans. A permission must be configured either here or globally using a JVM system property. The permission can be specified in a syntax where a plus sign is allow, and minus sign is deny. Wildcards is supported by using . as prefix. For example to allow com.foo and all subpackages then specify com.foo.. Mul [...]
-        new PropertyMeta('encoding', 'Encoding', "Sets the encoding to use", 'string', '', '', false, false, false, false, '', ''),
-        new PropertyMeta('driver', 'Driver', "To use a custom XStream driver. The instance must be of type com.thoughtworks.xstream.io.HierarchicalStreamDriver", 'string', '', '', false, false, false, false, 'advanced', ''),
-        new PropertyMeta('driverRef', 'Driver Ref', "To refer to a custom XStream driver to lookup in the registry. The instance must be of type com.thoughtworks.xstream.io.HierarchicalStreamDriver", 'string', '', '', false, false, false, false, 'advanced', ''),
-        new PropertyMeta('mode', 'Mode', "Mode for dealing with duplicate references The possible values are: NO_REFERENCES ID_REFERENCES XPATH_RELATIVE_REFERENCES XPATH_ABSOLUTE_REFERENCES SINGLE_NODE_XPATH_RELATIVE_REFERENCES SINGLE_NODE_XPATH_ABSOLUTE_REFERENCES", 'string', 'NO_REFERENCES, ID_REFERENCES, XPATH_RELATIVE_REFERENCES, XPATH_ABSOLUTE_REFERENCES, SINGLE_NODE_XPATH_RELATIVE_REFERENCES, SINGLE_NODE_XPATH_ABSOLUTE_REFERENCES', '', 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('converters', 'Converters', "List of class names for using custom XStream converters. The classes must be of type com.thoughtworks.xstream.converters.Converter", 'PropertyDefinition', '', '', false, false, true, true, '', ''),
-        new PropertyMeta('aliases', 'Aliases', "Alias a Class to a shorter name to be used in XML elements.", 'PropertyDefinition', '', '', false, false, true, true, '', ''),
-        new PropertyMeta('omitFields', 'Omit Fields', "Prevents a field from being serialized. To omit a field you must always provide the declaring type and not necessarily the type that is converted. Multiple values can be separated by comma.", 'PropertyDefinition', '', '', false, false, true, true, '', ''),
-        new PropertyMeta('implicitCollections', 'Implicit Collections', "Adds a default implicit collection which is used for any unmapped XML tag. Multiple values can be separated by comma.", 'PropertyDefinition', '', '', false, false, true, true, '', ''),
-        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', '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, '', ''),
@@ -877,6 +853,7 @@ export const CamelModelMetadata: ElementMeta[] = [
     ]),
     new ElementMeta('resumable', 'ResumableDefinition', 'Resumable', "Resume EIP to support resuming processing from last known offset.", 'eip,routing', [
         new PropertyMeta('resumeStrategy', 'Resume Strategy', "Sets the resume strategy to use", 'string', '', '', true, false, false, false, '', ''),
+        new PropertyMeta('loggingLevel', 'Logging Level', "loggingLevel", 'string', 'TRACE, DEBUG, INFO, WARN, ERROR, OFF', 'ERROR', false, false, false, false, 'advanced', ''),
         new PropertyMeta('intermittent', 'Intermittent', "Sets whether the offsets will be intermittently present or whether they must be present in every exchange", 'boolean', '', 'false', false, false, false, false, 'advanced', ''),
         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, '', ''),
@@ -890,7 +867,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('timeUnit', 'Time Unit', "Sets the time unit to use for keep alive time By default SECONDS is used.", 'string', 'NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('maxQueueSize', 'Max Queue Size', "Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue", 'number', '', '', false, false, false, false, '', ''),
         new PropertyMeta('allowCoreThreadTimeOut', 'Allow Core Thread Time Out', "Whether idle core threads is allowed to timeout and therefore can shrink the pool size below the core pool size Is by default true", 'boolean', '', 'false', false, false, false, false, 'advanced', ''),
-        new PropertyMeta('rejectedPolicy', 'Rejected Policy', "Sets the handler for tasks which cannot be executed by the thread pool.", 'string', 'Abort, CallerRuns, DiscardOldest, Discard', '', false, false, false, false, 'advanced', ''),
+        new PropertyMeta('rejectedPolicy', 'Rejected Policy', "Sets the handler for tasks which cannot be executed by the thread pool.", 'string', 'Abort, CallerRuns', '', 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, '', ''),
     ]),
@@ -907,9 +884,6 @@ export const CamelModelMetadata: ElementMeta[] = [
         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, '', ''),
     ]),
-    new ElementMeta('restContextRef', 'RestContextRefDefinition', 'Rest Context Ref', "To refer to an XML file with rest services defined using the rest-dsl", 'configuration,rest', [
-        new PropertyMeta('ref', 'Ref', "Reference to the rest-dsl", 'string', '', '', true, false, false, false, '', ''),
-    ]),
     new ElementMeta('restConfiguration', 'RestConfigurationDefinition', 'Rest Configuration', "To configure rest", 'rest', [
         new PropertyMeta('component', 'Component', "The Camel Rest component to use for the REST transport (consumer), such as netty-http, jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.", 'string', 'platform-http, servlet, jetty, undertow, netty-http [...]
         new PropertyMeta('apiComponent', 'Api Component', "The name of the Camel component to use as the REST API. If no API Component has been explicit configured, then Camel will lookup if there is a Camel component responsible for servicing and generating the REST API documentation, or if a org.apache.camel.spi.RestApiProcessorFactory is registered in the registry. If either one is found, then that is being used.", 'string', 'openapi, swagger', '', false, false, false, false, 'consume [...]
@@ -939,6 +913,9 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('apiProperty', 'Api Property', "Allows to configure as many additional properties for the api documentation. For example set property api.title to my cool stuff", 'RestPropertyDefinition', '', '', false, false, true, true, 'consumer,advanced', ''),
         new PropertyMeta('corsHeaders', 'Cors Headers', "Allows to configure custom CORS headers.", 'RestPropertyDefinition', '', '', false, false, true, true, 'consumer,advanced', ''),
     ]),
+    new ElementMeta('restContextRef', 'RestContextRefDefinition', 'Rest Context Ref', "To refer to an XML file with rest services defined using the rest-dsl", 'configuration,rest', [
+        new PropertyMeta('ref', 'Ref', "Reference to the rest-dsl", 'string', '', '', true, false, false, false, '', ''),
+    ]),
     new ElementMeta('saga', 'SagaDefinition', 'Saga', "Enables Sagas on the route", 'eip,routing', [
         new PropertyMeta('sagaService', 'Saga Service', "Refers to the id to lookup in the registry for the specific CamelSagaService to use.", 'string', '', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('propagation', 'Propagation', "Set the Saga propagation mode (REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORTS, NOT_SUPPORTED, NEVER).", 'string', 'REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORTS, NOT_SUPPORTED, NEVER', 'REQUIRED', false, false, false, false, 'advanced', ''),
@@ -960,7 +937,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('description', 'Description', "Sets the description of this node", 'string', '', '', false, false, false, false, '', ''),
     ]),
     new ElementMeta('setExchangePattern', 'SetExchangePatternDefinition', 'Set Exchange Pattern', "Sets the exchange pattern on the message exchange", 'configuration', [
-        new PropertyMeta('pattern', 'Pattern', "Sets the new exchange pattern of the Exchange to be used from this point forward", 'string', 'InOnly, InOut, InOptionalOut', '', true, false, false, false, '', ''),
+        new PropertyMeta('pattern', 'Pattern', "Sets the new exchange pattern of the Exchange to be used from this point forward", 'string', 'InOnly, InOut', '', true, false, false, false, '', ''),
         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, '', ''),
@@ -978,6 +955,8 @@ export const CamelModelMetadata: ElementMeta[] = [
         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, '', ''),
         new PropertyMeta('from', 'from', "from", 'FromDefinition', '', '', false, false, false, true, '', ''),
+        new PropertyMeta('inputType', 'inputType', "inputType", 'InputTypeDefinition', '', '', false, false, false, true, '', ''),
+        new PropertyMeta('outputType', 'outputType', "outputType", 'OutputTypeDefinition', '', '', false, false, false, true, '', ''),
         new PropertyMeta('routePolicy', 'routePolicy', "routePolicy", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('streamCaching', 'streamCaching', "streamCaching", 'boolean', '', '', false, false, false, false, '', ''),
     ]),
@@ -1122,13 +1101,13 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('description', 'Description', "Description of the parameter.", 'string', '', '', false, false, false, false, '', ''),
     ]),
     new ElementMeta('circuitBreaker', 'CircuitBreakerDefinition', 'Circuit Breaker', "Route messages in a fault tolerance way using Circuit Breaker", 'eip,routing', [
+        new PropertyMeta('configuration', 'Configuration', "Refers to a circuit breaker configuration (such as resillience4j, or microprofile-fault-tolerance) to use for configuring the circuit breaker EIP.", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('resilience4jConfiguration', 'Resilience4j Configuration', "Configures the circuit breaker to use Resilience4j with the given configuration.", 'Resilience4jConfigurationDefinition', '', '', false, false, false, true, '', ''),
         new PropertyMeta('faultToleranceConfiguration', 'Fault Tolerance Configuration', "Configures the circuit breaker to use MicroProfile Fault Tolerance with the given configuration.", 'FaultToleranceConfigurationDefinition', '', '', false, false, false, true, '', ''),
-        new PropertyMeta('configuration', 'Configuration', "Refers to a circuit breaker configuration (such as resillience4j, or microprofile-fault-tolerance) to use for configuring the circuit breaker EIP.", 'string', '', '', false, false, false, false, '', ''),
+        new PropertyMeta('onFallback', 'On Fallback', "The fallback route path to execute that does not go over the network. This should be a static or cached result that can immediately be returned upon failure. If the fallback requires network connection then use onFallbackViaNetwork() .", 'OnFallbackDefinition', '', '', false, false, false, true, '', ''),
         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, '', ''),
-        new PropertyMeta('onFallback', 'onFallback', "onFallback", 'OnFallbackDefinition', '', '', false, false, false, true, '', ''),
         new PropertyMeta('steps', 'steps', "steps", 'CamelElement', '', '', false, false, true, true, '', ''),
     ]),
     new ElementMeta('templatedRoute', 'TemplatedRouteDefinition', 'Templated Route', "Defines a templated route (a route built from a route template)", 'configuration', [
@@ -1209,7 +1188,6 @@ export const CamelModelMetadata: ElementMeta[] = [
         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, '', ''),
-        new PropertyMeta('any23', 'any23', "any23", 'Any23DataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('asn1', 'asn1', "asn1", 'ASN1DataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('avro', 'avro', "avro", 'AvroDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('barcode', 'barcode', "barcode", 'BarcodeDataFormat', '', '', false, false, false, true, '', ''),
@@ -1232,6 +1210,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('jsonApi', 'jsonApi', "jsonApi", 'JsonApiDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('lzf', 'lzf', "lzf", 'LZFDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('mimeMultipart', 'mimeMultipart', "mimeMultipart", 'MimeMultipartDataFormat', '', '', false, false, false, true, '', ''),
+        new PropertyMeta('parquetAvro', 'parquetAvro', "parquetAvro", 'ParquetAvroDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('pgp', 'pgp', "pgp", 'PGPDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('protobuf', 'protobuf', "protobuf", 'ProtobufDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('rss', 'rss', "rss", 'RssDataFormat', '', '', false, false, false, true, '', ''),
@@ -1246,7 +1225,6 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('univocityFixed', 'univocityFixed', "univocityFixed", 'UniVocityFixedDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('univocityTsv', 'univocityTsv', "univocityTsv", 'UniVocityTsvDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('xmlSecurity', 'xmlSecurity', "xmlSecurity", 'XMLSecurityDataFormat', '', '', false, false, false, true, '', ''),
-        new PropertyMeta('xstream', 'xstream', "xstream", 'XStreamDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('yaml', 'yaml', "yaml", 'YAMLDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('zipDeflater', 'zipDeflater', "zipDeflater", 'ZipDeflaterDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('zipFile', 'zipFile', "zipFile", 'ZipFileDataFormat', '', '', false, false, false, true, '', ''),
@@ -1266,7 +1244,6 @@ export const CamelModelMetadata: ElementMeta[] = [
         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, '', ''),
-        new PropertyMeta('any23', 'any23', "any23", 'Any23DataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('asn1', 'asn1', "asn1", 'ASN1DataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('avro', 'avro', "avro", 'AvroDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('barcode', 'barcode', "barcode", 'BarcodeDataFormat', '', '', false, false, false, true, '', ''),
@@ -1289,6 +1266,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('jsonApi', 'jsonApi', "jsonApi", 'JsonApiDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('lzf', 'lzf', "lzf", 'LZFDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('mimeMultipart', 'mimeMultipart', "mimeMultipart", 'MimeMultipartDataFormat', '', '', false, false, false, true, '', ''),
+        new PropertyMeta('parquetAvro', 'parquetAvro', "parquetAvro", 'ParquetAvroDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('pgp', 'pgp', "pgp", 'PGPDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('protobuf', 'protobuf', "protobuf", 'ProtobufDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('rss', 'rss', "rss", 'RssDataFormat', '', '', false, false, false, true, '', ''),
@@ -1303,14 +1281,13 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('univocityFixed', 'univocityFixed', "univocityFixed", 'UniVocityFixedDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('univocityTsv', 'univocityTsv', "univocityTsv", 'UniVocityTsvDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('xmlSecurity', 'xmlSecurity', "xmlSecurity", 'XMLSecurityDataFormat', '', '', false, false, false, true, '', ''),
-        new PropertyMeta('xstream', 'xstream', "xstream", 'XStreamDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('yaml', 'yaml', "yaml", 'YAMLDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('zipDeflater', 'zipDeflater', "zipDeflater", 'ZipDeflaterDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('zipFile', 'zipFile', "zipFile", 'ZipFileDataFormat', '', '', false, false, false, true, '', ''),
     ]),
     new ElementMeta('toD', 'ToDynamicDefinition', 'To D', "Sends the message to a dynamic endpoint", 'eip,routing', [
         new PropertyMeta('uri', 'Uri', "The uri of the endpoint to send to. The uri can be dynamic computed using the org.apache.camel.language.simple.SimpleLanguage expression.", 'string', '', '', true, false, false, false, '', ''),
-        new PropertyMeta('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut, InOptionalOut', '', false, false, false, false, 'advanced', ''),
+        new PropertyMeta('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('cacheSize', 'Cache Size', "Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producers when using this recipient list, when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn of caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as pr [...]
         new PropertyMeta('ignoreInvalidEndpoint', 'Ignore Invalid Endpoint', "Whether to ignore invalid endpoint URIs and skip sending the message.", 'boolean', '', 'false', false, false, false, false, 'advanced', ''),
         new PropertyMeta('allowOptimisedComponents', 'Allow Optimised Components', "Whether to allow components to optimise toD if they are org.apache.camel.spi.SendDynamicAware .", 'boolean', '', 'true', false, false, false, false, 'advanced', ''),
@@ -1390,6 +1367,13 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('automaticTransitionFromOpenToHalfOpenEnabled', 'Automatic Transition From Open To Half Open Enabled', "Enables automatic transition from OPEN to HALF_OPEN state once the waitDurationInOpenState has passed.", 'boolean', '', 'false', false, false, false, false, 'advanced', ''),
         new PropertyMeta('slowCallRateThreshold', 'Slow Call Rate Threshold', "Configures a threshold in percentage. The CircuitBreaker considers a call as slow when the call duration is greater than slowCallDurationThreshold Duration. When the percentage of slow calls is equal or greater the threshold, the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 100 percentage which means that a [...]
         new PropertyMeta('slowCallDurationThreshold', 'Slow Call Duration Threshold', "Configures the duration threshold (seconds) above which calls are considered as slow and increase the slow calls percentage. Default value is 60 seconds.", 'number', '', '60', false, false, false, false, 'advanced', ''),
+        new PropertyMeta('bulkheadEnabled', 'Bulkhead Enabled', "Whether bulkhead is enabled or not on the circuit breaker. Default is false.", 'boolean', '', 'false', false, false, false, false, '', ''),
+        new PropertyMeta('bulkheadMaxConcurrentCalls', 'Bulkhead Max Concurrent Calls', "Configures the max amount of concurrent calls the bulkhead will support.", 'number', '', '25', false, false, false, false, '', ''),
+        new PropertyMeta('bulkheadMaxWaitDuration', 'Bulkhead Max Wait Duration', "Configures a maximum amount of time which the calling thread will wait to enter the bulkhead. If bulkhead has space available, entry is guaranteed and immediate. If bulkhead is full, calling threads will contest for space, if it becomes available. maxWaitDuration can be set to 0. Note: for threads running on an event-loop or equivalent (rx computation pool, etc), setting maxWaitDuration to 0 is highly reco [...]
+        new PropertyMeta('timeoutEnabled', 'Timeout Enabled', "Whether timeout is enabled or not on the circuit breaker. Default is false.", 'boolean', '', 'false', false, false, false, false, '', ''),
+        new PropertyMeta('timeoutExecutorService', 'Timeout Executor Service', "References to a custom thread pool to use when timeout is enabled (uses ForkJoinPool#commonPool() by default)", 'string', '', '', false, false, false, false, 'advanced', ''),
+        new PropertyMeta('timeoutDuration', 'Timeout Duration', "Configures the thread execution timeout. Default value is 1 second.", 'number', '', '1000', false, false, false, false, '', ''),
+        new PropertyMeta('timeoutCancelRunningFuture', 'Timeout Cancel Running Future', "Configures whether cancel is called on the running future. Defaults to true.", 'boolean', '', 'true', false, false, false, false, 'advanced', ''),
         new PropertyMeta('id', 'Id', "The id of this node", 'string', '', '', false, false, false, false, '', ''),
     ]),
     new ElementMeta('choice', 'ChoiceDefinition', 'Choice', "Route messages based on a series of predicates", 'eip,routing', [
@@ -1401,6 +1385,16 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('description', 'Description', "Sets the description of this node", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('steps', 'steps', "steps", 'CamelElement', '', '', false, false, true, true, '', ''),
     ]),
+    new ElementMeta('beans', 'BeansDefinition', 'Beans', "A groupping POJO (and related XML root element) that's historically associated with entire application (or its distinguished fragment). This class is not meant to be used with Camel Java DSL, but it's needed to generate XML Schema and MX parser methods.", 'configuration', [
+        new PropertyMeta('bean', 'Bean', "bean", 'RegistryBeanDefinition', '', '', false, false, true, true, '', ''),
+        new PropertyMeta('restConfiguration', 'Rest Configuration', "restConfiguration", 'RestConfigurationDefinition', '', '', false, false, true, true, '', ''),
+        new PropertyMeta('rest', 'Rest', "rest", 'RestDefinition', '', '', false, false, true, true, '', ''),
+        new PropertyMeta('routeConfiguration', 'Route Configuration', "routeConfiguration", 'RouteConfigurationDefinition', '', '', false, false, true, true, '', ''),
+        new PropertyMeta('routeTemplate', 'Route Template', "routeTemplate", 'RouteTemplateDefinition', '', '', false, false, true, true, '', ''),
+        new PropertyMeta('templatedRoute', 'Templated Route', "templatedRoute", 'TemplatedRouteDefinition', '', '', false, false, true, true, '', ''),
+        new PropertyMeta('route', 'Route', "route", 'RouteDefinition', '', '', false, false, true, true, '', ''),
+        new PropertyMeta('componentScan', 'componentScan', "componentScan", 'ComponentScanDefinition', '', '', false, false, true, true, '', ''),
+    ]),
     new ElementMeta('whenSkipSendToEndpoint', 'WhenSkipSendToEndpointDefinition', 'When Skip Send To Endpoint', "Predicate to determine if the message should be sent or not to the endpoint, when using interceptSentToEndpoint.", 'configuration', [
         new PropertyMeta('expression', 'Expression', "Expression used as the predicate to evaluate whether the message should be sent or not to the endpoint", 'ExpressionDefinition', '', '', true, false, false, true, '', ''),
         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', ''),
@@ -1429,14 +1423,7 @@ export const CamelModelMetadata: ElementMeta[] = [
     new ElementMeta('to', 'ToDefinition', 'To', "Sends the message to a static endpoint", 'eip,routing', [
         new PropertyMeta('uri', 'Uri', "Sets the uri of the endpoint to send to.", 'string', '', '', true, false, false, false, '', ''),
         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('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut, InOptionalOut', '', 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, '', ''),
-        new PropertyMeta('parameters', 'parameters', "parameters", 'object', '', '', false, false, false, false, '', ''),
-    ]),
-    new ElementMeta('inOut', 'InOutDefinition', 'In Out', "Marks the exchange pattern for the route to request/reply", 'eip,routing', [
-        new PropertyMeta('uri', 'Uri', "Sets the uri of the endpoint to send to.", 'string', '', '', true, false, false, false, '', ''),
-        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('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut', '', 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, '', ''),
         new PropertyMeta('parameters', 'parameters', "parameters", 'object', '', '', false, false, false, false, '', ''),
@@ -1449,10 +1436,6 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('description', 'Description', "Sets the description of this node", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('steps', 'steps', "steps", 'CamelElement', '', '', false, false, true, true, '', ''),
     ]),
-    new ElementMeta('description', 'DescriptionDefinition', 'Description', "To provide comments about the node.", 'configuration', [
-        new PropertyMeta('lang', 'Lang', "Language, such as en for english.", 'string', '', '', false, false, false, false, 'advanced', ''),
-        new PropertyMeta('text', 'Text', "The description as human readable text", 'string', '', '', true, false, false, false, '', ''),
-    ]),
     new ElementMeta('onFallback', 'OnFallbackDefinition', 'On Fallback', "Route to be executed when Circuit Breaker EIP executes fallback", 'eip,routing', [
         new PropertyMeta('fallbackViaNetwork', 'Fallback Via Network', "Whether the fallback goes over the network. If the fallback will go over the network it is another possible point of failure. It is important to execute the fallback command on a separate thread-pool, otherwise if the main command were to become latent and fill the thread-pool this would prevent the fallback from running if the two commands share the same pool.", 'boolean', '', 'false', false, false, false, false, 'a [...]
         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', ''),
@@ -1469,6 +1452,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('customTransformer', 'customTransformer', "customTransformer", 'CustomTransformerDefinition', '', '', false, false, false, true, '', ''),
         new PropertyMeta('dataFormatTransformer', 'dataFormatTransformer', "dataFormatTransformer", 'DataFormatTransformerDefinition', '', '', false, false, false, true, '', ''),
         new PropertyMeta('endpointTransformer', 'endpointTransformer', "endpointTransformer", 'EndpointTransformerDefinition', '', '', false, false, false, true, '', ''),
+        new PropertyMeta('loadTransformer', 'loadTransformer', "loadTransformer", 'LoadTransformerDefinition', '', '', false, false, false, true, '', ''),
     ]),
     new ElementMeta('loadBalance', 'LoadBalanceDefinition', 'Load Balance', "Balances message processing among a number of nodes", 'eip,routing', [
         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', ''),
@@ -1510,7 +1494,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('expression', 'Expression', "Configures the Expression using the given configuration.", 'ServiceCallExpressionConfiguration', '', '', false, false, false, true, '', ''),
         new PropertyMeta('uri', 'Uri', "The uri of the endpoint to send to. The uri can be dynamic computed using the simple language expression.", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('component', 'Component', "The component to use.", 'string', '', 'http', false, false, false, false, '', ''),
-        new PropertyMeta('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut, InOptionalOut', '', false, false, false, false, '', ''),
+        new PropertyMeta('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut', '', false, false, false, false, '', ''),
         new PropertyMeta('serviceDiscoveryRef', 'Service Discovery Ref', "Sets a reference to a custom ServiceDiscovery to use.", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('serviceFilterRef', 'Service Filter Ref', "Sets a reference to a custom ServiceFilter to use.", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('serviceChooserRef', 'Service Chooser Ref', "Sets a reference to a custom ServiceChooser to use.", 'string', '', '', false, false, false, false, '', ''),
@@ -1624,11 +1608,10 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('type', 'Type', "What type to use for creating the bean. Can be one of: #class,#type,bean,groovy,joor,language,mvel,ognl. #class or #type then the bean is created via the fully qualified classname, such as #class:com.foo.MyBean The others are scripting languages that gives more power to create the bean with an inlined code in the script section, such as using groovy.", 'string', '', '', true, false, false, false, '', ''),
         new PropertyMeta('beanType', 'Bean Type', "To set the type (fully qualified class name) of the returned bean created by the script. Knowing the type of the bean can be needed when dependency injection by type is in use, or when looking in registry via class type.", 'string', '', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('property', 'Property', "Optional properties to set on the created local bean", 'PropertyDefinition', '', '', false, false, true, true, '', ''),
+        new PropertyMeta('properties', 'Properties', "Optional properties to set on the created local bean", 'object', '', '', false, false, false, false, '', ''),
         new PropertyMeta('script', 'Script', "The script to execute that creates the bean when using scripting languages. If the script use the prefix resource: such as resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy, then its loaded from the external resource.", 'string', '', '', false, false, false, false, 'advanced', ''),
-        new PropertyMeta('properties', 'properties', "properties", 'object', '', '', false, false, false, false, '', ''),
     ]),
     new ElementMeta('dataFormats', 'DataFormatsDefinition', 'Data formats', "Configure data formats.", 'dataformat,transformation', [
-        new PropertyMeta('any23', 'any23', "any23", 'Any23DataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('asn1', 'asn1', "asn1", 'ASN1DataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('avro', 'avro', "avro", 'AvroDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('barcode', 'barcode', "barcode", 'BarcodeDataFormat', '', '', false, false, false, true, '', ''),
@@ -1665,7 +1648,6 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('univocityFixed', 'univocityFixed', "univocityFixed", 'UniVocityFixedDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('univocityTsv', 'univocityTsv', "univocityTsv", 'UniVocityTsvDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('xmlSecurity', 'xmlSecurity', "xmlSecurity", 'XMLSecurityDataFormat', '', '', false, false, false, true, '', ''),
-        new PropertyMeta('xstream', 'xstream', "xstream", 'XStreamDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('yaml', 'yaml', "yaml", 'YAMLDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('zipDeflater', 'zipDeflater', "zipDeflater", 'ZipDeflaterDataFormat', '', '', false, false, false, true, '', ''),
         new PropertyMeta('zipFile', 'zipFile', "zipFile", 'ZipFileDataFormat', '', '', false, false, false, true, '', ''),
@@ -1807,6 +1789,8 @@ export const CamelModelMetadata: ElementMeta[] = [
     ]),
     new ElementMeta('transform', 'TransformDefinition', 'Transform', "Transforms the message body based on an expression", 'eip,transformation', [
         new PropertyMeta('expression', 'Expression', "Expression to return the transformed message body (the new message body to use)", 'ExpressionDefinition', '', '', true, false, false, true, '', ''),
+        new PropertyMeta('fromType', 'From Type', "From type used in data type transformation.", 'string', '', '', false, false, false, false, '', ''),
+        new PropertyMeta('toType', 'To Type', "To type used as a target data type in the transformation.", 'string', '', '', false, false, false, false, '', ''),
         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, '', ''),
@@ -1843,13 +1827,6 @@ export const CamelModelMetadata: ElementMeta[] = [
         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, '', ''),
     ]),
-    new ElementMeta('inOnly', 'InOnlyDefinition', 'In Only', "Marks the exchange pattern for the route to one way", 'eip,routing', [
-        new PropertyMeta('uri', 'Uri', "Sets the uri of the endpoint to send to.", 'string', '', '', true, false, false, false, '', ''),
-        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, '', ''),
-        new PropertyMeta('parameters', 'parameters', "parameters", 'object', '', '', false, false, false, false, '', ''),
-    ]),
     new ElementMeta('contextScan', 'ContextScanDefinition', 'Context Scan', "Scans for Java org.apache.camel.builder.RouteBuilder instances in the context org.apache.camel.spi.Registry .", 'configuration', [
         new PropertyMeta('includeNonSingletons', 'Include Non Singletons', "Whether to include non-singleton beans (prototypes) By default only singleton beans is included in the context scan", 'boolean', '', 'false', false, false, false, false, 'advanced', ''),
         new PropertyMeta('excludes', 'Excludes', "Exclude finding route builder from these java package names.", 'string', '', '', false, false, true, true, '', ''),
@@ -1864,7 +1841,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('onPrepare', 'On Prepare', "Uses the Processor when preparing the org.apache.camel.Exchange to be sent. This can be used to deep-clone messages that should be sent, or any custom logic needed before the exchange is sent.", 'string', '', '', false, false, false, false, 'advanced', 'org.apache.camel.Processor'),
         new PropertyMeta('executorService', 'Executor Service', "Uses a custom thread pool", 'string', '', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('uri', 'Uri', "The uri of the endpoint to send to. The uri can be dynamic computed using the org.apache.camel.language.simple.SimpleLanguage expression.", 'string', '', '', true, false, false, false, '', ''),
-        new PropertyMeta('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut, InOptionalOut', '', false, false, false, false, 'advanced', ''),
+        new PropertyMeta('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('cacheSize', 'Cache Size', "Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producers when using this recipient list, when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn of caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as pr [...]
         new PropertyMeta('ignoreInvalidEndpoint', 'Ignore Invalid Endpoint', "Whether to ignore invalid endpoint URIs and skip sending the message.", 'boolean', '', 'false', false, false, false, false, 'advanced', ''),
         new PropertyMeta('allowOptimisedComponents', 'Allow Optimised Components', "Whether to allow components to optimise toD if they are org.apache.camel.spi.SendDynamicAware .", 'boolean', '', 'true', false, false, false, false, 'advanced', ''),
@@ -2102,7 +2079,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('expression', 'Expression', "Configures the Expression using the given configuration.", 'ServiceCallExpressionConfiguration', '', '', false, false, false, true, '', ''),
         new PropertyMeta('uri', 'Uri', "The uri of the endpoint to send to. The uri can be dynamic computed using the org.apache.camel.language.simple.SimpleLanguage expression.", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('component', 'Component', "The component to use.", 'string', '', 'http', false, false, false, false, '', ''),
-        new PropertyMeta('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut, InOptionalOut', '', false, false, false, false, '', ''),
+        new PropertyMeta('pattern', 'Pattern', "Sets the optional ExchangePattern used to invoke this endpoint", 'string', 'InOnly, InOut', '', false, false, false, false, '', ''),
         new PropertyMeta('configurationRef', 'Configuration Ref', "Refers to a ServiceCall configuration to use", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('serviceDiscoveryRef', 'Service Discovery Ref', "Sets a reference to a custom ServiceDiscovery to use.", 'string', '', '', false, false, false, false, '', ''),
         new PropertyMeta('serviceFilterRef', 'Service Filter Ref', "Sets a reference to a custom ServiceFilter to use.", 'string', '', '', false, false, false, false, '', ''),
@@ -2129,6 +2106,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('description', 'Description', "Sets the description of this node", 'string', '', '', false, false, false, false, '', ''),
         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, '', ''),
@@ -2142,7 +2120,7 @@ export const CamelModelMetadata: ElementMeta[] = [
         new PropertyMeta('maxQueueSize', 'Max Queue Size', "Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue", 'number', '', '', false, false, false, false, '', ''),
         new PropertyMeta('allowCoreThreadTimeOut', 'Allow Core Thread Time Out', "Whether idle core threads are allowed to timeout and therefore can shrink the pool size below the core pool size Is by default false", 'boolean', '', 'false', false, false, false, false, 'advanced', ''),
         new PropertyMeta('threadName', 'Thread Name', "Sets the thread name to use.", 'string', '', 'Threads', false, false, false, false, '', ''),
-        new PropertyMeta('rejectedPolicy', 'Rejected Policy', "Sets the handler for tasks which cannot be executed by the thread pool.", 'string', 'Abort, CallerRuns, DiscardOldest, Discard', '', false, false, false, false, 'advanced', ''),
+        new PropertyMeta('rejectedPolicy', 'Rejected Policy', "Sets the handler for tasks which cannot be executed by the thread pool.", 'string', 'Abort, CallerRuns', '', false, false, false, false, 'advanced', ''),
         new PropertyMeta('callerRunsWhenRejected', 'Caller Runs When Rejected', "Whether or not to use as caller runs as fallback when a task is rejected being added to the thread pool (when its full). This is only used as fallback if no rejectedPolicy has been configured, or the thread pool has no configured rejection handler. Is by default true", 'string', '', 'true', false, false, false, false, 'advanced', ''),
         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, '', ''),
@@ -2194,7 +2172,6 @@ export const SensitiveKeys: string[] = [
     "sassignature",
     "connectionstring",
     "sslpassword",
-    "keypassword",
     "accesstoken",
     "accountkey",
     "proxyauthusername",
@@ -2217,8 +2194,6 @@ export const SensitiveKeys: string[] = [
     "publickeyid",
     "p12filename",
     "ssltruststorepassword",
-    "fulltokenid",
-    "userauthenticationcredentials",
     "passphrase",
     "privatekeyfile",
     "zookeeperpassword",
@@ -2243,7 +2218,6 @@ export const SensitiveKeys: string[] = [
     "subscribekey",
     "certresourcepassword",
     "clientsecretcredential",
-    "keystorepassword",
     "oauthclientid",
     "clientsecret",
     "tokencredential",
diff --git a/karavan-core/src/core/model/IntegrationDefinition.ts b/karavan-core/src/core/model/IntegrationDefinition.ts
index 8fcae4a7..1d2519b3 100644
--- a/karavan-core/src/core/model/IntegrationDefinition.ts
+++ b/karavan-core/src/core/model/IntegrationDefinition.ts
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 import { v4 as uuidv4 } from 'uuid';
-import { NamedBeanDefinition } from './CamelDefinition';
+import { RegistryBeanDefinition } from './CamelDefinition';
 
 export class Spec {
     flows?: any[] = [];
@@ -73,7 +73,7 @@ export class CamelElement {
 }
 
 export class Beans extends CamelElement {
-    beans: NamedBeanDefinition[] = [];
+    beans: RegistryBeanDefinition[] = [];
 
     public constructor(init?: Partial<Beans>) {
         super('Beans');
diff --git a/karavan-core/test/getElementPropertiesByName.spec.ts b/karavan-core/test/getElementPropertiesByName.spec.ts
index 0ed30a84..a8645e47 100644
--- a/karavan-core/test/getElementPropertiesByName.spec.ts
+++ b/karavan-core/test/getElementPropertiesByName.spec.ts
@@ -24,7 +24,7 @@ describe('getElementPropertiesByName', () => {
     it('getElementPropertiesByName 1', () => {
 
         const p: PropertyMeta[] = CamelDefinitionApiExt.getElementPropertiesByName("json");
-        expect(p.length).to.equal(25);
+        expect(p.length).to.equal(23);
     });
 
 
diff --git a/karavan-demo/jms-to-kafka/docs/README.md b/karavan-demo/jms-to-kafka/docs/README.md
index 6fd39330..e4ad9e41 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.21.0 camel@apache/camel run *
+jbang -Dcamel.jbang.version=4.0.0-RC2 camel@apache/camel run *
 ```
 
 ### Publish payment to JMS
diff --git a/karavan-designer/package.json b/karavan-designer/package.json
index 1cbe7536..d77ac5d1 100644
--- a/karavan-designer/package.json
+++ b/karavan-designer/package.json
@@ -1,6 +1,6 @@
 {
   "name": "karavan-designer",
-  "version": "3.21.1-SNAPSHOT",
+  "version": "4.0.0-RC2",
   "license": "Apache-2.0",
   "scripts": {
     "start": "react-scripts start",
diff --git a/karavan-designer/src/designer/beans/BeanCard.tsx b/karavan-designer/src/designer/beans/BeanCard.tsx
index 803272f5..d9eac357 100644
--- a/karavan-designer/src/designer/beans/BeanCard.tsx
+++ b/karavan-designer/src/designer/beans/BeanCard.tsx
@@ -20,15 +20,15 @@ import {
 } from '@patternfly/react-core';
 import '../karavan.css';
 import {Integration} from "karavan-core/lib/model/IntegrationDefinition";
-import {NamedBeanDefinition} from "karavan-core/lib/model/CamelDefinition";
+import {RegistryBeanDefinition} from "karavan-core/lib/model/CamelDefinition";
 import DeleteIcon from "@patternfly/react-icons/dist/js/icons/times-circle-icon";
 
 interface Props {
-    bean: NamedBeanDefinition
-    selectedStep?: NamedBeanDefinition
+    bean: RegistryBeanDefinition
+    selectedStep?: RegistryBeanDefinition
     integration: Integration
-    selectElement: (element: NamedBeanDefinition) => void
-    deleteElement: (element: NamedBeanDefinition) => void
+    selectElement: (element: RegistryBeanDefinition) => void
+    deleteElement: (element: RegistryBeanDefinition) => void
 }
 
 export class BeanCard extends React.Component<Props, any> {
diff --git a/karavan-designer/src/designer/beans/BeanProperties.tsx b/karavan-designer/src/designer/beans/BeanProperties.tsx
index 24c1e202..45f773fc 100644
--- a/karavan-designer/src/designer/beans/BeanProperties.tsx
+++ b/karavan-designer/src/designer/beans/BeanProperties.tsx
@@ -23,7 +23,7 @@ import {
 import '../karavan.css';
 import "@patternfly/patternfly/patternfly.css";
 import {
-    NamedBeanDefinition,
+    RegistryBeanDefinition,
 } from "karavan-core/lib/model/CamelDefinition";
 import {Integration} from "karavan-core/lib/model/IntegrationDefinition";
 import {CamelUtil} from "karavan-core/lib/api/CamelUtil";
@@ -44,14 +44,14 @@ import DockerIcon from "@patternfly/react-icons/dist/js/icons/docker-icon";
 
 interface Props {
     integration: Integration
-    bean?: NamedBeanDefinition
+    bean?: RegistryBeanDefinition
     dark: boolean
-    onChange: (bean: NamedBeanDefinition) => void
-    onClone: (bean: NamedBeanDefinition) => void
+    onChange: (bean: RegistryBeanDefinition) => void
+    onClone: (bean: RegistryBeanDefinition) => void
 }
 
 interface State {
-    bean?: NamedBeanDefinition
+    bean?: RegistryBeanDefinition
     properties: Map<string, [string, string, boolean]>
     key: string,
     showInfrastructureSelector: boolean
@@ -88,7 +88,7 @@ export class BeanProperties extends React.Component<Props, State> {
         }
     }
 
-    setBean = (bean?: NamedBeanDefinition) => {
+    setBean = (bean?: RegistryBeanDefinition) => {
         this.setState({
             bean: bean,
             properties: bean?.properties ? this.preparePropertiesMap(bean.properties) : new Map<string, [string, string, false]>()
diff --git a/karavan-designer/src/designer/beans/BeansDesigner.tsx b/karavan-designer/src/designer/beans/BeansDesigner.tsx
index 037df834..2c9a681f 100644
--- a/karavan-designer/src/designer/beans/BeansDesigner.tsx
+++ b/karavan-designer/src/designer/beans/BeansDesigner.tsx
@@ -19,7 +19,7 @@ import {
     Button, Drawer, DrawerContent, DrawerContentBody, DrawerPanelContent, Modal, PageSection
 } from '@patternfly/react-core';
 import '../karavan.css';
-import {NamedBeanDefinition} from "karavan-core/lib/model/CamelDefinition";
+import {RegistryBeanDefinition} from "karavan-core/lib/model/CamelDefinition";
 import {Integration} from "karavan-core/lib/model/IntegrationDefinition";
 import {CamelUi} from "../utils/CamelUi";
 import PlusIcon from "@patternfly/react-icons/dist/esm/icons/plus-icon";
@@ -37,7 +37,7 @@ interface Props {
 interface State {
     integration: Integration
     showDeleteConfirmation: boolean
-    selectedBean?: NamedBeanDefinition
+    selectedBean?: RegistryBeanDefinition
     key: string
     propertyOnly: boolean
 }
@@ -57,7 +57,7 @@ export class BeansDesigner extends React.Component<Props, State> {
         }
     }
 
-    showDeleteConfirmation = (bean: NamedBeanDefinition) => {
+    showDeleteConfirmation = (bean: RegistryBeanDefinition) => {
         this.setState({selectedBean: bean, showDeleteConfirmation: true});
     }
 
@@ -71,12 +71,12 @@ export class BeansDesigner extends React.Component<Props, State> {
             integration: i,
             showDeleteConfirmation: false,
             key: Math.random().toString(),
-            selectedBean: new NamedBeanDefinition(),
+            selectedBean: new RegistryBeanDefinition(),
             propertyOnly: false
         });
     }
 
-    changeBean = (bean: NamedBeanDefinition) => {
+    changeBean = (bean: RegistryBeanDefinition) => {
         const clone = CamelUtil.cloneIntegration(this.state.integration);
         const i = CamelDefinitionApiExt.addBeanToIntegration(clone, bean);
         this.setState({integration: i, propertyOnly: false, key: Math.random().toString(), selectedBean: bean});
@@ -100,7 +100,7 @@ export class BeansDesigner extends React.Component<Props, State> {
         </Modal>)
     }
 
-    selectBean = (bean?: NamedBeanDefinition) => {
+    selectBean = (bean?: RegistryBeanDefinition) => {
         this.setState({selectedBean: bean})
     }
 
@@ -112,7 +112,7 @@ export class BeansDesigner extends React.Component<Props, State> {
     };
 
     createBean = () => {
-        this.changeBean(new NamedBeanDefinition());
+        this.changeBean(new RegistryBeanDefinition());
     }
 
     getPropertiesPanel() {
diff --git a/karavan-designer/src/designer/utils/CamelUi.tsx b/karavan-designer/src/designer/utils/CamelUi.tsx
index a577a069..c55a8ef8 100644
--- a/karavan-designer/src/designer/utils/CamelUi.tsx
+++ b/karavan-designer/src/designer/utils/CamelUi.tsx
@@ -22,7 +22,7 @@ import {CamelMetadataApi} from "karavan-core/lib/model/CamelMetadata";
 import {CamelUtil} from "karavan-core/lib/api/CamelUtil";
 import {CamelDefinitionApiExt} from "karavan-core/lib/api/CamelDefinitionApiExt";
 import {
-    NamedBeanDefinition,
+    RegistryBeanDefinition,
     RouteConfigurationDefinition,
     RouteDefinition,
     SagaDefinition,
@@ -545,8 +545,8 @@ export class CamelUi {
         return result;
     }
 
-    static getBeans = (integration: Integration): NamedBeanDefinition[] => {
-        const result: NamedBeanDefinition[] = [];
+    static getBeans = (integration: Integration): RegistryBeanDefinition[] => {
+        const result: RegistryBeanDefinition[] = [];
         const beans = integration.spec.flows?.filter((e: any) => e.dslName === 'Beans');
         if (beans && beans.length > 0 && beans[0].beans) {
             result.push(...beans[0].beans);
diff --git a/karavan-generator/pom.xml b/karavan-generator/pom.xml
index 730abf8b..1768b671 100644
--- a/karavan-generator/pom.xml
+++ b/karavan-generator/pom.xml
@@ -19,17 +19,17 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.camel.karavan</groupId>
     <artifactId>karavan-generator</artifactId>
-    <version>3.21.1-SNAPSHOT</version>
+    <version>4.0.0-RC2</version>
     <properties>
         <compiler-plugin.version>3.8.1</compiler-plugin.version>
         <maven.compiler.parameters>true</maven.compiler.parameters>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
         <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.21.0</version.camel-core>
-        <version.camel-kamelet>3.21.0</version.camel-kamelet>
+        <version.camel-core>4.0.0-RC2</version.camel-core>
+        <version.camel-kamelet>4.0.0-RC1</version.camel-kamelet>
         <version.vertx>4.4.3</version.vertx>
     </properties>
     <dependencies>
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
index ba7c0cbd..f72206dd 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
@@ -105,13 +105,14 @@ public final class CamelMetadataGenerator extends AbstractGenerator {
 
         classProps.clear();
         defsMap.forEach((s, o) -> {
-            String ref = ((Map) o).get("$ref").toString();
+            String ref = ((Map<?, ?>) o).get("$ref").toString();
             String name = classSimple(ref);
             JsonObject obj = getDefinition(definitions, ref);
             JsonObject props = obj.containsKey("oneOf") ? obj.getJsonArray("oneOf").getJsonObject(1).getJsonObject("properties") : obj.getJsonObject("properties");
             classProps.put(name, props);
         });
 
+
         // add additional classes
         getClasses(definitions, "org.apache.camel.model").forEach(s -> {
             String className = classSimple(s);
@@ -146,7 +147,16 @@ public final class CamelMetadataGenerator extends AbstractGenerator {
     private String getMetadataCode(String className, Map<String, JsonObject> classProps, Map<String, String> stepNames, String folder) {
         StringBuilder code = new StringBuilder();
         code.append(String.format("export const %s: ElementMeta[] = [\n", className));
-        classProps.forEach((name, properties) -> {
+        classProps.entrySet().stream().filter(entry -> {
+            if (entry.getValue() == null) {
+                System.out.println(entry.getKey());
+                return false;
+            } else {
+                return true;
+            }
+        }).forEach(entry -> {
+            String name = entry.getKey();
+            JsonObject properties = entry.getValue();
             String stepName = stepNames.get(name);
             String json = folder.equals("model") ? getMetaModel(stepName) : (folder.equals("language") ? getMetaLanguage(stepName) : getMetaDataFormat(stepName));
             if (json != null) {
diff --git a/karavan-space/package.json b/karavan-space/package.json
index 0d433a89..b97177ed 100644
--- a/karavan-space/package.json
+++ b/karavan-space/package.json
@@ -1,6 +1,6 @@
 {
   "name": "karavan-space",
-  "version": "3.21.1-SNAPSHOT",
+  "version": "4.0.0-RC2",
   "license": "Apache-2.0",
   "scripts": {
     "cp-designer": "cp -r ../karavan-designer/src/designer src",
diff --git a/karavan-vscode/CHANGELOG.md b/karavan-vscode/CHANGELOG.md
index f56facb3..8de11376 100644
--- a/karavan-vscode/CHANGELOG.md
+++ b/karavan-vscode/CHANGELOG.md
@@ -1,5 +1,13 @@
 # Changelog
 
+## 4.0.0-RC2
+0. Camel 4.0.0-RC2
+1. Kamelets 4.0.0-RC1
+2. Spring Boot 3.1.2
+3. jkube 1.13.1
+4. Quarkus 3.2.2.Final
+
+
 ## 3.21.0
 0. Camel 3.21.0
 1. Kamelets 3.21.0
diff --git a/karavan-vscode/README.md b/karavan-vscode/README.md
index ad85d120..8f3f68e9 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.21.0 camel@apache/camel run $INTEGRATION.yaml --max-messages=10 --logging-level=info
+    jbang -Dcamel.jbang.version=4.0.0-RC2 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.21.0 camel@apache/camel export --directory=export
+    jbang -Dcamel.jbang.version=4.0.0-RC2 camel@apache/camel export --directory=export
     ```
 
 # Issues
diff --git a/karavan-vscode/package.json b/karavan-vscode/package.json
index 153e6ddf..62b98ed7 100644
--- a/karavan-vscode/package.json
+++ b/karavan-vscode/package.json
@@ -4,7 +4,7 @@
   "displayName": "Karavan",
   "icon": "icons/karavan.png",
   "description": "Integration Toolkit for Apache Camel",
-  "version": "3.21.1-SNAPSHOT",
+  "version": "4.0.0-RC2",
   "license": "Apache-2.0",
   "preview": false,
   "bugs": {
@@ -62,7 +62,7 @@
       "properties": {
         "camel.version": {
           "type": "string",
-          "default": "3.21.0",
+          "default": "4.0.0-RC2",
           "description": "Camel version",
           "scope": "machine",
           "order": 10
@@ -222,7 +222,7 @@
             "camel.karavan.project-description=$NAME",
             "camel.karavan.target=$TARGET",
             "camel.jbang.gav=$GAV",
-            "camel.jbang.quarkusVersion=2.16.7.Final",
+            "camel.jbang.quarkusVersion=3.2.2.Final",
             "camel.jbang.runtime=$RUNTIME",
             "camel.jbang.exportDir=.export"
           ],
@@ -244,8 +244,8 @@
             "camel.karavan.project-description=$NAME",
             "camel.karavan.target=$TARGET",
             "camel.jbang.gav=$GAV",
-            "camel.jbang.camelSpringBootVersion=3.21.0",
-            "camel.jbang.springBootVersion=2.7.13",
+            "camel.jbang.camelSpringBootVersion=4.0.0-RC2",
+            "camel.jbang.springBootVersion=3.1.2",
             "camel.jbang.runtime=$RUNTIME",
             "camel.jbang.exportDir=.export",
             "management.endpoints.web.exposure.include=health",
@@ -263,7 +263,7 @@
             "type": "string"
           },
           "default": [
-            "camel.jbang.quarkusVersion=2.16.7.Final",
+            "camel.jbang.quarkusVersion=3.2.2.Final",
             "camel.jbang.dependencies=camel:microprofile-health,mvn:io.quarkus:quarkus-openshift,mvn:io.quarkus:quarkus-container-image-jib",
             "# image build properties",
             "quarkus.container-image.build=true",
@@ -301,7 +301,7 @@
             "type": "string"
           },
           "default": [
-            "camel.jbang.quarkusVersion=2.16.7.Final",
+            "camel.jbang.quarkusVersion=3.2.2.Final",
             "camel.jbang.dependencies=camel:microprofile-health,mvn:io.quarkus:quarkus-container-image-jib,mvn:io.quarkus:quarkus-kubernetes",
             "# image build properties",
             "quarkus.container-image.build=true",
diff --git a/karavan-web/docker/Dockerfile.builder b/karavan-web/docker/Dockerfile.builder
index 036feee1..a13c35ca 100644
--- a/karavan-web/docker/Dockerfile.builder
+++ b/karavan-web/docker/Dockerfile.builder
@@ -1,6 +1,6 @@
 FROM jbangdev/jbang-action:0.110.0
 
-ENV CAMEL_VERSION=3.21.0
+ENV CAMEL_VERSION=4.0.0-RC2
 ENV MAVEN_SETTINGS="/karavan-config-map/maven-settings.xml"
 
 # Add Camel-JBang
diff --git a/karavan-web/docker/Dockerfile.runner b/karavan-web/docker/Dockerfile.runner
index 86462bea..f3d5593a 100644
--- a/karavan-web/docker/Dockerfile.runner
+++ b/karavan-web/docker/Dockerfile.runner
@@ -1,6 +1,6 @@
 FROM jbangdev/jbang-action:0.110.0
 
-ENV CAMEL_VERSION=3.21.0
+ENV CAMEL_VERSION=4.0.0-RC2
 ENV KARAVAN="/karavan"
 ENV JBANG_REPO="$KARAVAN/.jbang/cache/.m2"
 ENV JBANG_DIR="$KARAVAN/.jbang"
diff --git a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/InfrastructureResource.java b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/InfrastructureResource.java
index 74ffd6a8..9a6a567f 100644
--- a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/InfrastructureResource.java
+++ b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/api/InfrastructureResource.java
@@ -126,9 +126,13 @@ public class InfrastructureResource {
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/deployment/{env}")
     public List<DeploymentStatus> getDeploymentStatusesByEnv(@PathParam("env") String env) throws Exception {
+        if (infinispanService.isReady()) {
         return infinispanService.getDeploymentStatuses(env).stream()
                 .sorted(Comparator.comparing(DeploymentStatus::getProjectId))
                 .collect(Collectors.toList());
+        } else {
+            return List.of();
+        }
     }
 
     @POST
diff --git a/karavan-web/karavan-app/src/main/resources/application.properties b/karavan-web/karavan-app/src/main/resources/application.properties
index 93f3db4b..da92480c 100644
--- a/karavan-web/karavan-app/src/main/resources/application.properties
+++ b/karavan-web/karavan-app/src/main/resources/application.properties
@@ -1,4 +1,4 @@
-karavan.version=3.21.1-SNAPSHOT
+karavan.version=4.0.0-RC2
 karavan.environment=dev
 karavan.environments=dev
 karavan.default-runtime=quarkus
diff --git a/karavan-web/karavan-app/src/main/resources/pipelines/karavan-task-dev-quarkus.yaml b/karavan-web/karavan-app/src/main/resources/pipelines/karavan-task-dev-quarkus.yaml
index e8a5936c..8ca8ec4f 100644
--- a/karavan-web/karavan-app/src/main/resources/pipelines/karavan-task-dev-quarkus.yaml
+++ b/karavan-web/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.21.0 camel@apache/camel export
+        entrypoint -Dcamel.jbang.version=4.0.0-RC2 camel@apache/camel export
         --local-kamelet-dir=${KAMELETS_DIR}
 
         export LAST_COMMIT=$(git rev-parse --short HEAD)
diff --git a/karavan-web/karavan-app/src/main/resources/pipelines/karavan-task-dev-spring-boot.yaml b/karavan-web/karavan-app/src/main/resources/pipelines/karavan-task-dev-spring-boot.yaml
index bf19af82..84b32928 100644
--- a/karavan-web/karavan-app/src/main/resources/pipelines/karavan-task-dev-spring-boot.yaml
+++ b/karavan-web/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.21.0 camel@apache/camel export
+        entrypoint -Dcamel.jbang.version=4.0.0-RC2 camel@apache/camel export
         --local-kamelet-dir=${KAMELETS_DIR}
 
         export LAST_COMMIT=$(git rev-parse --short HEAD)
diff --git a/karavan-web/karavan-app/src/main/resources/snippets/spring-boot-kubernetes-application.properties b/karavan-web/karavan-app/src/main/resources/snippets/spring-boot-kubernetes-application.properties
index 352f7d97..4035a1dc 100644
--- a/karavan-web/karavan-app/src/main/resources/snippets/spring-boot-kubernetes-application.properties
+++ b/karavan-web/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.21.0
-camel.jbang.springBootVersion=2.7.13
+camel.jbang.camelSpringBootVersion=4.0.0-RC2
+camel.jbang.springBootVersion=3.1.2
 camel.jbang.dependencies=camel:microprofile-health
 camel.health.enabled=true
 camel.health.exposure-level=full
diff --git a/karavan-web/karavan-app/src/main/resources/snippets/spring-boot-openshift-application.properties b/karavan-web/karavan-app/src/main/resources/snippets/spring-boot-openshift-application.properties
index a8026fbe..78aa6907 100644
--- a/karavan-web/karavan-app/src/main/resources/snippets/spring-boot-openshift-application.properties
+++ b/karavan-web/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.21.0
-camel.jbang.springBootVersion=2.7.13
+camel.jbang.camelSpringBootVersion=4.0.0-RC2
+camel.jbang.springBootVersion=3.1.2
 camel.jbang.dependencies=camel:microprofile-health
 camel.health.enabled=true
 camel.health.exposure-level=full
diff --git a/karavan-web/karavan-app/src/main/webui/package.json b/karavan-web/karavan-app/src/main/webui/package.json
index da0827d3..81399892 100644
--- a/karavan-web/karavan-app/src/main/webui/package.json
+++ b/karavan-web/karavan-app/src/main/webui/package.json
@@ -1,6 +1,6 @@
 {
   "name": "karavan",
-  "version": "3.21.1-SNAPSHOT",
+  "version": "4.0.0-RC2",
   "private": true,
   "scripts": {
     "copy-designer": "cp -r ../../../../../karavan-designer/src/designer src && cp -r ../../../../../karavan-designer/src/knowledgebase src",
diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeanCard.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeanCard.tsx
index 803272f5..d9eac357 100644
--- a/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeanCard.tsx
+++ b/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeanCard.tsx
@@ -20,15 +20,15 @@ import {
 } from '@patternfly/react-core';
 import '../karavan.css';
 import {Integration} from "karavan-core/lib/model/IntegrationDefinition";
-import {NamedBeanDefinition} from "karavan-core/lib/model/CamelDefinition";
+import {RegistryBeanDefinition} from "karavan-core/lib/model/CamelDefinition";
 import DeleteIcon from "@patternfly/react-icons/dist/js/icons/times-circle-icon";
 
 interface Props {
-    bean: NamedBeanDefinition
-    selectedStep?: NamedBeanDefinition
+    bean: RegistryBeanDefinition
+    selectedStep?: RegistryBeanDefinition
     integration: Integration
-    selectElement: (element: NamedBeanDefinition) => void
-    deleteElement: (element: NamedBeanDefinition) => void
+    selectElement: (element: RegistryBeanDefinition) => void
+    deleteElement: (element: RegistryBeanDefinition) => void
 }
 
 export class BeanCard extends React.Component<Props, any> {
diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeanProperties.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeanProperties.tsx
index 24c1e202..45f773fc 100644
--- a/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeanProperties.tsx
+++ b/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeanProperties.tsx
@@ -23,7 +23,7 @@ import {
 import '../karavan.css';
 import "@patternfly/patternfly/patternfly.css";
 import {
-    NamedBeanDefinition,
+    RegistryBeanDefinition,
 } from "karavan-core/lib/model/CamelDefinition";
 import {Integration} from "karavan-core/lib/model/IntegrationDefinition";
 import {CamelUtil} from "karavan-core/lib/api/CamelUtil";
@@ -44,14 +44,14 @@ import DockerIcon from "@patternfly/react-icons/dist/js/icons/docker-icon";
 
 interface Props {
     integration: Integration
-    bean?: NamedBeanDefinition
+    bean?: RegistryBeanDefinition
     dark: boolean
-    onChange: (bean: NamedBeanDefinition) => void
-    onClone: (bean: NamedBeanDefinition) => void
+    onChange: (bean: RegistryBeanDefinition) => void
+    onClone: (bean: RegistryBeanDefinition) => void
 }
 
 interface State {
-    bean?: NamedBeanDefinition
+    bean?: RegistryBeanDefinition
     properties: Map<string, [string, string, boolean]>
     key: string,
     showInfrastructureSelector: boolean
@@ -88,7 +88,7 @@ export class BeanProperties extends React.Component<Props, State> {
         }
     }
 
-    setBean = (bean?: NamedBeanDefinition) => {
+    setBean = (bean?: RegistryBeanDefinition) => {
         this.setState({
             bean: bean,
             properties: bean?.properties ? this.preparePropertiesMap(bean.properties) : new Map<string, [string, string, false]>()
diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeansDesigner.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeansDesigner.tsx
index 037df834..2c9a681f 100644
--- a/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeansDesigner.tsx
+++ b/karavan-web/karavan-app/src/main/webui/src/designer/beans/BeansDesigner.tsx
@@ -19,7 +19,7 @@ import {
     Button, Drawer, DrawerContent, DrawerContentBody, DrawerPanelContent, Modal, PageSection
 } from '@patternfly/react-core';
 import '../karavan.css';
-import {NamedBeanDefinition} from "karavan-core/lib/model/CamelDefinition";
+import {RegistryBeanDefinition} from "karavan-core/lib/model/CamelDefinition";
 import {Integration} from "karavan-core/lib/model/IntegrationDefinition";
 import {CamelUi} from "../utils/CamelUi";
 import PlusIcon from "@patternfly/react-icons/dist/esm/icons/plus-icon";
@@ -37,7 +37,7 @@ interface Props {
 interface State {
     integration: Integration
     showDeleteConfirmation: boolean
-    selectedBean?: NamedBeanDefinition
+    selectedBean?: RegistryBeanDefinition
     key: string
     propertyOnly: boolean
 }
@@ -57,7 +57,7 @@ export class BeansDesigner extends React.Component<Props, State> {
         }
     }
 
-    showDeleteConfirmation = (bean: NamedBeanDefinition) => {
+    showDeleteConfirmation = (bean: RegistryBeanDefinition) => {
         this.setState({selectedBean: bean, showDeleteConfirmation: true});
     }
 
@@ -71,12 +71,12 @@ export class BeansDesigner extends React.Component<Props, State> {
             integration: i,
             showDeleteConfirmation: false,
             key: Math.random().toString(),
-            selectedBean: new NamedBeanDefinition(),
+            selectedBean: new RegistryBeanDefinition(),
             propertyOnly: false
         });
     }
 
-    changeBean = (bean: NamedBeanDefinition) => {
+    changeBean = (bean: RegistryBeanDefinition) => {
         const clone = CamelUtil.cloneIntegration(this.state.integration);
         const i = CamelDefinitionApiExt.addBeanToIntegration(clone, bean);
         this.setState({integration: i, propertyOnly: false, key: Math.random().toString(), selectedBean: bean});
@@ -100,7 +100,7 @@ export class BeansDesigner extends React.Component<Props, State> {
         </Modal>)
     }
 
-    selectBean = (bean?: NamedBeanDefinition) => {
+    selectBean = (bean?: RegistryBeanDefinition) => {
         this.setState({selectedBean: bean})
     }
 
@@ -112,7 +112,7 @@ export class BeansDesigner extends React.Component<Props, State> {
     };
 
     createBean = () => {
-        this.changeBean(new NamedBeanDefinition());
+        this.changeBean(new RegistryBeanDefinition());
     }
 
     getPropertiesPanel() {
diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx
index a577a069..c55a8ef8 100644
--- a/karavan-web/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx
+++ b/karavan-web/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx
@@ -22,7 +22,7 @@ import {CamelMetadataApi} from "karavan-core/lib/model/CamelMetadata";
 import {CamelUtil} from "karavan-core/lib/api/CamelUtil";
 import {CamelDefinitionApiExt} from "karavan-core/lib/api/CamelDefinitionApiExt";
 import {
-    NamedBeanDefinition,
+    RegistryBeanDefinition,
     RouteConfigurationDefinition,
     RouteDefinition,
     SagaDefinition,
@@ -545,8 +545,8 @@ export class CamelUi {
         return result;
     }
 
-    static getBeans = (integration: Integration): NamedBeanDefinition[] => {
-        const result: NamedBeanDefinition[] = [];
+    static getBeans = (integration: Integration): RegistryBeanDefinition[] => {
+        const result: RegistryBeanDefinition[] = [];
         const beans = integration.spec.flows?.filter((e: any) => e.dslName === 'Beans');
         if (beans && beans.length > 0 && beans[0].beans) {
             result.push(...beans[0].beans);
diff --git a/karavan-web/karavan-cli/pom.xml b/karavan-web/karavan-cli/pom.xml
index 8206724f..069a8edf 100644
--- a/karavan-web/karavan-cli/pom.xml
+++ b/karavan-web/karavan-cli/pom.xml
@@ -6,7 +6,7 @@
     <groupId>org.apache.camel.karavan</groupId>
     <artifactId>karavan-cli</artifactId>
     <name>karavan-cli</name>
-    <version>3.21.1-SNAPSHOT</version>
+    <version>4.0.0-RC2</version>
     <packaging>jar</packaging>
 
     <!-- Required to publish to the repo -->
@@ -19,8 +19,8 @@
     <properties>
         <compiler-plugin.version>3.10.1</compiler-plugin.version>
         <maven.compiler.parameters>true</maven.compiler.parameters>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
         <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
diff --git a/karavan-web/karavan-cli/src/main/java/org/apache/camel/karavan/cli/InstallCommand.java b/karavan-web/karavan-cli/src/main/java/org/apache/camel/karavan/cli/InstallCommand.java
index a3bafe24..7ea78b73 100644
--- a/karavan-web/karavan-cli/src/main/java/org/apache/camel/karavan/cli/InstallCommand.java
+++ b/karavan-web/karavan-cli/src/main/java/org/apache/camel/karavan/cli/InstallCommand.java
@@ -12,7 +12,7 @@ import java.util.concurrent.Callable;
         description = "Install Karavan")
 public class InstallCommand implements Callable<Integer> {
 
-    @CommandLine.Option(names = {"-v", "--version"}, required = true, description = "Karavan version", defaultValue = "3.21.0")
+    @CommandLine.Option(names = {"-v", "--version"}, required = true, description = "Karavan version", defaultValue = "4.0.0-RC2")
     private String version;
     @CommandLine.Option(names = {"-n", "--namespace"}, description = "Namespace", defaultValue = Constants.DEFAULT_NAMESPACE)
     private String namespace;
diff --git a/karavan-web/karavan-operator/Makefile b/karavan-web/karavan-operator/Makefile
index d3574617..f8975fde 100644
--- a/karavan-web/karavan-operator/Makefile
+++ b/karavan-web/karavan-operator/Makefile
@@ -1,5 +1,5 @@
 
-VERSION ?=3.21.1-SNAPSHOT
+VERSION ?=4.0.0-RC2
 
 # CHANNELS define the bundle channels used in the bundle.
 # Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable")
diff --git a/karavan-web/karavan-operator/pom.xml b/karavan-web/karavan-operator/pom.xml
index 3af81df6..4f5e6ae7 100644
--- a/karavan-web/karavan-operator/pom.xml
+++ b/karavan-web/karavan-operator/pom.xml
@@ -6,18 +6,18 @@
     <groupId>org.apache.camel.karavan</groupId>
     <artifactId>karavan-operator</artifactId>
     <name>karavan-operator</name>
-    <version>3.21.1-SNAPSHOT</version>
+    <version>4.0.0-RC2</version>
     <packaging>jar</packaging>
     <properties>
         <compiler-plugin.version>3.8.1</compiler-plugin.version>
         <surefire-plugin.version>3.0.0-M9</surefire-plugin.version>
         <maven.compiler.parameters>true</maven.compiler.parameters>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <quarkus-sdk.version>5.1.1</quarkus-sdk.version>
-        <quarkus.version>2.16.7.Final</quarkus.version>
+        <quarkus.version>3.2.2.Final</quarkus.version>
     </properties>
 
     <dependencyManagement>
diff --git a/karavan-web/karavan-operator/src/main/resources/application.properties b/karavan-web/karavan-operator/src/main/resources/application.properties
index 67067a56..341d0edf 100644
--- a/karavan-web/karavan-operator/src/main/resources/application.properties
+++ b/karavan-web/karavan-operator/src/main/resources/application.properties
@@ -20,8 +20,8 @@ quarkus.kubernetes.resources.limits.cpu=1000m
 quarkus.container-image.builder=jib
 quarkus.container-image.group=ghcr.io/apache
 quarkus.container-image.name=camel-karavan-operator
-quarkus.container-image.tag=3.21.1-SNAPSHOT
+quarkus.container-image.tag=4.0.0-RC2
 
-karavan.version=3.21.1-SNAPSHOT
+karavan.version=4.0.0-RC2
 karavan.image=ghcr.io/apache/camel-karavan
 karavan.build-image=ghcr.io/apache/camel-karavan-builder
diff --git a/karavan-web/karavan-operator/src/main/resources/quarkus-builder-script-kubernetes.sh b/karavan-web/karavan-operator/src/main/resources/quarkus-builder-script-kubernetes.sh
index 074c3b99..810bdf2e 100644
--- a/karavan-web/karavan-operator/src/main/resources/quarkus-builder-script-kubernetes.sh
+++ b/karavan-web/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.21.0 camel@apache/camel export --local-kamelet-dir=${KAMELETS_DIR}
+entrypoint -Dcamel.jbang.version=4.0.0-RC2 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-web/karavan-operator/src/main/resources/quarkus-builder-script-openshift.sh b/karavan-web/karavan-operator/src/main/resources/quarkus-builder-script-openshift.sh
index 9d437abb..d649d0ce 100644
--- a/karavan-web/karavan-operator/src/main/resources/quarkus-builder-script-openshift.sh
+++ b/karavan-web/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.21.0 camel@apache/camel export --local-kamelet-dir=${KAMELETS_DIR}
+entrypoint -Dcamel.jbang.version=4.0.0-RC2 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-web/karavan-operator/src/main/resources/spring-boot-builder-script-kubernetes.sh b/karavan-web/karavan-operator/src/main/resources/spring-boot-builder-script-kubernetes.sh
index 387922bf..da2c0b77 100644
--- a/karavan-web/karavan-operator/src/main/resources/spring-boot-builder-script-kubernetes.sh
+++ b/karavan-web/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.21.0 camel@apache/camel export --local-kamelet-dir=${KAMELETS_DIR}
+entrypoint -Dcamel.jbang.version=4.0.0-RC2 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-web/karavan-operator/src/main/resources/spring-boot-builder-script-openshift.sh b/karavan-web/karavan-operator/src/main/resources/spring-boot-builder-script-openshift.sh
index 57fc3080..280b5711 100644
--- a/karavan-web/karavan-operator/src/main/resources/spring-boot-builder-script-openshift.sh
+++ b/karavan-web/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.21.0 camel@apache/camel export --local-kamelet-dir=${KAMELETS_DIR}
+entrypoint -Dcamel.jbang.version=4.0.0-RC2 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-web/pom.xml b/karavan-web/pom.xml
index c83d60c9..c95e87d1 100644
--- a/karavan-web/pom.xml
+++ b/karavan-web/pom.xml
@@ -12,17 +12,17 @@
     <properties>
         <compiler-plugin.version>3.11.0</compiler-plugin.version>
         <maven.compiler.parameters>true</maven.compiler.parameters>
-        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.source>17</maven.compiler.source>
         <jandex-maven-plugin-version>3.1.1</jandex-maven-plugin-version>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
         <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
-        <quarkus.platform.version>2.16.8.Final</quarkus.platform.version>
-        <camel-quarkus.version>2.16.0</camel-quarkus.version>
-        <camel.version>3.21.0</camel.version>
-        <camel-kamelet.version>3.21.0</camel-kamelet.version>
+        <quarkus.platform.version>3.2.2.Final</quarkus.platform.version>
+        <camel-quarkus.version>3.2.2</camel-quarkus.version>
+        <camel.version>4.0.0-RC2</camel.version>
+        <camel-kamelet.version>4.0.0-RC1</camel-kamelet.version>
         <surefire-plugin.version>3.1.0</surefire-plugin.version>
         <tekton.version>6.3.1</tekton.version>
         <jgit.version>2.3.2</jgit.version>
@@ -40,7 +40,6 @@
         <maven-shade-plugin.version>3.4.1</maven-shade-plugin.version>
         <maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
         <quarkus-sdk.version>5.1.1</quarkus-sdk.version>
-        <quarkus.version>2.16.7.Final</quarkus.version>
     </properties>
 
     <dependencyManagement>