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

davsclaus pushed a commit to branch CAMEL-23610-normalize-yaml-dsl-components
in repository https://gitbox.apache.org/repos/asf/camel.git

commit bdea5bfee39246e70b6a430203ee4074f12a0724
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon May 25 21:57:13 2026 +0200

    CAMEL-23610: docs - Normalize YAML DSL in component documentation to 
canonical form
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .../src/main/docs/docling-component.adoc           | 399 +++++----
 .../docs/langchain4j-embeddings-component.adoc     |  62 +-
 .../docs/langchain4j-embeddingstore-component.adoc |  48 +-
 .../src/main/docs/openai-component.adoc            |  36 +-
 .../src/main/docs/pgvector-component.adoc          |  30 +-
 .../src/main/docs/aws2-s3-vectors-component.adoc   | 127 +--
 .../main/docs/azure-storage-blob-component.adoc    |  28 +-
 .../src/main/docs/camunda-component.adoc           |  25 +-
 .../camel-dfdl/src/main/docs/dfdl-dataformat.adoc  |  16 +-
 .../src/main/docs/dhis2-component.adoc             |  71 +-
 .../camel-event/src/main/docs/event-component.adoc |  17 +-
 .../src/main/docs/ibm-watsonx-ai-component.adoc    |   9 +-
 .../camel-kafka/src/main/docs/kafka-component.adoc |  24 +-
 .../src/main/docs/kamelet-component.adoc           |  33 +-
 .../src/main/docs/keycloak-component.adoc          | 890 +++++++++++++++------
 .../camel-ocsf/src/main/docs/ocsf-dataformat.adoc  |   6 +-
 .../camel-pqc/src/main/docs/pqc-component.adoc     |  19 +-
 .../src/main/docs/smooks-component.adoc            |  13 +-
 .../src/main/docs/smooks-dataformat.adoc           |   8 +-
 19 files changed, 1251 insertions(+), 610 deletions(-)

diff --git 
a/components/camel-ai/camel-docling/src/main/docs/docling-component.adoc 
b/components/camel-ai/camel-docling/src/main/docs/docling-component.adoc
index c96d3448f478..16ee1514a850 100644
--- a/components/camel-ai/camel-docling/src/main/docs/docling-component.adoc
+++ b/components/camel-ai/camel-docling/src/main/docs/docling-component.adoc
@@ -152,14 +152,14 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -185,12 +185,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_HTML"
+          uri: docling:CONVERT_TO_HTML
           parameters:
             contentInBody: true
       - process:
@@ -228,12 +228,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:EXTRACT_STRUCTURED_DATA"
+          uri: docling:EXTRACT_STRUCTURED_DATA
           parameters:
             useDoclingServe: true
             contentInBody: true
@@ -270,32 +270,32 @@ YAML::
 # CLI mode
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             enableOCR: false
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 
 # API mode
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             doOcr: false
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -321,7 +321,7 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
@@ -335,9 +335,9 @@ YAML::
           name: "CamelDoclingOCRLanguage"
           constant: "es"
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"  # Operation will be overridden 
by header
+          uri: docling:CONVERT_TO_MARKDOWN  # Operation will be overridden by 
header
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -364,7 +364,7 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
@@ -375,9 +375,9 @@ YAML::
               ref: "customArgsBean"
               method: "createCustomArgs"
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -467,14 +467,16 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:EXTRACT_METADATA"
-      - log: "Document: ${header.CamelDoclingMetadataTitle} by 
${header.CamelDoclingMetadataAuthor}"
-      - log: "Pages: ${header.CamelDoclingMetadataPageCount}"
+          uri: docling:EXTRACT_METADATA
+      - log:
+          message: "Document: ${header.CamelDoclingMetadataTitle} by 
${header.CamelDoclingMetadataAuthor}"
+      - log:
+          message: "Pages: ${header.CamelDoclingMetadataPageCount}"
       - process:
           ref: "metadataProcessor"
 ----
@@ -507,12 +509,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:EXTRACT_METADATA"
+          uri: docling:EXTRACT_METADATA
           parameters:
             includeRawMetadata: true
       - process:
@@ -551,29 +553,42 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:EXTRACT_METADATA"
+          uri: docling:EXTRACT_METADATA
       - choice:
           when:
-            - simple: "${header.CamelDoclingMetadataPageCount} > 100"
+            - expression:
+                simple:
+                  expression: "${header.CamelDoclingMetadataPageCount} > 100"
               steps:
-                - log: "Large document with 
${header.CamelDoclingMetadataPageCount} pages"
-                - to: "file:///data/large-docs"
-            - simple: "${header.CamelDoclingMetadataLanguage} == 'fr'"
+                - log:
+                    message: "Large document with 
${header.CamelDoclingMetadataPageCount} pages"
+                - to:
+                    uri: file:///data/large-docs
+            - expression:
+                simple:
+                  expression: "${header.CamelDoclingMetadataLanguage} == 'fr'"
               steps:
-                - log: "French document"
-                - to: "file:///data/french-docs"
-            - simple: "${header.CamelDoclingMetadataAuthor} contains 'Smith'"
+                - log:
+                    message: "French document"
+                - to:
+                    uri: file:///data/french-docs
+            - expression:
+                simple:
+                  expression: "${header.CamelDoclingMetadataAuthor} contains 
'Smith'"
               steps:
-                - log: "Document by Smith"
-                - to: "file:///data/smith-docs"
+                - log:
+                    message: "Document by Smith"
+                - to:
+                    uri: file:///data/smith-docs
           otherwise:
             steps:
-              - to: "file:///data/other-docs"
+              - to:
+                  uri: file:///data/other-docs
 ----
 ====
 
@@ -602,12 +617,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:EXTRACT_METADATA"
+          uri: docling:EXTRACT_METADATA
           parameters:
             includeMetadataInHeaders: false
       - process:
@@ -647,12 +662,12 @@ YAML::
 # Get content directly in body (file is automatically deleted)
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             contentInBody: true
       - process:
@@ -661,12 +676,12 @@ YAML::
 # Get file path (file is preserved)
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             contentInBody: false
       - process:
@@ -811,27 +826,36 @@ YAML::
 - route:
     id: batch-convert
     from:
-      uri: "direct:documents"
+      uri: direct:documents
     steps:
       - to:
-          uri: "docling:convert"
+          uri: docling:convert
           parameters:
             operation: "BATCH_CONVERT_TO_MARKDOWN"
             useDoclingServe: true
             batchParallelism: 4
             batchFailOnFirstError: true
-      - log: "Processed 
${header.CamelDoclingBatchSuccessCount}/${header.CamelDoclingBatchTotalDocuments}
 documents successfully"
+      - log:
+          message: "Processed 
${header.CamelDoclingBatchSuccessCount}/${header.CamelDoclingBatchTotalDocuments}
 documents successfully"
       - split:
-          simple: "${body.results}"
+          expression:
+            simple:
+              expression: "${body.results}"
           steps:
             - choice:
                 when:
-                  - simple: "${body.success}"
+                  - expression:
+                      simple:
+                        expression: "${body.success}"
                     steps:
-                      - to: 
"file:///data/output?fileName=${body.documentId}.md"
+                      - to:
+                          uri: file:///data/output
+                          parameters:
+                            fileName: "${body.documentId}.md"
                 otherwise:
                   steps:
-                    - log: "Failed: ${body.originalPath} - 
${body.errorMessage}"
+                    - log:
+                        message: "Failed: ${body.originalPath} - 
${body.errorMessage}"
 ----
 ====
 
@@ -901,7 +925,7 @@ YAML::
 # Route 1: Collect documents
 - route:
     from:
-      uri: "file:///data/incoming"
+      uri: file:///data/incoming
       parameters:
         noop: true
         maxMessagesPerPoll: 50
@@ -910,16 +934,18 @@ YAML::
           type: "java.lang.String"
       - setHeader:
           name: "documentPath"
-          simple: "${body}"
+          expression:
+            simple:
+              expression: "${body}"
       - to:
-          uri: "seda:document-queue"
+          uri: seda:document-queue
           parameters:
             waitForTaskToComplete: "Never"
 
 # Route 2: Aggregate into batches
 - route:
     from:
-      uri: "seda:document-queue"
+      uri: seda:document-queue
       parameters:
         concurrentConsumers: 1
     steps:
@@ -930,31 +956,42 @@ YAML::
             constant: true
           completionSize: 10
           completionTimeout: 5000
-      - to: "direct:batch-process"
+      - to:
+          uri: direct:batch-process
 
 # Route 3: Process batch
 - route:
     from:
-      uri: "direct:batch-process"
+      uri: direct:batch-process
     steps:
       - to:
-          uri: "docling:convert"
+          uri: docling:convert
           parameters:
             operation: "BATCH_CONVERT_TO_MARKDOWN"
             useDoclingServe: true
             batchParallelism: 5
             batchFailOnFirstError: false
       - split:
-          simple: "${body.results}"
+          expression:
+            simple:
+              expression: "${body.results}"
           steps:
             - choice:
                 when:
-                  - simple: "${body.success}"
+                  - expression:
+                      simple:
+                        expression: "${body.success}"
                     steps:
-                      - to: 
"file:///data/output?fileName=${body.documentId}.md"
+                      - to:
+                          uri: file:///data/output
+                          parameters:
+                            fileName: "${body.documentId}.md"
                 otherwise:
                   steps:
-                    - to: 
"file:///data/failed?fileName=${body.documentId}.error"
+                    - to:
+                        uri: file:///data/failed
+                        parameters:
+                          fileName: "${body.documentId}.error"
 ----
 ====
 
@@ -1032,41 +1069,52 @@ YAML::
 - route:
     id: batch-strict
     from:
-      uri: "direct:batch-strict"
+      uri: direct:batch-strict
     steps:
       - to:
-          uri: "docling:convert"
+          uri: docling:convert
           parameters:
             operation: "BATCH_CONVERT_TO_MARKDOWN"
             useDoclingServe: true
             batchFailOnFirstError: true
-      - log: "All documents converted successfully"
+      - log:
+          message: "All documents converted successfully"
 
 # Continue on errors and process failures
 - route:
     id: batch-lenient
     from:
-      uri: "direct:batch-lenient"
+      uri: direct:batch-lenient
     steps:
       - to:
-          uri: "docling:convert"
+          uri: docling:convert
           parameters:
             operation: "BATCH_CONVERT_TO_MARKDOWN"
             useDoclingServe: true
             batchFailOnFirstError: false
-      - log: "Batch completed: ${header.CamelDoclingBatchSuccessCount} 
succeeded, ${header.CamelDoclingBatchFailureCount} failed"
+      - log:
+          message: "Batch completed: ${header.CamelDoclingBatchSuccessCount} 
succeeded, ${header.CamelDoclingBatchFailureCount} failed"
       - choice:
           when:
-            - simple: "${header.CamelDoclingBatchFailureCount} > 0"
+            - expression:
+                simple:
+                  expression: "${header.CamelDoclingBatchFailureCount} > 0"
               steps:
                 - split:
-                    simple: "${body.failed}"
+                    expression:
+                      simple:
+                        expression: "${body.failed}"
                     steps:
-                      - log: "Failed document: ${body.originalPath} - 
${body.errorMessage}"
-                      - to: 
"file:///data/failed?fileName=${body.documentId}.error"
+                      - log:
+                          message: "Failed document: ${body.originalPath} - 
${body.errorMessage}"
+                      - to:
+                          uri: file:///data/failed
+                          parameters:
+                            fileName: "${body.documentId}.error"
           otherwise:
             steps:
-              - log: "All documents processed successfully"
+              - log:
+                  message: "All documents processed successfully"
 ----
 ====
 
@@ -1278,37 +1326,49 @@ YAML::
 # Example 1: Split and route based on success
 - route:
     from:
-      uri: "direct:batch-with-split"
+      uri: direct:batch-with-split
     steps:
       - to:
-          uri: "docling:convert"
+          uri: docling:convert
           parameters:
             operation: "BATCH_CONVERT_TO_MARKDOWN"
             useDoclingServe: true
             splitBatchResults: true
             contentInBody: true
       - split:
-          simple: "${body}"
+          expression:
+            simple:
+              expression: "${body}"
           steps:
             - choice:
                 when:
-                  - simple: "${body.success}"
+                  - expression:
+                      simple:
+                        expression: "${body.success}"
                     steps:
-                      - log: "Success: ${body.documentId}"
-                      - to: 
"file:///data/success?fileName=${body.documentId}.md"
+                      - log:
+                          message: "Success: ${body.documentId}"
+                      - to:
+                          uri: file:///data/success
+                          parameters:
+                            fileName: "${body.documentId}.md"
                 otherwise:
                   steps:
-                    - log: "Failed: ${body.documentId}"
-                    - to: 
"file:///data/failed?fileName=${body.documentId}.error"
+                    - log:
+                        message: "Failed: ${body.documentId}"
+                    - to:
+                        uri: file:///data/failed
+                        parameters:
+                          fileName: "${body.documentId}.error"
 
 # Example 2: Split with parallel processing
 - route:
     id: batch-split-parallel
     from:
-      uri: "direct:batch-parallel"
+      uri: direct:batch-parallel
     steps:
       - to:
-          uri: "docling:convert"
+          uri: docling:convert
           parameters:
             operation: "BATCH_CONVERT_TO_MARKDOWN"
             useDoclingServe: true
@@ -1316,20 +1376,33 @@ YAML::
             batchParallelism: 4
             contentInBody: true
       - split:
-          simple: "${body}"
+          expression:
+            simple:
+              expression: "${body}"
           parallelProcessing: true
           steps:
-            - log: "Processing document ${body.documentId} (index 
${body.batchIndex})"
+            - log:
+                message: "Processing document ${body.documentId} (index 
${body.batchIndex})"
             - choice:
                 when:
-                  - simple: "${body.success}"
+                  - expression:
+                      simple:
+                        expression: "${body.success}"
                     steps:
-                      - log: "Successfully converted ${body.documentId}"
-                      - to: 
"file:///data/processed?fileName=${body.documentId}.md"
+                      - log:
+                          message: "Successfully converted ${body.documentId}"
+                      - to:
+                          uri: file:///data/processed
+                          parameters:
+                            fileName: "${body.documentId}.md"
                 otherwise:
                   steps:
-                    - log: "Failed to convert ${body.documentId}: 
${body.errorMessage}"
-                    - to: 
"file:///data/errors?fileName=${body.documentId}.error"
+                    - log:
+                        message: "Failed to convert ${body.documentId}: 
${body.errorMessage}"
+                    - to:
+                        uri: file:///data/errors
+                        parameters:
+                          fileName: "${body.documentId}.error"
 ----
 ====
 
@@ -1416,15 +1489,17 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - setHeader:
           name: CamelDoclingInputFilePath
-          simple: "${file:absolute.path}"
+          expression:
+            simple:
+              expression: "${file:absolute.path}"
       - to:
-          uri: "docling:CHUNK_HYBRID"
+          uri: docling:CHUNK_HYBRID
           parameters:
             useDoclingServe: true
             contentInBody: true
@@ -1432,9 +1507,12 @@ YAML::
             chunkingMaxTokens: 128
             chunkingMergePeers: true
       - split:
-          simple: "${body}"
+          expression:
+            simple:
+              expression: "${body}"
           steps:
-            - log: "Chunk ${body.chunkIndex}: ${body.text}"
+            - log:
+                message: "Chunk ${body.chunkIndex}: ${body.text}"
 ----
 ====
 
@@ -1471,13 +1549,15 @@ YAML::
 - route:
     id: ingest-pdf
     from:
-      uri: "direct:ingest-pdf"
+      uri: direct:ingest-pdf
     steps:
       - setHeader:
           name: CamelDoclingInputFilePath
-          simple: "${header.pdfFilePath}"
+          expression:
+            simple:
+              expression: "${header.pdfFilePath}"
       - to:
-          uri: "docling:CHUNK_HYBRID"
+          uri: docling:CHUNK_HYBRID
           parameters:
             useDoclingServe: true
             contentInBody: true
@@ -1485,15 +1565,20 @@ YAML::
             chunkingMaxTokens: "{{embedding.max-tokens}}"
             chunkingMergePeers: true
       - split:
-          simple: "${body}"
+          expression:
+            simple:
+              expression: "${body}"
           steps:
             - setBody:
-                simple: "${body.text}"
+                expression:
+                  simple:
+                    expression: "${body.text}"
             - to:
-                uri: "openai:embeddings"
+                uri: openai:embeddings
                 parameters:
                   embeddingModel: "{{embedding.model}}"
-            - to: "direct:store-embedding"
+            - to:
+                uri: direct:store-embedding
 ----
 ====
 
@@ -1523,22 +1608,27 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - setHeader:
           name: CamelDoclingInputFilePath
-          simple: "${file:absolute.path}"
+          expression:
+            simple:
+              expression: "${file:absolute.path}"
       - to:
-          uri: "docling:CHUNK_HIERARCHICAL"
+          uri: docling:CHUNK_HIERARCHICAL
           parameters:
             useDoclingServe: true
             contentInBody: true
       - split:
-          simple: "${body}"
+          expression:
+            simple:
+              expression: "${body}"
           steps:
-            - log: "Section [${body.headings}] page ${body.pageNumbers}: 
${body.text}"
+            - log:
+                message: "Section [${body.headings}] page ${body.pageNumbers}: 
${body.text}"
 ----
 ====
 
@@ -1573,12 +1663,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             useAsyncMode: true
@@ -1586,7 +1676,7 @@ YAML::
             asyncTimeout: 300000
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -1616,12 +1706,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/large-documents"
+      uri: file:///data/large-documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             useAsyncMode: true
@@ -1629,7 +1719,7 @@ YAML::
             asyncTimeout: 600000
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -1662,19 +1752,19 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - process:
           ref: "asyncDecisionProcessor"
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -1812,24 +1902,29 @@ YAML::
 - route:
     id: async-with-custom-polling
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
-      - log: "Starting async conversion for: ${header.CamelFileName}"
+      - log:
+          message: "Starting async conversion for: ${header.CamelFileName}"
       - to:
-          uri: "docling:convert"
+          uri: docling:convert
           parameters:
             operation: "SUBMIT_ASYNC_CONVERSION"
             useDoclingServe: true
-      - log: "Submitted conversion with task ID: ${body}"
+      - log:
+          message: "Submitted conversion with task ID: ${body}"
       - setHeader:
           name: "taskId"
-          simple: "${body}"
+          expression:
+            simple:
+              expression: "${body}"
       # For YAML, simpler to use Java processor bean or built-in async mode
       - to:
-          uri: "bean:asyncPollingProcessor"
-      - to: "file:///data/output"
+          uri: bean:asyncPollingProcessor
+      - to:
+          uri: file:///data/output
 ----
 ====
 
@@ -1912,12 +2007,12 @@ YAML::
 
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:convert"
+          uri: docling:convert
           parameters:
             operation: "CONVERT_TO_MARKDOWN"
             useDoclingServe: true
@@ -1926,7 +2021,7 @@ YAML::
             asyncTimeout: 120000
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
           parameters:
             fileName: "${header.CamelFileName}"
 ----
@@ -1958,12 +2053,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             doclingServeUrl: "http://localhost:5001";
@@ -1995,19 +2090,19 @@ YAML::
 ----
 - route:
     from:
-      uri: "timer:convert"
+      uri: timer:convert
       parameters:
         repeatCount: 1
     steps:
       - setBody:
           constant: "https://arxiv.org/pdf/2501.17887";
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -2030,18 +2125,18 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.(pdf|docx)"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_HTML"
+          uri: docling:CONVERT_TO_HTML
           parameters:
             useDoclingServe: true
             doclingServeUrl: "http://localhost:5001";
             contentInBody: true
       - to:
-          uri: "file:///data/converted"
+          uri: file:///data/converted
           parameters:
             fileName: "${file:name.noext}.html"
 ----
@@ -2075,12 +2170,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             doclingServeUrl: "http://localhost:5001";
@@ -2088,7 +2183,7 @@ YAML::
             authenticationToken: "your-bearer-token-here"
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -2117,12 +2212,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             doclingServeUrl: "http://localhost:5001";
@@ -2131,7 +2226,7 @@ YAML::
             apiKeyHeader: "X-API-Key"
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -2162,12 +2257,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             doclingServeUrl: "http://localhost:5001";
@@ -2176,7 +2271,7 @@ YAML::
             apiKeyHeader: "X-Custom-API-Key"
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -2206,12 +2301,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             doclingServeUrl: "{{docling.serve.url}}"
@@ -2219,7 +2314,7 @@ YAML::
             authenticationToken: "{{docling.serve.token}}"
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
@@ -2393,12 +2488,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:EXTRACT_STRUCTURED_DATA"
+          uri: docling:EXTRACT_STRUCTURED_DATA
           parameters:
             useDoclingServe: true
             doOcr: true
@@ -2455,12 +2550,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/documents"
+      uri: file:///data/documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_JSON"
+          uri: docling:CONVERT_TO_JSON
           parameters:
             useDoclingServe: true
             contentInBody: true
@@ -2550,12 +2645,12 @@ YAML::
 ----
 - route:
     from:
-      uri: "file:///data/large-documents"
+      uri: file:///data/large-documents
       parameters:
         include: ".*\\.pdf"
     steps:
       - to:
-          uri: "docling:CONVERT_TO_MARKDOWN"
+          uri: docling:CONVERT_TO_MARKDOWN
           parameters:
             useDoclingServe: true
             useAsyncMode: true
@@ -2563,7 +2658,7 @@ YAML::
             asyncTimeout: 600000
             contentInBody: true
       - to:
-          uri: "file:///data/output"
+          uri: file:///data/output
 ----
 ====
 
diff --git 
a/components/camel-ai/camel-langchain4j-embeddings/src/main/docs/langchain4j-embeddings-component.adoc
 
b/components/camel-ai/camel-langchain4j-embeddings/src/main/docs/langchain4j-embeddings-component.adoc
index 884940a9dc06..41b1eed50b57 100644
--- 
a/components/camel-ai/camel-langchain4j-embeddings/src/main/docs/langchain4j-embeddings-component.adoc
+++ 
b/components/camel-ai/camel-langchain4j-embeddings/src/main/docs/langchain4j-embeddings-component.adoc
@@ -96,10 +96,10 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:embeddings"
+      uri: direct:embeddings
     steps:
       - to:
-          uri: "langchain4j-embeddings:test"
+          uri: langchain4j-embeddings:test
           parameters:
             embeddingModel: "#embeddingModel"
 ----
@@ -174,10 +174,10 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:embeddings"
+      uri: direct:embeddings
     steps:
       - to:
-          uri: "langchain4j-embeddings:test"
+          uri: langchain4j-embeddings:test
           parameters:
             embeddingModel: "#myEmbeddingModel"
 ----
@@ -211,9 +211,10 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:store"
+      uri: direct:store
     steps:
-      - to: "langchain4j-embeddings:embed"
+      - to:
+          uri: langchain4j-embeddings:embed
       - setHeader:
           name: CamelQdrantAction
           constant: UPSERT
@@ -222,7 +223,8 @@ YAML::
           constant: 1
       - transform:
           dataType: "qdrant:embeddings"
-      - to: "qdrant:myCollection"
+      - to:
+          uri: qdrant:myCollection
 ----
 ====
 
@@ -251,9 +253,10 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:search"
+      uri: direct:search
     steps:
-      - to: "langchain4j-embeddings:embed"
+      - to:
+          uri: langchain4j-embeddings:embed
       - transform:
           dataType: "qdrant:embeddings"
       - setHeader:
@@ -262,7 +265,8 @@ YAML::
       - setHeader:
           name: CamelQdrantIncludePayload
           constant: true
-      - to: "qdrant:myCollection"
+      - to:
+          uri: qdrant:myCollection
       - transform:
           dataType: "qdrant:rag"
 ----
@@ -291,15 +295,17 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:store"
+      uri: direct:store
     steps:
-      - to: "langchain4j-embeddings:embed"
+      - to:
+          uri: langchain4j-embeddings:embed
       - setHeader:
           name: CamelPgVectorAction
           constant: UPSERT
       - transform:
           dataType: "pgvector:embeddings"
-      - to: "pgvector:myCollection"
+      - to:
+          uri: pgvector:myCollection
 ----
 ====
 
@@ -325,15 +331,17 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:search"
+      uri: direct:search
     steps:
-      - to: "langchain4j-embeddings:embed"
+      - to:
+          uri: langchain4j-embeddings:embed
       - transform:
           dataType: "pgvector:embeddings"
       - setHeader:
           name: CamelPgVectorAction
           constant: SIMILARITY_SEARCH
-      - to: "pgvector:myCollection"
+      - to:
+          uri: pgvector:myCollection
       - transform:
           dataType: "pgvector:rag"
 ----
@@ -364,16 +372,26 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:store"
+      uri: direct:store
     steps:
-      - to: "langchain4j-embeddings:embed"
-      - to: "langchain4j-embeddingstore:myStore?action=ADD"
+      - to:
+          uri: langchain4j-embeddings:embed
+      - to:
+          uri: langchain4j-embeddingstore:myStore
+          parameters:
+            action: ADD
 
 - route:
     from:
-      uri: "direct:search"
+      uri: direct:search
     steps:
-      - to: "langchain4j-embeddings:embed"
-      - to: 
"langchain4j-embeddingstore:myStore?action=SEARCH&maxResults=5&returnTextContent=true"
+      - to:
+          uri: langchain4j-embeddings:embed
+      - to:
+          uri: langchain4j-embeddingstore:myStore
+          parameters:
+            action: SEARCH
+            maxResults: 5
+            returnTextContent: true
 ----
 ====
diff --git 
a/components/camel-ai/camel-langchain4j-embeddingstore/src/main/docs/langchain4j-embeddingstore-component.adoc
 
b/components/camel-ai/camel-langchain4j-embeddingstore/src/main/docs/langchain4j-embeddingstore-component.adoc
index 7b83aa94cc9e..50b9bcb1a41f 100644
--- 
a/components/camel-ai/camel-langchain4j-embeddingstore/src/main/docs/langchain4j-embeddingstore-component.adoc
+++ 
b/components/camel-ai/camel-langchain4j-embeddingstore/src/main/docs/langchain4j-embeddingstore-component.adoc
@@ -94,10 +94,14 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:store"
+      uri: direct:store
     steps:
-      - to: "langchain4j-embeddings:embed"
-      - to: "langchain4j-embeddingstore:myStore?action=ADD"
+      - to:
+          uri: langchain4j-embeddings:embed
+      - to:
+          uri: langchain4j-embeddingstore:myStore
+          parameters:
+            action: ADD
 ----
 ====
 
@@ -124,10 +128,16 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:search"
+      uri: direct:search
     steps:
-      - to: "langchain4j-embeddings:embed"
-      - to: 
"langchain4j-embeddingstore:myStore?action=SEARCH&maxResults=5&minScore=0.7"
+      - to:
+          uri: langchain4j-embeddings:embed
+      - to:
+          uri: langchain4j-embeddingstore:myStore
+          parameters:
+            action: SEARCH
+            maxResults: 5
+            minScore: 0.7
 ----
 ====
 
@@ -155,11 +165,18 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:search"
+      uri: direct:search
     steps:
-      - to: "langchain4j-embeddings:embed"
-      - to: 
"langchain4j-embeddingstore:myStore?action=SEARCH&maxResults=5&returnTextContent=true"
-      - log: "Found texts: ${body}"
+      - to:
+          uri: langchain4j-embeddings:embed
+      - to:
+          uri: langchain4j-embeddingstore:myStore
+          parameters:
+            action: SEARCH
+            maxResults: 5
+            returnTextContent: true
+      - log:
+          message: "Found texts: ${body}"
 ----
 ====
 
@@ -184,11 +201,16 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:remove"
+      uri: direct:remove
     steps:
       - setBody:
-          simple: "${header.embeddingId}"
-      - to: "langchain4j-embeddingstore:myStore?action=REMOVE"
+          expression:
+            simple:
+              expression: "${header.embeddingId}"
+      - to:
+          uri: langchain4j-embeddingstore:myStore
+          parameters:
+            action: REMOVE
 ----
 ====
 
diff --git 
a/components/camel-ai/camel-openai/src/main/docs/openai-component.adoc 
b/components/camel-ai/camel-openai/src/main/docs/openai-component.adoc
index 5da5f286a4c0..61a90d3c1d9f 100644
--- a/components/camel-ai/camel-openai/src/main/docs/openai-component.adoc
+++ b/components/camel-ai/camel-openai/src/main/docs/openai-component.adoc
@@ -123,7 +123,8 @@ YAML::
             uri: openai:chat-completion
             parameters:
               userMessage: What is Apache Camel?
-        - log: "Response: ${body}"
+        - log:
+            message: "Response: ${body}"
 ----
 ====
 
@@ -186,8 +187,9 @@ When `streaming=true`, the component returns an 
`Iterator<ChatCompletionChunk>`
               - log:
                   id: log-6722
                   message: ${body}
-            simple:
-              expression: ${body}
+            expression:
+              simple:
+                expression: ${body}
             streaming: true
 ----
 
@@ -594,7 +596,9 @@ Using the xref:pgvector-component.adoc[PGVector] component:
       steps:
         - setVariable:
             name: text
-            simple: "${body}"
+            expression:
+              simple:
+                expression: "${body}"
         - to:
             uri: openai:embeddings
             parameters:
@@ -604,7 +608,9 @@ Using the xref:pgvector-component.adoc[PGVector] component:
             constant: UPSERT
         - setHeader:
             name: CamelPgVectorTextContent
-            simple: "${variable.text}"
+            expression:
+              simple:
+                expression: "${variable.text}"
         - to:
             uri: pgvector:documents
 
@@ -713,7 +719,8 @@ YAML::
             uri: openai:audio-transcription
             parameters:
               audioModel: whisper-1
-        - log: "Transcription: ${body}"
+        - log:
+            message: "Transcription: ${body}"
 ----
 ====
 
@@ -857,7 +864,8 @@ YAML::
               mcpServer.fs.args: 
"-y,@modelcontextprotocol/server-filesystem,/tmp"
               mcpServer.weather.transportType: sse
               mcpServer.weather.url: http://localhost:8080
-        - log: "${body}"
+        - log:
+            message: "${body}"
 ----
 ====
 
@@ -936,7 +944,9 @@ YAML::
       steps:
         - setProperty:
             name: originalPrompt
-            simple: "${body}"
+            expression:
+              simple:
+                expression: "${body}"
         - to:
             uri: openai:chat-completion
             parameters:
@@ -946,7 +956,9 @@ YAML::
               mcpServer.api.transportType: streamableHttp
               mcpServer.api.url: http://localhost:9090/mcp
         - loopDoWhile:
-            simple: "${header.CamelOpenAIFinishReason} == 'tool_calls'"
+            expression:
+              simple:
+                expression: "${header.CamelOpenAIFinishReason} == 'tool_calls'"
             steps:
               - to:
                   uri: openai:tool-execution
@@ -961,7 +973,8 @@ YAML::
                     storeFullResponse: true
                     mcpServer.api.transportType: streamableHttp
                     mcpServer.api.url: http://localhost:9090/mcp
-        - log: "Final answer: ${body}"
+        - log:
+            message: "Final answer: ${body}"
 ----
 ====
 
@@ -1029,7 +1042,8 @@ YAML::
               conversationMemory: true
               mcpServer.api.transportType: streamableHttp
               mcpServer.api.url: http://localhost:9090/mcp
-        - log: "${body}"
+        - log:
+            message: "${body}"
 ----
 ====
 
diff --git 
a/components/camel-ai/camel-pgvector/src/main/docs/pgvector-component.adoc 
b/components/camel-ai/camel-pgvector/src/main/docs/pgvector-component.adoc
index 6048cd9f37fc..a0b3f9f0dc93 100644
--- a/components/camel-ai/camel-pgvector/src/main/docs/pgvector-component.adoc
+++ b/components/camel-ai/camel-pgvector/src/main/docs/pgvector-component.adoc
@@ -106,7 +106,9 @@ YAML::
     steps:
       - setVariable:
           name: text
-          simple: "${body}"
+          expression:
+            simple:
+              expression: "${body}"
       - to:
           uri: openai:embeddings
           parameters:
@@ -116,8 +118,11 @@ YAML::
           constant: UPSERT
       - setHeader:
           name: CamelPgVectorTextContent
-          simple: "${variable.text}"
-      - to: pgvector:documents
+          expression:
+            simple:
+              expression: "${variable.text}"
+      - to:
+          uri: pgvector:documents
 
 - route:
     from:
@@ -133,7 +138,8 @@ YAML::
       - setHeader:
           name: CamelPgVectorQueryTopK
           constant: 5
-      - to: pgvector:documents
+      - to:
+          uri: pgvector:documents
 ----
 ====
 
@@ -172,27 +178,31 @@ YAML::
 ----
 - route:
     from:
-      uri: "direct:store"
+      uri: direct:store
     steps:
-      - to: "langchain4j-embeddings:embed"
+      - to:
+          uri: langchain4j-embeddings:embed
       - setHeader:
           name: CamelPgVectorAction
           constant: UPSERT
       - transform:
           dataType: "pgvector:embeddings"
-      - to: "pgvector:myCollection"
+      - to:
+          uri: pgvector:myCollection
 
 - route:
     from:
-      uri: "direct:search"
+      uri: direct:search
     steps:
-      - to: "langchain4j-embeddings:embed"
+      - to:
+          uri: langchain4j-embeddings:embed
       - transform:
           dataType: "pgvector:embeddings"
       - setHeader:
           name: CamelPgVectorAction
           constant: SIMILARITY_SEARCH
-      - to: "pgvector:myCollection"
+      - to:
+          uri: pgvector:myCollection
       - transform:
           dataType: "pgvector:rag"
 ----
diff --git 
a/components/camel-aws/camel-aws2-s3-vectors/src/main/docs/aws2-s3-vectors-component.adoc
 
b/components/camel-aws/camel-aws2-s3-vectors/src/main/docs/aws2-s3-vectors-component.adoc
index f35278141912..7a57effee793 100644
--- 
a/components/camel-aws/camel-aws2-s3-vectors/src/main/docs/aws2-s3-vectors-component.adoc
+++ 
b/components/camel-aws/camel-aws2-s3-vectors/src/main/docs/aws2-s3-vectors-component.adoc
@@ -80,22 +80,23 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:insert
-    steps:
-      - setHeader:
-          name: CamelAwsS3VectorsVectorId
-          constant: doc-001
-      - setBody:
-          constant:
-            - 0.1
-            - 0.2
-            - 0.3
-      - to:
-          uri: aws2-s3-vectors://my-bucket
-          parameters:
-            operation: putVectors
-            vectorIndexName: my-index
+- route:
+    from:
+      uri: direct:insert
+      steps:
+        - setHeader:
+            name: CamelAwsS3VectorsVectorId
+            constant: doc-001
+        - setBody:
+            constant:
+              - 0.1
+              - 0.2
+              - 0.3
+        - to:
+            uri: aws2-s3-vectors://my-bucket
+            parameters:
+              operation: putVectors
+              vectorIndexName: my-index
 ----
 ====
 
@@ -118,23 +119,25 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:search
-    steps:
-      - setBody:
-          constant:
-            - 0.15
-            - 0.25
-            - 0.35
-      - setHeader:
-          name: CamelAwsS3VectorsTopK
-          constant: 5
-      - to:
-          uri: aws2-s3-vectors://my-bucket
-          parameters:
-            operation: queryVectors
-            vectorIndexName: my-index
-      - log: "Found ${body.size} similar vectors"
+- route:
+    from:
+      uri: direct:search
+      steps:
+        - setBody:
+            constant:
+              - 0.15
+              - 0.25
+              - 0.35
+        - setHeader:
+            name: CamelAwsS3VectorsTopK
+            constant: 5
+        - to:
+            uri: aws2-s3-vectors://my-bucket
+            parameters:
+              operation: queryVectors
+              vectorIndexName: my-index
+        - log:
+            message: "Found ${body.size} similar vectors"
 ----
 ====
 
@@ -159,16 +162,19 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: aws2-s3-vectors://my-bucket
-    parameters:
-      vectorIndexName: my-index
-      consumerQueryVector: "0.1,0.2,0.3"
-      delay: 5000
-      maxMessagesPerPoll: 10
-    steps:
-      - log: "Vector ID: ${header.CamelAwsS3VectorsVectorId}"
-      - to: direct:process
+- route:
+    from:
+      uri: aws2-s3-vectors://my-bucket
+      parameters:
+        vectorIndexName: my-index
+        consumerQueryVector: "0.1,0.2,0.3"
+        delay: 5000
+        maxMessagesPerPoll: 10
+      steps:
+        - log:
+            message: "Vector ID: ${header.CamelAwsS3VectorsVectorId}"
+        - to:
+            uri: direct:process
 ----
 ====
 
@@ -191,23 +197,24 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:createIndex
-    steps:
-      - setHeader:
-          name: CamelAwsS3VectorsVectorDimensions
-          constant: 1536
-      - setHeader:
-          name: CamelAwsS3VectorsDataType
-          constant: float32
-      - setHeader:
-          name: CamelAwsS3VectorsDistanceMetric
-          constant: cosine
-      - to:
-          uri: aws2-s3-vectors://my-bucket
-          parameters:
-            operation: createVectorIndex
-            vectorIndexName: my-index
+- route:
+    from:
+      uri: direct:createIndex
+      steps:
+        - setHeader:
+            name: CamelAwsS3VectorsVectorDimensions
+            constant: 1536
+        - setHeader:
+            name: CamelAwsS3VectorsDataType
+            constant: float32
+        - setHeader:
+            name: CamelAwsS3VectorsDistanceMetric
+            constant: cosine
+        - to:
+            uri: aws2-s3-vectors://my-bucket
+            parameters:
+              operation: createVectorIndex
+              vectorIndexName: my-index
 ----
 ====
 
diff --git 
a/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
 
b/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
index 0bfb34e0ea96..d31288b14e8f 100644
--- 
a/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
+++ 
b/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
@@ -233,8 +233,10 @@ YAML::
         credentialType: SHARED_ACCOUNT_KEY
         accessKey: "RAW({{azure.accessKey}})"
       steps:
-        - log: "Processing blob: ${header.CamelAzureStorageBlobBlobName}"
-        - to: direct:processBlob
+        - log:
+            message: "Processing blob: ${header.CamelAzureStorageBlobBlobName}"
+        - to:
+            uri: direct:processBlob
 ----
 ====
 
@@ -272,8 +274,10 @@ YAML::
         credentialType: SHARED_ACCOUNT_KEY
         accessKey: "RAW({{azure.accessKey}})"
       steps:
-        - log: "Processing blob: ${header.CamelAzureStorageBlobBlobName}"
-        - to: direct:processBlob
+        - log:
+            message: "Processing blob: ${header.CamelAzureStorageBlobBlobName}"
+        - to:
+            uri: direct:processBlob
 ----
 ====
 
@@ -317,8 +321,10 @@ YAML::
         credentialType: SHARED_ACCOUNT_KEY
         accessKey: "RAW({{azure.accessKey}})"
       steps:
-        - log: "Processing: ${header.CamelAzureStorageBlobBlobName}"
-        - to: direct:processBlob
+        - log:
+            message: "Processing: ${header.CamelAzureStorageBlobBlobName}"
+        - to:
+            uri: direct:processBlob
 ----
 ====
 
@@ -530,9 +536,12 @@ YAML::
 - route:
     id: azure-blob-upload
     from:
-      uri: file://data?noop=true
+      uri: file://data
+      parameters:
+        noop: true
       steps:
-        - log: "Uploading file: ${header.CamelFileName}"
+        - log:
+            message: "Uploading file: ${header.CamelFileName}"
         - toD:
             uri: "azure-storage-blob://{{azure.account}}/{{azure.container}}"
             parameters:
@@ -542,7 +551,8 @@ YAML::
               maxConcurrency: 4          # 4 parallel uploads
               credentialType: SHARED_ACCOUNT_KEY
               accessKey: "RAW({{azure.accessKey}})"
-        - log: "Upload completed: ${header.CamelFileName}"
+        - log:
+            message: "Upload completed: ${header.CamelFileName}"
 ----
 ====
 
diff --git a/components/camel-camunda/src/main/docs/camunda-component.adoc 
b/components/camel-camunda/src/main/docs/camunda-component.adoc
index 75b8715f8d62..f0ef14e42ae4 100644
--- a/components/camel-camunda/src/main/docs/camunda-component.adoc
+++ b/components/camel-camunda/src/main/docs/camunda-component.adoc
@@ -149,7 +149,7 @@ YAML::
         - setBody:
             simple: '{"process_id":"processId","variables":${body}}'
         - to:
-            uri: "camunda://startProcess"
+            uri: camunda://startProcess
 ----
 
 XML::
@@ -220,7 +220,7 @@ YAML::
         - setBody:
             simple: '{"process_instance_key": 123}'
         - to:
-            uri: "camunda://cancelProcess"
+            uri: camunda://cancelProcess
 ----
 
 XML::
@@ -268,7 +268,7 @@ YAML::
         - setBody:
             simple: 
'{"name":"MessageName","correlation_key":"messageKey","time_to_live":100,"variables":{}}'
         - to:
-            uri: "camunda://publishMessage"
+            uri: camunda://publishMessage
 ----
 
 XML::
@@ -313,7 +313,7 @@ YAML::
             name: CamelCamundaResourceName
             simple: "process.bpmn"
         - to:
-            uri: "camunda://deployResource"
+            uri: camunda://deployResource
 ----
 
 XML::
@@ -378,7 +378,10 @@ YAML::
 ----
 - route:
     from:
-      uri: "camunda://worker?jobType=myJobType&timeout=20"
+      uri: camunda://worker
+      parameters:
+        jobType: myJobType
+        timeout: 20
       steps:
         - log:
             message: "Received job ${header.CamelCamundaJobKey}"
@@ -417,7 +420,10 @@ YAML::
 ----
 - route:
     from:
-      uri: "camunda://worker?jobType=myJobType&timeout=20"
+      uri: camunda://worker
+      parameters:
+        jobType: myJobType
+        timeout: 20
       steps:
         - setBody:
             constant:
@@ -464,7 +470,10 @@ YAML::
 ----
 - route:
     from:
-      uri: "camunda://worker?jobType=myJobType&timeout=20"
+      uri: camunda://worker
+      parameters:
+        jobType: myJobType
+        timeout: 20
       steps:
         - setHeader:
             name: CamelCamundaErrorCode
@@ -473,7 +482,7 @@ YAML::
             name: CamelCamundaErrorMessage
             simple: "Data validation failed"
         - to:
-            uri: "camunda://throwError"
+            uri: camunda://throwError
 ----
 
 XML::
diff --git a/components/camel-dfdl/src/main/docs/dfdl-dataformat.adoc 
b/components/camel-dfdl/src/main/docs/dfdl-dataformat.adoc
index 583906dc2bc0..cfb0635efc39 100644
--- a/components/camel-dfdl/src/main/docs/dfdl-dataformat.adoc
+++ b/components/camel-dfdl/src/main/docs/dfdl-dataformat.adoc
@@ -53,13 +53,15 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:unmarshal
+- route:
+    from:
+      uri: direct:unmarshal
     steps:
       - unmarshal:
           dfdl:
             schemaUri: X12-837P.dfdl.xsd
-      - log: "Unmarshalled X12 837P message: ${body}"
+      - log:
+          message: "Unmarshalled X12 837P message: ${body}"
 ----
 ====
 
@@ -81,13 +83,15 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:marshal
+- route:
+    from:
+      uri: direct:marshal
     steps:
       - marshal:
           dfdl:
             schemaUri: X12-837P.dfdl.xsd
-      - log: "Marshalled X12 837P message: ${body}"
+      - log:
+          message: "Marshalled X12 837P message: ${body}"
 ----
 ====
 
diff --git 
a/components/camel-dhis2/camel-dhis2-component/src/main/docs/dhis2-component.adoc
 
b/components/camel-dhis2/camel-dhis2-component/src/main/docs/dhis2-component.adoc
index cc26ef538185..f417b09a383a 100644
--- 
a/components/camel-dhis2/camel-dhis2-component/src/main/docs/dhis2-component.adoc
+++ 
b/components/camel-dhis2/camel-dhis2-component/src/main/docs/dhis2-component.adoc
@@ -69,8 +69,9 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:getResource
+- route:
+    from:
+      uri: direct:getResource
     steps:
       - to:
           uri: dhis2:get/resource
@@ -112,8 +113,9 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:getCollection
+- route:
+    from:
+      uri: direct:getCollection
     steps:
       - to:
           uri: dhis2:get/collection
@@ -124,11 +126,14 @@ YAML::
             password: district
             baseApiUrl: https://play.im.dhis2.org/stable-2-40-5/api
       - split:
-          simple: ${body}
+          expression:
+            simple:
+              expression: ${body}
           steps:
             - convertBodyTo:
                 type: org.hisp.dhis.api.model.v40_2_2.OrganisationUnit
-            - log: ${body}
+            - log:
+                message: ${body}
 ----
 ====
 
@@ -159,8 +164,9 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:getCollection
+- route:
+    from:
+      uri: direct:getCollection
     steps:
       - to:
           uri: dhis2:get/collection
@@ -172,11 +178,14 @@ YAML::
             baseApiUrl: https://play.im.dhis2.org/stable-2-40-5/api
             fields: code
       - split:
-          simple: ${body}
+          expression:
+            simple:
+              expression: ${body}
           steps:
             - convertBodyTo:
                 type: org.hisp.dhis.api.model.v40_2_2.OrganisationUnit
-            - log: ${body}
+            - log:
+                message: ${body}
 ----
 ====
 
@@ -208,8 +217,9 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:getCollection
+- route:
+    from:
+      uri: direct:getCollection
     steps:
       - to:
           uri: dhis2:get/collection
@@ -221,11 +231,14 @@ YAML::
             baseApiUrl: https://play.im.dhis2.org/stable-2-40-5/api
             filter: "phoneNumber:!null:"
       - split:
-          simple: ${body}
+          expression:
+            simple:
+              expression: ${body}
           steps:
             - convertBodyTo:
                 type: org.hisp.dhis.api.model.v40_2_2.User
-            - log: ${body}
+            - log:
+                message: ${body}
 ----
 ====
 
@@ -275,8 +288,9 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:postResource
+- route:
+    from:
+      uri: direct:postResource
     steps:
       - setBody:
           groovy: |
@@ -340,8 +354,9 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:putResource
+- route:
+    from:
+      uri: direct:putResource
     steps:
       - setBody:
           groovy: |
@@ -399,8 +414,9 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:deleteResource
+- route:
+    from:
+      uri: direct:deleteResource
     steps:
       - to:
           uri: dhis2:delete/resource
@@ -446,8 +462,9 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:resourceTablesAnalytics
+- route:
+    from:
+      uri: direct:resourceTablesAnalytics
     steps:
       - to:
           uri: dhis2:resourceTables/analytics
@@ -498,8 +515,9 @@ YAML::
     script: >
       
org.hisp.dhis.integration.sdk.Dhis2ClientBuilder.newClient('https://play.im.dhis2.org/stable-2-40-5/api',
 'admin', 'district').build()
 
-- from:
-    uri: direct:resourceTablesAnalytics
+- route:
+    from:
+      uri: direct:resourceTablesAnalytics
     steps:
       - to:
           uri: dhis2:resourceTables/analytics
@@ -539,8 +557,9 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:clearCache
+- route:
+    from:
+      uri: direct:clearCache
     steps:
       - setHeader:
           name: CamelDhis2.queryParams
diff --git a/components/camel-event/src/main/docs/event-component.adoc 
b/components/camel-event/src/main/docs/event-component.adoc
index 9a61a66c3b9a..453d368821ab 100644
--- a/components/camel-event/src/main/docs/event-component.adoc
+++ b/components/camel-event/src/main/docs/event-component.adoc
@@ -381,26 +381,29 @@ Create a file called `event-monitor.yaml`:
 ----
 - route:
     from:
-      uri: "event:Route*"
+      uri: event:Route*
       steps:
-        - log: "Route event: ${header.CamelEventType} - route 
${header.CamelEventRouteId}"
+        - log:
+            message: "Route event: ${header.CamelEventType} - route 
${header.CamelEventRouteId}"
 
 - route:
     from:
-      uri: "event:ExchangeCompleted,ExchangeFailed"
+      uri: event:ExchangeCompleted,ExchangeFailed
       steps:
-        - log: "Exchange ${header.CamelEventExchangeId} on route 
${header.CamelEventRouteId}: ${header.CamelEventType}"
+        - log:
+            message: "Exchange ${header.CamelEventExchangeId} on route 
${header.CamelEventRouteId}: ${header.CamelEventType}"
 
 - route:
     id: myRoute
     from:
-      uri: "timer:tick"
+      uri: timer:tick
       parameters:
-        period: "5000"
+        period: 5000
       steps:
         - setBody:
             constant: "Hello from myRoute!"
-        - log: "${body}"
+        - log:
+            message: "${body}"
 ----
 
 Then run it:
diff --git 
a/components/camel-ibm/camel-ibm-watsonx-ai/src/main/docs/ibm-watsonx-ai-component.adoc
 
b/components/camel-ibm/camel-ibm-watsonx-ai/src/main/docs/ibm-watsonx-ai-component.adoc
index 287f3ff64227..9abe5d8aa45f 100644
--- 
a/components/camel-ibm/camel-ibm-watsonx-ai/src/main/docs/ibm-watsonx-ai-component.adoc
+++ 
b/components/camel-ibm/camel-ibm-watsonx-ai/src/main/docs/ibm-watsonx-ai-component.adoc
@@ -422,13 +422,16 @@ YAML::
       - loop:
           id: loop-4459
           doWhile: true
-          simple:
-            expression: ${header.CamelIBMWatsonxAiHasToolCalls} == true
+          expression:
+            simple:
+              expression: ${header.CamelIBMWatsonxAiHasToolCalls} == true
           steps:
             - log:
                 message: Executing tool calls...
             - to:
-                uri: ibm-watsonx-ai:tools?operation=processToolCalls
+                uri: ibm-watsonx-ai:tools
+                parameters:
+                  operation: processToolCalls
             - to:
                 uri: ibm-watsonx-ai:chat
                 parameters:
diff --git a/components/camel-kafka/src/main/docs/kafka-component.adoc 
b/components/camel-kafka/src/main/docs/kafka-component.adoc
index 29ab34b973e2..c9a43fbc8338 100644
--- a/components/camel-kafka/src/main/docs/kafka-component.adoc
+++ b/components/camel-kafka/src/main/docs/kafka-component.adoc
@@ -609,9 +609,9 @@ YAML::
 ----
 - route:
     from:
-      uri: "kafka:topic"
+      uri: kafka:topic
       parameters:
-        groupId: "myGroup"
+        groupId: myGroup
         pollTimeoutMs: 1000
         batching: true
         maxPollRecords: 10
@@ -619,8 +619,9 @@ YAML::
         autoCommitEnable: true
     steps:
       - process:
-          ref: "batchProcessor"
-      - to: "mock:result"
+          ref: batchProcessor
+      - to:
+          uri: mock:result
 ----
 
 Processor Implementation::
@@ -704,25 +705,26 @@ YAML::
 ----
 - route:
     on-exception:
-      - exception: "java.lang.Exception"
+      - exception: java.lang.Exception
         handled: false
         steps:
           - process:
-              ref: "errorCommitProcessor"
+              ref: errorCommitProcessor
     from:
-      uri: "kafka:topic"
+      uri: kafka:topic
       parameters:
-        groupId: "myGroup"
+        groupId: myGroup
         batching: true
         breakOnFirstError: true
         autoCommitEnable: false
         allowManualCommit: true
     steps:
       - process:
-          ref: "batchProcessorManual"
+          ref: batchProcessorManual
       - process:
-          ref: "successCommitProcessor"
-      - to: "mock:result"
+          ref: successCommitProcessor
+      - to:
+          uri: mock:result
 ----
 
 Processor Implementations::
diff --git a/components/camel-kamelet/src/main/docs/kamelet-component.adoc 
b/components/camel-kamelet/src/main/docs/kamelet-component.adoc
index d21e2936ac13..ab14c80e3ba0 100644
--- a/components/camel-kamelet/src/main/docs/kamelet-component.adoc
+++ b/components/camel-kamelet/src/main/docs/kamelet-component.adoc
@@ -59,9 +59,10 @@ Which means you will se a WARN being logged.
         deadLetterUri: log:dead?level=WARN
     id: myRoute
     from:
-      uri: "kamelet:my-error-source/source"
+      uri: kamelet:my-error-source/source
       steps:
-        - log: "${body}"
+        - log:
+            message: "${body}"
 ----
 
 For sink kamelets then error handling also allows to perform retries.
@@ -79,11 +80,12 @@ So suppose you have the following route:
           redeliveryDelay: "5000"
     id: myRoute
     from:
-      uri: "direct:start"
+      uri: direct:start
       steps:
         - to:
-            uri: "kamelet:my-error-sink/sink"
-        - log: "${body}"
+            uri: kamelet:my-error-sink/sink
+        - log:
+            message: "${body}"
 ----
 
 Then notice the error handler has been configured to do redeliveries up till 5 
times with 5 sec delay between.
@@ -121,9 +123,12 @@ spec:
   - "camel:kamelet"
   template:
     from:
-      uri: "kamelet:source"
+      uri: kamelet:source
       steps:
-      - to: "kamelet:log-sink?level={{log-level}}"
+      - to:
+          uri: kamelet:log-sink
+          parameters:
+            level: "{{log-level}}"
 ----
 
 According to the specification, this Kamelet expects a parameter, _log-level_ 
which we will use as a further parameter for the downstream call to the 
`log-sink` Kamelet.
@@ -132,14 +137,18 @@ The usage of this Kamelet into a Camel route is going to 
be the same as any othe
 
 [source,yaml]
 ----
-- from:
-    uri: "timer:yaml"
-    parameters:
-      period: "5000"
+- route:
+    from:
+      uri: timer:yaml
+      parameters:
+        period: "5000"
     steps:
       - setBody:
           simple: "Hello Camel from ${routeId}"
-      - to: "kamelet:nested-sink?log-level=INFO"
+      - to:
+          uri: kamelet:nested-sink
+          parameters:
+            log-level: INFO
 ----
 
 WARNING: beware of any potential circular reference you may introduce when 
using chain of Kamelets, in which case, the runtime will likely be idle 
consuming a high amount of resources.
diff --git a/components/camel-keycloak/src/main/docs/keycloak-component.adoc 
b/components/camel-keycloak/src/main/docs/keycloak-component.adoc
index 7a08c9899f7e..72de959a747d 100644
--- a/components/camel-keycloak/src/main/docs/keycloak-component.adoc
+++ b/components/camel-keycloak/src/main/docs/keycloak-component.adoc
@@ -277,13 +277,20 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakRoleName
-            simple: "${body[roleName]}"
+            expression:
+              simple:
+                expression: "${body[roleName]}"
         - setHeader:
             name: CamelKeycloakRoleDescription
-            simple: "${body[description]}"
+            expression:
+              simple:
+                expression: "${body[description]}"
         - to:
-            uri: keycloak:admin?operation=createRole
-        - log: "Created role: ${header.CamelKeycloakRoleName}"
+            uri: keycloak:admin
+            parameters:
+              operation: createRole
+        - log:
+            message: "Created role: ${header.CamelKeycloakRoleName}"
 
 # Get role route
 - route:
@@ -295,10 +302,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakRoleName
-            simple: "${body[roleName]}"
+            expression:
+              simple:
+                expression: "${body[roleName]}"
         - to:
-            uri: keycloak:admin?operation=getRole
-        - log: "Role info: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: getRole
+        - log:
+            message: "Role info: ${body}"
 
 # Assign role to user route
 - route:
@@ -310,13 +322,20 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUsername
-            simple: "${body[username]}"
+            expression:
+              simple:
+                expression: "${body[username]}"
         - setHeader:
             name: CamelKeycloakRoleName
-            simple: "${body[roleName]}"
+            expression:
+              simple:
+                expression: "${body[roleName]}"
         - to:
-            uri: keycloak:admin?operation=assignRoleToUser
-        - log: "Assigned role ${header.CamelKeycloakRoleName} to user 
${header.CamelKeycloakUsername}"
+            uri: keycloak:admin
+            parameters:
+              operation: assignRoleToUser
+        - log:
+            message: "Assigned role ${header.CamelKeycloakRoleName} to user 
${header.CamelKeycloakUsername}"
 
 # Delete role route
 - route:
@@ -328,10 +347,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakRoleName
-            simple: "${body[roleName]}"
+            expression:
+              simple:
+                expression: "${body[roleName]}"
         - to:
-            uri: keycloak:admin?operation=deleteRole
-        - log: "Deleted role: ${header.CamelKeycloakRoleName}"
+            uri: keycloak:admin
+            parameters:
+              operation: deleteRole
+        - log:
+            message: "Deleted role: ${header.CamelKeycloakRoleName}"
 ----
 ====
 
@@ -389,7 +413,9 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientId
-            simple: "${body[clientId]}"
+            expression:
+              simple:
+                expression: "${body[clientId]}"
         - setHeader:
             name: CamelKeycloakClientSecretRequired
             constant: true
@@ -397,8 +423,11 @@ YAML::
             name: CamelKeycloakClientDirectAccessGrantsEnabled
             constant: true
         - to:
-            uri: keycloak:admin?operation=createClient
-        - log: "Created client: ${header.CamelKeycloakClientId}"
+            uri: keycloak:admin
+            parameters:
+              operation: createClient
+        - log:
+            message: "Created client: ${header.CamelKeycloakClientId}"
 
 # Get client route
 - route:
@@ -410,10 +439,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientId
-            simple: "${body[clientId]}"
+            expression:
+              simple:
+                expression: "${body[clientId]}"
         - to:
-            uri: keycloak:admin?operation=getClient
-        - log: "Client info: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: getClient
+        - log:
+            message: "Client info: ${body}"
 
 # Get client secret route
 - route:
@@ -425,10 +459,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientId
-            simple: "${body[clientId]}"
+            expression:
+              simple:
+                expression: "${body[clientId]}"
         - to:
-            uri: keycloak:admin?operation=getClientSecret
-        - log: "Client secret retrieved for: ${header.CamelKeycloakClientId}"
+            uri: keycloak:admin
+            parameters:
+              operation: getClientSecret
+        - log:
+            message: "Client secret retrieved for: 
${header.CamelKeycloakClientId}"
 
 # Delete client route
 - route:
@@ -440,10 +479,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientId
-            simple: "${body[clientId]}"
+            expression:
+              simple:
+                expression: "${body[clientId]}"
         - to:
-            uri: keycloak:admin?operation=deleteClient
-        - log: "Deleted client: ${header.CamelKeycloakClientId}"
+            uri: keycloak:admin
+            parameters:
+              operation: deleteClient
+        - log:
+            message: "Deleted client: ${header.CamelKeycloakClientId}"
 ----
 ====
 
@@ -503,10 +547,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakGroupName
-            simple: "${body[groupName]}"
+            expression:
+              simple:
+                expression: "${body[groupName]}"
         - to:
-            uri: keycloak:admin?operation=createGroup
-        - log: "Created group: ${header.CamelKeycloakGroupName}"
+            uri: keycloak:admin
+            parameters:
+              operation: createGroup
+        - log:
+            message: "Created group: ${header.CamelKeycloakGroupName}"
 
 # List groups route
 - route:
@@ -517,8 +566,11 @@ YAML::
             name: CamelKeycloakRealmName
             constant: "my-realm"
         - to:
-            uri: keycloak:admin?operation=listGroups
-        - log: "Groups: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: listGroups
+        - log:
+            message: "Groups: ${body}"
 
 # Add user to group route
 - route:
@@ -530,13 +582,20 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setHeader:
             name: CamelKeycloakGroupId
-            simple: "${body[groupId]}"
+            expression:
+              simple:
+                expression: "${body[groupId]}"
         - to:
-            uri: keycloak:admin?operation=addUserToGroup
-        - log: "Added user ${header.CamelKeycloakUserId} to group"
+            uri: keycloak:admin
+            parameters:
+              operation: addUserToGroup
+        - log:
+            message: "Added user ${header.CamelKeycloakUserId} to group"
 
 # List user groups route
 - route:
@@ -548,10 +607,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - to:
-            uri: keycloak:admin?operation=listUserGroups
-        - log: "User groups: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: listUserGroups
+        - log:
+            message: "User groups: ${body}"
 ----
 ====
 
@@ -596,16 +660,25 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setHeader:
             name: CamelKeycloakUserPassword
-            simple: "${body[password]}"
+            expression:
+              simple:
+                expression: "${body[password]}"
         - setHeader:
             name: CamelKeycloakPasswordTemporary
-            simple: "${body[temporary]}"
+            expression:
+              simple:
+                expression: "${body[temporary]}"
         - to:
-            uri: keycloak:admin?operation=resetUserPassword
-        - log: "Password reset for user ${header.CamelKeycloakUserId}"
+            uri: keycloak:admin
+            parameters:
+              operation: resetUserPassword
+        - log:
+            message: "Password reset for user ${header.CamelKeycloakUserId}"
 
 # Reset with temporary password
 - route:
@@ -617,16 +690,23 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setHeader:
             name: CamelKeycloakUserPassword
-            simple: "${body[password]}"
+            expression:
+              simple:
+                expression: "${body[password]}"
         - setHeader:
             name: CamelKeycloakPasswordTemporary
             constant: true
         - to:
-            uri: keycloak:admin?operation=resetUserPassword
-        - log: "Temporary password set for user ${header.CamelKeycloakUserId}"
+            uri: keycloak:admin
+            parameters:
+              operation: resetUserPassword
+        - log:
+            message: "Temporary password set for user 
${header.CamelKeycloakUserId}"
 ----
 ====
 
@@ -677,10 +757,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakSearchQuery
-            simple: "${body[query]}"
+            expression:
+              simple:
+                expression: "${body[query]}"
         - to:
-            uri: keycloak:admin?operation=searchUsers
-        - log: "Search results: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: searchUsers
+        - log:
+            message: "Search results: ${body}"
 
 # Search with pagination
 - route:
@@ -692,16 +777,25 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakSearchQuery
-            simple: "${body[query]}"
+            expression:
+              simple:
+                expression: "${body[query]}"
         - setHeader:
             name: CamelKeycloakFirstResult
-            simple: "${body[offset]}"
+            expression:
+              simple:
+                expression: "${body[offset]}"
         - setHeader:
             name: CamelKeycloakMaxResults
-            simple: "${body[limit]}"
+            expression:
+              simple:
+                expression: "${body[limit]}"
         - to:
-            uri: keycloak:admin?operation=searchUsers
-        - log: "Found ${body.size} users"
+            uri: keycloak:admin
+            parameters:
+              operation: searchUsers
+        - log:
+            message: "Found ${body.size} users"
 
 # Get user roles route
 - route:
@@ -713,10 +807,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - to:
-            uri: keycloak:admin?operation=getUserRoles
-        - log: "User roles: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: getUserRoles
+        - log:
+            message: "User roles: ${body}"
 ----
 ====
 
@@ -777,16 +876,25 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientUuid
-            simple: "${body[clientUuid]}"
+            expression:
+              simple:
+                expression: "${body[clientUuid]}"
         - setHeader:
             name: CamelKeycloakRoleName
-            simple: "${body[roleName]}"
+            expression:
+              simple:
+                expression: "${body[roleName]}"
         - setHeader:
             name: CamelKeycloakRoleDescription
-            simple: "${body[description]}"
+            expression:
+              simple:
+                expression: "${body[description]}"
         - to:
-            uri: keycloak:admin?operation=createClientRole
-        - log: "Created client role: ${header.CamelKeycloakRoleName}"
+            uri: keycloak:admin
+            parameters:
+              operation: createClientRole
+        - log:
+            message: "Created client role: ${header.CamelKeycloakRoleName}"
 
 # List client roles route
 - route:
@@ -798,10 +906,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientUuid
-            simple: "${body[clientUuid]}"
+            expression:
+              simple:
+                expression: "${body[clientUuid]}"
         - to:
-            uri: keycloak:admin?operation=listClientRoles
-        - log: "Client roles: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: listClientRoles
+        - log:
+            message: "Client roles: ${body}"
 
 # Assign client role to user
 - route:
@@ -813,16 +926,25 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setHeader:
             name: CamelKeycloakClientUuid
-            simple: "${body[clientUuid]}"
+            expression:
+              simple:
+                expression: "${body[clientUuid]}"
         - setHeader:
             name: CamelKeycloakRoleName
-            simple: "${body[roleName]}"
+            expression:
+              simple:
+                expression: "${body[roleName]}"
         - to:
-            uri: keycloak:admin?operation=assignClientRoleToUser
-        - log: "Assigned client role to user"
+            uri: keycloak:admin
+            parameters:
+              operation: assignClientRoleToUser
+        - log:
+            message: "Assigned client role to user"
 ----
 ====
 
@@ -864,10 +986,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - to:
-            uri: keycloak:admin?operation=listUserSessions
-        - log: "User sessions: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: listUserSessions
+        - log:
+            message: "User sessions: ${body}"
 
 # Logout user route
 - route:
@@ -879,10 +1006,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - to:
-            uri: keycloak:admin?operation=logoutUser
-        - log: "User logged out: ${header.CamelKeycloakUserId}"
+            uri: keycloak:admin
+            parameters:
+              operation: logoutUser
+        - log:
+            message: "User logged out: ${header.CamelKeycloakUserId}"
 ----
 ====
 
@@ -934,10 +1066,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientScopeName
-            simple: "${body[scopeName]}"
+            expression:
+              simple:
+                expression: "${body[scopeName]}"
         - to:
-            uri: keycloak:admin?operation=createClientScope
-        - log: "Created client scope: ${header.CamelKeycloakClientScopeName}"
+            uri: keycloak:admin
+            parameters:
+              operation: createClientScope
+        - log:
+            message: "Created client scope: 
${header.CamelKeycloakClientScopeName}"
 
 # List client scopes route
 - route:
@@ -948,8 +1085,11 @@ YAML::
             name: CamelKeycloakRealmName
             constant: "my-realm"
         - to:
-            uri: keycloak:admin?operation=listClientScopes
-        - log: "Client scopes: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: listClientScopes
+        - log:
+            message: "Client scopes: ${body}"
 
 # Get client scope route
 - route:
@@ -961,10 +1101,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientScopeId
-            simple: "${body[scopeId]}"
+            expression:
+              simple:
+                expression: "${body[scopeId]}"
         - to:
-            uri: keycloak:admin?operation=getClientScope
-        - log: "Client scope: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: getClientScope
+        - log:
+            message: "Client scope: ${body}"
 ----
 ====
 
@@ -1143,16 +1288,25 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setHeader:
             name: CamelKeycloakAttributeName
-            simple: "${body[attributeName]}"
+            expression:
+              simple:
+                expression: "${body[attributeName]}"
         - setHeader:
             name: CamelKeycloakAttributeValue
-            simple: "${body[attributeValue]}"
+            expression:
+              simple:
+                expression: "${body[attributeValue]}"
         - to:
-            uri: keycloak:admin?operation=setUserAttribute
-        - log: "Set attribute ${header.CamelKeycloakAttributeName}"
+            uri: keycloak:admin
+            parameters:
+              operation: setUserAttribute
+        - log:
+            message: "Set attribute ${header.CamelKeycloakAttributeName}"
 
 # Get user attributes
 - route:
@@ -1164,10 +1318,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - to:
-            uri: keycloak:admin?operation=getUserAttributes
-        - log: "User attributes: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: getUserAttributes
+        - log:
+            message: "User attributes: ${body}"
 
 # Delete user attribute
 - route:
@@ -1179,13 +1338,20 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setHeader:
             name: CamelKeycloakAttributeName
-            simple: "${body[attributeName]}"
+            expression:
+              simple:
+                expression: "${body[attributeName]}"
         - to:
-            uri: keycloak:admin?operation=deleteUserAttribute
-        - log: "Deleted attribute ${header.CamelKeycloakAttributeName}"
+            uri: keycloak:admin
+            parameters:
+              operation: deleteUserAttribute
+        - log:
+            message: "Deleted attribute ${header.CamelKeycloakAttributeName}"
 ----
 ====
 
@@ -1262,10 +1428,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - to:
-            uri: keycloak:admin?operation=getUserCredentials
-        - log: "User credentials: ${body}"
+            uri: keycloak:admin
+            parameters:
+              operation: getUserCredentials
+        - log:
+            message: "User credentials: ${body}"
 
 # Send verification email
 - route:
@@ -1277,10 +1448,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - to:
-            uri: keycloak:admin?operation=sendVerifyEmail
-        - log: "Verification email sent to user ${header.CamelKeycloakUserId}"
+            uri: keycloak:admin
+            parameters:
+              operation: sendVerifyEmail
+        - log:
+            message: "Verification email sent to user 
${header.CamelKeycloakUserId}"
 
 # Send password reset email
 - route:
@@ -1292,10 +1468,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - to:
-            uri: keycloak:admin?operation=sendPasswordResetEmail
-        - log: "Password reset email sent"
+            uri: keycloak:admin
+            parameters:
+              operation: sendPasswordResetEmail
+        - log:
+            message: "Password reset email sent"
 
 # Add required action
 - route:
@@ -1307,13 +1488,18 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setHeader:
             name: CamelKeycloakRequiredAction
             constant: "VERIFY_EMAIL"
         - to:
-            uri: keycloak:admin?operation=addRequiredAction
-        - log: "Added required action VERIFY_EMAIL"
+            uri: keycloak:admin
+            parameters:
+              operation: addRequiredAction
+        - log:
+            message: "Added required action VERIFY_EMAIL"
 
 # Execute actions email
 - route:
@@ -1325,7 +1511,9 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setHeader:
             name: CamelKeycloakActions
             constant:
@@ -1338,8 +1526,11 @@ YAML::
             name: CamelKeycloakLifespan
             constant: 3600
         - to:
-            uri: keycloak:admin?operation=executeActionsEmail
-        - log: "Sent actions email to user"
+            uri: keycloak:admin
+            parameters:
+              operation: executeActionsEmail
+        - log:
+            message: "Sent actions email to user"
 ----
 ====
 
@@ -1390,10 +1581,15 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientUuid
-            simple: "${body[clientUuid]}"
+            expression:
+              simple:
+                expression: "${body[clientUuid]}"
         - to:
-            uri: keycloak:admin?operation=getClientSecret
-        - log: "Retrieved client secret"
+            uri: keycloak:admin
+            parameters:
+              operation: getClientSecret
+        - log:
+            message: "Retrieved client secret"
 
 # Regenerate client secret
 - route:
@@ -1405,11 +1601,17 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakClientUuid
-            simple: "${body[clientUuid]}"
+            expression:
+              simple:
+                expression: "${body[clientUuid]}"
         - to:
-            uri: keycloak:admin?operation=regenerateClientSecret
-        - log: "Regenerated client secret: ${body.value}"
-        - to: "direct:notify-secret-rotation"
+            uri: keycloak:admin
+            parameters:
+              operation: regenerateClientSecret
+        - log:
+            message: "Regenerated client secret: ${body.value}"
+        - to:
+            uri: direct:notify-secret-rotation
 ----
 ====
 
@@ -1590,7 +1792,9 @@ YAML::
       steps:
         - setHeader:
             name: CamelKeycloakAccessToken
-            simple: "${header.Authorization.substring(7)}"  # Extract from 
Bearer token
+            expression:
+              simple:
+                expression: "${header.Authorization.substring(7)}"
         - setHeader:
             name: CamelKeycloakPermissionsOnly
             constant: true
@@ -1602,7 +1806,8 @@ YAML::
               clientId={{keycloak.client-id}}&
               clientSecret={{keycloak.client-secret}}&
               operation=evaluatePermission
-        - log: "User has ${body[permissionCount]} permissions, access granted: 
${body[granted]}"
+        - log:
+            message: "User has ${body[permissionCount]} permissions, access 
granted: ${body[granted]}"
 
 # Check specific resource access
 - route:
@@ -1612,10 +1817,14 @@ YAML::
       steps:
         - setHeader:
             name: CamelKeycloakAccessToken
-            simple: "${header.Authorization.substring(7)}"
+            expression:
+              simple:
+                expression: "${header.Authorization.substring(7)}"
         - setHeader:
             name: CamelKeycloakPermissionResourceNames
-            simple: "${body[resourceName]}"
+            expression:
+              simple:
+                expression: "${body[resourceName]}"
         - setHeader:
             name: CamelKeycloakPermissionScopes
             constant: "read,write"
@@ -1632,13 +1841,18 @@ YAML::
               operation=evaluatePermission
         - choice:
             when:
-              - simple: "${body[granted]} == true"
+              - expression:
+                  simple:
+                    expression: "${body[granted]} == true"
                 steps:
-                  - log: "Access granted for resource ${body[resourceName]}"
-                  - to: "direct:process-resource"
+                  - log:
+                      message: "Access granted for resource 
${body[resourceName]}"
+                  - to:
+                      uri: direct:process-resource
             otherwise:
               steps:
-                - log: "Access denied for resource ${body[resourceName]}"
+                - log:
+                    message: "Access denied for resource ${body[resourceName]}"
                 - setHeader:
                     name: CamelHttpResponseCode
                     constant: 403
@@ -1653,7 +1867,9 @@ YAML::
       steps:
         - setHeader:
             name: CamelKeycloakPermissionResourceNames
-            simple: "${body[resources]}"
+            expression:
+              simple:
+                expression: "${body[resources]}"
         - to:
             uri: >
               keycloak:authz?
@@ -1664,7 +1880,8 @@ YAML::
               username={{service.username}}&
               password={{service.password}}&
               operation=evaluatePermission
-        - log: "RPT token obtained, expires in: ${body[expiresIn]} seconds"
+        - log:
+            message: "RPT token obtained, expires in: ${body[expiresIn]} 
seconds"
 ----
 ====
 
@@ -1827,8 +2044,11 @@ YAML::
             name: CamelKeycloakContinueOnError
             constant: true
         - to:
-            uri: keycloak:admin?operation=bulkCreateUsers
-        - log: "Created ${body[success]} out of ${body[total]} users"
+            uri: keycloak:admin
+            parameters:
+              operation: bulkCreateUsers
+        - log:
+            message: "Created ${body[success]} out of ${body[total]} users"
 ----
 ====
 
@@ -1878,13 +2098,18 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUsernames
-            simple: "${body}"  # List of usernames
+            expression:
+              simple:
+                expression: "${body}"
         - setHeader:
             name: CamelKeycloakContinueOnError
             constant: true
         - to:
-            uri: keycloak:admin?operation=bulkDeleteUsers
-        - log: "Deleted ${body[success]} out of ${body[total]} users"
+            uri: keycloak:admin
+            parameters:
+              operation: bulkDeleteUsers
+        - log:
+            message: "Deleted ${body[success]} out of ${body[total]} users"
 ----
 ====
 
@@ -1933,16 +2158,23 @@ YAML::
             constant: "my-realm"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setHeader:
             name: CamelKeycloakRoleNames
-            simple: "${body[roles]}"  # List of role names
+            expression:
+              simple:
+                expression: "${body[roles]}"
         - setHeader:
             name: CamelKeycloakContinueOnError
             constant: true
         - to:
-            uri: keycloak:admin?operation=bulkAssignRolesToUser
-        - log: "Assigned ${body[assigned]} roles to user"
+            uri: keycloak:admin
+            parameters:
+              operation: bulkAssignRolesToUser
+        - log:
+            message: "Assigned ${body[assigned]} roles to user"
 ----
 ====
 
@@ -1996,13 +2228,18 @@ YAML::
             constant: "developer"
         - setHeader:
             name: CamelKeycloakUsernames
-            simple: "${body}"  # List of usernames
+            expression:
+              simple:
+                expression: "${body}"
         - setHeader:
             name: CamelKeycloakContinueOnError
             constant: true
         - to:
-            uri: keycloak:admin?operation=bulkAssignRoleToUsers
-        - log: "Assigned role to ${body[success]} out of ${body[total]} users"
+            uri: keycloak:admin
+            parameters:
+              operation: bulkAssignRoleToUsers
+        - log:
+            message: "Assigned role to ${body[success]} out of ${body[total]} 
users"
 ----
 ====
 
@@ -2064,8 +2301,11 @@ YAML::
             name: CamelKeycloakContinueOnError
             constant: true
         - to:
-            uri: keycloak:admin?operation=bulkUpdateUsers
-        - log: "Updated ${body[success]} out of ${body[total]} users"
+            uri: keycloak:admin
+            parameters:
+              operation: bulkUpdateUsers
+        - log:
+            message: "Updated ${body[success]} out of ${body[total]} users"
 ----
 ====
 
@@ -2238,9 +2478,12 @@ YAML::
 - route:
     id: bulk-user-provisioning
     from:
-      uri: file:data/incoming?noop=true
+      uri: file:data/incoming
+      parameters:
+        noop: "true"
       steps:
-        - log: "Processing user provisioning file: ${header.CamelFileName}"
+        - log:
+            message: "Processing user provisioning file: 
${header.CamelFileName}"
         - unmarshal:
             csv: {}
         - process:
@@ -2252,8 +2495,11 @@ YAML::
             name: CamelKeycloakContinueOnError
             constant: true
         - to:
-            uri: keycloak:admin?operation=bulkCreateUsers
-        - log: "Provisioning completed: ${body[success]} succeeded, 
${body[failed]} failed"
+            uri: keycloak:admin
+            parameters:
+              operation: bulkCreateUsers
+        - log:
+            message: "Provisioning completed: ${body[success]} succeeded, 
${body[failed]} failed"
 
 # Bulk role assignment API
 - rest:
@@ -2270,17 +2516,25 @@ YAML::
             json: {}
         - setHeader:
             name: CamelKeycloakRealmName
-            simple: "${body[realm]}"
+            expression:
+              simple:
+                expression: "${body[realm]}"
         - setHeader:
             name: CamelKeycloakUserId
-            simple: "${body[userId]}"
+            expression:
+              simple:
+                expression: "${body[userId]}"
         - setBody:
-            simple: "${body[roles]}"
+            expression:
+              simple:
+                expression: "${body[roles]}"
         - setHeader:
             name: CamelKeycloakContinueOnError
             constant: true
         - to:
-            uri: keycloak:admin?operation=bulkAssignRolesToUser
+            uri: keycloak:admin
+            parameters:
+              operation: bulkAssignRolesToUser
         - marshal:
             json: {}
 
@@ -2288,25 +2542,35 @@ YAML::
 - route:
     id: cleanup-inactive-users
     from:
-      uri: timer:cleanup?period=86400000
+      uri: timer:cleanup
+      parameters:
+        period: "86400000"
       steps:
-        - log: "Starting inactive user cleanup"
+        - log:
+            message: "Starting inactive user cleanup"
         - setHeader:
             name: CamelKeycloakRealmName
             constant: "my-realm"
         - to:
-            uri: keycloak:admin?operation=listUsers
+            uri: keycloak:admin
+            parameters:
+              operation: listUsers
         - process:
             ref: identifyInactiveUsersProcessor
         - filter:
-            simple: "${body.size} > 0"
+            expression:
+              simple:
+                expression: "${body.size} > 0"
             steps:
               - setHeader:
                   name: CamelKeycloakContinueOnError
                   constant: true
               - to:
-                  uri: keycloak:admin?operation=bulkDeleteUsers
-              - log: "Deleted ${body[success]} inactive users"
+                  uri: keycloak:admin
+                  parameters:
+                    operation: bulkDeleteUsers
+              - log:
+                  message: "Deleted ${body[success]} inactive users"
 ----
 ====
 
@@ -2434,15 +2698,19 @@ YAML::
     from:
       uri: direct:setup-user-environment
       steps:
-        - log: "Setting up user environment..."
+        - log:
+            message: "Setting up user environment..."
 
         # Step 1: Create realm
         - setHeader:
             name: CamelKeycloakRealmName
             constant: "my-company"
         - to:
-            uri: keycloak:admin?operation=createRealm
-        - log: "Created realm: my-company"
+            uri: keycloak:admin
+            parameters:
+              operation: createRealm
+        - log:
+            message: "Created realm: my-company"
 
         # Step 2: Create admin role
         - setHeader:
@@ -2452,8 +2720,11 @@ YAML::
             name: CamelKeycloakRoleDescription
             constant: "Administrator role"
         - to:
-            uri: keycloak:admin?operation=createRole
-        - log: "Created admin role"
+            uri: keycloak:admin
+            parameters:
+              operation: createRole
+        - log:
+            message: "Created admin role"
 
         # Step 3: Create user role
         - setHeader:
@@ -2463,8 +2734,11 @@ YAML::
             name: CamelKeycloakRoleDescription
             constant: "Standard user role"
         - to:
-            uri: keycloak:admin?operation=createRole
-        - log: "Created user role"
+            uri: keycloak:admin
+            parameters:
+              operation: createRole
+        - log:
+            message: "Created user role"
 
         # Step 4: Create client
         - setHeader:
@@ -2477,8 +2751,11 @@ YAML::
             name: CamelKeycloakClientDirectAccessGrantsEnabled
             constant: true
         - to:
-            uri: keycloak:admin?operation=createClient
-        - log: "Created client: my-app"
+            uri: keycloak:admin
+            parameters:
+              operation: createClient
+        - log:
+            message: "Created client: my-app"
 
         # Step 5: Create admin user
         - setHeader:
@@ -2494,8 +2771,11 @@ YAML::
             name: CamelKeycloakUserLastName
             constant: "User"
         - to:
-            uri: keycloak:admin?operation=createUser
-        - log: "Created admin user"
+            uri: keycloak:admin
+            parameters:
+              operation: createUser
+        - log:
+            message: "Created admin user"
 
         # Step 6: Set password
         - setHeader:
@@ -2505,16 +2785,22 @@ YAML::
             name: CamelKeycloakUserPasswordTemporary
             constant: false
         - to:
-            uri: keycloak:admin?operation=setUserPassword
-        - log: "Set admin user password"
+            uri: keycloak:admin
+            parameters:
+              operation: setUserPassword
+        - log:
+            message: "Set admin user password"
 
         # Step 7: Assign role
         - setHeader:
             name: CamelKeycloakRoleName
             constant: "admin"
         - to:
-            uri: keycloak:admin?operation=assignRoleToUser
-        - log: "Assigned admin role to user"
+            uri: keycloak:admin
+            parameters:
+              operation: assignRoleToUser
+        - log:
+            message: "Assigned admin role to user"
 
         - transform:
             constant: "User environment setup completed successfully"
@@ -2541,7 +2827,8 @@ YAML::
     from:
       uri: direct:create-user-api
       steps:
-        - log: "Creating user: ${body}"
+        - log:
+            message: "Creating user: ${body}"
         - setHeader:
             name: CamelKeycloakRealmName
             constant: "my-company"
@@ -2558,7 +2845,9 @@ YAML::
             name: CamelKeycloakUserLastName
             jsonpath: "$.lastName"
         - to:
-            uri: keycloak:admin?operation=createUser
+            uri: keycloak:admin
+            parameters:
+              operation: createUser
         - setHeader:
             name: Content-Type
             constant: "application/json"
@@ -2570,12 +2859,15 @@ YAML::
     from:
       uri: direct:list-users-api
       steps:
-        - log: "Listing users"
+        - log:
+            message: "Listing users"
         - setHeader:
             name: CamelKeycloakRealmName
             constant: "my-company"
         - to:
-            uri: keycloak:admin?operation=listUsers
+            uri: keycloak:admin
+            parameters:
+              operation: listUsers
         - setHeader:
             name: Content-Type
             constant: "application/json"
@@ -2585,7 +2877,8 @@ YAML::
     from:
       uri: direct:delete-user-api
       steps:
-        - log: "Deleting user: ${header.username}"
+        - log:
+            message: "Deleting user: ${header.username}"
         - setHeader:
             name: CamelKeycloakRealmName
             constant: "my-company"
@@ -2593,7 +2886,9 @@ YAML::
             name: CamelKeycloakUsername
             header: "username"
         - to:
-            uri: keycloak:admin?operation=deleteUser
+            uri: keycloak:admin
+            parameters:
+              operation: deleteUser
         - setHeader:
             name: Content-Type
             constant: "application/json"
@@ -2749,22 +3044,34 @@ YAML::
         initialDelay=1000&
         delay=5000
       steps:
-        - log: "Received admin event: ${body}"
+        - log:
+            message: "Received admin event: ${body}"
         - choice:
             when:
-              - simple: "${body.operationType} == 'CREATE'"
+              - expression:
+                  simple:
+                    expression: "${body.operationType} == 'CREATE'"
                 steps:
-                  - log: "Resource created: ${body.resourceType} at 
${body.resourcePath}"
-              - simple: "${body.operationType} == 'UPDATE'"
+                  - log:
+                      message: "Resource created: ${body.resourceType} at 
${body.resourcePath}"
+              - expression:
+                  simple:
+                    expression: "${body.operationType} == 'UPDATE'"
                 steps:
-                  - log: "Resource updated: ${body.resourceType}"
-              - simple: "${body.operationType} == 'DELETE'"
+                  - log:
+                      message: "Resource updated: ${body.resourceType}"
+              - expression:
+                  simple:
+                    expression: "${body.operationType} == 'DELETE'"
                 steps:
-                  - log: "Resource deleted: ${body.resourceType}"
+                  - log:
+                      message: "Resource deleted: ${body.resourceType}"
             otherwise:
               steps:
-                - log: "Other operation: ${body.operationType}"
-        - to: "direct:process-admin-event"
+                - log:
+                    message: "Other operation: ${body.operationType}"
+        - to:
+            uri: direct:process-admin-event
 
 # Process admin events
 - route:
@@ -2772,8 +3079,12 @@ YAML::
     from:
       uri: direct:process-admin-event
       steps:
-        - log: "Processing admin event: ${body.operationType} on 
${body.resourceType}"
-        - to: "bean:auditService?method=recordAdminEvent"
+        - log:
+            message: "Processing admin event: ${body.operationType} on 
${body.resourceType}"
+        - to:
+            uri: bean:auditService
+            parameters:
+              method: recordAdminEvent
 ----
 ====
 
@@ -2857,28 +3168,46 @@ YAML::
         initialDelay=1000&
         delay=5000
       steps:
-        - log: "Received user event: ${body}"
+        - log:
+            message: "Received user event: ${body}"
         - choice:
             when:
-              - simple: "${body.type} == 'LOGIN'"
+              - expression:
+                  simple:
+                    expression: "${body.type} == 'LOGIN'"
                 steps:
-                  - log: "User logged in: ${body.userId} from IP 
${body.ipAddress}"
-                  - to: "direct:handle-login"
-              - simple: "${body.type} == 'LOGIN_ERROR'"
+                  - log:
+                      message: "User logged in: ${body.userId} from IP 
${body.ipAddress}"
+                  - to:
+                      uri: direct:handle-login
+              - expression:
+                  simple:
+                    expression: "${body.type} == 'LOGIN_ERROR'"
                 steps:
-                  - log: "Failed login attempt: ${body.userId}"
-                  - to: "direct:handle-failed-login"
-              - simple: "${body.type} == 'LOGOUT'"
+                  - log:
+                      message: "Failed login attempt: ${body.userId}"
+                  - to:
+                      uri: direct:handle-failed-login
+              - expression:
+                  simple:
+                    expression: "${body.type} == 'LOGOUT'"
                 steps:
-                  - log: "User logged out: ${body.userId}"
-                  - to: "direct:handle-logout"
-              - simple: "${body.type} == 'REGISTER'"
+                  - log:
+                      message: "User logged out: ${body.userId}"
+                  - to:
+                      uri: direct:handle-logout
+              - expression:
+                  simple:
+                    expression: "${body.type} == 'REGISTER'"
                 steps:
-                  - log: "New user registered: ${body.userId}"
-                  - to: "direct:handle-registration"
+                  - log:
+                      message: "New user registered: ${body.userId}"
+                  - to:
+                      uri: direct:handle-registration
             otherwise:
               steps:
-                - log: "Other event: ${body.type}"
+                - log:
+                    message: "Other event: ${body.type}"
 
 # Handle login events
 - route:
@@ -2886,8 +3215,12 @@ YAML::
     from:
       uri: direct:handle-login
       steps:
-        - log: "Processing login event for user ${body.userId}"
-        - to: "bean:analyticsService?method=recordLogin"
+        - log:
+            message: "Processing login event for user ${body.userId}"
+        - to:
+            uri: bean:analyticsService
+            parameters:
+              method: recordLogin
 
 # Handle failed login
 - route:
@@ -2895,8 +3228,12 @@ YAML::
     from:
       uri: direct:handle-failed-login
       steps:
-        - log: "Processing failed login from ${body.ipAddress}"
-        - to: "bean:securityService?method=checkFailedAttempts"
+        - log:
+            message: "Processing failed login from ${body.ipAddress}"
+        - to:
+            uri: bean:securityService
+            parameters:
+              method: checkFailedAttempts
 ----
 ====
 
@@ -2960,7 +3297,8 @@ YAML::
         operationTypes=CREATE,UPDATE,DELETE&
         maxResults=100
       steps:
-        - log: "Filtered admin event: ${body}"
+        - log:
+            message: "Filtered admin event: ${body}"
 
 # Filter user events by type
 - route:
@@ -2972,7 +3310,8 @@ YAML::
         types=LOGIN,LOGOUT,REGISTER&
         maxResults=100
       steps:
-        - log: "Filtered user event: ${body}"
+        - log:
+            message: "Filtered user event: ${body}"
 
 # Filter by date range
 - route:
@@ -2985,7 +3324,8 @@ YAML::
         dateTo=1640995200000&
         maxResults=100
       steps:
-        - log: "Events in date range: ${body}"
+        - log:
+            message: "Events in date range: ${body}"
 
 # Filter by user and client
 - route:
@@ -2999,7 +3339,8 @@ YAML::
         ipAddress=192.168.1.100&
         maxResults=50
       steps:
-        - log: "Specific user events: ${body}"
+        - log:
+            message: "Specific user events: ${body}"
 ----
 ====
 
@@ -3067,8 +3408,14 @@ YAML::
               }
         - marshal:
             json: {}
-        - to: "kafka:audit-trail?brokers=localhost:9092"
-        - to: "jdbc:dataSource?useHeadersAsParameters=true"
+        - to:
+            uri: kafka:audit-trail
+            parameters:
+              brokers: "localhost:9092"
+        - to:
+            uri: jdbc:dataSource
+            parameters:
+              useHeadersAsParameters: true
 ----
 ====
 
@@ -3118,17 +3465,24 @@ YAML::
         delay=5000
       steps:
         - filter:
-            simple: "${body.type} == 'LOGIN_ERROR'"
+            expression:
+              simple:
+                expression: "${body.type} == 'LOGIN_ERROR'"
         - aggregate:
             correlationExpression:
-              simple: "${body.ipAddress}"
+              expression:
+                simple:
+                  expression: "${body.ipAddress}"
             aggregationStrategy: "#arrayListAggregation"
             completionSize: 5
             completionTimeout: 300000
             steps:
-              - log: "SECURITY ALERT: Multiple failed login attempts from 
${body[0].ipAddress}"
-              - to: "direct:block-ip"
-              - to: "direct:send-security-alert"
+              - log:
+                  message: "SECURITY ALERT: Multiple failed login attempts 
from ${body[0].ipAddress}"
+              - to:
+                  uri: direct:block-ip
+              - to:
+                  uri: direct:send-security-alert
 ----
 ====
 
@@ -3193,8 +3547,15 @@ YAML::
                 "ipAddress": "${body.ipAddress}",
                 "sessionId": "${body.sessionId}"
               }
-        - to: "bean:analyticsService?method=recordActivity"
-        - to: 
"elasticsearch://keycloak-events?operation=Index&indexName=user-activity"
+        - to:
+            uri: bean:analyticsService
+            parameters:
+              method: recordActivity
+        - to:
+            uri: elasticsearch://keycloak-events
+            parameters:
+              operation: Index
+              indexName: user-activity
 ----
 ====
 
@@ -3354,8 +3715,10 @@ camel:
         maxResults=100&
         delay=10000
       steps:
-        - log: "Admin event: ${body.operationType} on ${body.resourceType}"
-        - to: "direct:audit-trail"
+        - log:
+            message: "Admin event: ${body.operationType} on 
${body.resourceType}"
+        - to:
+            uri: direct:audit-trail
 
 - route:
     id: user-activity-tracking
@@ -3368,8 +3731,10 @@ camel:
         maxResults=50&
         delay=30000
       steps:
-        - log: "User activity: ${body.type} for user ${body.userId}"
-        - to: "direct:analytics"
+        - log:
+            message: "User activity: ${body.type} for user ${body.userId}"
+        - to:
+            uri: direct:analytics
 
 - route:
     id: security-monitoring
@@ -3382,8 +3747,10 @@ camel:
         maxResults=100&
         delay=5000
       steps:
-        - log: "Failed login from IP: ${body.ipAddress}"
-        - to: "direct:security-check"
+        - log:
+            message: "Failed login from IP: ${body.ipAddress}"
+        - to:
+            uri: direct:security-check
 
 # Processing routes
 - route:
@@ -3393,24 +3760,36 @@ camel:
       steps:
         - marshal:
             json: {}
-        - to: "kafka:admin-audit?brokers=localhost:9092"
-        - to: "log:audit"
+        - to:
+            uri: kafka:admin-audit
+            parameters:
+              brokers: "localhost:9092"
+        - to:
+            uri: log:audit
 
 - route:
     id: process-analytics
     from:
       uri: direct:analytics
       steps:
-        - to: "bean:analyticsService?method=processUserActivity"
-        - to: "log:analytics"
+        - to:
+            uri: bean:analyticsService
+            parameters:
+              method: processUserActivity
+        - to:
+            uri: log:analytics
 
 - route:
     id: process-security-check
     from:
       uri: direct:security-check
       steps:
-        - to: "bean:securityService?method=checkFailedLogin"
-        - to: "log:security"
+        - to:
+            uri: bean:securityService
+            parameters:
+              method: checkFailedLogin
+        - to:
+            uri: log:security
 ----
 ====
 
@@ -3751,7 +4130,9 @@ YAML::
         - policy:
             ref: paymentPolicy
         - to:
-            uri: bean:paymentService?method=processPayment
+            uri: bean:paymentService
+            parameters:
+              method: processPayment
 
 # Regular endpoint with local JWT
 - route:
@@ -3761,7 +4142,9 @@ YAML::
         - policy:
             ref: standardPolicy
         - to:
-            uri: bean:dataService?method=getData
+            uri: bean:dataService
+            parameters:
+              method: getData
 
 # Security policies
 beans:
@@ -3849,7 +4232,9 @@ YAML::
         - policy:
             ref: adminIntrospection
         - to:
-            uri: bean:userService?method=deleteUser
+            uri: bean:userService
+            parameters:
+              method: deleteUser
 
 - route:
     from:
@@ -3858,7 +4243,9 @@ YAML::
         - policy:
             ref: adminIntrospection
         - to:
-            uri: bean:roleService?method=assignRole
+            uri: bean:roleService
+            parameters:
+              method: assignRole
 
 # Read routes with local JWT
 - route:
@@ -3868,7 +4255,9 @@ YAML::
         - policy:
             ref: readPolicy
         - to:
-            uri: bean:userService?method=listUsers
+            uri: bean:userService
+            parameters:
+              method: listUsers
 
 - route:
     from:
@@ -3877,7 +4266,9 @@ YAML::
         - policy:
             ref: readPolicy
         - to:
-            uri: bean:userService?method=getProfile
+            uri: bean:userService
+            parameters:
+              method: getProfile
 
 # Security policies
 beans:
@@ -4502,7 +4893,9 @@ YAML::
         - policy:
             ref: userPolicy
         - to:
-            uri: bean:userService?method=processUser
+            uri: bean:userService
+            parameters:
+              method: processUser
 
 # Bean definition
 beans:
@@ -4693,7 +5086,8 @@ YAML::
           constant: "application/json"
       - transform:
           constant: '{"error": "Access denied", "message": "Insufficient 
privileges"}'
-      - log: "Authorization failed: ${exception.message}"
+      - log:
+          message: "Authorization failed: ${exception.message}"
 
 # Route-specific error handling
 - route:
@@ -4834,7 +5228,9 @@ YAML::
         - policy:
             ref: adminPolicy
         - to:
-            uri: bean:userService?method=getAllUsers
+            uri: bean:userService
+            parameters:
+              method: getAllUsers
 
 - route:
     from:
@@ -4843,7 +5239,9 @@ YAML::
         - policy:
             ref: userPolicy
         - to:
-            uri: bean:userService?method=getCurrentUser
+            uri: bean:userService
+            parameters:
+              method: getCurrentUser
 
 # Security policy beans
 beans:
@@ -5162,7 +5560,9 @@ YAML::
         - policy:
             ref: strictPolicy
         - to:
-            uri: bean:documentService?method=adminOperations
+            uri: bean:documentService
+            parameters:
+              method: adminOperations
 
 - route:
     from:
@@ -5171,7 +5571,9 @@ YAML::
         - policy:
             ref: flexiblePolicy
         - to:
-            uri: bean:documentService?method=flexibleOperations
+            uri: bean:documentService
+            parameters:
+              method: flexibleOperations
 
 # Bean definitions
 beans:
diff --git a/components/camel-ocsf/src/main/docs/ocsf-dataformat.adoc 
b/components/camel-ocsf/src/main/docs/ocsf-dataformat.adoc
index daf52fc1c38a..f8b611dedad6 100644
--- a/components/camel-ocsf/src/main/docs/ocsf-dataformat.adoc
+++ b/components/camel-ocsf/src/main/docs/ocsf-dataformat.adoc
@@ -212,7 +212,7 @@ from("kafka:security-events")
 ----
 - route:
     from:
-      uri: "kafka:security-events"
+      uri: kafka:security-events
     steps:
       - unmarshal:
           ocsf:
@@ -239,11 +239,11 @@ from("kafka:security-events")
             2. Recommended immediate actions
             3. Risk assessment (Critical/High/Medium/Low)
       - to:
-          uri: "langchain4j-chat:security-analyst"
+          uri: langchain4j-chat:security-analyst
           parameters:
             chatModel: "#chatLanguageModel"
       - to:
-          uri: "direct:ai-summary"
+          uri: direct:ai-summary
 ----
 
 == Dependencies
diff --git a/components/camel-pqc/src/main/docs/pqc-component.adoc 
b/components/camel-pqc/src/main/docs/pqc-component.adoc
index 21f05bf34c01..7ff27dee5d2d 100644
--- a/components/camel-pqc/src/main/docs/pqc-component.adoc
+++ b/components/camel-pqc/src/main/docs/pqc-component.adoc
@@ -1666,16 +1666,21 @@ YAML::
           method: needsRotation('route-signing-key', 90, 10000)
       - choice:
           when:
-            - simple: "${body} == true"
+            - expression:
+                simple:
+                  expression: "${body} == true"
               steps:
-                - log: "Rotating signing key"
+                - log:
+                    message: "Rotating signing key"
                 - bean:
                     ref: keyLifecycleManager
                     method: rotateKey('route-signing-key', 
'route-signing-key-new', 'DILITHIUM')
-                - to: log:rotation-complete
+                - to:
+                    uri: log:rotation-complete
           otherwise:
             steps:
-              - log: "Key rotation not needed"
+              - log:
+                  message: "Key rotation not needed"
 ----
 ====
 
@@ -2211,7 +2216,8 @@ from("file:encrypted")
             keyEncapsulationAlgorithm: MLKEM
             symmetricKeyAlgorithm: AES
             symmetricKeyLength: 256
-      - to: file:encrypted
+      - to:
+          uri: file:encrypted
 
 - route:
     id: decrypt-route
@@ -2223,7 +2229,8 @@ from("file:encrypted")
             keyEncapsulationAlgorithm: MLKEM
             symmetricKeyAlgorithm: AES
             symmetricKeyLength: 256
-      - to: direct:decrypted
+      - to:
+          uri: direct:decrypted
 
--------------------------------------------------------------------------------
 
 === Configuration Options
diff --git a/components/camel-smooks/src/main/docs/smooks-component.adoc 
b/components/camel-smooks/src/main/docs/smooks-component.adoc
index 9bb77c52e05c..1dc0d893680b 100644
--- a/components/camel-smooks/src/main/docs/smooks-component.adoc
+++ b/components/camel-smooks/src/main/docs/smooks-component.adoc
@@ -69,11 +69,16 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: file:inputDir?noop=true
+- route:
+    from:
+      uri: file:inputDir
+      parameters:
+        noop: true
     steps:
-      - to: smooks:smooks-config.xml
-      - to: jms:queue:order
+      - to:
+          uri: smooks:smooks-config.xml
+      - to:
+          uri: jms:queue:order
 ----
 ====
 
diff --git a/components/camel-smooks/src/main/docs/smooks-dataformat.adoc 
b/components/camel-smooks/src/main/docs/smooks-dataformat.adoc
index 82a6480c1696..563ae6304500 100644
--- a/components/camel-smooks/src/main/docs/smooks-dataformat.adoc
+++ b/components/camel-smooks/src/main/docs/smooks-dataformat.adoc
@@ -45,13 +45,15 @@ YAML::
 +
 [source,yaml]
 ----
-- from:
-    uri: direct:unmarshal
+- route:
+    from:
+      uri: direct:unmarshal
     steps:
       - unmarshal:
           smooks:
             smooksConfig: csv-smooks-unmarshal-config.xml
-      - log: "Unmarshalled customers: ${body}"
+      - log:
+          message: "Unmarshalled customers: ${body}"
 ----
 ====
 

Reply via email to